CbmRoot
Loading...
Searching...
No Matches
cbm::algo::trd::HitFactory2D Class Reference

#include <HitFactory2D.h>

Classes

struct  signal
 

Public Member Functions

 HitFactory2D (int ncols)
 bit map for cluster topology classification
 
void reset ()
 
bool HasLeftSgn () const
 
bool HasOvf () const
 
bool IsBiasX () const
 
bool IsBiasXleft () const
 
bool IsBiasXmid () const
 
bool IsBiasXright () const
 
bool IsBiasY () const
 
bool IsBiasYleft () const
 
bool IsLeftHit () const
 
bool IsMaxTilt () const
 
bool IsOpenLeft () const
 
bool IsOpenRight () const
 
bool IsSymmHit () const
 
void SetBiasX (bool set=1)
 
void SetBiasXleft (bool set=1)
 
void SetBiasXmid (bool set=1)
 
void SetBiasXright (bool set=1)
 
void SetBiasY (bool set=1)
 
void SetBiasYleft (bool set=1)
 
void SetBiasYmid (bool set=1)
 
void SetBiasYright (bool set=1)
 
void SetLeftSgn (bool set=1)
 
void SetLeftHit (bool set=1)
 
void SetSymmHit (bool set=1)
 
void SetMaxTilt (bool set=1)
 
void SetOvf (bool set=1)
 
uint16_t GetHitMap () const
 
std::pair< double, double > GetDxDy (const int n0)
 
double GetXoffset (int n0=0) const
 
double GetYoffset (int n0=0) const
 
void RecenterXoffset (double &dx)
 
void RecenterYoffset (double &dy)
 Shift graph representation to [-0.5, 0.5].
 
int GetHitClass () const
 Hit classification wrt center pad.
 
int GetHitRcClass (int a0) const
 Hit classification wrt signal bias.
 
double GetXcorr (double dx, int typ, int cls=0) const
 
double GetYcorr (double dy, int cls=0) const
 y position correction based on LUT
 
std::pair< double, double > CorrectPosition (double dx, double dy, const double xcorr, const double padSizeX, const double padSizeY)
 Shift graph representation to [-0.5, 0.5].
 
template<typename T >
int Nint (T x) const
 discretized correction LUT
 

Public Attributes

std::vector< signalfSignal
 
int nCols
 
uint64_t vt0 = 0
 
uint8_t vcM = 0
 start time of current hit [clk]
 
uint8_t vrM = 0
 maximum col
 
uint8_t viM = 0
 maximum row
 
uint16_t vyM = 0
 index of maximum signal in the projection
 

Static Public Attributes

static float fgCorrXdx = 0.01
 
static float fgCorrXval [3][NBINSCORRX]
 step of the discretized correction LUT
 
static float fgCorrYval [NBINSCORRY][2]
 discretized correction LUT
 
static float fgCorrRcXval [2][NBINSCORRX]
 discretized correction params
 
static float fgCorrRcXbiasXval [3][NBINSCORRX]
 discretized correction LUT
 

Detailed Description

Definition at line 21 of file HitFactory2D.h.

Constructor & Destructor Documentation

◆ HitFactory2D()

cbm::algo::trd::HitFactory2D::HitFactory2D ( int ncols)
inline

bit map for cluster topology classification

Definition at line 43 of file HitFactory2D.h.

Member Function Documentation

◆ CorrectPosition()

std::pair< double, double > cbm::algo::trd::HitFactory2D::CorrectPosition ( double dx,
double dy,
const double xcorr,
const double padSizeX,
const double padSizeY )

Shift graph representation to [-0.5, 0.5].

Parameters
[in]dxoffset wrt center pad [pw]

Definition at line 18 of file HitFactory2D.cxx.

References GetYcorr(), RecenterXoffset(), and RecenterYoffset().

Referenced by cbm::algo::trd::HitFinder2D::BuildHit(), and cbm::algo::trd::HitMerger2D::MergeHits().

◆ GetDxDy()

std::pair< double, double > cbm::algo::trd::HitFactory2D::GetDxDy ( const int n0)

◆ GetHitClass()

int cbm::algo::trd::HitFactory2D::GetHitClass ( ) const

Hit classification wrt center pad.

Returns
hit type : center hit [0]; side hit [1]

