CbmRoot
|
Cluster finding and hit reconstruction algorithms for the TRD(2D) module. More...
#include <HitMerger2D.h>
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, HitFactory2D > | ProjectDigis (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 HitMerger2D & | operator= (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 |
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 40 of file HitMerger2D.h.
std::pair<Hit, std::vector<DigiRec> > cbm::algo::trd::HitMerger2D::inputType |
Definition at line 42 of file HitMerger2D.h.
std::pair<std::vector<inputType>, std::vector<inputType> > cbm::algo::trd::HitMerger2D::outputType |
Definition at line 43 of file HitMerger2D.h.
|
inline |
Default constructor.
Definition at line 46 of file HitMerger2D.h.
cbm::algo::trd::HitMerger2D::HitMerger2D | ( | HitFinder2DModPar | params | ) |
Constructor with placement.
Definition at line 20 of file HitMerger2D.cxx.
|
inlinevirtual |
Definition at line 51 of file HitMerger2D.h.
|
private |
|
private |
Definition at line 272 of file HitMerger2D.cxx.
References fClk, fHitTimeOff, fParams, cbm::algo::trd::HitFactory2D::HasOvf(), cbm::algo::trd::HitFactory2D::IsMaxTilt(), cbm::algo::trd::HitFinder2DModPar::rotation, cbm::algo::trd::HitFinder2DModPar::rowPar, cbm::algo::trd::HitFinder2DModPar::translation, cbm::algo::trd::HitFactory2D::vcM, cbm::algo::trd::HitFactory2D::vrM, and cbm::algo::trd::HitFactory2D::vt0.
Referenced by MergeHits().
int cbm::algo::trd::HitMerger2D::CheckMerge | ( | std::vector< DigiRec > * | cid, |
std::vector< DigiRec > * | 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 87 of file HitMerger2D.cxx.
References GetPadRowCol().
Referenced by operator()().
|
inlineprivate |
Addressing ASIC on module based on id.
[in] | id | module wise ASIC identifier |
Definition at line 513 of file HitMerger2D.cxx.
References fParams, and cbm::algo::trd::HitFinder2DModPar::rowPar.
Referenced by CheckMerge(), and ProjectDigis().
|
private |
bool cbm::algo::trd::HitMerger2D::MergeHits | ( | Hit * | h, |
int | a0, | ||
HitFactory2D & | hitF ) |
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 202 of file HitMerger2D.cxx.
References CalibrateHit(), cbm::algo::trd::HitFactory2D::CorrectPosition(), fParams, cbm::algo::trd::HitFactory2D::fSignal, cbm::algo::trd::HitFactory2D::GetDxDy(), cbm::algo::trd::HitFactory2D::GetHitClass(), cbm::algo::trd::HitFactory2D::GetHitRcClass(), cbm::algo::trd::HitFactory2D::GetXcorr(), cbm::algo::trd::HitFactory2D::IsBiasX(), cbm::algo::trd::HitFactory2D::IsBiasXleft(), cbm::algo::trd::HitFinder2DModPar::padSizeX, cbm::algo::trd::HitFinder2DModPar::padSizeY, cbm::algo::trd::HitFactory2D::RecenterXoffset(), and cbm::algo::trd::HitFactory2D::vyM.
Referenced by operator()().
HitMerger2D::outputType cbm::algo::trd::HitMerger2D::operator() | ( | std::vector< inputType > & | hitsRow1, |
std::vector< inputType > & | hitsRow2 ) |
Steering routine for building hits.
Definition at line 23 of file HitMerger2D.cxx.
References CheckMerge(), fParams, cbm::algo::trd::Hit::IsUsed(), MergeHits(), cbm::algo::trd::HitFinder2DModPar::padSizeX, cbm::algo::trd::HitFinder2DModPar::padSizeY, ProjectDigis(), cbm::algo::trd::Hit::SetRowCross(), cbm::algo::trd::Hit::Time(), cbm::algo::trd::Hit::X(), and cbm::algo::trd::Hit::Y().
|
private |
std::pair< int, HitFactory2D > cbm::algo::trd::HitMerger2D::ProjectDigis | ( | std::vector< DigiRec > * | cid, |
std::vector< DigiRec > * | cjd ) |
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 295 of file HitMerger2D.cxx.
References fParams, cbm::algo::trd::HitFactory2D::fSignal, CbmTrdDigi::GetAddressChannel(), GetPadRowCol(), cbm::algo::trd::DigiRec::GetRectCharge(), cbm::algo::trd::DigiRec::GetRectTime(), cbm::algo::trd::DigiRec::GetTiltCharge(), cbm::algo::trd::DigiRec::GetTiltTime(), CbmTrdDigi::GetTimeDAQ(), cbm::algo::trd::DigiRec::HasRectOvf(), cbm::algo::trd::DigiRec::HasTiltOvf(), L_, max(), cbm::algo::trd::HitFactory2D::reset(), cbm::algo::trd::HitFinder2DModPar::rowPar, cbm::algo::trd::HitFactory2D::SetBiasX(), cbm::algo::trd::HitFactory2D::SetBiasXleft(), cbm::algo::trd::HitFactory2D::SetBiasXmid(), cbm::algo::trd::HitFactory2D::SetBiasXright(), cbm::algo::trd::HitFactory2D::SetBiasY(), cbm::algo::trd::HitFactory2D::SetBiasYleft(), cbm::algo::trd::HitFactory2D::SetBiasYmid(), cbm::algo::trd::HitFactory2D::SetBiasYright(), cbm::algo::trd::HitFactory2D::SetLeftHit(), cbm::algo::trd::HitFactory2D::SetLeftSgn(), cbm::algo::trd::HitFactory2D::SetMaxTilt(), cbm::algo::trd::HitFactory2D::SetOvf(), cbm::algo::trd::HitFactory2D::SetSymmHit(), cbm::algo::trd::HitFactory2D::vcM, cbm::algo::trd::HitFactory2D::viM, cbm::algo::trd::HitFactory2D::vrM, and cbm::algo::trd::HitFactory2D::vt0.
Referenced by operator()().
|
inline |
Time offset to synchronize TRD2D hits to the rest of detectors.
dt | offset in [ns] |
Definition at line 72 of file HitMerger2D.h.
References fHitTimeOff.
|
private |
Definition at line 80 of file HitMerger2D.h.
Referenced by CalibrateHit().
|
private |
Definition at line 93 of file HitMerger2D.h.
Referenced by CalibrateHit(), and SetHitTimeOffset().
|
private |
Parameter container.
Definition at line 82 of file HitMerger2D.h.
Referenced by CalibrateHit(), GetPadRowCol(), MergeHits(), operator()(), and ProjectDigis().