Project
Loading...
Searching...
No Matches
o2::hmpid::Digit Class Reference

HMPID Digit declaration. More...

#include <Digit.h>

Public Member Functions

 Digit ()=default
 
 Digit (int pad, uint16_t charge)
 
 Digit (int chamber, int photo, int x, int y, uint16_t charge)
 
 Digit (uint16_t charge, int equipment, int column, int dilogic, int channel)
 
 Digit (uint16_t charge, int module, int x, int y)
 
uint16_t getCharge () const
 
void setCharge (uint16_t Q)
 
int getPadID () const
 
void setPadID (uint32_t pad)
 
bool isValid ()
 
void setInvalid ()
 
void addCharge (float q)
 
void subCharge (float q)
 
uint16_t getQ () const
 
uint8_t getCh () const
 
uint8_t getPh () const
 
uint8_t getX () const
 
uint8_t getY () const
 
 ClassDefNV (Digit, 2)
 

Static Public Member Functions

static uint32_t abs (int ch, int pc, int x, int y)
 
static int ddl2C (int ddl)
 
static int a2C (uint32_t pad)
 
static int a2P (uint32_t pad)
 
static int a2X (uint32_t pad)
 
static int a2Y (uint32_t pad)
 
static uint32_t photo2Pad (int ch, int pc, int x, int y)
 
static uint32_t equipment2Pad (int Equi, int Colu, int Dilo, int Chan)
 
static uint32_t absolute2Pad (int Module, int x, int y)
 
static void pad2Equipment (uint32_t pad, int *Equi, int *Colu, int *Dilo, int *Chan)
 
static void pad2Absolute (uint32_t pad, int *Module, int *x, int *y)
 
static void pad2Photo (uint32_t pad, uint8_t *chamber, uint8_t *photo, uint8_t *x, uint8_t *y)
 
static void absolute2Equipment (int Module, int x, int y, int *Equi, int *Colu, int *Dilo, int *Chan)
 
static void equipment2Absolute (int Equi, int Colu, int Dilo, int Chan, int *Module, int *x, int *y)
 
static void getPadAndTotalCharge (o2::hmpid::HitType const &hit, int &chamber, int &pc, int &px, int &py, float &totalcharge)
 
static float getFractionalContributionForPad (o2::hmpid::HitType const &hit, int somepad)
 
static float lorsX (int pad)
 
static float lorsY (int pad)
 
static double qdcTot (double e, double time, int pc, int px, int py, double &localX, double &localY)
 
static double intPartMathiX (double x, int pad)
 
static double intPartMathiY (double y, int pad)
 
static double intMathieson (double localX, double localY, int pad)
 
static double mathiesonX (double x)
 
static double mathiesonY (double x)
 

Public Attributes

uint16_t mQ = 0
 
uint8_t mCh = 0
 
uint8_t mPh = 0
 
uint8_t mX = 0
 
uint8_t mY = 0
 

Friends

bool operator< (const Digit &l, const Digit &r)
 
bool operator== (const Digit &l, const Digit &r)
 
bool operator> (const Digit &l, const Digit &r)
 
bool operator<= (const Digit &l, const Digit &r)
 
bool operator>= (const Digit &l, const Digit &r)
 
bool operator!= (const Digit &l, const Digit &r)
 
std::ostream & operator<< (std::ostream &os, const Digit &d)
 

Detailed Description

HMPID Digit declaration.

Definition at line 35 of file Digit.h.

Constructor & Destructor Documentation

◆ Digit() [1/5]

o2::hmpid::Digit::Digit ( )
default

◆ Digit() [2/5]

o2::hmpid::Digit::Digit ( int  pad,
uint16_t  charge 
)

Constructor : Create the Digit structure. Accepts the trigger time (Orbit,BC) The mapping of the digit is in the Photo Cathod coords (Chamber, PhotoCathod, X, Y)

Parameters
[in]pad: the Digit Unique Id [0x00CPXXYY]
[in]charge: the value of the charge [0 .. 2^12-1]

Definition at line 43 of file Digit.cxx.

◆ Digit() [3/5]

o2::hmpid::Digit::Digit ( int  chamber,
int  photo,
int  x,
int  y,
uint16_t  charge 
)

Constructor : Create the Digit structure. Accepts the trigger time (Orbit,BC) The mapping of the digit is in the Photo Cathod coords (Chamber, PhotoCathod, X, Y)

Parameters
[in]chamber: the HMPID module [0 .. 6]
[in]photo: the photo cathode number [0 .. 5] (left-down to right-up)
[in]x: the horizontal in cathode displacement [0 .. 79]
[in]y: the vertical in cathode displacement [0 .. 47]
[in]charge: the value of the charge [0 .. 2^12-1]

Definition at line 60 of file Digit.cxx.

