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

typedef std::pair<Hit, std::vector<DigiRec> > cbm::algo::trd::HitMerger2D::inputType

Definition at line 42 of file HitMerger2D.h.

◆ outputType

typedef 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.

Referenced by HitMerger2D(), and operator=().

◆ HitMerger2D() [2/3]

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

Constructor with placement.

Definition at line 20 of file HitMerger2D.cxx.

References fParams.

◆ ~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

References HitMerger2D().

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.

Referenced by CheckMerge(), and ProjectDigis().

◆ MakeHit()

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

◆ MergeHits()

bool cbm::algo::trd::HitMerger2D::MergeHits ( Hit * h,
int a0,
HitFactory2D & hitF )

◆ operator()()

HitMerger2D::outputType cbm::algo::trd::HitMerger2D::operator() ( std::vector< inputType > & hitsRow1,
std::vector< inputType > & hitsRow2 )

◆ operator=()

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

References HitMerger2D().

◆ 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(), HitMerger2D(), MergeHits(), operator()(), and ProjectDigis().


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