HerdSoftware
0.3.2
|
Data structure for single silicon layer geometry parameters. More...
#include <dataobjects/FitGeoParams.h>
Classes | |
class | LayerZone |
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... | |
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 | GetSipmAirGap () const |
Get gap between two consecutive SiPM. More... | |
Point | ElementPosition (unsigned int elementID) const override |
Get position of a given element. 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... | |
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... | |
unsigned int | ElementID (const Point &position) const override |
Utility function to get the element ID from a set of coordinates. More... | |
unsigned int | SipmIDOnMat (float relativePosition) const |
Returns the sipm ID on mat. More... | |
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... | |
![]() | |
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... | |
![]() | |
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 | ComputeActiveDeadZones () |
Root-transient. More... | |
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... | |
LayerZones | _activeZones |
Position of all the mats. 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. |
stripMainSegm | 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.
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.
channelID | The relative ID of the channel in the mat. |
|
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.
elementD | The unique geometric ID of the element. |
Implements Herd::TrackingDetectorGeoParams.
|
inline |
Get gap between two consecutive SiPM.
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.
|
inline |
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.
nLadders | 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.
Must be called after SetSideAndMainSegmDir and SetMatSize. This method computes and sets also the AirGap.
nSipms | The number of sipms per mat. |
std::runtime_error | if this method is called before SetSideAndMainSegmDir or SetMatSize. |
|
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.
unsigned int Herd::FitGeoParams::SipmIDFromChannelID | ( | unsigned int | channelID | ) | const |
Retrieves the ID of the SiPM containing the channel with the given channelID.
channelID |
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 |
Position of all the mats.
|
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.