Incapsulate hit classification criteria based on signal topology [0] : center hit type [1] : side hit type

Definition at line 150 of file HitFactory2D.cxx.

References fSignal, HasOvf(), IsMaxTilt(), and IsSymmHit().

Referenced by cbm::algo::trd::HitFinder2D::BuildHit(), and cbm::algo::trd::HitMerger2D::MergeHits().

◆ GetHitMap()

uint16_t cbm::algo::trd::HitFactory2D::GetHitMap ( ) const
inline

Definition at line 81 of file HitFactory2D.h.

References vyM.

◆ GetHitRcClass()

int cbm::algo::trd::HitFactory2D::GetHitRcClass ( int a0) const

Hit classification wrt signal bias.

Returns
hit type : center hit [0]; side hit [1]

Definition at line 167 of file HitFactory2D.cxx.

References IsBiasXleft(), IsBiasXmid(), IsBiasXright(), and vyM.

Referenced by cbm::algo::trd::HitMerger2D::MergeHits().

◆ GetXcorr()

double cbm::algo::trd::HitFactory2D::GetXcorr ( double dx,
int typ,
int cls = 0 ) const

Give the linear interpolation of SYS correction for current position offset "dx" based on LUT calculated wrt MC EbyE data. The position offset is expresed in [pw] units while the output is in [cm]

Definition at line 187 of file HitFactory2D.cxx.

References fgCorrRcXbiasXval, fgCorrRcXval, fgCorrXdx, fgCorrXval, NBINSCORRX, and Nint().

Referenced by cbm::algo::trd::HitFinder2D::BuildHit(), and cbm::algo::trd::HitMerger2D::MergeHits().

◆ GetXoffset()

double cbm::algo::trd::HitFactory2D::GetXoffset ( int n0 = 0) const

Definition at line 88 of file HitFactory2D.cxx.

References fSignal.

Referenced by GetDxDy().

◆ GetYcorr()

double cbm::algo::trd::HitFactory2D::GetYcorr ( double dy,
int cls = 0 ) const

y position correction based on LUT

Parameters
[in]dyoffset computed on charge sharing expressed in [ph]
[in]clscorrection class
Returns
correction expresed in [cm]

Process y offset. Apply systematic correction for y (MC derived). The position offset is expresed in [pw] units while the output is in [cm]

Definition at line 224 of file HitFactory2D.cxx.

References fgCorrYval, fSignal, IsLeftHit(), IsMaxTilt(), and IsSymmHit().

Referenced by CorrectPosition().

◆ GetYoffset()

double cbm::algo::trd::HitFactory2D::GetYoffset ( int n0 = 0) const

Definition at line 103 of file HitFactory2D.cxx.

References fSignal.

Referenced by GetDxDy().

◆ HasLeftSgn()

bool cbm::algo::trd::HitFactory2D::HasLeftSgn ( ) const
inline

Definition at line 55 of file HitFactory2D.h.

References TESTBIT, and vyM.

◆ HasOvf()

bool cbm::algo::trd::HitFactory2D::HasOvf ( ) const
inline

◆ IsBiasX()

bool cbm::algo::trd::HitFactory2D::IsBiasX ( ) const
inline

Definition at line 57 of file HitFactory2D.h.

References TESTBIT, and vyM.

Referenced by cbm::algo::trd::HitMerger2D::MergeHits().

◆ IsBiasXleft()

bool cbm::algo::trd::HitFactory2D::IsBiasXleft ( ) const
inline

Definition at line 58 of file HitFactory2D.h.

References TESTBIT, and vyM.

Referenced by GetHitRcClass(), and cbm::algo::trd::HitMerger2D::MergeHits().

◆ IsBiasXmid()

bool cbm::algo::trd::HitFactory2D::IsBiasXmid ( ) const
inline

Definition at line 59 of file HitFactory2D.h.

References TESTBIT, and vyM.

Referenced by GetHitRcClass().

◆ IsBiasXright()

bool cbm::algo::trd::HitFactory2D::IsBiasXright ( ) const
inline

Definition at line 60 of file HitFactory2D.h.

References TESTBIT, and vyM.

Referenced by GetHitRcClass().

◆ IsBiasY()

bool cbm::algo::trd::HitFactory2D::IsBiasY ( ) const
inline

