12#ifndef ALICEO2_TRK_LAYER_H
13#define ALICEO2_TRK_LAYER_H
16#include <TGeoManager.h>
64 static constexpr float Si_X0 = 9.5f;
93 static constexpr double sDeadzoneWidth = constants::moduleMLOT::chip::passiveEdgeReadOut;
114 TRKMLLayer(
int layerNumber, std::string layerName,
float rInn,
float staggerOffset,
float tiltAngle,
int numberOfStaves,
int numberOfModules,
float thickOrX2X0,
MatBudgetParamMode mode);
118 void createLayer(TGeoVolume* motherVolume)
override;
121 float mStaggerOffset;
124 static constexpr int sFlippedLayerNumber = 3;
127 std::pair<float, float> getBoundingRadii(
double staveWidth)
const override;
136 TRKOTLayer(
int layerNumber, std::string layerName,
float rInn,
float tiltAngle,
int numberOfStaves,
int numberOfModules,
float thickOrX2X0,
MatBudgetParamMode mode);
141 void createLayer(TGeoVolume* motherVolume)
override;
152 std::pair<float, float> getBoundingRadii(
double staveWidth)
const override;
171 void createLayer(TGeoVolume* motherVolume)
override;
174 TGeoVolume* createFPC();
175 TGeoVolume* createColdPlate();
176 TGeoVolume* createCoolingPipe();
177 TGeoVolume* createEndOfStaveCard();
178 TGeoVolume* createSupportRing(
double rMin,
double rMax,
double phi1,
double phi2,
int id);
179 void addConnector(TGeoVolume* moduleVol,
double rMid);
180 void addCapacitors(TGeoVolume* moduleVol,
double rMid);
181 void addBrackets(TGeoVolume* moduleVol,
double rMid);
183 double getRowHalfLength()
const;
184 double getPipeTrim()
const;
186 std::pair<float, float> getBoundingRadii(
double staveWidth)
const override;
ClassDef(TRKCylindricalLayer, 0)
TRKCylindricalLayer()=default
static constexpr float Si_X0
virtual void createLayer(TGeoVolume *motherVolume)
auto getChipThickness() const
virtual TGeoVolume * createSensor()
auto getInnerRadius() const
virtual ~TRKCylindricalLayer()=default
virtual TGeoVolume * createMetalStack()
static constexpr double sSensorThickness
auto getOuterRadius() const
void createLayer(TGeoVolume *motherVolume) override
TGeoVolume * createStave() override
~TRKMLLayer() override=default
TGeoVolume * createModule() override
TRKOTLayerRealistic()=default
TGeoVolume * createChip() override
void createLayer(TGeoVolume *motherVolume) override
TGeoVolume * createHalfStave()
TGeoVolume * createStave() override
~TRKOTLayerRealistic() override=default
TGeoVolume * createHalfStave()
void createLayer(TGeoVolume *motherVolume) override
static constexpr float sGapBetweenOuterTrackerBarrelHalves
TGeoVolume * createStave() override
~TRKOTLayer() override=default
static constexpr double sChipWidth
virtual TGeoVolume * createStave()=0
TGeoVolume * createMetalStack() override
void createLayer(TGeoVolume *motherVolume) override=0
static constexpr float sLogicalVolumeThickness
static constexpr int sHalfNumberOfChips
TGeoVolume * createSensor() override
TRKSegmentedLayer()=default
ClassDefOverride(TRKSegmentedLayer, 0)
virtual TGeoVolume * createModule()
static constexpr double sChipLength
virtual TGeoVolume * createChip()
static constexpr double sDeadzoneWidth
~TRKSegmentedLayer() override=default
static constexpr double sModuleLength
static constexpr double sModuleWidth
TGeoVolume * createDeadzone()
virtual std::pair< float, float > getBoundingRadii(double staveWidth) const
GLuint GLsizei GLsizei * length
constexpr double outerEdgeLongSide
constexpr double thickness
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...