CbmRoot
|
Triangular pad module; Cluster finding and hit reconstruction algorithms. More...
#include <CbmTrdModuleRecT.h>
Public Types | |
enum | CbmTrdModuleRecTconfig { kVerbose = 0, kDraw } |
Public Member Functions | |
CbmTrdModuleRecT () | |
Default constructor. More... | |
CbmTrdModuleRecT (Int_t mod, Int_t ly=-1, Int_t rot=0) | |
Constructor with placement. More... | |
virtual | ~CbmTrdModuleRecT () |
virtual Bool_t | AddDigi (const CbmTrdDigi *d, Int_t id) |
Add digi to local module. More... | |
virtual void | Config (Bool_t v, Bool_t d) |
Config task with the following settings. More... | |
virtual Int_t | GetOverThreshold () const |
Count RO channels (R or T) with data. More... | |
virtual Bool_t | Finalize () |
Finalize hits (merge RC hits, etc) More... | |
virtual Int_t | FindClusters () |
Finalize clusters. More... | |
virtual Bool_t | MakeHits () |
Steering routine for building hits. More... | |
virtual CbmTrdHit * | MakeHit (Int_t cId, const CbmTrdCluster *c, std::vector< const CbmTrdDigi * > *digis) |
Steering routine for converting cluster to hit. More... | |
virtual void | Clear (Option_t *opt="") |
Clear local storage. More... | |
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]. More... | |
virtual Double_t | GetDy () const |
Shortcut getter size y/2 [cm]. More... | |
virtual Double_t | GetDz () const |
Shortcut getter size z/2 [cm]. More... | |
virtual Int_t | GetNasics () const |
Shortcut getter ASICs number module wise. More... | |
virtual Int_t | GetNcols () const |
Shortcut getter column size. More... | |
virtual Int_t | GetNrows () const |
Shortcut getter row wise. More... | |
virtual Int_t | GetAsicAddress (Int_t id) const |
Addressing ASIC on module based on id. More... | |
virtual Int_t | GetPadAddress (Int_t r, Int_t c) const |
Addressing read-out pads on module based on (row,col) More... | |
virtual Int_t | GetPadRowCol (Int_t address, Int_t &c) const |
Addressing read-out pads based on module address. More... | |
virtual const Char_t * | GetPath () const |
virtual void | LocalToMaster (Double_t in[3], Double_t out[3]) |
virtual void | SetAsicPar (CbmTrdParSetAsic *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 More... | |
TClonesArray * | fClusters |
module wise storage of reconstructed cluster More... | |
TClonesArray * | fHits |
module wise storage of reconstructed hits More... | |
UShort_t | fModAddress |
unique identifier for current module More... | |
Char_t | fLayerId |
layer identifier More... | |
UChar_t | fRotation |
rotation angle for current module More... | |
const CbmTrdParModDigi * | fDigiPar |
read-out description of module More... | |
const CbmTrdParModGas * | fChmbPar |
detection description (HV, drift) of module More... | |
CbmTrdParSetAsic * | fAsicPar |
the set of ASIC operating on the module (owned) More... | |
const CbmTrdParModGain * | fGainPar |
Analog to digital conversion for module. More... | |
const CbmTrdParModGeo * | fGeoPar |
link to gGeometry for module More... | |
Private Member Functions | |
CbmTrdModuleRecT (const CbmTrdModuleRecT &ref) | |
const CbmTrdModuleRecT & | operator= (const CbmTrdModuleRecT &ref) |
Bool_t | CDRAW () const |
Bool_t | CWRITE () const |
Double_t | GetXoffset (Int_t n0) const |
Double_t | GetYoffset (Int_t n0) const |
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. More... | |
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. More... | |
Private Attributes | |
UChar_t | fConfigMap |
ULong64_t | fT0 |
std::map< Int_t, std::list< CbmTrdCluster * > > | fBuffer |
start time of event/time slice [clk] More... | |
std::vector< Double_t > | vs |
std::vector< Double_t > | vse |
working copy of signals from cluster More... | |
std::vector< Char_t > | vt |
working copy of signal errors from cluster More... | |
std::vector< Double_t > | vx |
working copy of signal relative timing More... | |
std::vector< Double_t > | vxe |
working copy of signal relative positions More... | |
Static Private Attributes | |
static Float_t | fgCorrXdx = 0.005 |
working copy of signal relative position errors More... | |
static Float_t | fgCorrXval [2][NBINSCORRX] |
step of the discretized correction LUT More... | |
static Float_t | fgCorrYval [NBINSCORRY][2] |
discretized correction LUT More... | |
static Double_t | fgDT [3] = {4.181e-6, 1586, 24} |
discretized correction params More... | |
static TGraphErrors * | fgEdep = NULL |
FASP delay wrt signal. More... | |
static TF1 * | fgPRF = NULL |
data handler for cluster PRF More... | |
static TGraphErrors * | fgT = NULL |
fitter for cluster PRF More... | |
Triangular pad module; Cluster finding and hit reconstruction algorithms.
Definition at line 16 of file CbmTrdModuleRecT.h.
Enumerator | |
---|---|
kVerbose | |
kDraw |
Definition at line 18 of file CbmTrdModuleRecT.h.
CbmTrdModuleRecT::CbmTrdModuleRecT | ( | ) |
Default constructor.
Definition at line 28 of file CbmTrdModuleRecT.cxx.
CbmTrdModuleRecT::CbmTrdModuleRecT | ( | Int_t | mod, |
Int_t | ly = -1 , |
||
Int_t | rot = 0 |
||
) |
Constructor with placement.
Definition at line 40 of file CbmTrdModuleRecT.cxx.
|
virtual |
Definition at line 56 of file CbmTrdModuleRecT.cxx.
|
private |
|
virtual |
Add digi to local module.
Reimplemented from CbmTrdModuleRec.
Definition at line 59 of file CbmTrdModuleRecT.cxx.
References CWRITE(), d, fBuffer, CbmTrdModuleAbstract::fModAddress, fT0, CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdCluster::SetProfileStart(), CbmTrdCluster::SetProfileStop(), CbmTrdCluster::SetTrianglePads(), and CbmTrdCluster::ToString().
|
inlineprivate |
Definition at line 56 of file CbmTrdModuleRecT.h.
References fConfigMap, and kDraw.
|
virtualinherited |
Clear local storage.
Reimplemented in CbmTrdModuleRecR.
Definition at line 32 of file CbmTrdModuleRec.cxx.
References CbmTrdModuleRec::fCalled, CbmTrdModuleRec::fClusters, and CbmTrdModuleRec::fHits.
Referenced by CbmTrdModuleRecR::Clear().
|
inlinevirtual |
Config task with the following settings.
[in] | v | verbosity toggle |
[in] | d | drawing toggle |
Definition at line 107 of file CbmTrdModuleRecT.h.
References CDRAW(), CWRITE(), d, fConfigMap, kDraw, kVerbose, and v.
|
inlineprivate |
Definition at line 57 of file CbmTrdModuleRecT.h.
References fConfigMap, and kVerbose.
Referenced by AddDigi(), Config(), FindClusters(), LoadDigis(), MakeHit(), and MergeDigis().
|
virtual |
Finalize hits (merge RC hits, etc)
Reimplemented from CbmTrdModuleRec.
Definition at line 208 of file CbmTrdModuleRecT.cxx.
|
virtual |
Finalize clusters.
Implements CbmTrdModuleRec.
Definition at line 157 of file CbmTrdModuleRecT.cxx.
References CWRITE(), fBuffer, and CbmTrdCluster::SetTrianglePads().
|
inlinevirtualinherited |
Addressing ASIC on module based on id.
[in] | id | module wise ASIC identifier |
Definition at line 49 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fModAddress.
|
inlinevirtualinherited |
Definition at line 48 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fClusters.
Referenced by CbmTrdClusterFinder::Exec().
|
inlinevirtualinherited |
Definition at line 49 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fClusters.
|
inlinevirtualinherited |
Shortcut getter size x/2 [cm].
Definition at line 28 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDX().
Referenced by CbmTrdModuleSimR::SetAsicPar().
|
inlinevirtualinherited |
Shortcut getter size y/2 [cm].
Definition at line 30 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDY().
Referenced by CbmTrdModuleSimR::SetAsicPar().
|
inlinevirtualinherited |
Shortcut getter size z/2 [cm].
Definition at line 32 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDZ().
|
inlinevirtualinherited |
Definition at line 50 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fHits.
Referenced by CbmTrdHitProducer::Exec().
|
inlinevirtualinherited |
Definition at line 51 of file CbmTrdModuleRec.h.
References CbmTrdModuleRec::fHits.
|
inlinevirtualinherited |
Shortcut getter ASICs number module wise.
Definition at line 34 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fAsicPar, and CbmTrdParSetAsic::GetNofAsics().
|
inlinevirtualinherited |
Shortcut getter column size.
Definition at line 38 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fDigiPar, and CbmTrdParModDigi::GetNofColumns().
Referenced by CbmTrdModuleAbstract::GetPadAddress(), and CbmTrdModuleAbstract::GetPadRowCol().
|
inlinevirtualinherited |
Shortcut getter row wise.
Definition at line 42 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 142 of file CbmTrdModuleRecT.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 57 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::GetNcols().
Referenced by CbmTrdModuleSimT::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 100 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fDigiPar, and CbmTrdModuleAbstract::GetNcols().
Referenced by AddDigi(), CbmTrdModuleSimT::FlushBuffer(), LoadDigis(), MakeHit(), and MergeDigis().
|
inlinevirtualinherited |
Definition at line 66 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar.
Referenced by CbmTrdDigitizer::AddModule(), CbmTrdModuleSimR::MakeDigi(), and CbmTrdModuleSimT::MakeDigi().
|
private |
|
private |
|
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 |
Definition at line 684 of file CbmTrdModuleRecT.cxx.
References CWRITE(), CbmTrdDigi::GetAddressChannel(), CbmTrdFASP::GetBaselineCorr(), CbmTrdDigi::GetCharge(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdDigi::GetTimeDAQ(), i, max(), CbmTrdDigi::ToString(), vs, vse, vt, vx, and vxe.
Referenced by MakeHit().
|
virtualinherited |
Definition at line 33 of file CbmTrdModuleAbstract.cxx.
References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::LocalToMaster().
Referenced by CbmTrdModuleRecR::MakeHit(), and MakeHit().
|
virtual |
Steering routine for converting cluster to hit.
Implements CbmTrdModuleRec.
Definition at line 234 of file CbmTrdModuleRecT.cxx.
References CDRAW(), CbmTrdDigi::Clk(), CWRITE(), f, CbmTrdModuleAbstract::fDigiPar, fgCorrXdx, fgCorrXval, fgCorrYval, fgDT, fgEdep, fgPRF, fgT, CbmTrdModuleRec::fHits, CbmTrdModuleAbstract::fModAddress, fT0, CbmTrdCluster::GetNCols(), CbmTrdParModDigi::GetPadPosition(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdParModDigi::GetPadSizeX(), CbmTrdParModDigi::GetPadSizeY(), CbmTrdParModDigi::GetSectorRow(), CbmTrdCluster::GetStartCh(), CbmTrdCluster::GetStartTime(), GetXoffset(), GetYoffset(), CbmTrdCluster::HasOpenStart(), CbmTrdCluster::HasOpenStop(), i, CbmTrdDigi::kFASP, LoadDigis(), CbmTrdModuleAbstract::LocalToMaster(), max(), MergeDigis(), NANODE, NBINSCORRX, CbmTrdHit::SetClassType(), CbmTrdHit::SetMaxType(), CbmTrdHit::SetOverFlow(), CbmTrdHit::ToString(), CbmTrdCluster::ToString(), vs, vse, vt, vx, and vxe.
|
virtual |
Steering routine for building hits.
Implements CbmTrdModuleRec.
Definition at line 205 of file CbmTrdModuleRecT.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 823 of file CbmTrdModuleRecT.cxx.
References CWRITE(), CbmTrdDigi::GetAddressChannel(), CbmTrdDigi::GetCharge(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdDigi::GetTimeDAQ(), CbmTrdDigi::GetTriggerType(), CbmTrdDigi::SetCharge(), CbmTrdDigi::SetTriggerType(), and CbmTrdDigi::ToString().
Referenced by MakeHit().
|
private |
|
inlinevirtualinherited |
Reimplemented in CbmTrdModuleSimT, and CbmTrdModuleSimR.
Definition at line 70 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fAsicPar.
Referenced by CbmTrdHitProducer::AddModule(), and CbmTrdClusterFinder::AddModule().
|
inlinevirtualinherited |
Definition at line 71 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fChmbPar.
Referenced by CbmTrdHitProducer::AddModule(), and CbmTrdClusterFinder::AddModule().
|
inlinevirtualinherited |
Definition at line 72 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fDigiPar.
Referenced by CbmTrdHitProducer::AddModule(), and CbmTrdClusterFinder::AddModule().
|
inlinevirtualinherited |
Definition at line 73 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGainPar.
Referenced by CbmTrdHitProducer::AddModule(), and CbmTrdClusterFinder::AddModule().
|
inlinevirtualinherited |
Definition at line 74 of file CbmTrdModuleAbstract.h.
References CbmTrdModuleAbstract::fGeoPar.
Referenced by CbmTrdHitProducer::AddModule(), and CbmTrdClusterFinder::AddModule().
|
protectedinherited |
the set of ASIC operating on the module (owned)
Definition at line 87 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleSimT::FlushBuffer(), CbmTrdModuleAbstract::GetNasics(), CbmTrdModuleSimR::SetAsicPar(), CbmTrdModuleSimT::SetAsicPar(), CbmTrdModuleAbstract::SetAsicPar(), and CbmTrdModuleAbstract::~CbmTrdModuleAbstract().
|
private |
start time of event/time slice [clk]
Definition at line 86 of file CbmTrdModuleRecT.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 85 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleSimT::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(), and CbmTrdModuleRec::~CbmTrdModuleRec().
|
private |
Definition at line 83 of file CbmTrdModuleRecT.h.
|
protectedinherited |
read-out description of module
Definition at line 83 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleSimR::AddDigi(), CbmTrdModuleSimR::AddDigitoBuffer(), CbmTrdModuleSimR::AddDigitoPulseBuffer(), CbmTrdModuleSimR::CheckMulti(), CbmTrdModuleSimR::DistributeCharge(), CbmTrdModuleRecR::FindClusters(), CbmTrdModuleSimT::FlushBuffer(), CbmTrdModuleAbstract::GetNcols(), CbmTrdModuleAbstract::GetNrows(), CbmTrdModuleAbstract::GetPadRowCol(), CbmTrdModuleSimR::GetTotalSteps(), CbmTrdModuleSimR::MakeDigi(), CbmTrdModuleSimT::MakeDigi(), CbmTrdModuleRecR::MakeHit(), MakeHit(), CbmTrdModuleSimR::ProcessPulseBuffer(), CbmTrdModuleSimT::ScanPadPlane(), CbmTrdModuleSimR::ScanPadPlane(), CbmTrdModuleSimR::SetAsicPar(), and CbmTrdModuleAbstract::SetDigiPar().
|
protectedinherited |
Analog to digital conversion for module.
Definition at line 89 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleAbstract::SetGainPar().
|
staticprivate |
working copy of signal relative position errors
Definition at line 94 of file CbmTrdModuleRecT.h.
Referenced by MakeHit().
|
staticprivate |
step of the discretized correction LUT
Definition at line 95 of file CbmTrdModuleRecT.h.
Referenced by MakeHit().
|
staticprivate |
discretized correction LUT
Definition at line 96 of file CbmTrdModuleRecT.h.
Referenced by MakeHit().
|
staticprivate |
discretized correction params
Definition at line 97 of file CbmTrdModuleRecT.h.
Referenced by MakeHit().
|
staticprivate |
|
protectedinherited |
link to gGeometry for module
Definition at line 90 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 99 of file CbmTrdModuleRecT.h.
Referenced by MakeHit().
|
staticprivate |
|
protectedinherited |
module wise storage of reconstructed hits
Definition at line 67 of file CbmTrdModuleRec.h.
Referenced by CbmTrdModuleRec::Clear(), CbmTrdModuleRec::GetHits(), CbmTrdModuleRecR::MakeHit(), MakeHit(), and CbmTrdModuleRec::~CbmTrdModuleRec().
|
protectedinherited |
layer identifier
Definition at line 79 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleSimT::FlushBuffer(), CbmTrdModuleSimR::ScanPadPlane(), and CbmTrdModuleSimR::SetAsicPar().
|
protectedinherited |
unique identifier for current module
Definition at line 78 of file CbmTrdModuleAbstract.h.
Referenced by CbmTrdModuleRecR::addClusters(), CbmTrdModuleSimR::AddCrosstalk(), AddDigi(), CbmTrdModuleSimT::AddDigi(), CbmTrdModuleSimR::AddDigi(), CbmTrdModuleSimR::AddDigitoBuffer(), CbmTrdModuleSimR::CheckMulti(), CbmTrdModuleRecR::FindClusters(), CbmTrdModuleSimT::FlushBuffer(), CbmTrdModuleAbstract::GetAsicAddress(), CbmTrdModuleRecR::MakeHit(), MakeHit(), CbmTrdModuleSimR::ProcessPulseBuffer(), CbmTrdModuleSimR::ScanPadPlane(), CbmTrdModuleSimR::SetAsicPar(), and CbmTrdModuleSimT::SetAsicPar().
|
protectedinherited |
rotation angle for current module
Definition at line 80 of file CbmTrdModuleAbstract.h.
|
private |
Definition at line 84 of file CbmTrdModuleRecT.h.
|
private |
Definition at line 87 of file CbmTrdModuleRecT.h.
Referenced by GetXoffset(), GetYoffset(), LoadDigis(), and MakeHit().
|
private |
working copy of signals from cluster
Definition at line 88 of file CbmTrdModuleRecT.h.
Referenced by LoadDigis(), and MakeHit().
|
private |
working copy of signal errors from cluster
Definition at line 89 of file CbmTrdModuleRecT.h.
Referenced by LoadDigis(), and MakeHit().
|
private |
working copy of signal relative timing
Definition at line 90 of file CbmTrdModuleRecT.h.
Referenced by GetXoffset(), GetYoffset(), LoadDigis(), and MakeHit().
|
private |
working copy of signal relative positions
Definition at line 92 of file CbmTrdModuleRecT.h.
Referenced by GetXoffset(), GetYoffset(), LoadDigis(), and MakeHit().