Definition at line 61 of file HitFactory2D.h.

References TESTBIT, and vyM.

◆ IsBiasYleft()

bool cbm::algo::trd::HitFactory2D::IsBiasYleft ( ) const
inline

Definition at line 62 of file HitFactory2D.h.

References TESTBIT, and vyM.

◆ IsLeftHit()

bool cbm::algo::trd::HitFactory2D::IsLeftHit ( ) const
inline

Definition at line 63 of file HitFactory2D.h.

References TESTBIT, and vyM.

Referenced by GetYcorr().

◆ IsMaxTilt()

bool cbm::algo::trd::HitFactory2D::IsMaxTilt ( ) const
inline

◆ IsOpenLeft()

bool cbm::algo::trd::HitFactory2D::IsOpenLeft ( ) const
inline

Definition at line 65 of file HitFactory2D.h.

References IsMaxTilt(), and viM.

Referenced by GetDxDy().

◆ IsOpenRight()

bool cbm::algo::trd::HitFactory2D::IsOpenRight ( ) const
inline

Definition at line 276 of file HitFactory2D.cxx.

References fSignal, IsMaxTilt(), and viM.

Referenced by GetDxDy().

◆ IsSymmHit()

bool cbm::algo::trd::HitFactory2D::IsSymmHit ( ) const
inline

Definition at line 67 of file HitFactory2D.h.

References TESTBIT, and vyM.

Referenced by GetDxDy(), GetHitClass(), and GetYcorr().

◆ Nint()

template<typename T >
int cbm::algo::trd::HitFactory2D::Nint ( T x) const
inline

discretized correction LUT

Definition at line 124 of file HitFactory2D.h.

References x.

Referenced by GetXcorr().

◆ RecenterXoffset()

void cbm::algo::trd::HitFactory2D::RecenterXoffset ( double & dx)

Shift graph representation to fit dx[pw] in [-0.5, 0.5]

Definition at line 120 of file HitFactory2D.cxx.

References fSignal, nCols, vcM, and x.

Referenced by CorrectPosition(), GetDxDy(), and cbm::algo::trd::HitMerger2D::MergeHits().

◆ RecenterYoffset()

void cbm::algo::trd::HitFactory2D::RecenterYoffset ( double & dy)

Shift graph representation to [-0.5, 0.5].

Parameters
[in]dyoffset wrt center pad [ph]

Shift graph representation to fit dy[ph] in [-0.5, 0.5]

Definition at line 139 of file HitFactory2D.cxx.

Referenced by CorrectPosition().

◆ reset()

void cbm::algo::trd::HitFactory2D::reset ( )
inline

◆ SetBiasX()

void cbm::algo::trd::HitFactory2D::SetBiasX ( bool set = 1)
inline

◆ SetBiasXleft()

void cbm::algo::trd::HitFactory2D::SetBiasXleft ( bool set = 1)
inline

Definition at line 69 of file HitFactory2D.h.

References CLRBIT, SETBIT, and vyM.

Referenced by cbm::algo::trd::HitMerger2D::ProjectDigis().

◆ SetBiasXmid()

void cbm::algo::trd::HitFactory2D::SetBiasXmid ( bool set = 1)
inline

Definition at line 70 of file HitFactory2D.h.

References CLRBIT, SETBIT, and vyM.

Referenced by cbm::algo::trd::HitMerger2D::ProjectDigis().

◆ SetBiasXright()

void cbm::algo::trd::HitFactory2D::SetBiasXright ( bool set = 1)
inline

Definition at line 71 of file HitFactory2D.h.

References CLRBIT, SETBIT, and vyM.

Referenced by cbm::algo::trd::HitMerger2D::ProjectDigis().

◆ SetBiasY()

void cbm::algo::trd::HitFactory2D::SetBiasY ( bool set = 1)
inline

◆ SetBiasYleft()

void cbm::algo::trd::HitFactory2D::SetBiasYleft ( bool set = 1)
inline

Definition at line 73 of file HitFactory2D.h.

References CLRBIT, SETBIT, and vyM.

Referenced by cbm::algo::trd::HitMerger2D::ProjectDigis().

◆ SetBiasYmid()

void cbm::algo::trd::HitFactory2D::SetBiasYmid ( bool set = 1)
inline

