|
HerdSoftware
0.4.0
|
Data structure for single silicon layer geometry parameters. More...
#include <dataobjects/FitGeoParams.h>
Classes | |
| class | LayerZone |
| A data structure for describing an active/dead zone of the FIT layer. More... | |
Public Types | |
| using | LayerZones = std::vector< LayerZone > |
Public Member Functions | |
| FitGeoParams () | |
| Default constructor. More... | |
| FitGeoParams (RefFrame::Side dside, size_t layerNumber, RefFrame::Direction mainSegm) | |
| Construct a new FitGeoParams object. More... | |
| ~FitGeoParams () override=default | |
| Virtual destructor More... | |
| const Parallelepiped & | BoundingBox () const |
| Get the layer bounding box for quick geometric checks (intersections and such). More... | |
| unsigned int | NSipmPerMat () const |
| Get the number of sipms that are attached to a mat. More... | |
| int | NChannelsPerSipm () const |
| Get the number of channels in a single SiPM. More... | |
| int | NChannelsPerMat () const |
| Get the number of channels that are in a mat. More... | |
| const AxesArray< int > & | NMats () const |
| Get the number of ladder that make up a layer. This is intended as number of ladders along each direction. As a convention the number of ladders in the normal plane direction is one. More... | |
| unsigned int | NTotElements () const |
| Return the total number of FIT mats. More... | |
| const AxesArray< float > & | MatSize () const |
| Get the dimensions of the single mat. More... | |
| float | SipmAirGap () const |
| Get gap between two consecutive SiPM. More... | |
| Point | ElementPosition (unsigned int elementID) const override |
| Get position of a given element. More... | |
| Parallelepiped | ElementShape (size_t volID) const |
| Utility function to get the shape in space of a particular mat. More... | |
| Point | SipmPosition (unsigned int sipmID) const |
| Get position of a given SiPM. More... | |
| Point | MatPosition (unsigned int matID) const |
| Get position of a given mat. More... | |
| std::optional< unsigned int > | MatID (const Point &position) const |
| Retrieves the volume ID of the mat containing the given point. More... | |
| unsigned int | MatIDFromChannelID (unsigned int channelID) const |
| Retrieves the volume ID of the mat containing the sipm with the given channelID. More... | |
| unsigned int | SipmIDFromChannelID (unsigned int channelID) const |
| Retrieves the ID of the SiPM containing the channel with the given channelID. More... | |
| std::optional< unsigned int > | ElementID (const Point &position) const override |
| Utility function to get the element ID from a set of coordinates. More... | |
| std::optional< unsigned int > | SipmIDOnMat (float relativePosition) const |
| Returns the sipm ID on mat. More... | |
| std::optional< unsigned int > | ChannelIDOnMat (float relativePosition) const |
| Returns the channel ID on mat. More... | |
| float | ChannelPositionOnMat (unsigned int channelIDOnMat) const |
| Get position of a given channel relative to the mat "left" edge. More... | |
| void | SetSideAndMainSegmDir (RefFrame::Side dside, RefFrame::Direction segmDir) override |
| Set the detector side and the main segmentation direction for fibers. More... | |
| void | SetNSipmPerMat (int nSipms) |
| Set the number of sipms per mat. More... | |
| void | SetMatSize (const AxesArray< float > &sizes) |
| Set the mat sizes along the three axes. More... | |
| void | SetNMats (AxesArray< int > nMats) |
| Set the number of mats along each axis. More... | |
| void | SetMatPosition (size_t matID, Point position) |
| Set the mat position for a given mat. More... | |
| const LayerZones & | ActiveZones () |
| Returns the active zones. More... | |
| const LayerZones & | DeadZones () |
| Returns the dead zones. More... | |
Public Member Functions inherited from Herd::TrackingDetectorGeoParams | |
| TrackingDetectorGeoParams () | |
| Default constructor. More... | |
| virtual | ~TrackingDetectorGeoParams ()=default |
| Virtual destructor More... | |
| virtual const RefFrame::Side & | Side () const |
| Return the detector side this layer is in. More... | |
| virtual size_t | LayerNumber () const |
| Return the layer number for this layer in its detector. More... | |
| virtual bool | HasTungsten () const |
| Check if layer is preceded by tungsten plane. More... | |
| float | TungstenThickness () const |
| Get the tungsten layer thickness. More... | |
| virtual float | ElementPitch () const |
| Get element pitch. More... | |
| virtual RefFrame::Direction | NormalDirection () const |
| Get the normal direction to the detector. More... | |
| virtual std::pair< RefFrame::Direction, RefFrame::Direction > | SegmentationDirections () const |
| Return the segmentation directions of the tracking elements. More... | |
| virtual void | SetHasTungsten (bool value) |
| Set the tungsten flag. More... | |
| virtual void | SetTungstenThickness (float value) |
| Set the tungsten plane thickness. More... | |
Protected Attributes | |
| float | _sipmAirGap = 0.009 |
| float | _sipmDieGap = 0.022 |
| Gap between two consecutive SiPMs. More... | |
| float | _sipmDeadRegion = 0.016 |
| Gap between two dies in a SiPM. More... | |
| float | _sipmChannelPitch = 0.025 |
| Dead region at the border of a SiPM. More... | |
| size_t | _sipmDieChannels = 64 |
| Pitch of a single SiPM channel (250um) More... | |
| size_t | _sipmNDies = 2 |
| Number of channels in a single die. More... | |
| float | _sipmWidth |
| Number of dies in a SiPM. More... | |
| std::vector< std::pair< float, float > > | _sipmRelativePositions |
| Width of the SiPM sensor [cm]. More... | |
Protected Attributes inherited from Herd::TrackingDetectorGeoParams | |
| RefFrame::Side | _side |
| size_t | _layerNumber |
| Detector side. More... | |
| RefFrame::Direction | _normalDir |
| Layer number. More... | |
| RefFrame::Direction | _mainSegmDir |
| Normal direction. More... | |
| RefFrame::Direction | _secSegmDir |
| Main segmentation direction for elements. More... | |
| float | _elementPitch |
| Secondary segmentation direction for elements. More... | |
| bool | _hasTungsten |
| Element pitch. More... | |
| float | _tungstenThickness |
| True if layer is preceded by a tungsten plane. More... | |
Private Member Functions | |
| void | ComputeBoundingBox () const |
| Root-transient. More... | |
| void | ComputeActiveDeadZones () |
Private Attributes | |
| unsigned int | _nSipmsPerMat |
| AxesArray< int > | _nMats |
| Number of SiPMs in each mat. More... | |
| AxesArray< float > | _matSize |
| Number of mats along the three axes. More... | |
| std::vector< Point > | _matPos |
| Dimensions of a mat along the three axes. More... | |
| bool | _bbIsValid {false} |
| Position of all the mats. More... | |
| Parallelepiped | _boundingBox |
| Flag to signal Bounding box must be recomputed. More... | |
| LayerZones | _activeZones |
| Bounding box for this layer, to use for quick intersection checks. More... | |
| LayerZones | _deadZones |
Data structure for single silicon layer geometry parameters.
| using Herd::FitGeoParams::LayerZones = std::vector<LayerZone> |
@ brief A container of active/dead zones.
| Herd::FitGeoParams::FitGeoParams | ( | ) |
Default constructor.
| Herd::FitGeoParams::FitGeoParams | ( | RefFrame::Side | dside, |
| size_t | layerNumber, | ||
| RefFrame::Direction | mainSegm | ||
| ) |
Construct a new FitGeoParams object.
| dside | The detector side. |
| layerNumber | The number of layers. |
| mainSegm | The main segmentation direction for strips. |
|
overridedefault |
Virtual destructor
| const FitGeoParams::LayerZones & Herd::FitGeoParams::ActiveZones | ( | ) |
Returns the active zones.
Returned active zones are ordered in increasing value of the coordinates.
| const Parallelepiped & Herd::FitGeoParams::BoundingBox | ( | ) | const |
Get the layer bounding box for quick geometric checks (intersections and such).
| std::optional< unsigned int > Herd::FitGeoParams::ChannelIDOnMat | ( | float | relativePosition | ) | const |
Returns the channel ID on mat.
This method computes the relative channel ID on the mat for the given relative position along the segmentation direction. This will return 0 for the first channel of the mat etc. N.B: relativePosition is always w.r.t. the "leftmost" mat edge (mat position - 0.5* mat size) irregardless of wether the channel number increases or decreases with the coordinate.
| relativePosition | The hit position w.r.t. the mat "left" edge. |
| float Herd::FitGeoParams::ChannelPositionOnMat | ( | unsigned int | channelIDOnMat | ) | const |
Get position of a given channel relative to the mat "left" edge.
| channelIDOnMat | The relative ID of the channel in the mat. |
|
private |
|
private |
Root-transient.
| const FitGeoParams::LayerZones & Herd::FitGeoParams::DeadZones | ( | ) |
Returns the dead zones.
|
overridevirtual |
Utility function to get the element ID from a set of coordinates.
| position | The coordinates of the point (normal coordinate is ignored). |
Implements Herd::TrackingDetectorGeoParams.
|
overridevirtual |
Get position of a given element.
| elementID | The unique geometric ID of the element. |
Implements Herd::TrackingDetectorGeoParams.
| Parallelepiped Herd::FitGeoParams::ElementShape | ( | size_t | volID | ) | const |
Utility function to get the shape in space of a particular mat.
| volID | The volume ID of the requested mat. |
| std::optional< unsigned int > Herd::FitGeoParams::MatID | ( | const Point & | position | ) | const |
Retrieves the volume ID of the mat containing the given point.
| position |
| unsigned int Herd::FitGeoParams::MatIDFromChannelID | ( | unsigned int | channelID | ) | const |
Retrieves the volume ID of the mat containing the sipm with the given channelID.
| channelID |
|
inline |
Get position of a given mat.
| matID | The unique ID of the mat. |
|
inline |
Get the dimensions of the single mat.
|
inline |
Get the number of channels that are in a mat.
|
inline |
Get the number of channels in a single SiPM.
|
inline |
Get the number of ladder that make up a layer. This is intended as number of ladders along each direction. As a convention the number of ladders in the normal plane direction is one.
|
inline |
Get the number of sipms that are attached to a mat.
|
inline |
Return the total number of FIT mats.
| void Herd::FitGeoParams::SetMatPosition | ( | size_t | matID, |
| Point | position | ||
| ) |
Set the mat position for a given mat.
See the wiki page for the mat numbering convention.
| matID | |
| position |
| void Herd::FitGeoParams::SetMatSize | ( | const AxesArray< float > & | sizes | ) |
Set the mat sizes along the three axes.
| sizes | the size of the mat along each axis (cm). |
| void Herd::FitGeoParams::SetNMats | ( | AxesArray< int > | nMats | ) |
Set the number of mats along each axis.
The value for the orthogonal axis must be 1.
| nMats | The number of mats along each direction |
| std::runtime_error | if the number of mats along the orthogonal direction is not 1. |
|
inline |
Set the number of sipms per mat.
| nSipms | The number of sipms per mat. |
|
overridevirtual |
Set the detector side and the main segmentation direction for fibers.
| dside | The side. |
| segmDir | the main segmentation direction for fibers. |
Implements Herd::TrackingDetectorGeoParams.
|
inline |
Get gap between two consecutive SiPM.
| unsigned int Herd::FitGeoParams::SipmIDFromChannelID | ( | unsigned int | channelID | ) | const |
Retrieves the ID of the SiPM containing the channel with the given channelID.
| channelID |
| std::optional< unsigned int > Herd::FitGeoParams::SipmIDOnMat | ( | float | relativePosition | ) | const |
Returns the sipm ID on mat.
This method computes the relative sipm ID on the mat for the given position ont he mat itself. This will return 0 for the first sipm of the mat etc. N.B: relativePosition is always w.r.t. the "leftmost" mat edge (mat position - 0.5* mat size) irregardless of wether the channel number increases or decreases with the coordinate.
| relativePosition | The hit position w.r.t. the mat "left" edge. |
| Point Herd::FitGeoParams::SipmPosition | ( | unsigned int | sipmID | ) | const |
Get position of a given SiPM.
| sipmID | The unique ID of the SiPM. |
|
private |
Bounding box for this layer, to use for quick intersection checks.
|
mutableprivate |
Position of all the mats.
|
mutableprivate |
Flag to signal Bounding box must be recomputed.
|
private |
|
private |
Dimensions of a mat along the three axes.
|
private |
Number of mats along the three axes.
|
private |
Number of SiPMs in each mat.
|
private |
|
protected |
|
protected |
Dead region at the border of a SiPM.
|
protected |
Gap between two dies in a SiPM.
|
protected |
Pitch of a single SiPM channel (250um)
|
protected |
Gap between two consecutive SiPMs.
|
protected |
Number of channels in a single die.
|
protected |
Width of the SiPM sensor [cm].
|
protected |
Number of dies in a SiPM.
1.8.17