12#ifndef ALICEO2_TOF_GEO_H
13#define ALICEO2_TOF_GEO_H
71 static Int_t
getIndex(
const Int_t* detId);
82 static Float_t getGeoHeights(Int_t isector, Int_t iplate, Int_t istrip) {
return mGeoHeights[isector][iplate][istrip]; }
83 static Float_t getGeoX(Int_t isector, Int_t iplate, Int_t istrip) {
return mGeoX[isector][iplate][istrip]; }
84 static Float_t getGeoDistances(Int_t isector, Int_t iplate, Int_t istrip) {
return mGeoDistances[isector][iplate][istrip]; }
181 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
182 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
183 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
184 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2};
187 327680, 327681, 327682, 327683, 327684, 327685, 327686, 327687, 327688, 327689, 327690, 327691, 327692, 327693, 327694, 327695, 327696, 327697,
188 327698, 327699, 327700, 327701, 327702, 327703, 327704, 327705, 327706, 327707, 327708, 327709, 327710, 327711, 327712, 327713, 327714, 327715,
189 327716, 327717, 327718, 327719, 327720, 327721, 327722, 327723, 327724, 327725, 327726, 327727, 327728, 327729, 327730, 327731, 327732, 327733,
190 327734, 327735, 327736, 327737, 327738, 327739, 327740, 327741, 327742, 327743, 327744, 327745, 327746, 327747, 327748, 327749, 327750, 327751};
192 static constexpr Int_t
FLP[2] = {178, 179};
193 static constexpr Int_t
CRUFROMFLP[2][2] = {{227, 228}, {225, 226}};
195 static constexpr Int_t
CRUID[4] = {225, 226, 227, 228};
198 11, 10, 0, 1, 9, 8, 2, 3, 7, 6, 4, 5, 5, 4, 6, 7, 3, 2,
199 3, 9, 11, 10, 0, 1, 9, 8, 2, 3, 7, 6, 4, 5, 5, 4, 6, 7,
200 11, 10, 0, 1, 9, 8, 2, 3, 7, 6, 4, 5, 5, 4, 6, 7, 3, 2,
201 8, 9, 11, 10, 0, 1, 9, 8, 2, 3, 7, 6, 4, 5, 5, 4, 6, 7};
204 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
205 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1,
206 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
207 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1};
210 {43.99, 43.20, 42.40, 41.59, 40.77, 39.94, 39.11, 38.25, 37.40, 36.53,
211 35.65, 34.76, 33.87, 32.96, 32.05, 31.13, 30.19, 29.24, 12.33, 0.00},
212 {27.26, 26.28, 25.30, 24.31, 23.31, 22.31, 21.30, 20.29, 19.26, 18.24,
213 17.20, 16.16, 15.11, 14.05, 13.00, 11.93, 10.87, 9.80, 8.74, 0.00},
214 {0.00, 6.30, 5.31, 4.25, 3.19, 2.12, 1.06, 0.00, -1.06, -2.12,
215 -3.19, -4.25, -5.31, -6.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00},
216 {-8.74, -9.80, -10.87, -11.93, -13.00, -14.05, -15.11, -16.16, -17.20, -18.24,
217 -19.26, -20.29, -21.30, -22.31, -23.31, -24.31, -25.30, -26.28, -27.26, 0.00},
218 {-12.33, -29.24, -30.19, -31.13, -32.05, -32.96, -33.87, -34.76, -35.65, -36.53,
219 -37.40, -38.25, -39.11, -39.94, -40.77, -41.59, -42.40, -43.20, -43.99, 0.00}};
222 {-8.405, -7.725, -8.405, -7.765, -8.285, -7.745, -7.865, -7.905, -7.895, -7.885,
223 -7.705, -7.395, -7.525, -7.645, -7.835, -7.965, -8.365, -9.385, -3.255, 0.000},
224 {-7.905, -8.235, -8.605, -9.045, -10.205, -3.975, -5.915, -7.765, -10.205, -3.635,
225 -5.885, -8.005, -10.505, -4.395, -7.325, -10.235, -4.655, -7.495, -10.515, 0.000},
226 {-2.705, -10.645, -5.165, -10.095, -4.995, -10.085, -4.835, -10.385, -4.835, -10.085,
227 -4.995, -10.095, -5.165, -10.645, -2.705, 0.000, 0.000, 0.000, 0.000, 0.000},
228 {-10.515, -7.495, -4.655, -10.235, -7.325, -4.395, -10.505, -8.005, -5.885, -3.635,
229 -10.205, -7.765, -5.915, -3.975, -10.205, -9.045, -8.605, -8.235, -7.905, 0.000},
230 {-3.255, -9.385, -8.365, -7.965, -7.835, -7.645, -7.525, -7.395, -7.705, -7.885,
231 -7.895, -7.905, -7.865, -7.745, -8.285, -7.765, -8.405, -7.725, -8.405, 0.000}};
234 {364.14, 354.88, 344.49, 335.31, 325.44, 316.51, 307.11, 297.91, 288.84, 279.89,
235 271.20, 262.62, 253.84, 245.20, 236.56, 228.06, 219.46, 210.63, 206.09, 0.00},
236 {194.57, 186.38, 178.25, 170.13, 161.78, 156.62, 148.10, 139.72, 131.23, 125.87,
237 117.61, 109.44, 101.29, 95.46, 87.36, 79.37, 73.17, 65.33, 57.71, 0.00},
238 {49.28, 41.35, 35.37, 27.91, 21.20, 13.94, 7.06, 0.00, -7.06, -13.94,
239 -21.20, -27.91, -35.37, -41.35, -49.28, 0.00, 0.00, 0.00, 0.00, 0.00},
240 {-57.71, -65.33, -73.17, -79.37, -87.36, -95.46, -101.29, -109.44, -117.61, -125.87,
241 -131.23, -139.72, -148.10, -156.62, -161.78, -170.13, -178.25, -186.38, -194.57, 0.00},
242 {-206.09, -210.63, -219.46, -228.06, -236.56, -245.20, -253.84, -262.62, -271.20, -279.89,
243 -288.84, -297.91, -307.11, -316.51, -325.44, -335.31, -344.49, -354.88, -364.14, 0.00}};
248 {kTRUE, kFALSE, kFALSE, kFALSE, kFALSE, kFALSE, kFALSE, kFALSE, kTRUE,
249 kTRUE, kTRUE, kFALSE, kFALSE, kFALSE, kFALSE, kFALSE, kTRUE, kFALSE};
339 static Float_t getCableLength(Int_t icrate, Int_t islot, Int_t ichain, Int_t itdc) {
return CABLELENGTH[icrate][islot - 3][ichain][itdc / 3]; }
350 static Int_t
getECHFromIndexes(
int crate,
int trm,
int chain,
int tdc,
int chan) {
return (crate << 12) + ((trm - 3) << 8) + (
chain << 7) + (tdc << 3) + chan; }
370 static void fromGlobalToSector(
Float_t*
pos, Int_t isector);
371 static Int_t fromPlateToStrip(
Float_t*
pos, Int_t iplate, Int_t isector);
373 static Bool_t mToBeInit;
374 static Bool_t mToBeInitIndexing;
383 static std::array<std::vector<float>, 5> mDistances[
NSECTORS];
386 static constexpr Float_t CABLEPROPAGATIONDELAY = 0.0513;
388 static const Int_t CHAN_TO_ELCHAN[
NCHANNELS];
Header to collect LHC related constants.
TOF geo parameters (only statics)
static constexpr Float_t RMAX
static std::string getVolumePath(const Int_t *ind)
static constexpr Float_t ZPAD
static Float_t getCableLength(Int_t icrate, Int_t islot, Int_t ichain, Int_t itdc)
static void getStripAndModule(Int_t iStripPerSM, Int_t &iplate, Int_t &istrip)
static constexpr Float_t PHISECINV
static constexpr Float_t RMIN2
static constexpr Float_t HFILIY
static constexpr Float_t SIGMAFORTAIL12
static constexpr Float_t MODULECOVERTHICKNESS
static Float_t getCableTimeShift(Int_t icrate, Int_t islot, Int_t ichain, Int_t itdc)
static Float_t getGeoDistances(Int_t isector, Int_t iplate, Int_t istrip)
static constexpr Float_t DEADTIME
static Int_t getTDCChFromECH(int ech)
static constexpr Float_t ROOF2PARAMETERS[3]
static constexpr Float_t XPAD
static constexpr Float_t LENGTHEXINMODBORDER
static constexpr Int_t NSECTORS
static constexpr Float_t XHALFSTRIP
static constexpr Double_t BC_TIME_INPS
static constexpr Float_t SLEWTOTMAX
static constexpr Double_t BC_TIME_INPS_INV
static constexpr Float_t HCPCBY
static constexpr Float_t BARS[3]
static constexpr Float_t HGLASSY
static constexpr Int_t CRUFROMLINK[kNCrate]
static Float_t getAngles(Int_t iplate, Int_t istrip)
static constexpr Int_t NPADZ
static constexpr Float_t HHONY
static constexpr Float_t DISTANCES[NPLATES][NMAXNSTRIP]
static constexpr Float_t WGLFZ
static constexpr Double_t READOUTWINDOW
static Int_t getIndexFromEquipment(Int_t icrate, Int_t islot, Int_t ichain, Int_t itdc)
static constexpr Float_t NTOTBIN_PER_NS
static void rotateToSector(Float_t *xyz, Int_t isector)
static constexpr Float_t HPCBY
static constexpr Int_t CRULINK[kNCrate]
static Int_t getTDCFromECH(int ech)
static constexpr Float_t BUNCHCROSSINGBIN
static constexpr Float_t CBLH2
static constexpr Int_t RATIO_TOT_TDC_BIN
static constexpr Float_t WRGLZ
static constexpr Float_t HRGLY
static constexpr Int_t MATCHINGWINDOW_IN_BC
static Int_t getStripNumberPerSM(Int_t iplate, Int_t istrip)
static constexpr Int_t NSTRIPXSECTOR
static constexpr Float_t NPADS_INV_INT
static constexpr Float_t HEIGHTS[NPLATES][NMAXNSTRIP]
static constexpr Float_t ROOF1PARAMETERS[3]
static void translate(Float_t *xyz, Float_t translationVector[3])
static constexpr Float_t HSENSMY
static constexpr Float_t INTERCENTRMODBORDER1
static constexpr Float_t BAR2[3]
static constexpr Int_t NPADS
static constexpr int N_ELECTRONIC_CHANNELS
static Float_t getHeights(Int_t iplate, Int_t istrip)
static constexpr Float_t ZLENC
static constexpr Float_t DEADTIMETDC
Single channel TDC dead time (ps)
static constexpr double BC_IN_WINDOW_INV
static constexpr Float_t TOTBIN
static void getPosInPadCoord(int ch, float *pos)
static constexpr Int_t NSTRIPB
static constexpr Int_t NSTRIPC
static Int_t getTRMFromECH(int ech)
static constexpr Float_t NTDCBIN_PER_PS
number of TDC bins in 1 ns
static Int_t getCRUid(int link)
static constexpr Double_t READOUTWINDOW_INV
static constexpr Int_t RAW_PAGE_MAX_SIZE
static constexpr Int_t LATENCY_ADJUSTEMENT_IN_BC
static Int_t getCRU(int link)
static constexpr Float_t AL1PARAMETERS[3]
static constexpr Float_t FEAPARAMETERS[3]
static void getPosInStripCoord(int ch, float *pos)
static constexpr Float_t XTOF
static constexpr Int_t NSTRIPA
static Float_t getGeoX(Int_t isector, Int_t iplate, Int_t istrip)
static constexpr Float_t CBLH1
static Int_t getCRUid(int iflp, int icru)
static constexpr Float_t ZLENA
static Int_t getCrateFromECH(int ech)
static Float_t getGeoHeights(Int_t isector, Int_t iplate, Int_t istrip)
static constexpr Float_t BAR1[3]
static constexpr Int_t LATENCYWINDOW_TOF
static Int_t getFLP(int iflp)
static void getPos(Int_t *det, Float_t *pos)
static constexpr Float_t BETWEENLANDMASK
static constexpr Int_t LATENCYWINDOW_IN_BC
static constexpr Float_t MAXHZTOF
static constexpr Double_t BC_TIME
static constexpr Double_t BC_TIME_INV
static void antiRotateToSector(Float_t *xyz, Int_t isector)
static constexpr Int_t NPADSXSECTOR
static constexpr Float_t AL2PARAMETERS[3]
static Int_t getCHFromECH(int echan)
static Int_t getCableTimeShiftBin(Int_t icrate, Int_t islot, Int_t ichain, Int_t itdc)
static constexpr Float_t NPADX_INV_INT
static constexpr Float_t WPCBZ1
static void rotate(Float_t *xyz, Double_t rotationAngles[6])
static constexpr Int_t READOUTWINDOW_IN_BC
static Int_t getChainFromECH(int ech)
static constexpr Float_t LENGTHINCEMODBORDERD
static constexpr Float_t INTERCENTRMODBORDER2
static constexpr Float_t MODULEWALLTHICKNESS
static constexpr Double_t WINDOWOVERLAP
static constexpr Float_t FEAWIDTH1
static constexpr Int_t CRUENDPOINT[kNCrate]
static void getVolumeIndices(Int_t index, Int_t *detId)
static constexpr Float_t RMIN
static constexpr Float_t BARS2[3]
static constexpr Int_t LATENCY_ADJ_LHC_IN_BC
static constexpr Float_t TOTBIN_NS
static constexpr Int_t FLPFROMCRU[4]
static constexpr int NCHANNELS
static constexpr Float_t SAWTHICKNESS
static Int_t getIndex(const Int_t *detId)
static constexpr Float_t SLEWTOTMIN
static Int_t getFEEid(int link)
static constexpr Int_t NPLATES
static constexpr Float_t ZLENB
static constexpr Float_t TDCBIN
TDC bin width [ps].
static constexpr Float_t WPCBZ2
static void getDetID(Float_t *pos, Int_t *det)
static constexpr int BC_IN_WINDOW
static Float_t getDistances(Int_t iplate, Int_t istrip)
static void antiRotate(Float_t *xyz, Double_t rotationAngles[6])
static Int_t getFLPid(int link)
static constexpr Float_t BARS1[3]
static void getPadDxDyDz(const Float_t *pos, Int_t *det, Float_t *DeltaPos, int sector=-1)
static void getPosInSectorCoord(int ch, float *pos)
static constexpr int BC_IN_ORBIT
static constexpr Float_t NSTRIPXSECTOR_INV_INT
static constexpr Int_t OVERLAP_IN_BC
static constexpr Int_t NMAXNSTRIP
static constexpr Int_t CRUFROMFLP[2][2]
static constexpr Float_t WHONZ
static constexpr Float_t EXTERINTERMODBORDER1
static Int_t getCRUendpoint(int link)
static Int_t getCONETlink(int link)
static constexpr Int_t NPADX
static Float_t getPropagationDelay()
static constexpr Float_t FEAWIDTH2
static Int_t getECHFromCH(int chan)
static constexpr Int_t FEEID[kNCrate]
static constexpr Float_t STRIPLENGTH
static constexpr Float_t BAR[3]
static constexpr Int_t CRUID[4]
static constexpr Float_t LENGTHINCEMODBORDERU
static Int_t getECHFromIndexes(int crate, int trm, int chain, int tdc, int chan)
static void antiRotateToStrip(Float_t *xyz, Int_t iplate, Int_t istrip, Int_t isector)
static constexpr Float_t EXTERINTERMODBORDER2
static constexpr Int_t FLP[2]
static constexpr Float_t WCPCBZ
static constexpr Float_t RMAX2
static Int_t getCRUlink(int link)
static constexpr Float_t PHISEC
static constexpr int NWINDOW_IN_ORBIT
static constexpr Float_t SIGMAFORTAIL1
static void InitIndices()
static constexpr Float_t CBLW
static constexpr Float_t AL3PARAMETERS[3]
static void rotateToStrip(Float_t *xyz, Int_t iplate, Int_t istrip, Int_t isector)
static constexpr Bool_t FEAWITHMASKS[NSECTORS]
static constexpr Double_t MATCHINGWINDOW
static constexpr Float_t ANGLES[NPLATES][NMAXNSTRIP]
static constexpr Double_t LATENCYWINDOW
static constexpr Int_t NSTRIPS
GLdouble GLdouble GLdouble z
constexpr int LHCMaxBunches
constexpr double LHCBunchSpacingNS
constexpr double LHCOrbitNS
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...