DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
MultiSegmentation.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // \author Markus Frank
11 // \date 2016-10-18
12 // \version 1.0
13 //
14 //==========================================================================
15 #ifndef DD4HEP_MULTISEGMENTATION_H
16 #define DD4HEP_MULTISEGMENTATION_H 1
17 
18 // Framework include files
19 #include <DD4hep/Segmentations.h>
21 
23 namespace dd4hep {
24 
26  namespace DDSegmentation { class MultiSegmentation; }
27 
30 
32 
53  public:
55 
56  public:
58  MultiSegmentation() = default;
60  MultiSegmentation(const MultiSegmentation& e) = default;
66  template <typename Q> MultiSegmentation(const Handle<Q>& e) : Handle<Object>(e) {}
70  bool operator==(const MultiSegmentation& seg) const
71  { return m_element == seg.m_element; }
73  const std::string& discriminatorName() const;
75  const BitFieldElement* discriminator() const;
77  const Segmentations& subSegmentations() const;
79  Position position(const CellID& cellID) const;
81  CellID cellID(const Position& local, const Position& global, const VolumeID& volID) const;
82  const std::string& fieldNameY() const;
92  std::vector<double> cellDimensions(const CellID& cellID) const;
93  };
94 } /* End namespace dd4hep */
95 #endif // DD4HEP_MULTISEGMENTATION_H
dd4hep::MultiSegmentation::cellDimensions
std::vector< double > cellDimensions(const CellID &cellID) const
Returns a vector<double> of the cellDimensions of the given cell ID in natural order of dimensions,...
Definition: MultiSegmentation.cpp:58
dd4hep::MultiSegmentation::subSegmentations
const Segmentations & subSegmentations() const
The underlying sub-segementations.
Definition: MultiSegmentation.cpp:32
Segmentations.h
dd4hep::DDSegmentation::BitFieldElement
Helper class for BitFieldCoder that corresponds to one field value.
Definition: BitFieldCoder.h:32
dd4hep::MultiSegmentation::MultiSegmentation
MultiSegmentation()=default
Default constructor.
dd4hep::MultiSegmentation
Implementation class for the grid XZ segmentation.
Definition: MultiSegmentation.h:52
dd4hep::Handle::Object
T Object
Extern accessible definition of the contained element type.
Definition: Handle.h:88
dd4hep::MultiSegmentation::operator=
MultiSegmentation & operator=(const MultiSegmentation &seg)=default
Assignment operator.
dd4hep::MultiSegmentation::MultiSegmentation
MultiSegmentation(const Handle< Object > &e)
Copy constructor from handle.
Definition: MultiSegmentation.h:64
dd4hep::MultiSegmentation::position
Position position(const CellID &cellID) const
determine the position based on the cell ID
Definition: MultiSegmentation.cpp:37
MultiSegmentation.h
dd4hep::Handle
Handle: a templated class like a shared pointer, which allows specialized access to tgeometry objects...
Definition: Handle.h:84
dd4hep::MultiSegmentation::Segmentations
DDSegmentation::MultiSegmentation::Segmentations Segmentations
Definition: MultiSegmentation.h:54
dd4hep::MultiSegmentationHandle
Handle< SegmentationWrapper< DDSegmentation::MultiSegmentation > > MultiSegmentationHandle
We need some abbreviation to make the code more readable.
Definition: MultiSegmentation.h:29
dd4hep::MultiSegmentation::discriminator
const BitFieldElement * discriminator() const
Discriminating bitfield entry.
Definition: MultiSegmentation.cpp:26
dd4hep::MultiSegmentation::cellID
CellID cellID(const Position &local, const Position &global, const VolumeID &volID) const
determine the cell ID based on the position
Definition: MultiSegmentation.cpp:42
dd4hep::MultiSegmentation::operator==
bool operator==(const MultiSegmentation &seg) const
Equality operator.
Definition: MultiSegmentation.h:70
dd4hep::Handle::m_element
T * m_element
Single and only data member: Reference to the actual element.
Definition: Handle.h:93
dd4hep::MultiSegmentation::fieldNameY
const std::string & fieldNameY() const
dd4hep::Position
ROOT::Math::XYZVector Position
Definition: Objects.h:81
dd4hep::MultiSegmentation::MultiSegmentation
MultiSegmentation(const Handle< Q > &e)
Copy constructor from other polymorph/equivalent handle.
Definition: MultiSegmentation.h:66
VolumeID
dd4hep::DDSegmentation::VolumeID VolumeID
Definition: SegmentationDictionary.h:50
dd4hep::MultiSegmentation::MultiSegmentation
MultiSegmentation(const MultiSegmentation &e)=default
Copy constructor.
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::DDSegmentation::MultiSegmentation::Segmentations
std::vector< Entry > Segmentations
Definition: MultiSegmentation.h:36
dd4hep::Segmentation
Handle class supporting generic Segmentations of sensitive detectors.
Definition: Segmentations.h:41
dd4hep::MultiSegmentation::discriminatorName
const std::string & discriminatorName() const
access the field name used to discriminate sub-segmentations
Definition: MultiSegmentation.cpp:21
dd4hep::MultiSegmentation::MultiSegmentation
MultiSegmentation(const Segmentation &e)
Copy Constructor from segmentation base object.
Definition: MultiSegmentation.h:62
CellID
dd4hep::DDSegmentation::CellID CellID
Definition: SegmentationDictionary.h:51