CbmRoot
CbmTrdModuleRecT Class Reference

Triangular pad module; Cluster finding and hit reconstruction algorithms. More...

#include <CbmTrdModuleRecT.h>

Inheritance diagram for CbmTrdModuleRecT:
[legend]
Collaboration diagram for CbmTrdModuleRecT:
[legend]

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 CbmTrdHitMakeHit (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 CbmTrdParModDigifDigiPar
 read-out description of module More...
 
const CbmTrdParModGasfChmbPar
 detection description (HV, drift) of module More...
 
CbmTrdParSetAsicfAsicPar
 the set of ASIC operating on the module (owned) More...
 
const CbmTrdParModGainfGainPar
 Analog to digital conversion for module. More...
 
const CbmTrdParModGeofGeoPar
 link to gGeometry for module More...
 

Private Member Functions

 CbmTrdModuleRecT (const CbmTrdModuleRecT &ref)
 
const CbmTrdModuleRecToperator= (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...
 

Detailed Description

Triangular pad module; Cluster finding and hit reconstruction algorithms.

Definition at line 16 of file CbmTrdModuleRecT.h.

Member Enumeration Documentation

◆ CbmTrdModuleRecTconfig

Enumerator
kVerbose 
kDraw 

Definition at line 18 of file CbmTrdModuleRecT.h.

Constructor & Destructor Documentation

◆ CbmTrdModuleRecT() [1/3]

CbmTrdModuleRecT::CbmTrdModuleRecT ( )

Default constructor.

Definition at line 28 of file CbmTrdModuleRecT.cxx.

◆ CbmTrdModuleRecT() [2/3]

CbmTrdModuleRecT::CbmTrdModuleRecT ( Int_t  mod,
Int_t  ly = -1,
Int_t  rot = 0 
)

Constructor with placement.

Definition at line 40 of file CbmTrdModuleRecT.cxx.

◆ ~CbmTrdModuleRecT()

CbmTrdModuleRecT::~CbmTrdModuleRecT ( )
virtual

Definition at line 56 of file CbmTrdModuleRecT.cxx.

◆ CbmTrdModuleRecT() [3/3]

CbmTrdModuleRecT::CbmTrdModuleRecT ( const CbmTrdModuleRecT ref)
private

Member Function Documentation

◆ AddDigi()

Bool_t CbmTrdModuleRecT::AddDigi ( const CbmTrdDigi d,
Int_t  id 
)
virtual

◆ CDRAW()

Bool_t CbmTrdModuleRecT::CDRAW ( ) const
inlineprivate

Definition at line 56 of file CbmTrdModuleRecT.h.

References fConfigMap, and kDraw.

Referenced by Config(), and MakeHit().

◆ Clear()

void CbmTrdModuleRec::Clear ( Option_t *  opt = "")
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().

◆ Config()

void CbmTrdModuleRecT::Config ( Bool_t  v,
Bool_t  d 
)
inlinevirtual

Config task with the following settings.

Parameters
[in]vverbosity toggle
[in]ddrawing toggle

Definition at line 107 of file CbmTrdModuleRecT.h.

References CDRAW(), CWRITE(), d, fConfigMap, kDraw, kVerbose, and v.

◆ CWRITE()

Bool_t CbmTrdModuleRecT::CWRITE ( ) const
inlineprivate

Definition at line 57 of file CbmTrdModuleRecT.h.

References fConfigMap, and kVerbose.

Referenced by AddDigi(), Config(), FindClusters(), LoadDigis(), MakeHit(), and MergeDigis().

◆ Finalize()

Bool_t CbmTrdModuleRecT::Finalize ( )
virtual

Finalize hits (merge RC hits, etc)

Reimplemented from CbmTrdModuleRec.

Definition at line 208 of file CbmTrdModuleRecT.cxx.

◆ FindClusters()

Int_t CbmTrdModuleRecT::FindClusters ( )
virtual

Finalize clusters.

Implements CbmTrdModuleRec.

Definition at line 157 of file CbmTrdModuleRecT.cxx.

References CWRITE(), fBuffer, and CbmTrdCluster::SetTrianglePads().

◆ GetAsicAddress()

virtual Int_t CbmTrdModuleAbstract::GetAsicAddress ( Int_t  id) const
inlinevirtualinherited

Addressing ASIC on module based on id.

Parameters
[in]idmodule wise ASIC identifier
Returns
ASIC address within experiment

Definition at line 49 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fModAddress.

◆ GetClusters() [1/2]

virtual TClonesArray* CbmTrdModuleRec::GetClusters ( )
inlinevirtualinherited

Definition at line 48 of file CbmTrdModuleRec.h.

References CbmTrdModuleRec::fClusters.

Referenced by CbmTrdClusterFinder::Exec().

◆ GetClusters() [2/2]

virtual const TClonesArray* CbmTrdModuleRec::GetClusters ( ) const
inlinevirtualinherited

Definition at line 49 of file CbmTrdModuleRec.h.

References CbmTrdModuleRec::fClusters.

◆ GetDx()

virtual Double_t CbmTrdModuleAbstract::GetDx ( ) const
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().

◆ GetDy()

virtual Double_t CbmTrdModuleAbstract::GetDy ( ) const
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().

◆ GetDz()

virtual Double_t CbmTrdModuleAbstract::GetDz ( ) const
inlinevirtualinherited

Shortcut getter size z/2 [cm].

Definition at line 32 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fGeoPar, and CbmTrdParModGeo::GetDZ().

◆ GetHits() [1/2]

virtual TClonesArray* CbmTrdModuleRec::GetHits ( )
inlinevirtualinherited

Definition at line 50 of file CbmTrdModuleRec.h.

References CbmTrdModuleRec::fHits.

Referenced by CbmTrdHitProducer::Exec().

◆ GetHits() [2/2]

virtual const TClonesArray* CbmTrdModuleRec::GetHits ( ) const
inlinevirtualinherited

Definition at line 51 of file CbmTrdModuleRec.h.

References CbmTrdModuleRec::fHits.

◆ GetNasics()

virtual Int_t CbmTrdModuleAbstract::GetNasics ( ) const
inlinevirtualinherited

Shortcut getter ASICs number module wise.

Definition at line 34 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fAsicPar, and CbmTrdParSetAsic::GetNofAsics().

◆ GetNcols()

virtual Int_t CbmTrdModuleAbstract::GetNcols ( ) const
inlinevirtualinherited

◆ GetNrows()

virtual Int_t CbmTrdModuleAbstract::GetNrows ( ) const
inlinevirtualinherited

Shortcut getter row wise.

Definition at line 42 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fDigiPar, and CbmTrdParModDigi::GetNofRows().

◆ GetOverThreshold()

Int_t CbmTrdModuleRecT::GetOverThreshold ( ) const
virtual

Count RO channels (R or T) with data.

Reimplemented from CbmTrdModuleRec.

Definition at line 142 of file CbmTrdModuleRecT.cxx.

References fBuffer.

◆ GetPadAddress()

virtual Int_t CbmTrdModuleAbstract::GetPadAddress ( Int_t  r,
Int_t  c 
) const
inlinevirtualinherited

Addressing read-out pads on module based on (row,col)

Parameters
[in]rglobal row id (not sector wise)
[in]cglobal column id
Returns
pad address within module

Definition at line 57 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::GetNcols().

Referenced by CbmTrdModuleSimT::ScanPadPlane().

◆ GetPadRowCol()

Int_t CbmTrdModuleAbstract::GetPadRowCol ( Int_t  address,
Int_t &  c 
) const
inlinevirtualinherited

Addressing read-out pads based on module address.

Parameters
[in]addresspad address within module
[in]con return global column id
Returns
global row address within module

Definition at line 100 of file CbmTrdModuleAbstract.h.

References CbmTrdModuleAbstract::fDigiPar, and CbmTrdModuleAbstract::GetNcols().

Referenced by AddDigi(), CbmTrdModuleSimT::FlushBuffer(), LoadDigis(), MakeHit(), and MergeDigis().

◆ GetPath()

virtual const Char_t* CbmTrdModuleAbstract::GetPath ( ) const
inlinevirtualinherited

◆ GetXoffset()

Double_t CbmTrdModuleRecT::GetXoffset ( Int_t  n0) const
private

Definition at line 657 of file CbmTrdModuleRecT.cxx.

References vs, vx, and vxe.

Referenced by MakeHit().

◆ GetYoffset()

Double_t CbmTrdModuleRecT::GetYoffset ( Int_t  n0) const
private

Definition at line 670 of file CbmTrdModuleRecT.cxx.

References vs, vx, and vxe.

Referenced by MakeHit().

◆ LoadDigis()

Int_t CbmTrdModuleRecT::LoadDigis ( std::vector< const CbmTrdDigi * > *  digis,
std::vector< CbmTrdDigi * > *  vdgM,
std::vector< Bool_t > *  vmask,
ULong64_t &  t0,
Int_t &  cM 
)
private

Load digis info into local data structures.

Parameters
[in]digisinitial digis list shrinked for incomplete digis.
[in]vdgMlist of merged digis
[in]vmaskposition of merged digis in the digis list
[in]t0prompt time of cluster
[out]cMrelative position of maximum
Returns
no of signals loaded. if detected overflow negative number

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().

◆ LocalToMaster()

void CbmTrdModuleAbstract::LocalToMaster ( Double_t  in[3],
Double_t  out[3] 
)
virtualinherited

◆ MakeHit()

◆ MakeHits()

Bool_t CbmTrdModuleRecT::MakeHits ( )
virtual

Steering routine for building hits.

Implements CbmTrdModuleRec.

Definition at line 205 of file CbmTrdModuleRecT.cxx.

◆ MergeDigis()

Bool_t CbmTrdModuleRecT::MergeDigis ( std::vector< const CbmTrdDigi * > *  digis,
std::vector< CbmTrdDigi * > *  vdgM,
std::vector< Bool_t > *  vmask 
)
private

Merge R/T signals to digis if topological conditions in cluster are fulfilled.

Parameters
[in]digisinitial digis list.
[out]vdgMlist of merged digis
[out]vmaskposition of merged digis in the output digis list
Returns
If successful the digis are resized by removing the references to incomplete clusters

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().

◆ operator=()

const CbmTrdModuleRecT& CbmTrdModuleRecT::operator= ( const CbmTrdModuleRecT ref)
private

◆ SetAsicPar()

virtual void CbmTrdModuleAbstract::SetAsicPar ( CbmTrdParSetAsic p = nullptr)
inlinevirtualinherited

◆ SetChmbPar()

virtual void CbmTrdModuleAbstract::SetChmbPar ( const CbmTrdParModGas p)
inlinevirtualinherited

◆ SetDigiPar()

virtual void CbmTrdModuleAbstract::SetDigiPar ( const CbmTrdParModDigi p)
inlinevirtualinherited

◆ SetGainPar()

virtual void CbmTrdModuleAbstract::SetGainPar ( const CbmTrdParModGain p)
inlinevirtualinherited

◆ SetGeoPar()

virtual void CbmTrdModuleAbstract::SetGeoPar ( const CbmTrdParModGeo p)
inlinevirtualinherited

Member Data Documentation

◆ fAsicPar

◆ fBuffer

std::map<Int_t, std::list<CbmTrdCluster*> > CbmTrdModuleRecT::fBuffer
private

start time of event/time slice [clk]

Definition at line 86 of file CbmTrdModuleRecT.h.

Referenced by AddDigi(), FindClusters(), and GetOverThreshold().

◆ fCalled

UInt_t CbmTrdModuleRec::fCalled
protectedinherited

counter for the number of calls

Definition at line 65 of file CbmTrdModuleRec.h.

Referenced by CbmTrdModuleRec::Clear().

◆ fChmbPar

const CbmTrdParModGas* CbmTrdModuleAbstract::fChmbPar
protectedinherited

detection description (HV, drift) of module

Definition at line 85 of file CbmTrdModuleAbstract.h.

Referenced by CbmTrdModuleSimT::MakeDigi(), and CbmTrdModuleAbstract::SetChmbPar().

◆ fClusters

TClonesArray* CbmTrdModuleRec::fClusters
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().

◆ fConfigMap

UChar_t CbmTrdModuleRecT::fConfigMap
private

Definition at line 83 of file CbmTrdModuleRecT.h.

Referenced by CDRAW(), Config(), and CWRITE().

◆ fDigiPar

◆ fGainPar

const CbmTrdParModGain* CbmTrdModuleAbstract::fGainPar
protectedinherited

Analog to digital conversion for module.

Definition at line 89 of file CbmTrdModuleAbstract.h.

Referenced by CbmTrdModuleAbstract::SetGainPar().

◆ fgCorrXdx

Float_t CbmTrdModuleRecT::fgCorrXdx = 0.005
staticprivate

working copy of signal relative position errors

Definition at line 94 of file CbmTrdModuleRecT.h.

Referenced by MakeHit().

◆ fgCorrXval

Float_t CbmTrdModuleRecT::fgCorrXval
staticprivate

step of the discretized correction LUT

Definition at line 95 of file CbmTrdModuleRecT.h.

Referenced by MakeHit().

◆ fgCorrYval

Float_t CbmTrdModuleRecT::fgCorrYval
staticprivate
Initial value:
= {{2.421729, 0.},
{1.537359, 0.483472},
{1.1752, 0.},
{1.154183, -0.090229}}

discretized correction LUT

Definition at line 96 of file CbmTrdModuleRecT.h.

Referenced by MakeHit().

◆ fgDT

Double_t CbmTrdModuleRecT::fgDT = {4.181e-6, 1586, 24}
staticprivate

discretized correction params

Definition at line 97 of file CbmTrdModuleRecT.h.

Referenced by MakeHit().

◆ fgEdep

TGraphErrors * CbmTrdModuleRecT::fgEdep = NULL
staticprivate

FASP delay wrt signal.

Definition at line 98 of file CbmTrdModuleRecT.h.

Referenced by MakeHit().

◆ fGeoPar

◆ fgPRF

TF1 * CbmTrdModuleRecT::fgPRF = NULL
staticprivate

data handler for cluster PRF

Definition at line 99 of file CbmTrdModuleRecT.h.

Referenced by MakeHit().

◆ fgT

TGraphErrors * CbmTrdModuleRecT::fgT = NULL
staticprivate

fitter for cluster PRF

Definition at line 100 of file CbmTrdModuleRecT.h.

Referenced by MakeHit().

◆ fHits

TClonesArray* CbmTrdModuleRec::fHits
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().

◆ fLayerId

Char_t CbmTrdModuleAbstract::fLayerId
protectedinherited

◆ fModAddress

◆ fRotation

UChar_t CbmTrdModuleAbstract::fRotation
protectedinherited

rotation angle for current module

Definition at line 80 of file CbmTrdModuleAbstract.h.

◆ fT0

ULong64_t CbmTrdModuleRecT::fT0
private

Definition at line 84 of file CbmTrdModuleRecT.h.

Referenced by AddDigi(), and MakeHit().

◆ vs

std::vector<Double_t> CbmTrdModuleRecT::vs
private

Definition at line 87 of file CbmTrdModuleRecT.h.

Referenced by GetXoffset(), GetYoffset(), LoadDigis(), and MakeHit().

◆ vse

std::vector<Double_t> CbmTrdModuleRecT::vse
private

working copy of signals from cluster

Definition at line 88 of file CbmTrdModuleRecT.h.

Referenced by LoadDigis(), and MakeHit().

◆ vt

std::vector<Char_t> CbmTrdModuleRecT::vt
private

working copy of signal errors from cluster

Definition at line 89 of file CbmTrdModuleRecT.h.

Referenced by LoadDigis(), and MakeHit().

◆ vx

std::vector<Double_t> CbmTrdModuleRecT::vx
private

working copy of signal relative timing

Definition at line 90 of file CbmTrdModuleRecT.h.

Referenced by GetXoffset(), GetYoffset(), LoadDigis(), and MakeHit().

◆ vxe

std::vector<Double_t> CbmTrdModuleRecT::vxe
private

working copy of signal relative positions

Definition at line 92 of file CbmTrdModuleRecT.h.

Referenced by GetXoffset(), GetYoffset(), LoadDigis(), and MakeHit().


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