21#ifndef DETECTORS_HMPID_BASE_INCLUDE_HMPIDDATAFORMAT_DIGIT_H_
22#define DETECTORS_HMPID_BASE_INCLUDE_HMPIDDATAFORMAT_DIGIT_H_
39 static inline uint32_t abs(
int ch,
int pc,
int x,
int y) {
return ch << 24 | pc << 16 |
x << 8 |
y; }
40 static inline int ddl2C(
int ddl) {
return ddl >> 1; }
41 static inline int a2C(
uint32_t pad) {
return (pad & 0xFF000000) >> 24; }
42 static inline int a2P(
uint32_t pad) {
return (pad & 0x00FF0000) >> 16; }
43 static inline int a2X(
uint32_t pad) {
return (pad & 0x0000FF00) >> 8; }
44 static inline int a2Y(
uint32_t pad) {
return (pad & 0x000000FF); }
51 static void absolute2Equipment(
int Module,
int x,
int y,
int* Equi,
int* Colu,
int* Dilo,
int* Chan);
52 static void equipment2Absolute(
int Equi,
int Colu,
int Dilo,
int Chan,
int* Module,
int*
x,
int*
y);
88 mPh = (pad & 0x00FF0000) >> 16;
89 mX = (pad & 0x0000FF00) >> 8;
90 mY = (pad & 0x000000FF);
146 static double qdcTot(
double e,
double time,
int pc,
int px,
int py,
double& localX,
double& localY);
149 static double intMathieson(
double localX,
double localY,
int pad);
unsigned short int uint16_t
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char e
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error First event to Number of events to Number of iterations to Number of iterations to Number of initial iterations excluded from const char Directory with events to Events directory is and not inside events d
static uint32_t absolute2Pad(int Module, int x, int y)
static int a2C(uint32_t pad)
static void absolute2Equipment(int Module, int x, int y, int *Equi, int *Colu, int *Dilo, int *Chan)
static int a2X(uint32_t pad)
friend std::ostream & operator<<(std::ostream &os, const Digit &d)
static double mathiesonY(double x)
static int a2Y(uint32_t pad)
void setPadID(uint32_t pad)
friend bool operator==(const Digit &l, const Digit &r)
uint16_t getCharge() const
static void pad2Absolute(uint32_t pad, int *Module, int *x, int *y)
static float lorsY(int pad)
static int ddl2C(int ddl)
static int a2P(uint32_t pad)
static uint32_t photo2Pad(int ch, int pc, int x, int y)
static double intPartMathiX(double x, int pad)
static uint32_t equipment2Pad(int Equi, int Colu, int Dilo, int Chan)
static void pad2Equipment(uint32_t pad, int *Equi, int *Colu, int *Dilo, int *Chan)
static void pad2Photo(uint32_t pad, uint8_t *chamber, uint8_t *photo, uint8_t *x, uint8_t *y)
static double qdcTot(double e, double time, int pc, int px, int py, double &localX, double &localY)
friend bool operator!=(const Digit &l, const Digit &r)
friend bool operator<=(const Digit &l, const Digit &r)
static float lorsX(int pad)
static double intPartMathiY(double y, int pad)
void setCharge(uint16_t Q)
static double mathiesonX(double x)
static float getFractionalContributionForPad(o2::hmpid::HitType const &hit, int somepad)
friend bool operator>=(const Digit &l, const Digit &r)
static double intMathieson(double localX, double localY, int pad)
static void getPadAndTotalCharge(o2::hmpid::HitType const &hit, int &chamber, int &pc, int &px, int &py, float &totalcharge)
friend bool operator<(const Digit &l, const Digit &r)
static uint32_t abs(int ch, int pc, int x, int y)
friend bool operator>(const Digit &l, const Digit &r)
static void equipment2Absolute(int Equi, int Colu, int Dilo, int Chan, int *Module, int *x, int *y)
static float lorsY(Int_t pc, Int_t pady)
static float lorsX(Int_t pc, Int_t padx)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...