Project
Loading...
Searching...
No Matches
o2::trk::SegmentationChip Class Reference

#include <SegmentationChip.h>

Public Member Functions

constexpr SegmentationChip ()=default
 
 ~SegmentationChip ()=default
 
constexpr SegmentationChip (const SegmentationChip &)=default
 
constexpr SegmentationChip (SegmentationChip &&)=delete
 
constexpr SegmentationChipoperator= (const SegmentationChip &)=default
 
constexpr SegmentationChipoperator= (SegmentationChip &&)=delete
 

Static Public Member Functions

static bool localToDetector (float xRow, float zCol, int &iRow, int &iCol, int subDetID, int layer, int disk) noexcept
 
static void localToDetectorUnchecked (float xRow, float zCol, int &iRow, int &iCol, int subDetID, int layer, int disk) noexcept
 same but w/o check for row/column range
 
static constexpr bool isValidGlob (float x, float z, int subDetID, int layer) noexcept
 
static constexpr bool isValidDet (float row, float col, int subDetID, int layer) noexcept
 
static constexpr bool detectorToLocal (int iRow, int iCol, float &xRow, float &zCol, int subDetID, int layer, int disk) noexcept
 
static void detectorToLocalUnchecked (int row, int col, float &xRow, float &zCol, int subDetID, int layer, int disk) noexcept
 
static math_utils::Vector2D< float > curvedToFlat (const int layer, const float xCurved, const float yCurved) noexcept
 
static constexpr math_utils::Vector2D< float > flatToCurved (int layer, float xFlat, float yFlat) noexcept
 
static const void Print () noexcept
 Print segmentation info.
 

Static Public Attributes

static constexpr float PitchColVD {constants::VD::petal::layer::pitchZ}
 
static constexpr float PitchRowVD {constants::VD::petal::layer::pitchX}
 
static constexpr float PitchColMLOT {constants::moduleMLOT::chip::pitchZ}
 
static constexpr float PitchRowMLOT {constants::moduleMLOT::chip::pitchX}
 
static constexpr float SensorLayerThicknessVD = {constants::VD::petal::layer::totalThickness}
 
static constexpr float SensorLayerThicknessML = {constants::moduleMLOT::chip::totalThickness}
 
static constexpr float SensorLayerThicknessOT = {constants::moduleMLOT::chip::totalThickness}
 
static constexpr float SiliconThicknessVD = constants::VD::silicon::thickness
 
static constexpr float SiliconThicknessMLOT = constants::moduleMLOT::silicon::thickness
 
static constexpr std::array< double, constants::VD::petal::nLayersradiiVD = constants::VD::petal::layer::radii
 

Detailed Description

Segmentation and response for TRK chips in ALICE3 upgrade This is a work-in-progress code derived from the ITS2 and ITS3 segmentations.

Definition at line 29 of file SegmentationChip.h.

Constructor & Destructor Documentation

◆ SegmentationChip() [1/3]

constexpr o2::trk::SegmentationChip::SegmentationChip ( )
constexprdefault

◆ ~SegmentationChip()

o2::trk::SegmentationChip::~SegmentationChip ( )
default

◆ SegmentationChip() [2/3]

constexpr o2::trk::SegmentationChip::SegmentationChip ( const SegmentationChip )
constexprdefault

◆ SegmentationChip() [3/3]

constexpr o2::trk::SegmentationChip::SegmentationChip ( SegmentationChip &&  )
constexprdelete

Member Function Documentation

◆ curvedToFlat()

static math_utils::Vector2D< float > o2::trk::SegmentationChip::curvedToFlat ( const int  layer,
const float  xCurved,
const float  yCurved 
)
inlinestaticnoexcept

Transformation from the curved surface to a flat surface. Additionally a shift in the flat coordinates must be applied because the center of the TGeoShap when projected will be higher than the physical thickness of the chip. Thus we shift the projected center down by this difference to align the coordinate systems.

Parameters
layerVD layer number
xCurvedDetector local curved coordinate x in cm with respect to the center of the sensitive volume.
yCurvedDetector local curved coordinate y in cm with respect to the center of the sensitive volume.
Returns
math_utils::Vector2D<float>: x and y represent the detector local flat coordinates x and y

this is equal to the circumference segment covered between y=0 and the phi angle

Definition at line 231 of file SegmentationChip.h.

◆ detectorToLocal()

static constexpr bool o2::trk::SegmentationChip::detectorToLocal ( int  iRow,
int  iCol,
float &  xRow,
float &  zCol,
int  subDetID,
int  layer,
int  disk 
)
inlinestaticconstexprnoexcept

Transformation from Detector cell coordinates to Geant detector centered local coordinates (cm)

Parameters
intiRow Detector x cell coordinate.
intiCol Detector z cell coordinate.
floatx Detector local coordinate x in cm with respect to the center of the sensitive volume.
floatz Detector local coordinate z in cm with respect to the center of the sensitive volume. If iRow and or iCol is outside of the segmentation range a value of -0.5*Dx() or -0.5*Dz() is returned.
intsubDetID Sub-detector ID (0 for VD, 1 for ML/OT)
intlayer Layer number (0 to 2 for VD, 0 to 7 for ML/OT)
intdisk Disk number (0 to 5 for VD)

Definition at line 185 of file SegmentationChip.h.

◆ detectorToLocalUnchecked()

static void o2::trk::SegmentationChip::detectorToLocalUnchecked ( int  row,
int  col,
float &  xRow,
float &  zCol,
int  subDetID,
int  layer,
int  disk 
)
inlinestaticnoexcept

