![]() |
DD4hep
1.31.0
Detector Description Toolkit for High Energy Physics
|
a megatile is a rectangule in x-y, split into a grid along x and y, with an exactly integer number of cells in x and y. More...
#include <MegatileLayerGridXY.h>
Classes | |
struct | segInfo |
Helper structure. More... | |
Public Member Functions | |
MegatileLayerGridXY (const std::string &cellEncoding="") | |
Default constructor passing the encoding string. More... | |
MegatileLayerGridXY (const BitFieldCoder *decoder) | |
Default constructor used by derived classes passing an existing decoder. More... | |
virtual | ~MegatileLayerGridXY () |
destructor More... | |
void | setup () |
virtual Vector3D | position (const CellID &cellID) const |
determine the position based on the cell ID More... | |
virtual CellID | cellID (const Vector3D &localPosition, const Vector3D &globalPosition, const VolumeID &volumeID) const |
determine the cell ID based on the position More... | |
void | setMegaTileSizeXY (double x, double y) |
void | setMegaTileOffsetXY (double x, double y) |
set the coordinate offset in X, Y More... | |
void | setMegaTileCellsXY (unsigned int layer, int ix, int iy) |
void | setSpecialMegaTile (unsigned int layer, unsigned int tile, double sizex, double sizey, double offsetx, double offsety, unsigned int ncellsx, unsigned int ncellsy) |
const std::string & | fieldNameX () const |
access the field name used for X More... | |
const std::string & | fieldNameY () const |
access the field name used for Y More... | |
void | setFieldNameX (const std::string &fieldName) |
set the field name used for X More... | |
void | setFieldNameY (const std::string &fieldName) |
set the field name used for Y More... | |
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, e.g., dx/dy/dz, or dr/r*dPhi. More... | |
virtual std::vector< double > | cellDimensions (const unsigned int ilayer, const unsigned int iwafer) const |
int | getUnifNCellsX () |
int | getUnifNCellsY () |
![]() | |
virtual | ~CartesianGrid () |
Destructor. More... | |
![]() | |
virtual | ~Segmentation () |
Destructor. More... | |
virtual void | addSubsegmentation (long key_min, long key_max, Segmentation *entry) |
Add subsegmentation. Call only valid for Multi-segmentations. Default implementation throws an exception. More... | |
virtual VolumeID | volumeID (const CellID &cellID) const |
Determine the volume ID from the full cell ID by removing all local fields. More... | |
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. More... | |
virtual std::string | fieldDescription () const |
Access the encoding string. More... | |
virtual const std::string & | name () const |
Access the segmentation name. More... | |
virtual void | setName (const std::string &value) |
Set the segmentation name. More... | |
virtual const std::string & | type () const |
Access the segmentation type. More... | |
virtual const std::string & | description () const |
Access the description of the segmentation. More... | |
virtual const BitFieldCoder * | decoder () const |
Access the underlying decoder. More... | |
virtual void | setDecoder (const BitFieldCoder *decoder) |
Set the underlying decoder. More... | |
virtual Parameter | parameter (const std::string ¶meterName) const |
Access to parameter by name. More... | |
virtual Parameters | parameters () const |
Access to all parameters. More... | |
virtual void | setParameters (const Parameters ¶meters) |
Set all parameters from an existing set of parameters. More... | |
virtual bool | cellsSpanVolumes () const |
Protected Member Functions | |
void | getSegInfo (unsigned int layerIndex, unsigned int waferIndex) const |
![]() | |
CartesianGrid (const std::string &cellEncoding="") | |
Default constructor used by derived classes passing the encoding string. More... | |
CartesianGrid (const BitFieldCoder *decoder) | |
Default constructor used by derived classes passing an existing decoder. More... | |
![]() | |
Segmentation (const std::string &cellEncoding="") | |
Default constructor used by derived classes passing the encoding string. More... | |
Segmentation (const BitFieldCoder *decoder) | |
Default constructor used by derived classes passing an existing decoder. More... | |
template<typename TYPE > | |
void | registerParameter (const std::string &nam, const std::string &desc, TYPE ¶m, const TYPE &defaultVal, UnitType unitTyp=SegmentationParameter::NoUnit, bool isOpt=false) |
Add a parameter to this segmentation. Used by derived classes to define their parameters. More... | |
void | registerIdentifier (const std::string &nam, const std::string &desc, std::string &ident, const std::string &defaultVal) |
Add a cell identifier to this segmentation. Used by derived classes to define their required identifiers. More... | |
Protected Attributes | |
segInfo | _currentSegInfo |
double | _megaTileSizeX = 0 |
double | _megaTileSizeY = 0 |
double | _megaTileOffsetX = 0 |
double | _megaTileOffsetY = 0 |
std::vector< int > | _nCellsX |
std::vector< int > | _nCellsY |
int | _unif_nCellsX |
int | _unif_nCellsY |
std::map< std::pair< unsigned int, unsigned int >, segInfo > | specialMegaTiles_layerWafer |
std::string | _xId |
the field name used for X More... | |
std::string | _yId |
the field name used for Y More... | |
std::string | _identifierLayer |
encoding field used for the layer More... | |
std::string | _identifierWafer |
encoding field used for the wafer More... | |
std::string | _layerConfig |
std::string | _identifierModule |
![]() | |
std::string | _name |
The segmentation name. More... | |
std::string | _type |
The segmentation type. More... | |
std::string | _description |
The description of the segmentation. More... | |
std::map< std::string, Parameter > | _parameters |
The parameters for this segmentation. More... | |
std::map< std::string, StringParameter > | _indexIdentifiers |
The indices used for the encoding. More... | |
const BitFieldCoder * | _decoder = 0 |
The cell ID encoder and decoder. More... | |
bool | _ownsDecoder = false |
Keeps track of the decoder ownership. More... | |
Additional Inherited Members | |
![]() | |
static double | binToPosition (FieldID bin, double cellSize, double offset=0.) |
Helper method to convert a bin number to a 1D position. More... | |
static int | positionToBin (double position, double cellSize, double offset=0.) |
Helper method to convert a 1D position to a cell ID. More... | |
static double | binToPosition (FieldID bin, std::vector< double > const &cellBoundaries, double offset=0.) |
Helper method to convert a bin number to a 1D position given a vector of binBoundaries. More... | |
static int | positionToBin (double position, std::vector< double > const &cellBoundaries, double offset=0.) |
Helper method to convert a 1D position to a cell ID given a vector of binBoundaries. More... | |
a megatile is a rectangule in x-y, split into a grid along x and y, with an exactly integer number of cells in x and y.
this class assumes a mostly-common megatile size, with possibility for a number of "special" megatiles of non-standard size / segmentation
the segmentation of standard megatiles is defined layer-by-layer.
some changes wrt previous version from Kotera et al.
D. Jeans - Nov 2016
July 2017 - DJeans some changes for easier use of multi-layer segmentations
Definition at line 48 of file MegatileLayerGridXY.h.
dd4hep::DDSegmentation::MegatileLayerGridXY::MegatileLayerGridXY | ( | const std::string & | cellEncoding = "" | ) |
Default constructor passing the encoding string.
default constructor using an encoding string
Definition at line 30 of file MegatileLayerGridXY.cpp.
dd4hep::DDSegmentation::MegatileLayerGridXY::MegatileLayerGridXY | ( | const BitFieldCoder * | decoder | ) |
Default constructor used by derived classes passing an existing decoder.
Definition at line 36 of file MegatileLayerGridXY.cpp.
|
virtual |
destructor
Definition at line 42 of file MegatileLayerGridXY.cpp.
|
virtual |
Returns a vector<double> of the cellDimensions of the given cell ID in natural order of dimensions, e.g., dx/dy/dz, or dr/r*dPhi.
cellID | cellID of the cell for which parameters are returned |
Reimplemented from dd4hep::DDSegmentation::Segmentation.
Definition at line 131 of file MegatileLayerGridXY.cpp.
|
virtual |
Definition at line 177 of file MegatileLayerGridXY.cpp.
|
virtual |
determine the cell ID based on the position
Implements dd4hep::DDSegmentation::Segmentation.
Definition at line 99 of file MegatileLayerGridXY.cpp.
|
inline |
access the field name used for X
Definition at line 94 of file MegatileLayerGridXY.h.
|
inline |
access the field name used for Y
Definition at line 98 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 154 of file MegatileLayerGridXY.cpp.
|
inline |
Definition at line 114 of file MegatileLayerGridXY.h.
|
inline |
Definition at line 115 of file MegatileLayerGridXY.h.
|
virtual |
determine the position based on the cell ID
Implements dd4hep::DDSegmentation::Segmentation.
Definition at line 72 of file MegatileLayerGridXY.cpp.
|
inline |
set the field name used for X
Definition at line 103 of file MegatileLayerGridXY.h.
|
inline |
set the field name used for Y
Definition at line 107 of file MegatileLayerGridXY.h.
|
inline |
Definition at line 78 of file MegatileLayerGridXY.h.
|
inline |
set the coordinate offset in X, Y
Definition at line 73 of file MegatileLayerGridXY.h.
|
inline |
Definition at line 67 of file MegatileLayerGridXY.h.
void dd4hep::DDSegmentation::MegatileLayerGridXY::setSpecialMegaTile | ( | unsigned int | layer, |
unsigned int | tile, | ||
double | sizex, | ||
double | sizey, | ||
double | offsetx, | ||
double | offsety, | ||
unsigned int | ncellsx, | ||
unsigned int | ncellsy | ||
) |
Definition at line 137 of file MegatileLayerGridXY.cpp.
void dd4hep::DDSegmentation::MegatileLayerGridXY::setup | ( | ) |
Definition at line 46 of file MegatileLayerGridXY.cpp.
|
mutableprotected |
Definition at line 131 of file MegatileLayerGridXY.h.
|
protected |
encoding field used for the layer
Definition at line 161 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 167 of file MegatileLayerGridXY.h.
|
protected |
encoding field used for the wafer
Definition at line 163 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 165 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 143 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 144 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 140 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 141 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 147 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 148 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 150 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 151 of file MegatileLayerGridXY.h.
|
protected |
the field name used for X
Definition at line 157 of file MegatileLayerGridXY.h.
|
protected |
the field name used for Y
Definition at line 159 of file MegatileLayerGridXY.h.
|
protected |
Definition at line 153 of file MegatileLayerGridXY.h.