◆ Digit() [4/5]

o2::hmpid::Digit::Digit ( uint16_t  charge,
int  equipment,
int  column,
int  dilogic,
int  channel 
)

Constructor : Create the Digit structure. Accepts the trigger time (Orbit,BC) The mapping of the digit is in the Hardware coords (Equipment, Column, Dilogic, Channel)

Parameters
[in]charge: the value of the charge [0 .. 2^12-1]
[in]equipment: the HMPID DDL link [0 .. 13]
[in]column: the readout column number [0 .. 23]
[in]dilogic: the displacement in the Dilogics chain [0 .. 9]
[in]channel: the number of gassiplexes channels [0 .. 47]

Definition at line 77 of file Digit.cxx.

◆ Digit() [5/5]

o2::hmpid::Digit::Digit ( uint16_t  charge,
int  module,
int  x,
int  y 
)

Constructor : Create the Digit structure. Accepts the trigger time (Orbit,BC) The mapping of the digit is in the Logical coords (Module, X, Y)

Parameters
[in]charge: the value of the charge [0 .. 2^12-1]
[in]module: the HMPID Module [0 .. 6]
[in]x: the horizontal in Module displacement [0 .. 159]
[in]y: the vertical in Module displacement [0 .. 143]

Definition at line 90 of file Digit.cxx.

Member Function Documentation

◆ a2C()

static int o2::hmpid::Digit::a2C ( uint32_t  pad)
inlinestatic

Definition at line 41 of file Digit.h.

◆ a2P()

static int o2::hmpid::Digit::a2P ( uint32_t  pad)
inlinestatic

Definition at line 42 of file Digit.h.

◆ a2X()

static int o2::hmpid::Digit::a2X ( uint32_t  pad)
inlinestatic

Definition at line 43 of file Digit.h.

◆ a2Y()

static int o2::hmpid::Digit::a2Y ( uint32_t  pad)
inlinestatic

Definition at line 44 of file Digit.h.

◆ abs()

static uint32_t o2::hmpid::Digit::abs ( int  ch,
int  pc,
int  x,
int  y 
)
inlinestatic

Definition at line 39 of file Digit.h.

◆ absolute2Equipment()

void o2::hmpid::Digit::absolute2Equipment ( int  Module,
int  x,
int  y,
int Equi,
int Colu,
int Dilo,
int Chan 
)
static

Absolute2Equipment : Converts the Module coords to Hardware coords

Parameters
[in]Module: the HMPID Module number [0..6]
[in]x: the horizontal displacement [0..159]
[in]y: the vertical displacement [0..143]
[out]Equi: the equipment [0 .. 13]
[out]Colu: the readout column number [0 .. 23]
[out]Dilo: the displacement in the Dilogics chain [0 .. 9]
[out]Chan: the number of gassiplexes channels [0 .. 47]

Definition at line 171 of file Digit.cxx.

◆ absolute2Pad()

uint32_t o2::hmpid::Digit::absolute2Pad ( int  Module,
int  x,
int  y 
)
static

Absolute2Pad : Converts the Module coords in the Digit Unique Id

Parameters
[in]Module: the HMPID Module number [0..6]
[in]x: the horizontal displacement [0..159]
[in]y: the vertical displacement [0..143]
Returns
uint32_t : the Digit Unique Id [0x00CPXXYY]

Definition at line 198 of file Digit.cxx.

◆ addCharge()

void o2::hmpid::Digit::addCharge ( float  q)
inline

Definition at line 109 of file Digit.h.

◆ ClassDefNV()

o2::hmpid::Digit::ClassDefNV ( Digit  ,
 
)

◆ ddl2C()

static int o2::hmpid::Digit::ddl2C ( int  ddl)
inlinestatic

Definition at line 40 of file Digit.h.

◆ equipment2Absolute()

void o2::hmpid::Digit::equipment2Absolute ( int  Equi,
int  Colu,
int  Dilo,
int  Chan,
int Module,
int x,
int y 
)
static

Equipment2Absolute : Converts the Module coords to Hardware coords

Parameters
[in]Equi: the equipment [0 .. 13]
[in]Colu: the readout column number [0 .. 23]
[in]Dilo: the displacement in the Dilogics chain [0 .. 9]
[in]Chan: the number of gassiplexes channels [0 .. 47]
[out]Module: the HMPID Module number [0..6]
[out]x: the horizontal displacement [0..159]
[out]y: the vertical displacement [0..143]

Definition at line 186 of file Digit.cxx.

◆ equipment2Pad()

uint32_t o2::hmpid::Digit::equipment2Pad ( int  Equi,
int  Colu,
int  Dilo,
int  Chan 
)
static

Equipment2Pad : Converts the coords from Hardware to Digit Unique Id