Definition at line 74 of file HitFactory2D.h.

References CLRBIT, SETBIT, and vyM.

Referenced by cbm::algo::trd::HitMerger2D::ProjectDigis().

◆ SetBiasYright()

void cbm::algo::trd::HitFactory2D::SetBiasYright ( bool set = 1)
inline

Definition at line 75 of file HitFactory2D.h.

References CLRBIT, SETBIT, and vyM.

Referenced by cbm::algo::trd::HitMerger2D::ProjectDigis().

◆ SetLeftHit()

void cbm::algo::trd::HitFactory2D::SetLeftHit ( bool set = 1)
inline

◆ SetLeftSgn()

void cbm::algo::trd::HitFactory2D::SetLeftSgn ( bool set = 1)
inline

◆ SetMaxTilt()

void cbm::algo::trd::HitFactory2D::SetMaxTilt ( bool set = 1)
inline

◆ SetOvf()

void cbm::algo::trd::HitFactory2D::SetOvf ( bool set = 1)
inline

◆ SetSymmHit()

void cbm::algo::trd::HitFactory2D::SetSymmHit ( bool set = 1)
inline

Member Data Documentation

◆ fgCorrRcXbiasXval

float cbm::algo::trd::HitFactory2D::fgCorrRcXbiasXval
static
Initial value:
= {
{0.00100, 0.00260, 0.00540, 0.00740, 0.00900, 0.01060, 0.01300, 0.01460, 0.01660, 0.01900,
0.02060, 0.02260, 0.02420, 0.02700, 0.02860, 0.02980, 0.03220, 0.03340, 0.03540, 0.03620,
0.03820, 0.04020, 0.04180, 0.04340, 0.04460, 0.04620, 0.04740, 0.04941, 0.05088, 0.05233,
0.05375, 0.05515, 0.05653, 0.05788, 0.05921, 0.06052, 0.06180, 0.06306, 0.06430, 0.06551,
0.06670, 0.06786, 0.06901, 0.07012, 0.07122, 0.07229, 0.07334, 0.07436, 0.07536, 0.07634},
{0.00100, 0.00380, 0.00780, 0.00900, 0.01220, 0.01460, 0.01860, 0.01940, 0.02260, 0.02540,
0.02820, 0.03060, 0.03220, 0.03660, 0.03980, 0.04094, 0.04420, 0.04620, 0.04824, 0.04980,
0.05298, 0.05532, 0.05740, 0.05991, 0.06217, 0.06500, 0.06540, 0.06900, 0.07096, 0.07310,
0.07380, 0.07729, 0.07935, 0.08139, 0.08340, 0.08538, 0.08734, 0.08928, 0.08900, 0.09307,
0.09493, 0.09340, 0.09858, 0.09620, 0.09740, 0.10386, 0.09980, 0.10726, 0.10892, 0.11056},
{0.00011, 0.00140, 0.00340, 0.00420, 0.00500, 0.00620, 0.00820, 0.00860, 0.01060, 0.01100,
0.01220, 0.01340, 0.01500, 0.01540, 0.01700, 0.01820, 0.01900, 0.02060, 0.02180, 0.02260,
0.02340, 0.02420, 0.02500, 0.02500, 0.02660, 0.02740, 0.02820, 0.02900, 0.03020, 0.03180,
0.03300, 0.03260, 0.03380, 0.03460, 0.03500, 0.03580, 0.03780, 0.03820, 0.03860, 0.03900,
0.04100, 0.04180, 0.04060, 0.04300, 0.04340, 0.04340, 0.04380, 0.04460, 0.04580, 0.04540}}

discretized correction LUT

Definition at line 120 of file HitFactory2D.h.

Referenced by GetXcorr().

◆ fgCorrRcXval

