|
DD4hep
1.30.0
Detector Description Toolkit for High Energy Physics
|
Go to the documentation of this file.
19 #include <DD4hep/detail/Handle.inl>
33 std::string seg_type =
"segmentation_constructor__"+typ;
37 if ( !nam.empty() ) obj->
setName(nam);
41 except(
"Segmentation",
"FAILED to create segmentation: %s. [Missing factory]",typ.c_str());
DDSegmentation::Parameters parameters() const
Access to all parameters.
Position position(const CellID &cellID) const
determine the local position based on the cell ID
A segmentation for arbitrary sizes in R and R-dependent sizes in Phi.
Segmentation base class describing cartesian grid segmentation in the X-Y plane.
bool useForHitPosition() const
Access flag for hit positioning.
DDSegmentation::Segmentation * segmentation
Reference to base segmentation.
Handle< SensitiveDetectorObject > sensitive
Reference to hosting top level sensitve detector structure.
Handle< SensitiveDetectorObject > sensitive() const
Access the sensitive detector using this segmentation object.
Handle: a templated class like a shared pointer, which allows specialized access to tgeometry objects...
Handle< DetElementObject > detector() const
Access the main detector element using this segmentation object.
Implementation class supporting generic Segmentation of sensitive detectors.
Class to hold a segmentation parameter with its description.
Segmentation base class describing cartesian grid segmentation in the X-Z plane.
Wrapper to support multiple segmentations.
unsigned char useForHitPosition
Flag to use segmentation for hit positioning.
Segmentation base class describing cartesian strip segmentation in Z.
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,...
void setDecoder(const BitFieldCoder *decoder) const
Set the underlying decoder.
void assign(Object *n, const std::string &nam, const std::string &title)
Assign a new named object. Note: object references must be managed by the user.
DD4HEP_INSTANTIATE_SEGMENTATION_HANDLE(DDSegmentation::NoSegmentation)
std::vector< Parameter > Parameters
void neighbours(const CellID &cellID, std::set< CellID > &neighbours) const
Calculates the neighbours of the given cell ID and adds them to the list of neighbours.
A segmentation for arbitrary sizes in R and R-dependent sizes in Phi.
a megatile is a rectangule in x-y, split into a grid along x and y, with an exactly integer number of...
virtual const BitFieldCoder * decoder() const
Access the underlying decoder.
Segmentation base class describing cylindrical grid segmentation in the Phi-Z cylinder.
Segmentation base class describing cartesian grid segmentation in space.
A segmentation class to describe projective cylinders.
Handle< DetElementObject > detector
Reference to hosting top level DetElement structure.
const std::string & type() const
Access the segmentation type.
CellID cellID(const Position &localPosition, const Position &globalPosition, const VolumeID &volumeID) const
determine the cell ID based on the local position
const std::string & name() const
Access the segmentation name.
Segmentation base class describing cartesian strip segmentation in Y.
VolumeID volumeID(const CellID &cellID) const
Determine the volume ID from the full cell ID by removing all local fields.
DD4HEP_INSTANTIATE_HANDLE_UNNAMED(SegmentationObject)
virtual void setDecoder(const BitFieldCoder *decoder)
Set the underlying decoder.
const char * name() const
Accessor: Segmentation type.
ROOT::Math::XYZVector Position
std::string type() const
Accessor: Segmentation type.
virtual VolumeID volumeID(const CellID &cellID) const
Determine the volume ID from the full cell ID by removing all local fields.
This class exists to provide a segmenation when it is need but doesn't exist.
dd4hep::DDSegmentation::VolumeID VolumeID
virtual CellID cellID(const Vector3D &localPosition, const Vector3D &globalPosition, const VolumeID &volumeID) const =0
Determine the cell ID based on the position.
DDSegmentation::Segmentation * segmentation() const
Access to the base DDSegmentation object. WARNING: Deprecated call!
SegmentationObject * access() const
Checked object access. Throws invalid handle runtime exception if invalid handle.
Segmentation base class describing cartesian grid segmentation in the Y-Z plane.
const BitFieldCoder * decoder() const
Access the underlying decoder.
DDSegmentation::Parameters parameters() const
Access to the parameters.
Namespace for the AIDA detector description toolkit.
virtual 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,...
Segmentation class describing segmentation in R-Phi-Eta.
virtual void neighbours(const CellID &cellID, std::set< CellID > &neighbours) const
Calculates the neighbours of the given cell ID and adds them to the list of neighbours.
Segmentation()=default
Default constructor.
Segmentation class describing segmentation in Phi-Eta.
Segmentation base class describing cartesian strip segmentation in X.
DDSegmentation::Parameter parameter(const std::string ¶meterName) const
Access to parameter by name.
A segmentation class to describe tiled layers.
Base class for all segmentations.
A segmentation class to describe wafer grids in X-Y.
DDSegmentation::Parameter parameter(const std::string ¶meterName) const
Access to parameter by name.
Segmentation base class describing cartesian grid segmentation.
virtual Vector3D position(const CellID &cellID) const =0
Determine the local position based on the cell ID.
void setName(const std::string &value)
Set the segmentation name.
dd4hep::DDSegmentation::CellID CellID