12#ifndef O2_TRD_FEEPARAM_H
13#define O2_TRD_FEEPARAM_H
64 static int extAliToAli(
unsigned int dest,
unsigned short linkpair,
unsigned short rocType,
int*
list,
int listSize);
65 static short chipmaskToMCMlist(
unsigned int cmA,
unsigned int cmB,
unsigned short linkpair,
int* mcmList,
int listSize);
66 static short getRobAB(
unsigned short robsel,
unsigned short linkpair);
69 static int getORI(
int detector,
int readoutboard);
75 void setTracklet(
bool trackletSim =
true) { mTracklet = trackletSim; }
93 mPtMin = float(
data) / 1000.;
94 mInvPtMin = 1 / mPtMin;
119 void getDyRange(
int det,
int rob,
int mcm,
int ch,
int& dyMinInt,
int& dyMaxInt)
const;
121 unsigned int& cor0,
unsigned int& cor1,
float gain = 1.)
const;
136 std::array<short, constants::NCOLUMN> mLUTPadNumbering;
138 void fillPad2MCMLookUpTable();
141 bool mTracklet{
true};
142 bool mRejectMultipleTracklets{
false};
143 bool mUseMisalignCorr{
false};
144 bool mUseTimeOffset{
false};
148 const int mkMaxRAWversion = 3;
151 std::array<float, constants::NCHAMBERPERSEC> mZrow{
152 301, 177, 53, -57, -181,
153 301, 177, 53, -57, -181,
154 315, 184, 53, -57, -188,
155 329, 191, 53, -57, -195,
156 343, 198, 53, -57, -202,
157 347, 200, 53, -57, -204};
158 std::array<float, constants::NLAYER> mX{300.65, 313.25, 325.85, 338.45, 351.05, 363.65};
159 std::array<float, constants::NLAYER> mInvX;
160 std::array<float, constants::NLAYER> mTiltingAngle{-2., 2., -2., 2., -2., 2.};
161 std::array<float, constants::NLAYER> mTiltingAngleTan;
162 std::array<float, constants::NLAYER> mWidthPad{0.635, 0.665, 0.695, 0.725, 0.755, 0.785};
163 std::array<float, constants::NLAYER> mInvWidthPad;
164 float mLengthInnerPadC0{9.f};
165 float mLengthOuterPadC0{8.f};
166 std::array<float, constants::NLAYER> mLengthInnerPadC1{7.5, 7.5, 8.0, 8.5, 9.0, 9.0};
167 std::array<float, constants::NLAYER> mLengthOuterPadC1{7.5, 7.5, 7.5, 7.5, 7.5, 8.5};
168 float mScalePad{256. * 32.};
169 float mDriftLength{3.};
171 float mBinDy{140e-4};
178 float mMagField{0.f};
179 float mOmegaTau{0.f};
181 float mInvPtMin{1.f / mPtMin};
182 int mNtimebins{20 << 5};
183 unsigned int mScaleQ0{0};
184 unsigned int mScaleQ1{0};
185 bool mPidTracklengthCorr{
false};
186 bool mTiltCorr{
false};
187 bool mPidGainCorr{
false};
190 ClassDefNV(FeeParam, 1);
void setTiltCorrectionEnable(int data)
void setRawTiltCorrectionEnable(bool data)
void setMagField(int data)
void setScaleQ1(int data)
void setRawScaleQ0(int data)
static int getROBSide(int irob)
bool getUseTimeOffset() const
void setLengthCorrectionEnable(int data)
void setScaleQ0(int data)
static int getPadRowFromMCM(int irob, int imcm)
void setRawMagField(float data)
void setRAWversion(int rawver)
int getRAWversion() const
static int getORI(int detector, int readoutboard)
void setRejectMultipleTracklets(bool rej=true)
FeeParam & operator=(const FeeParam &)=delete
void setPIDgainCorrectionEnable(bool data)
float getElongation(int det, int rob, int mcm, int) const
static int getPadColFromADC(int irob, int imcm, int iadc)
void getDyRange(int det, int rob, int mcm, int ch, int &dyMinInt, int &dyMaxInt) const
void setTracklet(bool trackletSim=true)
void setRawPIDgainCorrectionEnable(bool data)
void setRawNtimebins(int data)
static int getROBfromPad(int irow, int icol)
void getCorrectionFactors(int det, int rob, int mcm, int ch, unsigned int &cor0, unsigned int &cor1, float gain=1.) const
void setOmegaTau(int data)
static int getExtendedPadColFromADC(int irob, int imcm, int iadc)
float getLocalY(int det, int rob, int mcm, int ch) const
static int getMCMfromSharedPad(int irow, int icol)
void setRawScaleQ1(int data)
float getX(int det, int rob, int mcm) const
void setRawLengthCorrectionEnable(bool data)
static short getRobAB(unsigned short robsel, unsigned short linkpair)
void setRawPtMin(float data)
static int extAliToAli(unsigned int dest, unsigned short linkpair, unsigned short rocType, int *list, int listSize)
FeeParam(const FeeParam &)=delete
static short chipmaskToMCMlist(unsigned int cmA, unsigned int cmB, unsigned short linkpair, int *mcmList, int listSize)
static unsigned int aliToExtAli(int rob, int aliid)
short padMcmLUT(int index)
float getDist(int det, int rob, int mcm, int ch) const
void setRawOmegaTau(float data)
static FeeParam * instance()
void setNtimebins(int data)
void setUseMisalignCorr(bool misalign=true)
float getPerp(int det, int rob, int mcm, int ch) const
static int getColSide(int icol)
static void unpackORI(int link, int side, int &stack, int &layer, int &halfchamberside)
static int getMCMfromPad(int irow, int icol)
bool getUseMisalignCorr() const
int getDyCorrection(int det, int rob, int mcm) const
float getLocalZ(int det, int rob, int mcm) const
void setUseTimeOffset(bool timeOffset=true)
bool getRejectMultipleTracklets() const
static int getROBfromSharedPad(int irow, int icol)
float getPhi(int det, int rob, int mcm, int ch) const
GLenum GLuint GLint GLint layer
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...