float cbm::algo::trd::HitFactory2D::fgCorrRcXval
static
Initial value:
= {
{-0.00050, -0.00050, -0.00150, -0.00250, -0.00250, -0.00350, -0.00450, -0.00450, -0.00550, -0.00650,
-0.00650, -0.00750, -0.00850, -0.00850, -0.00850, -0.00950, -0.00950, -0.00950, -0.01050, -0.01150,
-0.01150, -0.01150, -0.01250, -0.01250, -0.01250, -0.01250, -0.01350, -0.01350, -0.01350, -0.01350,
-0.01450, -0.01450, -0.01450, -0.01550, -0.01550, -0.01550, -0.01550, -0.01650, -0.01650, -0.01550,
-0.01650, -0.01614, -0.01620, -0.01624, -0.01626, -0.01627, -0.01626, -0.01624, -0.01620, -0.01615},
{0.36412, 0.34567, 0.32815, 0.31152, 0.29574, 0.28075, 0.26652, 0.25302, 0.24020, 0.22803,
0.21647, 0.21400, 0.19400, 0.18520, 0.17582, 0.16600, 0.14600, 0.13800, 0.14280, 0.14200,
0.13400, 0.12600, 0.12200, 0.11000, 0.10200, 0.09400, 0.09000, 0.08600, 0.08200, 0.07400,
0.07000, 0.06600, 0.06600, 0.06200, 0.05800, 0.05400, 0.05400, 0.05000, 0.04600, 0.04600,
0.04200, 0.03800, 0.03800, 0.03400, 0.03400, 0.03000, 0.03000, 0.02600, 0.02200, 0.02200}}

discretized correction params

Definition at line 119 of file HitFactory2D.h.

Referenced by GetXcorr().

◆ fgCorrXdx

float cbm::algo::trd::HitFactory2D::fgCorrXdx = 0.01
static

Definition at line 116 of file HitFactory2D.h.

Referenced by GetXcorr().

◆ fgCorrXval

float cbm::algo::trd::HitFactory2D::fgCorrXval
static
Initial value:
= {
{-0.001, -0.001, -0.002, -0.002, -0.003, -0.003, -0.003, -0.004, -0.004, -0.006, -0.006, -0.006, -0.007,
-0.007, -0.008, -0.008, -0.008, -0.009, -0.009, -0.011, -0.011, -0.011, -0.012, -0.012, -0.012, -0.012,
-0.013, -0.013, -0.013, -0.013, -0.014, -0.014, -0.014, -0.014, -0.014, -0.016, -0.016, -0.016, -0.016,
-0.017, -0.017, -0.017, -0.018, -0.018, -0.018, -0.018, -0.018, 0.000, 0.000, 0.000},
{0.467, 0.430, 0.396, 0.364, 0.335, 0.312, 0.291, 0.256, 0.234, 0.219, 0.207, 0.191, 0.172,
0.154, 0.147, 0.134, 0.123, 0.119, 0.109, 0.122, 0.113, 0.104, 0.093, 0.087, 0.079, 0.073,
0.067, 0.063, 0.058, 0.053, 0.049, 0.046, 0.042, 0.038, 0.036, 0.032, 0.029, 0.027, 0.024,
0.022, 0.019, 0.017, 0.014, 0.013, 0.011, 0.009, 0.007, 0.004, 0.003, 0.001},
{0.001, 0.001, 0.001, 0.001, 0.002, 0.002, 0.001, 0.002, 0.004, 0.003, 0.002, 0.002, 0.002,
0.002, 0.002, 0.002, 0.003, 0.004, 0.003, 0.004, 0.004, 0.007, 0.003, 0.004, 0.002, 0.002,
-0.011, -0.011, -0.012, -0.012, -0.012, -0.013, -0.013, -0.013, -0.014, -0.014, -0.014, -0.016, -0.016,
-0.016, -0.017, -0.017, -0.017, -0.018, -0.018, -0.018, -0.019, 0.029, 0.018, 0.001}}

step of the discretized correction LUT

Definition at line 117 of file HitFactory2D.h.

Referenced by GetXcorr().

◆ fgCorrYval

float cbm::algo::trd::HitFactory2D::fgCorrYval
static
Initial value:
= {{2.421729, 0.},
{0.629389, -0.215285},
{0.23958, 0.},
{0.151913, 0.054404}}

discretized correction LUT

Definition at line 118 of file HitFactory2D.h.

Referenced by GetYcorr().

◆ fSignal

◆ nCols

int cbm::algo::trd::HitFactory2D::nCols

Definition at line 35 of file HitFactory2D.h.

Referenced by RecenterXoffset().

◆ vcM

◆ viM

uint8_t cbm::algo::trd::HitFactory2D::viM = 0

◆ vrM

◆ vt0

◆ vyM


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