CbmRoot
|
Cluster finding and hit reconstruction algorithms for the TRD(2D) module. More...
#include <CbmTrdModuleRec2D.h>
Public Types | |
enum | ECbmTrdModuleRec2D { kVerbCluster = 0 , kVerbReco = 1 , kDraw = 2 , kHelpers = 3 } |
Public Member Functions | |
CbmTrdModuleRec2D () | |
Default constructor. | |
CbmTrdModuleRec2D (Int_t mod, Int_t ly=-1, Int_t rot=0) | |
Constructor with placement. | |
virtual | ~CbmTrdModuleRec2D () |
virtual Bool_t | AddDigi (const CbmTrdDigi *d, Int_t id) |
Add digi to local module. | |
virtual void | DrawHit (CbmTrdHit *) const |
virtual Int_t | GetOverThreshold () const |
Count RO channels (R or T) with data. | |
virtual Bool_t | PreProcessHits () |
Check hit quality (deconvolute pile-ups, etc) | |
virtual Bool_t | PostProcessHits () |
Finalize hits (merge RC hits, etc) | |
virtual Int_t | FindClusters (bool clr) |
Finalize clusters. | |
virtual Bool_t | MakeHits () |
Steering routine for building hits. | |
virtual CbmTrdHit * | MakeHit (Int_t cId, const CbmTrdCluster *c, std::vector< const CbmTrdDigi * > *digis) |
Steering routine for converting cluster to hit. | |
Int_t | LoadDigis (vector< const CbmTrdDigi * > *din, Int_t cid) |
Load RAW digis into working array of RECO digis. | |
Int_t | ProjectDigis (Int_t cid, Int_t cjd=-1) |
Int_t | CheckMerge (Int_t cid, Int_t cjd) |
Implement topologic cuts for hit merging. | |
Bool_t | MergeHits (CbmTrdHit *h, Int_t a0) |
Algorithm for hit merging. | |
Bool_t | BuildHit (CbmTrdHit *h) |
UShort_t | GetHitMap () const |
Double_t | GetXcorr (Double_t dx, Int_t typ, Int_t cls=0) const |
x position correction based on LUT | |
Double_t | GetYcorr (Double_t dy, Int_t cls=0) const |
y position correction based on LUT | |
void | RecenterXoffset (Double_t &dx) |
Shift graph representation to [-0.5, 0.5]. | |
void | RecenterYoffset (Double_t &dy) |
Shift graph representation to [-0.5, 0.5]. | |
Int_t | GetHitClass () const |
Hit classification wrt center pad. | |
Int_t | GetHitRcClass (Int_t a0) const |
Hit classification wrt signal bias. | |
void | SetUseHelpers (bool use=true) |
Steer usage of helper graphs for computing time and energy per hit. A cost wrt the additional performance vs. CPU has to be performed. | |
void | SetHitTimeOffset (int dt) |
Time offset to synchronize TRD2D hits to the rest of detectors. | |
virtual void | Clear (Option_t *opt="") |
Clear local storage. | |
virtual TClonesArray * | GetClusters () |
virtual const TClonesArray * | GetClusters () const |
virtual TClonesArray * | GetHits () |
virtual const TClonesArray * | GetHits () const |
virtual Double_t | GetDx () const |
Shortcut getter size x/2 [cm]. | |
virtual Double_t | GetDy () const |
Shortcut getter size y/2 [cm]. | |
virtual Double_t | GetDz () const |
Shortcut getter size z/2 [cm]. | |
virtual Int_t | GetNasics () const |
Shortcut getter ASICs number module wise. | |
virtual Int_t | GetNcols () const |
Shortcut getter column size. | |
virtual Int_t | GetNrows () const |
Shortcut getter row wise. | |
virtual Int_t | GetAsicAddress (Int_t id) const |
Addressing ASIC on module based on id. | |
virtual Int_t | GetPadAddress (Int_t r, Int_t c) const |
Addressing read-out pads on module based on (row,col) | |
virtual Int_t | GetPadRowCol (Int_t address, Int_t &c) const |
Addressing read-out pads based on module address. | |
virtual const Char_t * | GetPath () const |
bool | IsChannelMasked (int ch) const |
Inquire the ASIC par set. | |
virtual void | LocalToMaster (Double_t in[3], Double_t out[3]) |
virtual void | SetAsicPar (CbmTrdParModAsic *p=nullptr) |
virtual void | SetChmbPar (const CbmTrdParModGas *p) |
virtual void | SetDigiPar (const CbmTrdParModDigi *p) |
virtual void | SetGainPar (const CbmTrdParModGain *p) |
virtual void | SetGeoPar (const CbmTrdParModGeo *p) |
Protected Attributes | |
UInt_t | fCalled |
counter for the number of calls | |
TClonesArray * | fClusters |
module wise storage of reconstructed cluster | |
TClonesArray * | fHits |
module wise storage of reconstructed hits | |
UShort_t | fModAddress = 0 |
unique identifier for current module | |
Char_t | fLayerId = -1 |
layer identifier | |
UChar_t | fRotation = 0 |
rotation angle for current module | |
const CbmTrdParModDigi * | fDigiPar = nullptr |
read-out description of module | |
const CbmTrdParModGas * | fChmbPar = nullptr |
detection description (HV, drift) of module | |
CbmTrdParModAsic * | fAsicPar = nullptr |
the set of ASIC operating on the module (owned) | |
const CbmTrdParModGain * | fGainPar = nullptr |
Analog to digital conversion for module. | |
const CbmTrdParModGeo * | fGeoPar = nullptr |
link to gGeometry for module | |
Private Member Functions | |
CbmTrdModuleRec2D (const CbmTrdModuleRec2D &ref) | |
const CbmTrdModuleRec2D & | operator= (const CbmTrdModuleRec2D &ref) |
virtual void | Config (Bool_t vcl, Bool_t vrc, Bool_t dw) |
Config task with the following settings. | |
Bool_t | CDRAW () const |
Bool_t | CWRITE (int level) const |
Bool_t | CHELPERS () const |
int | AddClusterEdges (CbmTrdCluster *cl) |
Add left and right edge channels to the cluster in case this are masked channels. | |
Bool_t | CheckConvolution (CbmTrdHit *h) const |
Implement cuts for hit convolution definition. | |
Bool_t | Deconvolute (CbmTrdHit *h) |
Algorithm for cluster spliting. | |
Double_t | GetXoffset (Int_t n0=0) const |
Double_t | GetYoffset (Int_t n0=0) const |
const CbmTrdParFaspChannel * | GetFaspChCalibrator (uint16_t ch) const |
Retrive FASP ch calibrator by RO ch number in the module. | |
Int_t | LoadDigis (std::vector< const CbmTrdDigi * > *digis, std::vector< CbmTrdDigi * > *vdgM, std::vector< Bool_t > *vmask, ULong64_t &t0, Int_t &cM) |
Load digis info into local data structures. | |
Int_t | LoadDigisRC (vector< const CbmTrdDigi * > *digis, const Int_t r0, const Int_t a0, ULong64_t &t0, Int_t &cM) |
Bool_t | MergeDigis (std::vector< const CbmTrdDigi * > *digis, std::vector< CbmTrdDigi * > *vdgM, std::vector< Bool_t > *vmask) |
Merge R/T signals to digis if topological conditions in cluster are fulfilled. | |
Bool_t | HasLeftSgn () const |
Bool_t | HasOvf () const |
Bool_t | IsBiasX () const |
Bool_t | IsBiasXleft () const |
Bool_t | IsBiasXmid () const |
Bool_t | IsBiasXright () const |
Bool_t | IsBiasY () const |
Bool_t | IsBiasYleft () const |
Bool_t | IsLeftHit () const |
Bool_t | IsMaxTilt () const |
Bool_t | IsOpenLeft () const |
Bool_t | IsOpenRight () const |
Bool_t | IsSymmHit () const |
void | SetBiasX (Bool_t set=1) |
void | SetBiasXleft (Bool_t set=1) |
void | SetBiasXmid (Bool_t set=1) |
void | SetBiasXright (Bool_t set=1) |
void | SetBiasY (Bool_t set=1) |
void | SetBiasYleft (Bool_t set=1) |
void | SetBiasYmid (Bool_t set=1) |
void | SetBiasYright (Bool_t set=1) |
void | SetLeftSgn (Bool_t set=1) |
void | SetLeftHit (Bool_t set=1) |
void | SetSymmHit (Bool_t set=1) |
void | SetMaxTilt (Bool_t set=1) |
void | SetOvf (Bool_t set=1) |
Private Attributes | |
UChar_t | fConfigMap = 0 |
ULong64_t | fT0 = 0 |
task configuration settings | |
UInt_t | fTimeLast = 0 |
start time of event/time slice [clk] | |
UInt_t | fTimeWinKeep = 11 |
time of last digi processed in module [clk] | |
std::map< Int_t, std::list< CbmTrdCluster * > > | fBuffer |
time interval to still keep clusters in buffer [clk] | |
std::map< Int_t, vector< CbmTrdDigiRec * > > | fDigis |
ULong64_t | vt0 = 0 |
cluster-wise organized calibrated digi | |
UChar_t | vcM = 0 |
start time of current hit [clk] | |
UChar_t | vrM = 0 |
maximum col | |
UChar_t | viM = 0 |
maximum row | |
UShort_t | vyM = 0 |
index of maximum signal in the projection | |
int | fHitTimeOff = 0 |
bit map for cluster topology classification | |
std::vector< Double_t > | vs |
hit time offset for synchronization | |
std::vector< Double_t > | vse |
working copy of signals from cluster | |
std::vector< Char_t > | vt |
working copy of signal errors from cluster | |
std::vector< Double_t > | vx |
working copy of signal relative timing | |
std::vector< Double_t > | vxe |
working copy of signal relative positions | |
Static Private Attributes | |
static Float_t | fgCorrXdx = 0.01 |
working copy of signal relative position errors | |
static Float_t | fgCorrXval [3][NBINSCORRX] |
step of the discretized correction LUT | |
static Float_t | fgCorrYval [NBINSCORRY][2] |
discretized correction LUT | |
static Float_t | fgCorrRcXval [2][NBINSCORRX] |
discretized correction params | |
static Float_t | fgCorrRcXbiasXval [3][NBINSCORRX] |
discretized correction LUT | |
static Double_t | fgDT [3] = {4.181e-6, 1586, 24} |
discretized correction LUT | |
static TGraphErrors * | fgEdep = nullptr |
FASP delay wrt signal. | |
static TF1 * | fgPRF = nullptr |
data handler for cluster PRF | |
static TGraphErrors * | fgT = nullptr |
fitter for cluster PRF | |
Cluster finding and hit reconstruction algorithms for the TRD(2D) module.
Extend the TRD module reconstructor for the particular case of inner TRD-2D modules. The class is a collection of algorithms to :
Definition at line 37 of file CbmTrdModuleRec2D.h.
Definition at line 39 of file CbmTrdModuleRec2D.h.
CbmTrdModuleRec2D::CbmTrdModuleRec2D | ( | ) |
Default constructor.
Definition at line 34 of file CbmTrdModuleRec2D.cxx.
CbmTrdModuleRec2D::CbmTrdModuleRec2D | ( | Int_t | mod, |
Int_t | ly = -1, | ||
Int_t | rot = 0 ) |
Constructor with placement.
Definition at line 37 of file CbmTrdModuleRec2D.cxx.
|
virtual |
Definition at line 44 of file CbmTrdModuleRec2D.cxx.
|
private |
|
private |
Add left and right edge channels to the cluster in case this are masked channels.
Definition at line 174 of file CbmTrdModuleRec2D.cxx.
References CbmTrdCluster::AddChannel(), CbmTrdCluster::GetEndCh(), GetFaspChCalibrator(), CbmTrdModuleAbstract::GetNcols(), CbmTrdCluster::GetStartCh(), CbmTrdParFaspChannel::IsMasked(), NFASPCH, and NFASPMOD.
|
virtual |
Add digi to local module.
Add digi to cluster fragments. At first clusters are ordered on pad rows and time. No channel ordering is assumed. The time condition for a digi to enter a cluster chunk is to have abs(dt)<5 wrt cluster t0
Reimplemented from CbmTrdModuleRec.
Definition at line 47 of file CbmTrdModuleRec2D.cxx.
References CWRITE(), CbmTrdModuleAbstract::fAsicPar, fBuffer, CbmTrdModuleAbstract::fModAddress, fT0, fTimeLast, CbmTrdDigi::GetAddressChannel(), CbmTrdDigi::GetCharge(), CbmTrdParModAsic::GetFaspChannelPar(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdDigi::GetTimeDAQ(), CbmTrdDigi::GetType(), CbmTrdParFaspChannel::IsMasked(), CbmTrdDigi::kFASP, CbmTrdParFaspChannel::Print(), CbmTrdCluster::SetFaspDigis(), CbmTrdCluster::ToString(), and CbmTrdDigi::ToString().
Bool_t CbmTrdModuleRec2D::BuildHit | ( | CbmTrdHit * | h | ) |
Definition at line 622 of file CbmTrdModuleRec2D.cxx.
References CbmTrdDigi::Clk(), CWRITE(), CbmTrdModuleAbstract::fDigiPar, fgDT, fgEdep, fgPRF, fgT, fHitTimeOff, GetHitClass(), CbmTrdParModDigi::GetPadPosition(), CbmTrdParModDigi::GetPadSizeX(), CbmTrdParModDigi::GetPadSizeY(), CbmTrdParModDigi::GetSectorRow(), GetXcorr(), GetXoffset(), GetYcorr(), GetYoffset(), HasOvf(), IsMaxTilt(), IsOpenLeft(), IsOpenRight(), IsSymmHit(), CbmTrdDigi::kFASP, CbmTrdModuleAbstract::LocalToMaster(), NANODE, RecenterXoffset(), RecenterYoffset(), vcM, viM, vrM, vs, vse, vt, vt0, vx, and vxe.
Referenced by MakeHit().
|
inlineprivate |
Definition at line 141 of file CbmTrdModuleRec2D.h.
References fConfigMap, kDraw, and TESTBIT.
|
private |
Implement cuts for hit convolution definition.
[in] | h | hit to be analysed. |
Definition at line 281 of file CbmTrdModuleRec2D.cxx.
Referenced by PreProcessHits().
Int_t CbmTrdModuleRec2D::CheckMerge | ( | Int_t | cid, |
Int_t | cjd ) |
Implement topologic cuts for hit merging.
Check topologic conditions if the 2 clusters (in digi representation) can be merged. The first pair is always from the bottom row return the anode candidate wrt boundary 1, 2, 3 for the first 3 anodes of the upper row; -1, -2, -3 for the bottom row (r0) or 0 if the check fails
Definition at line 352 of file CbmTrdModuleRec2D.cxx.
References fDigis, and CbmTrdModuleAbstract::GetPadRowCol().
Referenced by PostProcessHits().
|
inlineprivate |
Definition at line 149 of file CbmTrdModuleRec2D.h.
References fConfigMap, kHelpers, and TESTBIT.
Referenced by MakeHit().
|
virtualinherited |
Clear local storage.
Reimplemented in CbmTrdModuleRecR.
Definition at line 41 of file CbmTrdModuleRec.cxx.
References CbmTrdModuleRec::fCalled, CbmTrdModuleRec::fClusters, and CbmTrdModuleRec::fHits.
Referenced by CbmTrdModuleRecR::Clear().
|
inlineprivatevirtual |
Config task with the following settings.
[in] | vcl | toggle verbosity clusterizer |
[in] | vrc | toggle verbosity reconsructor |
[in] | dw | drawing toggle |
Definition at line 252 of file CbmTrdModuleRec2D.h.
References CDRAW(), CLRBIT, CWRITE(), fConfigMap, kDraw, kVerbCluster, kVerbReco, and SETBIT.
|
inlineprivate |
Definition at line 142 of file CbmTrdModuleRec2D.h.
References fConfigMap, kVerbCluster, kVerbReco, and TESTBIT.
Referenced by AddDigi(), BuildHit(), Config(), FindClusters(), LoadDigisRC(), MakeHit(), MergeDigis(), MergeHits(), PostProcessHits(), PreProcessHits(), and ProjectDigis().
|
private |
Algorithm for cluster spliting.
[in] | h | hit to be analysed. |
Definition at line 284 of file CbmTrdModuleRec2D.cxx.
Referenced by PreProcessHits().
|
inlinevirtual |
Definition at line 56 of file CbmTrdModuleRec2D.h.
Referenced by MakeHit().
|
virtual |
Finalize clusters.
Implements CbmTrdModuleRec.
Definition at line 200 of file CbmTrdModuleRec2D.cxx.
References CWRITE(), fBuffer, fTimeLast, fTimeWinKeep, and CbmTrdCluster::SetFaspDigis().
|
inlinevirtualinherited |
Addressing ASIC on module based on id.
[in] | id | module wise ASIC identifier |
Definition at line 59 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fModAddress.
|
inlinevirtualinherited |
Definition at line 50 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fClusters.
Referenced by CbmTrdClusterFinder::processDigisInModules().
|
inlinevirtualinherited |
Definition at line 51 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fClusters.
|
inlinevirtualinherited |
Shortcut getter size x/2 [cm].
Definition at line 44 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDX().
Referenced by CbmTrdModuleSimR::SetAsicPar().
|
inlinevirtualinherited |
Shortcut getter size y/2 [cm].
Definition at line 46 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDY().
Referenced by CbmTrdModuleSimR::SetAsicPar().
|
inlinevirtualinherited |
Shortcut getter size z/2 [cm].
Definition at line 48 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDZ().
|
private |
Retrive FASP ch calibrator by RO ch number in the module.
[in] | ch | channel id in the current module. |
Definition at line 161 of file CbmTrdModuleRec2D.cxx.
References CbmTrdModuleAbstract::fAsicPar, CbmTrdParModAsic::GetAsicAddress(), CbmTrdParModAsic::GetAsicPar(), and CbmTrdParFasp::GetChannel().
Referenced by AddClusterEdges().
Int_t CbmTrdModuleRec2D::GetHitClass | ( | ) | const |
Hit classification wrt center pad.
Incapsulate hit classification criteria based on signal topology [0] : center hit type [1] : side hit type
Definition at line 891 of file CbmTrdModuleRec2D.cxx.
References HasOvf(), IsMaxTilt(), IsSymmHit(), and vs.
Referenced by BuildHit(), and MergeHits().
|
inline |
Definition at line 87 of file CbmTrdModuleRec2D.h.
References vyM.
Int_t CbmTrdModuleRec2D::GetHitRcClass | ( | Int_t | a0 | ) | const |
Hit classification wrt signal bias.
Definition at line 908 of file CbmTrdModuleRec2D.cxx.
References IsBiasXleft(), IsBiasXmid(), IsBiasXright(), and vyM.
Referenced by MergeHits().
|
inlinevirtualinherited |
Definition at line 52 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fHits.
Referenced by CbmTrdHitProducer::addModuleHits().
|
inlinevirtualinherited |
Definition at line 53 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fHits.
|
inlinevirtualinherited |
Shortcut getter ASICs number module wise.
Definition at line 50 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fAsicPar, and CbmTrdParModAsic::GetNofAsics().
|
inlinevirtualinherited |
Shortcut getter column size.
Definition at line 52 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fDigiPar, and CbmTrdParModDigi::GetNofColumns().
Referenced by AddClusterEdges(), CbmTrdModuleAbstract::GetPadAddress(), CbmTrdModuleAbstract::GetPadRowCol(), and RecenterXoffset().
|
inlinevirtualinherited |
Shortcut getter row wise.
Definition at line 54 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fDigiPar, and CbmTrdParModDigi::GetNofRows().
|
virtual |
Count RO channels (R or T) with data.
Reimplemented from CbmTrdModuleRec.
Definition at line 150 of file CbmTrdModuleRec2D.cxx.
References fBuffer.
|
inlinevirtualinherited |
Addressing read-out pads on module based on (row,col)
[in] | r | global row id (not sector wise) |
[in] | c | global column id |
Definition at line 65 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::GetNcols().
Referenced by CbmTrdModuleSim2D::ScanPadPlane().
|
inlinevirtualinherited |
Addressing read-out pads based on module address.
[in] | address | pad address within module |
[in] | c | on return global column id |
Definition at line 107 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fDigiPar, and CbmTrdModuleAbstract::GetNcols().
Referenced by AddDigi(), CheckMerge(), CbmTrdModuleSim2D::FlushBuffer(), LoadDigis(), LoadDigisRC(), MergeDigis(), and ProjectDigis().
|
inlinevirtualinherited |
Definition at line 72 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar.
Referenced by CbmTrdDigitizer::AddModule(), CbmTrdModuleSim2D::MakeDigi(), and CbmTrdModuleSimR::MakeDigi().
Double_t CbmTrdModuleRec2D::GetXcorr | ( | Double_t | dx, |
Int_t | typ, | ||
Int_t | cls = 0 ) const |
x position correction based on LUT
[in] | dx | offset computed on charge sharing expressed in [pw] |
[in] | typ | hit type central pad [0] or edge [1] |
[in] | cls | correction class x wrt center [0] row-cross [1] row-cross biassed x [2] |
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 960 of file CbmTrdModuleRec2D.cxx.
References fgCorrRcXbiasXval, fgCorrRcXval, fgCorrXdx, fgCorrXval, and NBINSCORRX.
Referenced by BuildHit(), and MergeHits().
|
private |
Definition at line 928 of file CbmTrdModuleRec2D.cxx.
Referenced by BuildHit(), and MergeHits().
Double_t CbmTrdModuleRec2D::GetYcorr | ( | Double_t | dy, |
Int_t | cls = 0 ) const |
y position correction based on LUT
[in] | dy | offset computed on charge sharing expressed in [ph] |
[in] | cls | correction class |
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 997 of file CbmTrdModuleRec2D.cxx.
References fgCorrYval, IsLeftHit(), IsMaxTilt(), IsSymmHit(), and vs.
Referenced by BuildHit(), and MergeHits().
|
private |
Definition at line 943 of file CbmTrdModuleRec2D.cxx.
Referenced by BuildHit(), and MergeHits().
|
inlineprivate |
Definition at line 192 of file CbmTrdModuleRec2D.h.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 193 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), GetHitClass(), and MergeHits().
|
inlineprivate |
Definition at line 194 of file CbmTrdModuleRec2D.h.
Referenced by MergeHits(), and ProjectDigis().
|
inlineprivate |
Definition at line 195 of file CbmTrdModuleRec2D.h.
Referenced by GetHitRcClass(), MergeHits(), and ProjectDigis().
|
inlineprivate |
Definition at line 196 of file CbmTrdModuleRec2D.h.
Referenced by GetHitRcClass().
|
inlineprivate |
Definition at line 197 of file CbmTrdModuleRec2D.h.
Referenced by GetHitRcClass().
|
inlineprivate |
Definition at line 198 of file CbmTrdModuleRec2D.h.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 199 of file CbmTrdModuleRec2D.h.
Referenced by ProjectDigis().
|
inherited |
Inquire the ASIC par set.
Definition at line 30 of file CbmTrdModuleAbstract.cxx.
References CbmTrdModuleAbstract::fAsicPar, CbmTrdParModAsic::GetAsicPar(), and CbmTrdParAsic::IsChannelMasked().
|
inlineprivate |
Definition at line 200 of file CbmTrdModuleRec2D.h.
Referenced by GetYcorr(), and ProjectDigis().
|
inlineprivate |
Definition at line 201 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), GetHitClass(), GetYcorr(), IsOpenLeft(), IsOpenRight(), MergeHits(), and ProjectDigis().
|
inlineprivate |
Definition at line 202 of file CbmTrdModuleRec2D.h.
References IsMaxTilt(), and viM.
Referenced by BuildHit(), MergeHits(), and ProjectDigis().
|
inlineprivate |
Definition at line 271 of file CbmTrdModuleRec2D.h.
References IsMaxTilt(), viM, and vs.
Referenced by BuildHit(), MergeHits(), and ProjectDigis().
|
inlineprivate |
Definition at line 204 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), GetHitClass(), GetYcorr(), MergeHits(), and ProjectDigis().
|
private |
Load digis info into local data structures.
[in] | digis | initial digis list shrinked for incomplete digis. |
[in] | vdgM | list of merged digis |
[in] | vmask | position of merged digis in the digis list |
[in] | t0 | prompt time of cluster |
[out] | cM | relative position of maximum |
Int_t CbmTrdModuleRec2D::LoadDigis | ( | vector< const CbmTrdDigi * > * | din, |
Int_t | cid ) |
Load RAW digis into working array of RECO digis.
[in] | din | list of RAW digis in increasing order of column no |
[in] | cid | cluster index in the cluster array |
Load RAW digis info in calibration aware strucuture CbmTrdDigiReco Do basic sanity checks; also incomplete adjacent digi and if found merge them.
Definition at line 1088 of file CbmTrdModuleRec2D.cxx.
References fDigis, CbmTrdDigi::GetAddressChannel(), and CbmTrdModuleAbstract::GetPadRowCol().
Referenced by MakeHit().
|
private |
Load digis information for row-cross hits in working vectors. The digis as provided by the digitizer are replaced by the merged one (TODO) according to the vmask map. Digis are represented in the normal coordinate system of (pad width [pw], DAQ time [clk], signal [ADC chs]) with rectangular signals at integer positions.
TODO
Definition at line 1532 of file CbmTrdModuleRec2D.cxx.
References CWRITE(), CbmTrdModuleAbstract::fDigiPar, CbmTrdDigi::GetAddressChannel(), CbmTrdFASP::GetBaselineCorr(), CbmTrdDigi::GetCharge(), CbmTrdParModDigi::GetNofColumns(), CbmTrdModuleAbstract::GetPadRowCol(), max(), CbmTrdDigi::ToString(), vs, vse, vt, vx, and vxe.
|
virtualinherited |
Definition at line 39 of file CbmTrdModuleAbstract.cxx.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::LocalToMaster().
Referenced by BuildHit(), CbmTrdModuleRecR::MakeHit(), and MergeHits().
|
virtual |
Steering routine for converting cluster to hit.
Implements CbmTrdModuleRec.
Definition at line 837 of file CbmTrdModuleRec2D.cxx.
References BuildHit(), CDRAW(), CHELPERS(), CWRITE(), DrawHit(), fgEdep, fgPRF, fgT, CbmTrdModuleRec::fHits, CbmTrdModuleAbstract::fModAddress, CbmTrdCluster::HasFaspDigis(), LoadDigis(), ProjectDigis(), CbmHit::SetAddress(), CbmHit::SetRefId(), CbmTrdCluster::ToString(), and CbmTrdHit::ToString().
|
virtual |
Steering routine for building hits.
Implements CbmTrdModuleRec.
Definition at line 257 of file CbmTrdModuleRec2D.cxx.
|
private |
Merge R/T signals to digis if topological conditions in cluster are fulfilled.
[in] | digis | initial digis list. |
[out] | vdgM | list of merged digis |
[out] | vmask | position of merged digis in the output digis list |
Definition at line 1733 of file CbmTrdModuleRec2D.cxx.
References CWRITE(), CbmTrdDigi::GetAddressChannel(), CbmTrdDigi::GetCharge(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdDigi::GetTimeDAQ(), CbmTrdDigi::GetTriggerType(), CbmTrdDigi::SetCharge(), CbmTrdDigi::SetTriggerType(), and CbmTrdDigi::ToString().
Bool_t CbmTrdModuleRec2D::MergeHits | ( | CbmTrdHit * | h, |
Int_t | a0 ) |
Algorithm for hit merging.
[in] | h | hit to be modified by addition of hp. |
[in] | a0 | anode hypothesis around boundary (see CheckMerge function). |
Definition at line 471 of file CbmTrdModuleRec2D.cxx.
References CbmTrdDigi::Clk(), CWRITE(), CbmTrdModuleAbstract::fDigiPar, fHitTimeOff, GetHitClass(), GetHitRcClass(), CbmTrdParModDigi::GetPadPosition(), CbmTrdParModDigi::GetPadSizeX(), CbmTrdParModDigi::GetPadSizeY(), CbmTrdParModDigi::GetSectorRow(), GetXcorr(), GetXoffset(), GetYcorr(), GetYoffset(), HasOvf(), IsBiasX(), IsBiasXleft(), IsMaxTilt(), IsOpenLeft(), IsOpenRight(), IsSymmHit(), CbmTrdDigi::kFASP, CbmTrdModuleAbstract::LocalToMaster(), RecenterXoffset(), RecenterYoffset(), vcM, viM, vrM, vs, vt0, and vyM.
Referenced by PostProcessHits().
|
private |
|
virtual |
Finalize hits (merge RC hits, etc)
Steering routine for classifying hits and apply further analysis -> hit merging for row-cross (see RowCross)
Reimplemented from CbmTrdModuleRec.
Definition at line 287 of file CbmTrdModuleRec2D.cxx.
References CheckMerge(), CWRITE(), CbmTrdModuleAbstract::fDigiPar, fDigis, CbmTrdModuleRec::fHits, CbmTrdParModDigi::GetPadSizeX(), CbmTrdParModDigi::GetPadSizeY(), CbmHit::GetRefId(), CbmHit::GetTime(), CbmPixelHit::GetX(), CbmPixelHit::GetY(), CbmTrdHit::IsUsed(), MergeHits(), ProjectDigis(), and CbmTrdHit::ToString().
|
virtual |
Check hit quality (deconvolute pile-ups, etc)
Steering routine for classifying hits and apply further analysis -> hit deconvolution (see Deconvolute)
Reimplemented from CbmTrdModuleRec.
Definition at line 260 of file CbmTrdModuleRec2D.cxx.
References CheckConvolution(), CWRITE(), Deconvolute(), and CbmTrdModuleRec::fHits.
Int_t CbmTrdModuleRec2D::ProjectDigis | ( | Int_t | cid, |
Int_t | cjd = -1 ) |
Load digis information in working vectors Digis are represented in the normal coordinate system of (pad width [pw], DAQ time [clk], signal [ADC chs]) with rectangular signals at integer positions.
Definition at line 1126 of file CbmTrdModuleRec2D.cxx.
References CWRITE(), fDigis, CbmTrdDigi::GetAddressChannel(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdDigiRec::GetTiltCharge(), HasLeftSgn(), IsBiasX(), IsBiasXleft(), IsBiasY(), IsBiasYleft(), IsLeftHit(), IsMaxTilt(), IsOpenLeft(), IsOpenRight(), IsSymmHit(), max(), SetBiasX(), SetBiasXleft(), SetBiasXmid(), SetBiasXright(), SetBiasY(), SetBiasYleft(), SetBiasYmid(), SetBiasYright(), SetLeftHit(), SetLeftSgn(), SetMaxTilt(), SetOvf(), SetSymmHit(), CbmTrdDigi::ToString(), vcM, viM, vrM, vs, vse, vt, vt0, vx, vxe, and vyM.
Referenced by MakeHit(), and PostProcessHits().
void CbmTrdModuleRec2D::RecenterXoffset | ( | Double_t & | dx | ) |
Shift graph representation to [-0.5, 0.5].
[in] | dx | offset wrt center pad [pw] |
Shift graph representation to fit dx[pw] in [-0.5, 0.5]
Definition at line 1049 of file CbmTrdModuleRec2D.cxx.
References CbmTrdModuleAbstract::GetNcols(), vcM, and vx.
Referenced by BuildHit(), and MergeHits().
void CbmTrdModuleRec2D::RecenterYoffset | ( | Double_t & | dy | ) |
Shift graph representation to [-0.5, 0.5].
[in] | dy | offset wrt center pad [ph] |
Shift graph representation to fit dy[ph] in [-0.5, 0.5]
Definition at line 1070 of file CbmTrdModuleRec2D.cxx.
Referenced by BuildHit(), and MergeHits().
|
inlinevirtualinherited |
Reimplemented in CbmTrdModuleSim2D, and CbmTrdModuleSimR.
Definition at line 81 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fAsicPar.
|
inlineprivate |
Definition at line 205 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 206 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 207 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 208 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 209 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 210 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 211 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 212 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlinevirtualinherited |
Definition at line 82 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fChmbPar.
|
inlinevirtualinherited |
Definition at line 83 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fDigiPar.
|
inlinevirtualinherited |
Definition at line 84 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGainPar.
|
inlinevirtualinherited |
Definition at line 85 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar.
|
inline |
Time offset to synchronize TRD2D hits to the rest of detectors.
dt | offset in [ns] |
Definition at line 128 of file CbmTrdModuleRec2D.h.
References fHitTimeOff.
|
inlineprivate |
Definition at line 214 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 213 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 216 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 217 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inlineprivate |
Definition at line 215 of file CbmTrdModuleRec2D.h.
References CLRBIT, SETBIT, and vyM.
Referenced by ProjectDigis().
|
inline |
Steer usage of helper graphs for computing time and energy per hit. A cost wrt the additional performance vs. CPU has to be performed.
Definition at line 121 of file CbmTrdModuleRec2D.h.
References CLRBIT, fConfigMap, kHelpers, and SETBIT.
|
protectedinherited |
the set of ASIC operating on the module (owned)
Definition at line 95 of file CbmTrdModuleAbstract.h.
Referenced by AddDigi(), CbmTrdModuleSim2D::AddDigi(), CbmTrdModuleSim2D::FlushBuffer(), GetFaspChCalibrator(), CbmTrdModuleAbstract::GetNasics(), CbmTrdModuleAbstract::IsChannelMasked(), CbmTrdModuleAbstract::SetAsicPar(), CbmTrdModuleSim2D::SetAsicPar(), CbmTrdModuleSimR::SetAsicPar(), and CbmTrdModuleAbstract::~CbmTrdModuleAbstract().
|
private |
time interval to still keep clusters in buffer [clk]
Definition at line 223 of file CbmTrdModuleRec2D.h.
Referenced by AddDigi(), FindClusters(), and GetOverThreshold().
|
protectedinherited |
counter for the number of calls
Definition at line 65 of file CbmTrdModuleRec.h.
Referenced by CbmTrdModuleRec::Clear().
|
protectedinherited |
detection description (HV, drift) of module
Definition at line 94 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleSim2D::AddDigi(), CbmTrdModuleSim2D::MakeDigi(), and CbmTrdModuleAbstract::SetChmbPar().
|
protectedinherited |
module wise storage of reconstructed cluster
Definition at line 66 of file CbmTrdModuleRec.h.
Referenced by CbmTrdModuleRecR::addClusters(), CbmTrdModuleRec::Clear(), CbmTrdModuleRec::GetClusters(), CbmTrdModuleRec::GetClusters(), and CbmTrdModuleRec::~CbmTrdModuleRec().
|
private |
Definition at line 219 of file CbmTrdModuleRec2D.h.
Referenced by CDRAW(), CHELPERS(), Config(), CWRITE(), and SetUseHelpers().
|
protectedinherited |
read-out description of module
Definition at line 93 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleSimR::AddDigi(), CbmTrdModuleSimR::AddDigitoBuffer(), CbmTrdModuleSimR::AddDigitoPulseBuffer(), BuildHit(), CbmTrdModuleSimR::CheckMulti(), CbmTrdModuleSimR::DistributeCharge(), CbmTrdModuleRecR::FindClusters(), CbmTrdModuleSim2D::FlushBuffer(), CbmTrdModuleAbstract::GetNcols(), CbmTrdModuleAbstract::GetNrows(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdModuleSimR::GetTotalSteps(), CbmTrdModuleRecR::IsClusterComplete(), LoadDigisRC(), CbmTrdModuleSim2D::MakeDigi(), CbmTrdModuleSimR::MakeDigi(), CbmTrdModuleRecR::MakeHit(), MergeHits(), PostProcessHits(), CbmTrdModuleSimR::ProcessPulseBuffer(), CbmTrdModuleSim2D::ScanPadPlane(), CbmTrdModuleSimR::ScanPadPlane(), CbmTrdModuleSimR::SetAsicPar(), and CbmTrdModuleAbstract::SetDigiPar().
|
private |
Definition at line 224 of file CbmTrdModuleRec2D.h.
Referenced by CheckMerge(), LoadDigis(), PostProcessHits(), and ProjectDigis().
|
protectedinherited |
Analog to digital conversion for module.
Definition at line 96 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleAbstract::SetGainPar().
|
staticprivate |
discretized correction LUT
Definition at line 1816 of file CbmTrdModuleRec2D.h.
Referenced by GetXcorr().
|
staticprivate |
discretized correction params
Definition at line 1806 of file CbmTrdModuleRec2D.h.
Referenced by GetXcorr().
|
staticprivate |
working copy of signal relative position errors
Definition at line 238 of file CbmTrdModuleRec2D.h.
Referenced by GetXcorr().
|
staticprivate |
step of the discretized correction LUT
Definition at line 1789 of file CbmTrdModuleRec2D.h.
Referenced by GetXcorr().
|
staticprivate |
discretized correction LUT
Definition at line 1802 of file CbmTrdModuleRec2D.h.
Referenced by GetYcorr().
|
staticprivate |
discretized correction LUT
Definition at line 29 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit().
|
staticprivate |
FASP delay wrt signal.
Definition at line 244 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), and MakeHit().
|
protectedinherited |
link to gGeometry for module
Definition at line 97 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleAbstract::GetDx(), CbmTrdModuleAbstract::GetDy(), CbmTrdModuleAbstract::GetDz(), CbmTrdModuleAbstract::GetPath(), CbmTrdModuleAbstract::LocalToMaster(), and CbmTrdModuleAbstract::SetGeoPar().
|
staticprivate |
data handler for cluster PRF
Definition at line 245 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), and MakeHit().
|
staticprivate |
fitter for cluster PRF
Definition at line 246 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), and MakeHit().
|
protectedinherited |
module wise storage of reconstructed hits
Definition at line 67 of file CbmTrdModuleRec.h.
Referenced by CbmTrdModuleRec::Clear(), CbmTrdModuleRec::GetHits(), CbmTrdModuleRec::GetHits(), MakeHit(), CbmTrdModuleRecR::MakeHit(), PostProcessHits(), PreProcessHits(), and CbmTrdModuleRec::~CbmTrdModuleRec().
|
private |
bit map for cluster topology classification
Definition at line 231 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), MergeHits(), and SetHitTimeOffset().
|
protectedinherited |
layer identifier
Definition at line 89 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleAbstract::CbmTrdModuleAbstract(), CbmTrdModuleSim2D::FlushBuffer(), CbmTrdModuleSimR::ScanPadPlane(), and CbmTrdModuleSimR::SetAsicPar().
|
protectedinherited |
unique identifier for current module
Definition at line 88 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleRecR::addClusters(), CbmTrdModuleSimR::AddCrosstalk(), AddDigi(), CbmTrdModuleSim2D::AddDigi(), CbmTrdModuleSimR::AddDigi(), CbmTrdModuleSimR::AddDigitoBuffer(), CbmTrdModuleAbstract::CbmTrdModuleAbstract(), CbmTrdModuleSimR::CheckMulti(), CbmTrdModuleRecR::FindClusters(), CbmTrdModuleSim2D::FlushBuffer(), CbmTrdModuleAbstract::GetAsicAddress(), MakeHit(), CbmTrdModuleRecR::MakeHit(), CbmTrdModuleSimR::ProcessPulseBuffer(), CbmTrdModuleSimR::ScanPadPlane(), CbmTrdModuleSim2D::SetAsicPar(), and CbmTrdModuleSimR::SetAsicPar().
|
protectedinherited |
rotation angle for current module
Definition at line 90 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleAbstract::CbmTrdModuleAbstract().
|
private |
task configuration settings
Definition at line 220 of file CbmTrdModuleRec2D.h.
Referenced by AddDigi().
|
private |
start time of event/time slice [clk]
Definition at line 221 of file CbmTrdModuleRec2D.h.
Referenced by AddDigi(), and FindClusters().
|
private |
time of last digi processed in module [clk]
Definition at line 222 of file CbmTrdModuleRec2D.h.
Referenced by FindClusters().
|
private |
start time of current hit [clk]
Definition at line 227 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), MergeHits(), ProjectDigis(), and RecenterXoffset().
|
private |
maximum row
Definition at line 229 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), IsOpenLeft(), IsOpenRight(), MergeHits(), and ProjectDigis().
|
private |
maximum col
Definition at line 228 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), MergeHits(), and ProjectDigis().
|
private |
hit time offset for synchronization
Definition at line 232 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), GetHitClass(), GetXoffset(), GetYcorr(), GetYoffset(), IsOpenRight(), LoadDigisRC(), MergeHits(), and ProjectDigis().
|
private |
working copy of signals from cluster
Definition at line 233 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), LoadDigisRC(), and ProjectDigis().
|
private |
working copy of signal errors from cluster
Definition at line 234 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), LoadDigisRC(), and ProjectDigis().
|
private |
cluster-wise organized calibrated digi
Definition at line 226 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), MergeHits(), and ProjectDigis().
|
private |
working copy of signal relative timing
Definition at line 235 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), GetXoffset(), GetYoffset(), LoadDigisRC(), ProjectDigis(), and RecenterXoffset().
|
private |
working copy of signal relative positions
Definition at line 236 of file CbmTrdModuleRec2D.h.
Referenced by BuildHit(), GetXoffset(), GetYoffset(), LoadDigisRC(), and ProjectDigis().
|
private |
index of maximum signal in the projection
Definition at line 230 of file CbmTrdModuleRec2D.h.
Referenced by GetHitMap(), GetHitRcClass(), HasLeftSgn(), HasOvf(), IsBiasX(), IsBiasXleft(), IsBiasXmid(), IsBiasXright(), IsBiasY(), IsBiasYleft(), IsLeftHit(), IsMaxTilt(), IsSymmHit(), MergeHits(), ProjectDigis(), SetBiasX(), SetBiasXleft(), SetBiasXmid(), SetBiasXright(), SetBiasY(), SetBiasYleft(), SetBiasYmid(), SetBiasYright(), SetLeftHit(), SetLeftSgn(), SetMaxTilt(), SetOvf(), and SetSymmHit().