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

Cluster finding and hit reconstruction algorithms for the TRD(2D) module. More...

#include <HitMerger2D.h>

Collaboration diagram for cbm::algo::trd::HitMerger2D:
[legend]

Public Types

typedef std::pair< Hit, std::vector< DigiRec > > inputType
 
typedef std::pair< std::vector< inputType >, std::vector< inputType > > outputType
 

Public Member Functions

 HitMerger2D ()
 Default constructor.
 
 HitMerger2D (HitFinder2DModPar params)
 Constructor with placement.
 
virtual ~HitMerger2D ()
 
outputType operator() (std::vector< inputType > &hitsRow1, std::vector< inputType > &hitsRow2)
 Steering routine for building hits.
 
std::pair< int, HitFactory2DProjectDigis (std::vector< DigiRec > *cid, std::vector< DigiRec > *cjd)
 
int CheckMerge (std::vector< DigiRec > *cid, std::vector< DigiRec > *cjd)
 Implement topologic cuts for hit merging.
 
bool MergeHits (Hit *h, int a0, HitFactory2D &hitF)
 Algorithm for hit merging.
 
void SetHitTimeOffset (int dt)
 Time offset to synchronize TRD2D hits to the rest of detectors.
 

Private Member Functions

 HitMerger2D (const HitMerger2D &ref)
 
const HitMerger2Doperator= (const HitMerger2D &ref)
 
Hit MakeHit (int cId)
 
void CalibrateHit (Hit *h, const double dx, const double dy, const double edx, const double edy, const double edt, const double time, const double tdrift, const double eloss, const HitFactory2D &hitF)
 
int GetPadRowCol (int address, int &c)
 Addressing ASIC on module based on id.
 

Private Attributes

const float fClk = CbmTrdDigi::Clk(CbmTrdDigi::eCbmTrdAsicType::kFASP)
 
HitFinder2DModPar fParams
 Parameter container.
 
int fHitTimeOff = 0
 

Detailed Description

Cluster finding and hit reconstruction algorithms for the TRD(2D) module.

Author
Alexandru Bercucic aberc.nosp@m.uci@.nosp@m.niham.nosp@m..nip.nosp@m.ne.ro
Since
01.02.2019
Date
01.10.2021

Extend the TRD module reconstructor for the particular case of inner TRD-2D modules. The class is a collection of algorithms to :

  • identify time and spatially correlated digis and build clusters
  • identify the type of clusters and apply further merging/deconvolution
  • apply FEE (channel gain, baseline) and detector (energy gain, maps, etc) calibration
  • steer the calculation of hit 4D parameters (x, y, t, E)

Definition at line 40 of file HitMerger2D.h.

Member Typedef Documentation

◆ inputType

Definition at line 42 of file HitMerger2D.h.

◆ outputType

std::pair<std::vector<inputType>, std::vector<inputType> > cbm::algo::trd::HitMerger2D::outputType

Definition at line 43 of file HitMerger2D.h.

Constructor & Destructor Documentation

◆ HitMerger2D() [1/3]

cbm::algo::trd::HitMerger2D::HitMerger2D ( )
inline

Default constructor.

Definition at line 46 of file HitMerger2D.h.

◆ HitMerger2D() [2/3]

cbm::algo::trd::HitMerger2D::HitMerger2D ( HitFinder2DModPar params)

Constructor with placement.

Definition at line 20 of file HitMerger2D.cxx.

◆ ~HitMerger2D()

virtual cbm::algo::trd::HitMerger2D::~HitMerger2D ( )
inlinevirtual

Definition at line 51 of file HitMerger2D.h.

◆ HitMerger2D() [3/3]

cbm::algo::trd::HitMerger2D::HitMerger2D ( const HitMerger2D & ref)
private

Member Function Documentation

◆ CalibrateHit()

void cbm::algo::trd::HitMerger2D::CalibrateHit ( Hit * h,
const double dx,
const double dy,
const double edx,
const double edy,
const double edt,
const double time,
const double tdrift,
const double eloss,
const HitFactory2D & hitF )
private

◆ CheckMerge()

int cbm::algo::trd::HitMerger2D::CheckMerge ( std::vector< DigiRec > * cid,
std::vector< DigiRec > * cjd )

Implement topologic cuts for hit merging.

Returns
index of anode wire wrt to boundary or 0 if check fails

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 87 of file HitMerger2D.cxx.

References GetPadRowCol().

Referenced by operator()().

◆ GetPadRowCol()

int cbm::algo::trd::HitMerger2D::GetPadRowCol ( int address,
int & c )
inlineprivate

Addressing ASIC on module based on id.

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

Definition at line 513 of file HitMerger2D.cxx.

References fParams, and cbm::algo::trd::HitFinder2DModPar::rowPar.

Referenced by CheckMerge(), and ProjectDigis().

◆ MakeHit()

Hit cbm::algo::trd::HitMerger2D::MakeHit ( int cId)
private

◆ MergeHits()

◆ operator()()

◆ operator=()

const HitMerger2D & cbm::algo::trd::HitMerger2D::operator= ( const HitMerger2D & ref)
private

◆ ProjectDigis()

std::pair< int, HitFactory2D > cbm::algo::trd::HitMerger2D::ProjectDigis ( std::vector< DigiRec > * cid,
std::vector< DigiRec > * cjd )

◆ SetHitTimeOffset()

void cbm::algo::trd::HitMerger2D::SetHitTimeOffset ( int dt)
inline

Time offset to synchronize TRD2D hits to the rest of detectors.

Parameters
dtoffset in [ns]

Definition at line 72 of file HitMerger2D.h.

References fHitTimeOff.

Member Data Documentation

◆ fClk

const float cbm::algo::trd::HitMerger2D::fClk = CbmTrdDigi::Clk(CbmTrdDigi::eCbmTrdAsicType::kFASP)
private

Definition at line 80 of file HitMerger2D.h.

Referenced by CalibrateHit().

◆ fHitTimeOff

int cbm::algo::trd::HitMerger2D::fHitTimeOff = 0
private

Definition at line 93 of file HitMerger2D.h.

Referenced by CalibrateHit(), and SetHitTimeOffset().

◆ fParams

HitFinder2DModPar cbm::algo::trd::HitMerger2D::fParams
private

Parameter container.

Definition at line 82 of file HitMerger2D.h.

Referenced by CalibrateHit(), GetPadRowCol(), MergeHits(), operator()(), and ProjectDigis().


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