xRow = half chip width - iRow(center) * pitch zCol = iCol * pitch - half chip lenght

Definition at line 203 of file SegmentationChip.h.

◆ flatToCurved()

static constexpr math_utils::Vector2D< float > o2::trk::SegmentationChip::flatToCurved ( int  layer,
float  xFlat,
float  yFlat 
)
inlinestaticconstexprnoexcept

Transformation from the flat surface to a curved surface It works only if the detector is not rototraslated.

Parameters
layerVD layer number
xFlatDetector local flat coordinate x in cm with respect to the center of the sensitive volume.
yFlatDetector local flat coordinate y in cm with respect to the center of the sensitive volume.
Returns
math_utils::Vector2D<float>: x and y represent the detector local curved coordinates x and y

Definition at line 253 of file SegmentationChip.h.

◆ isValidDet()

static constexpr bool o2::trk::SegmentationChip::isValidDet ( float  row,
float  col,
int  subDetID,
int  layer 
)
inlinestaticconstexprnoexcept

Definition at line 154 of file SegmentationChip.h.

◆ isValidGlob()

static constexpr bool o2::trk::SegmentationChip::isValidGlob ( float  x,
float  z,
int  subDetID,
int  layer 
)
inlinestaticconstexprnoexcept

Definition at line 136 of file SegmentationChip.h.

◆ localToDetector()

static bool o2::trk::SegmentationChip::localToDetector ( float  xRow,
float  zCol,
int iRow,
int iCol,
int  subDetID,
int  layer,
int  disk 
)
inlinestaticnoexcept

Transformation from Geant detector centered local coordinates (cm) to Pixel cell numbers iRow and iCol. Returns kTRUE if point x,z is inside sensitive volume, kFALSE otherwise. A value of -1 for iRow or iCol indicates that this point is outside of the detector segmentation as defined.

Parameters
floatx Detector local coordinate x in cm with respect to the center of the sensitive volume.
floatz Detector local coordinate z in cm with respect to the center of the sensitive volulme.
intiRow Detector x cell coordinate. Has the range 0 <= iRow < mNumberOfRows
intiCol Detector z cell coordinate. Has the range 0 <= iCol < mNumberOfColumns
intsubDetID Sub-detector ID (0 for VD, 1 for ML/OT)
intlayer Layer number (0 to 2 for VD, 0 to 7 for ML/OT)
intdisk Disk number (0 to 5 for VD)

Definition at line 89 of file SegmentationChip.h.

◆ localToDetectorUnchecked()

static void o2::trk::SegmentationChip::localToDetectorUnchecked ( float  xRow,
float  zCol,
int iRow,
int iCol,
int  subDetID,
int  layer,
int  disk 
)
inlinestaticnoexcept

same but w/o check for row/column range

Definition at line 107 of file SegmentationChip.h.

◆ operator=() [1/2]

constexpr SegmentationChip & o2::trk::SegmentationChip::operator= ( const SegmentationChip )
constexprdefault

◆ operator=() [2/2]

constexpr SegmentationChip & o2::trk::SegmentationChip::operator= ( SegmentationChip &&  )
constexprdelete

◆ Print()

static const void o2::trk::SegmentationChip::Print ( )
inlinestaticnoexcept

Print segmentation info.

Definition at line 266 of file SegmentationChip.h.

Member Data Documentation

◆ PitchColMLOT

constexpr float o2::trk::SegmentationChip::PitchColMLOT {constants::moduleMLOT::chip::pitchZ}
staticconstexpr

Definition at line 63 of file SegmentationChip.h.

◆ PitchColVD

constexpr float o2::trk::SegmentationChip::PitchColVD {constants::VD::petal::layer::pitchZ}
staticconstexpr

Definition at line 60 of file SegmentationChip.h.

◆ PitchRowMLOT

constexpr float o2::trk::SegmentationChip::PitchRowMLOT {constants::moduleMLOT::chip::pitchX}
staticconstexpr

Definition at line 64 of file SegmentationChip.h.

◆ PitchRowVD

constexpr float o2::trk::SegmentationChip::PitchRowVD {constants::VD::petal::layer::pitchX}
staticconstexpr

Definition at line 61 of file SegmentationChip.h.

◆ radiiVD

constexpr std::array<double, constants::VD::petal::nLayers> o2::trk::SegmentationChip::radiiVD = constants::VD::petal::layer::radii
staticconstexpr

Definition at line 73 of file SegmentationChip.h.

◆ SensorLayerThicknessML

constexpr float o2::trk::SegmentationChip::SensorLayerThicknessML = {constants::moduleMLOT::chip::totalThickness}
staticconstexpr

Definition at line 67 of file SegmentationChip.h.

◆ SensorLayerThicknessOT

constexpr float o2::trk::SegmentationChip::SensorLayerThicknessOT = {constants::moduleMLOT::chip::totalThickness}
staticconstexpr

Definition at line 68 of file SegmentationChip.h.

◆ SensorLayerThicknessVD

constexpr float o2::trk::SegmentationChip::SensorLayerThicknessVD = {constants::VD::petal::layer::totalThickness}
staticconstexpr

Definition at line 66 of file SegmentationChip.h.

◆ SiliconThicknessMLOT

constexpr float o2::trk::SegmentationChip::SiliconThicknessMLOT = constants::moduleMLOT::silicon::thickness
staticconstexpr

Definition at line 71 of file SegmentationChip.h.

◆ SiliconThicknessVD

constexpr float o2::trk::SegmentationChip::SiliconThicknessVD = constants::VD::silicon::thickness
staticconstexpr

Definition at line 70 of file SegmentationChip.h.


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