Parameters
[in]Equi: the equipment [0 .. 13]
[in]Colu: the readout column number [0 .. 23]
[in]Dilo: the displacement in the Dilogics chain [0 .. 9]
[in]Chan: the number of gassiplexes channels [0 .. 47]
Returns
uint32_t : the Digit Unique Id [0x00CPXXYY]

Definition at line 111 of file Digit.cxx.

◆ getCh()

uint8_t o2::hmpid::Digit::getCh ( ) const
inline

Definition at line 119 of file Digit.h.

◆ getCharge()

uint16_t o2::hmpid::Digit::getCharge ( ) const
inline

Definition at line 81 of file Digit.h.

◆ getFractionalContributionForPad()

float o2::hmpid::Digit::getFractionalContributionForPad ( o2::hmpid::HitType const &  hit,
int  somepad 
)
static

getFractionalContributionForPad : ...

Parameters
[in]hit: the HMPID Hit
[in]somepad: the Digit Unique Id [0x00CPXXYY]
Returns
: the fraction of the charge ...

Definition at line 263 of file Digit.cxx.

◆ getPadAndTotalCharge()

void o2::hmpid::Digit::getPadAndTotalCharge ( o2::hmpid::HitType const &  hit,
int chamber,
int pc,
int px,
int py,
float &  totalcharge 
)
static

getPadAndTotalCharge : Extract all the info from the Hit structure and returns they in the Photo Cathode coords

Parameters
[in]hit: the HMPID Hit
[out]chamber: the HMPID chamber number [0..6]
[out]pc: the photo cathode number [0..5]
[out]px: the horizontal displacement [0..79]
[out]py: the vertical displacement [0..47]
[out]totalcharge: the charge of the hit [0..2^12-1]

Definition at line 245 of file Digit.cxx.

◆ getPadID()

int o2::hmpid::Digit::getPadID ( ) const
inline

Definition at line 84 of file Digit.h.

◆ getPh()

uint8_t o2::hmpid::Digit::getPh ( ) const
inline

Definition at line 120 of file Digit.h.

◆ getQ()

uint16_t o2::hmpid::Digit::getQ ( ) const
inline

Definition at line 118 of file Digit.h.

◆ getX()

uint8_t o2::hmpid::Digit::getX ( ) const
inline

Definition at line 121 of file Digit.h.

◆ getY()

uint8_t o2::hmpid::Digit::getY ( ) const
inline

Definition at line 122 of file Digit.h.

◆ intMathieson()

double o2::hmpid::Digit::intMathieson ( double  localX,
double  localY,
int  pad 
)
static

IntMathieson : Integration of Mathieson. This is the answer to electrostatic problem of charge distrubution in MWPC described elsewhere. (NIM A370(1988)602-603)

Parameters
[in]localX: X position of the center of Mathieson distribution
[in]localY: Y position of the center of Mathieson distribution
[in]pad: the Digit Unique Id [0x00CPXXYY]
Returns
: a charge fraction [0-1] imposed into the pad

Definition at line 363 of file Digit.cxx.

◆ intPartMathiX()

double o2::hmpid::Digit::intPartMathiX ( double  x,
int  pad 
)
static

IntPartMathiX : Integration of Mathieson. This is the answer to electrostatic problem of charge distrubution in MWPC described elsewhere. (NIM A370(1988)602-603)

Parameters
[in]x: position of the center of Mathieson distribution
[in]pad: the Digit Unique Id [0x00CPXXYY]
Returns
: a charge fraction [0-1] imposed into the pad

Definition at line 326 of file Digit.cxx.

◆ intPartMathiY()

double o2::hmpid::Digit::intPartMathiY ( double  y,
int  pad 
)
static

IntPartMathiY : Integration of Mathieson. This is the answer to electrostatic problem of charge distrubution in MWPC described elsewhere. (NIM A370(1988)602-603)

Parameters
[in]y: position of the center of Mathieson distribution
[in]pad: the Digit Unique Id [0x00CPXXYY]
Returns
: a charge fraction [0-1] imposed into the pad

Definition at line 344 of file Digit.cxx.

◆ isValid()

bool o2::hmpid::Digit::isValid ( )
inline

Definition at line 93 of file Digit.h.

◆ lorsX()

static float o2::hmpid::Digit::lorsX ( int  pad)
inlinestatic

Definition at line 141 of file Digit.h.

◆ lorsY()

static float o2::hmpid::Digit::lorsY ( int  pad)
inlinestatic

Definition at line 142 of file Digit.h.

◆ mathiesonX()

double o2::hmpid::Digit::mathiesonX ( double  x)
static

Definition at line 372 of file Digit.cxx.

◆ mathiesonY()

double o2::hmpid::Digit::mathiesonY ( double  x)
static

