Go to the documentation of this file.
10 #ifndef HERD_FITGEOPARAMS_H_
11 #define HERD_FITGEOPARAMS_H_
181 [[nodiscard]] std::optional<unsigned int>
MatID(
const Point &position)
const;
203 [[nodiscard]] std::optional<unsigned int>
ElementID(
const Point &position)
const override;
215 [[nodiscard]] std::optional<unsigned int>
SipmIDOnMat(
float relativePosition)
const;
227 [[nodiscard]] std::optional<unsigned int>
ChannelIDOnMat(
float relativePosition)
const;
Point MatPosition(unsigned int matID) const
Get position of a given mat.
Definition: FitGeoParams.h:174
float _min
Definition: FitGeoParams.h:306
unsigned int _nSipmsPerMat
Definition: FitGeoParams.h:329
float _sipmDeadRegion
Gap between two dies in a SiPM.
Definition: FitGeoParams.h:344
Base data structure for single tracking detector layer geometry parameters.
Definition: TrackingDetectorGeoParams.h:31
void SetNSipmPerMat(int nSipms)
Set the number of sipms per mat.
Definition: FitGeoParams.h:250
A class describing a vector in 3D space.
Definition: Vec3D.h:33
float _sipmAirGap
Definition: FitGeoParams.h:342
std::vector< LayerZone > LayerZones
Definition: FitGeoParams.h:310
float SipmAirGap() const
Get gap between two consecutive SiPM.
Definition: FitGeoParams.h:142
unsigned int NSipmPerMat() const
Get the number of sipms that are attached to a mat.
Definition: FitGeoParams.h:98
Parallelepiped _boundingBox
Flag to signal Bounding box must be recomputed.
Definition: FitGeoParams.h:334
unsigned int SipmIDFromChannelID(unsigned int channelID) const
Retrieves the ID of the SiPM containing the channel with the given channelID.
Definition: FitGeoParams.cpp:36
size_t _sipmNDies
Number of channels in a single die.
Definition: FitGeoParams.h:347
float _sipmDieGap
Gap between two consecutive SiPMs.
Definition: FitGeoParams.h:343
int NChannelsPerMat() const
Get the number of channels that are in a mat.
Definition: FitGeoParams.h:112
float _sipmChannelPitch
Dead region at the border of a SiPM.
Definition: FitGeoParams.h:345
Direction
Aliases for the six axis directions.
Definition: RefFrame.h:55
const LayerZones & ActiveZones()
Returns the active zones.
Definition: FitGeoParams.cpp:334
float ChannelPositionOnMat(unsigned int channelIDOnMat) const
Get position of a given channel relative to the mat "left" edge.
Definition: FitGeoParams.cpp:191
Side
Aliases for the five sides.
Definition: RefFrame.h:111
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
bool _bbIsValid
Position of all the mats.
Definition: FitGeoParams.h:333
std::optional< unsigned int > ChannelIDOnMat(float relativePosition) const
Returns the channel ID on mat.
Definition: FitGeoParams.cpp:207
LayerZones _activeZones
Bounding box for this layer, to use for quick intersection checks.
Definition: FitGeoParams.h:336
void SetMatSize(const AxesArray< float > &sizes)
Set the mat sizes along the three axes.
Definition: FitGeoParams.cpp:38
std::vector< Point > _matPos
Dimensions of a mat along the three axes.
Definition: FitGeoParams.h:332
std::optional< unsigned int > MatID(const Point &position) const
Retrieves the volume ID of the mat containing the given point.
Definition: FitGeoParams.cpp:155
std::optional< unsigned int > SipmIDOnMat(float relativePosition) const
Returns the sipm ID on mat.
Definition: FitGeoParams.cpp:142
float MinSegm() const
Getter for minimum coordinate.
Definition: FitGeoParams.h:297
std::vector< std::pair< float, float > > _sipmRelativePositions
Width of the SiPM sensor [cm].
Definition: FitGeoParams.h:350
int NChannelsPerSipm() const
Get the number of channels in a single SiPM.
Definition: FitGeoParams.h:105
Data structure for single silicon layer geometry parameters.
Definition: FitGeoParams.h:66
void SetSideAndMainSegmDir(RefFrame::Side dside, RefFrame::Direction segmDir) override
Set the detector side and the main segmentation direction for fibers.
Definition: FitGeoParams.cpp:250
float _max
Definition: FitGeoParams.h:306
size_t _sipmDieChannels
Pitch of a single SiPM channel (250um)
Definition: FitGeoParams.h:346
AxesArray< int > _nMats
Number of SiPMs in each mat.
Definition: FitGeoParams.h:330
unsigned int NTotElements() const
Return the total number of FIT mats.
Definition: FitGeoParams.h:126
void SetNMats(AxesArray< int > nMats)
Set the number of mats along each axis.
Definition: FitGeoParams.cpp:65
A data structure for describing an active/dead zone of the FIT layer.
Definition: FitGeoParams.h:284
Point SipmPosition(unsigned int sipmID) const
Get position of a given SiPM.
Definition: FitGeoParams.cpp:128
float _sipmWidth
Number of dies in a SiPM.
Definition: FitGeoParams.h:348
unsigned int MatIDFromChannelID(unsigned int channelID) const
Retrieves the volume ID of the mat containing the sipm with the given channelID.
Definition: FitGeoParams.cpp:34
~FitGeoParams() override=default
Virtual destructor
Parallelepiped ElementShape(size_t volID) const
Utility function to get the shape in space of a particular mat.
Definition: FitGeoParams.cpp:107
void SetMatPosition(size_t matID, Point position)
Set the mat position for a given mat.
Definition: FitGeoParams.cpp:60
Point ElementPosition(unsigned int elementID) const override
Get position of a given element.
Definition: FitGeoParams.cpp:86
const AxesArray< float > & MatSize() const
Get the dimensions of the single mat.
Definition: FitGeoParams.h:135
void ComputeActiveDeadZones()
Definition: FitGeoParams.cpp:349
const LayerZones & DeadZones()
Returns the dead zones.
Definition: FitGeoParams.cpp:342
const AxesArray< int > & NMats() const
Get the number of ladder that make up a layer. This is intended as number of ladders along each direc...
Definition: FitGeoParams.h:120
float MaxSegm() const
Getter for maximum coordinate.
Definition: FitGeoParams.h:303
std::optional< unsigned int > ElementID(const Point &position) const override
Utility function to get the element ID from a set of coordinates.
Definition: FitGeoParams.cpp:171
A parallelepiped in 3D space.
Definition: Parallelepiped.h:25
const Parallelepiped & BoundingBox() const
Get the layer bounding box for quick geometric checks (intersections and such).
Definition: FitGeoParams.cpp:409
AxesArray< float > _matSize
Number of mats along the three axes.
Definition: FitGeoParams.h:331
FitGeoParams()
Default constructor.
Definition: FitGeoParams.cpp:15
LayerZone(float minSegm, float maxSegm)
Constructor.
Definition: FitGeoParams.h:291
void ComputeBoundingBox() const
Root-transient.
Definition: FitGeoParams.cpp:416
LayerZones _deadZones
Definition: FitGeoParams.h:336