HerdSoftware  0.3.2
Classes | Public Types | Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Herd::FitGeoParams Class Reference

Data structure for single silicon layer geometry parameters. More...

#include <dataobjects/FitGeoParams.h>

Inheritance diagram for Herd::FitGeoParams:
Herd::TrackingDetectorGeoParams

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 LayerZonesActiveZones ()
 Returns the active zones. More...
 
const LayerZonesDeadZones ()
 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::SideSide () 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::DirectionSegmentationDirections () 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 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
 

Detailed Description

Data structure for single silicon layer geometry parameters.

Member Typedef Documentation

◆ LayerZones

@ brief A container of active/dead zones.

Constructor & Destructor Documentation

◆ FitGeoParams() [1/2]

Herd::FitGeoParams::FitGeoParams ( )

Default constructor.

◆ FitGeoParams() [2/2]

Herd::FitGeoParams::FitGeoParams ( RefFrame::Side  dside,
size_t  layerNumber,
RefFrame::Direction  mainSegm 
)

Construct a new FitGeoParams object.

Parameters
dsideThe detector side.
stripMainSegmThe main segmentation direction for strips.

◆ ~FitGeoParams()

Herd::FitGeoParams::~FitGeoParams ( )
overridedefault

Virtual destructor.

Member Function Documentation

◆ ActiveZones()

const FitGeoParams::LayerZones & Herd::FitGeoParams::ActiveZones ( )

Returns the active zones.

Returned active zones are ordered in increasing value of the coordinates.

Returns
A LayerZones object containing the active zones of this layer.

◆ ChannelIDOnMat()

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.

Parameters
relativePositionThe hit position w.r.t. the mat "left" edge.
Returns
The channel ID relative to the mat. If the position is not on any channel, returns defaultValue<unsigned int>="">.

◆ ChannelPositionOnMat()

float Herd::FitGeoParams::ChannelPositionOnMat ( unsigned int  channelIDOnMat) const

Get position of a given channel relative to the mat "left" edge.

Parameters
channelIDThe relative ID of the channel in the mat.
Returns
the channel position w.r.t. the mat "left" edge.

◆ ComputeActiveDeadZones()

void Herd::FitGeoParams::ComputeActiveDeadZones ( )
private

Root-transient.

◆ DeadZones()

const FitGeoParams::LayerZones & Herd::FitGeoParams::DeadZones ( )

Returns the dead zones.

  • Returned dead zones are ordered in increasing value of the coordinates.
Returns
A LayerZones object containing the dead zones of this layer.

◆ ElementID()

unsigned int Herd::FitGeoParams::ElementID ( const Point position) const
overridevirtual

Utility function to get the element ID from a set of coordinates.

Parameters
positionThe coordinates of the point (normal coordinate is ignored).
Returns
The ID of the element containing the point. If the position is not on any element, returns defaultValue<unsigned int>.

Implements Herd::TrackingDetectorGeoParams.

◆ ElementPosition()

Point Herd::FitGeoParams::ElementPosition ( unsigned int  elementID) const
overridevirtual

Get position of a given element.

Parameters
elementDThe unique geometric ID of the element.
Returns
the element position.

Implements Herd::TrackingDetectorGeoParams.

◆ GetSipmAirGap()

float Herd::FitGeoParams::GetSipmAirGap ( ) const
inline

Get gap between two consecutive SiPM.

Returns
the gap.

◆ MatID()

unsigned int Herd::FitGeoParams::MatID ( const Point position) const

Retrieves the volume ID of the mat containing the given point.

Parameters
position
Returns
The volumeID of the mat containing the position. If the position is not on any Mat, returns defaultValue<unsigned int>.

◆ MatIDFromChannelID()

unsigned int Herd::FitGeoParams::MatIDFromChannelID ( unsigned int  channelID) const

Retrieves the volume ID of the mat containing the sipm with the given channelID.

Parameters
channelID
Returns
The volumeID of the mat containing the channel.

◆ MatPosition()

Point Herd::FitGeoParams::MatPosition ( unsigned int  matID) const
inline

Get position of a given mat.

Parameters
matIDThe unique ID of the mat.
Returns
the mat position.

◆ MatSize()

const AxesArray<float>& Herd::FitGeoParams::MatSize ( ) const
inline

Get the dimensions of the single mat.

Returns
mat dimensions

◆ NChannelsPerMat()

int Herd::FitGeoParams::NChannelsPerMat ( ) const
inline

Get the number of channels that are in a mat.

Returns
number of channels in a mat

◆ NChannelsPerSipm()

int Herd::FitGeoParams::NChannelsPerSipm ( ) const
inline

Get the number of channels in a single SiPM.

Returns
number of channel in a SiPM

◆ NMats()