Definition at line 386 of file Digit.cxx.

◆ pad2Absolute()

void o2::hmpid::Digit::pad2Absolute ( uint32_t  pad,
int Module,
int x,
int y 
)
static

Pad2Absolute : Converts the the Digit Unique Id to Module coords

Parameters
[in]pad: the Digit Unique Id [0x00CPXXYY]
[out]Module: the HMPID Module number [0..6]
[out]x: the horizontal displacement [0..159]
[out]y: the vertical displacement [0..143]

Definition at line 211 of file Digit.cxx.

◆ pad2Equipment()

void o2::hmpid::Digit::pad2Equipment ( uint32_t  pad,
int Equi,
int Colu,
int Dilo,
int Chan 
)
static

Pad2Equipment : Converts the Digit Unique Id to Hardware coords

Parameters
[in]pad: the Digit Unique Id [0x00CPXXYY]
[out]Equi: the equipment [0 .. 13]
[out]Colu: the readout column number [0 .. 23]
[out]Dilo: the displacement in the Dilogics chain [0 .. 9]
[out]Chan: the number of gassiplexes channels [0 .. 47]

Definition at line 141 of file Digit.cxx.

◆ pad2Photo()

void o2::hmpid::Digit::pad2Photo ( uint32_t  pad,
uint8_t *  chamber,
uint8_t *  photo,
uint8_t *  x,
uint8_t *  y 
)
static

Pad2Photo : Converts the the Digit Unique Id to Photo Cathode coords

Parameters
[in]pad: the Digit Unique Id [0x00CPXXYY]
[out]chamber: the HMPID chamber number [0..6]
[out]photo: the photo cathode number [0..5]
[out]x: the horizontal displacement [0..79]
[out]y: the vertical displacement [0..47]

Definition at line 228 of file Digit.cxx.

◆ photo2Pad()

static uint32_t o2::hmpid::Digit::photo2Pad ( int  ch,
int  pc,
int  x,
int  y 
)
inlinestatic

Definition at line 45 of file Digit.h.

◆ qdcTot()

Double_t o2::hmpid::Digit::qdcTot ( double  e,
double  time,
int  pc,
int  px,
int  py,
double &  localX,
double &  localY 
)
static

QdcTot : Samples total charge associated to a hit

Parameters
[in]e: hit energy [GeV] for mip Eloss for photon Etot
[in]time: ...
[in]pc: the photo cathode number [0..5]
[in]px: the horizontal displacement [0..79]
[in]py: the vertical displacement [0..47]
[out]localX: the horizontal displacement related to Anode Wires
[out]localY: the vertical displacement related to Anode Wires
Returns
: total QDC

Definition at line 286 of file Digit.cxx.

◆ setCharge()

void o2::hmpid::Digit::setCharge ( uint16_t  Q)
inline

Definition at line 82 of file Digit.h.

◆ setInvalid()

void o2::hmpid::Digit::setInvalid ( )
inline

Definition at line 94 of file Digit.h.

◆ setPadID()

void o2::hmpid::Digit::setPadID ( uint32_t  pad)
inline

Definition at line 85 of file Digit.h.

◆ subCharge()

void o2::hmpid::Digit::subCharge ( float  q)
inline

Definition at line 116 of file Digit.h.

Friends And Related Symbol Documentation

◆ operator!=

bool operator!= ( const Digit l,
const Digit r 
)
friend

Definition at line 69 of file Digit.h.

◆ operator<

bool operator< ( const Digit l,
const Digit r 
)
friend

Definition at line 64 of file Digit.h.

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const Digit d 
)
friend

Definition at line 97 of file Digit.cxx.

◆ operator<=

bool operator<= ( const Digit l,
const Digit r 
)
friend

Definition at line 67 of file Digit.h.

◆ operator==

bool operator== ( const Digit l,
const Digit r 
)
friend

Definition at line 65 of file Digit.h.

◆ operator>

bool operator> ( const Digit l,
const Digit r 
)
friend

Definition at line 66 of file Digit.h.

◆ operator>=

bool operator>= ( const Digit l,
const Digit r 
)
friend

Definition at line 68 of file Digit.h.

Member Data Documentation

◆ mCh

uint8_t o2::hmpid::Digit::mCh = 0

Definition at line 127 of file Digit.h.

◆ mPh

uint8_t o2::hmpid::Digit::mPh = 0

Definition at line 128 of file Digit.h.

◆ mQ

uint16_t o2::hmpid::Digit::mQ = 0

Definition at line 126 of file Digit.h.

◆ mX

uint8_t o2::hmpid::Digit::mX = 0

Definition at line 129 of file Digit.h.

◆ mY

uint8_t o2::hmpid::Digit::mY = 0

Definition at line 130 of file Digit.h.


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