const AxesArray<int>& Herd::FitGeoParams::NMats ( ) const
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.

Returns
ladder orientation in the plane

◆ NSipmPerMat()

unsigned int Herd::FitGeoParams::NSipmPerMat ( ) const
inline

Get the number of sipms that are attached to a mat.

Returns
number of sipms in a mat

◆ NTotElements()

unsigned int Herd::FitGeoParams::NTotElements ( ) const
inline

Return the total number of FIT mats.

Returns
the total number of FIT mats.

◆ SetMatPosition()

void Herd::FitGeoParams::SetMatPosition ( size_t  matID,
Point  position 
)
inline

Set the mat position for a given mat.

See the wiki page for the mat numbering convention.

Parameters
matID
position

◆ SetMatSize()

void Herd::FitGeoParams::SetMatSize ( const AxesArray< float > &  sizes)

Set the mat sizes along the three axes.

Parameters
sizesthe size of the mat along each axis [cm].

◆ SetNMats()

void Herd::FitGeoParams::SetNMats ( AxesArray< int >  nMats)

Set the number of mats along each axis.

The value for the orthogonal axis must be 1.

Parameters
nLaddersThe number of mats along each direction
Exceptions
std::runtime_errorif the number of mats along the orthogonal direction is not 1.

◆ SetNSipmPerMat()

void Herd::FitGeoParams::SetNSipmPerMat ( int  nSipms)
inline

Set the number of sipms per mat.

Must be called after SetSideAndMainSegmDir and SetMatSize. This method computes and sets also the AirGap.

Parameters
nSipmsThe number of sipms per mat.
Exceptions
std::runtime_errorif this method is called before SetSideAndMainSegmDir or SetMatSize.
See also
#FirstSipmPosition

◆ SetSideAndMainSegmDir()

void Herd::FitGeoParams::SetSideAndMainSegmDir ( RefFrame::Side  dside,
RefFrame::Direction  segmDir 
)
overridevirtual

Set the detector side and the main segmentation direction for fibers.

Parameters
dsideThe side.
segmDirthe main segmentation direction for fibers.

Implements Herd::TrackingDetectorGeoParams.

◆ SipmIDFromChannelID()

unsigned int Herd::FitGeoParams::SipmIDFromChannelID ( unsigned int  channelID) const

Retrieves the ID of the SiPM containing the channel with the given channelID.

Parameters
channelID
Returns
The ID of the SiPM containing the channel.

◆ SipmIDOnMat()

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.

Parameters
relativePositionThe hit position w.r.t. the mat "left" edge.
Returns
The sipm ID relative to the mat. If the position is not on any SiPM, returns defaultValue<unsigned int>.

◆ SipmPosition()

Point Herd::FitGeoParams::SipmPosition ( unsigned int  sipmID) const

Get position of a given SiPM.

Parameters
sipmIDThe unique ID of the SiPM.
Returns
the SiPM position (middle of the SiPM).

Member Data Documentation

◆ _activeZones

LayerZones Herd::FitGeoParams::_activeZones
private

Position of all the mats.

◆ _deadZones

LayerZones Herd::FitGeoParams::_deadZones
private

◆ _matPos

std::vector<Point> Herd::FitGeoParams::_matPos
private

Dimensions of a mat along the three axes.

◆ _matSize

AxesArray<float> Herd::FitGeoParams::_matSize
private

Number of mats along the three axes.

◆ _nMats

AxesArray<int> Herd::FitGeoParams::_nMats
private

Number of SiPMs in each mat.

◆ _nSipmsPerMat

unsigned int Herd::FitGeoParams::_nSipmsPerMat
private

◆ _sipmAirGap

float Herd::FitGeoParams::_sipmAirGap = 0.009
protected

◆ _sipmChannelPitch

float Herd::FitGeoParams::_sipmChannelPitch = 0.025
protected

Dead region at the border of a SiPM.

◆ _sipmDeadRegion

float Herd::FitGeoParams::_sipmDeadRegion = 0.016
protected

Gap between two dies in a SiPM.

◆ _sipmDieChannels

size_t Herd::FitGeoParams::_sipmDieChannels = 64
protected

Pitch of a single SiPM channel (250um)

◆ _sipmDieGap

float Herd::FitGeoParams::_sipmDieGap = 0.022
protected

Gap between two consecutive SiPMs.

◆ _sipmNDies

size_t Herd::FitGeoParams::_sipmNDies = 2
protected

Number of channels in a single die.

◆ _sipmRelativePositions

std::vector<std::pair<float, float> > Herd::FitGeoParams::_sipmRelativePositions
protected

Width of the SiPM sensor [cm].

◆ _sipmWidth

float Herd::FitGeoParams::_sipmWidth
protected
Initial value:

Number of dies in a SiPM.


The documentation for this class was generated from the following files: