5#ifndef CBMTRDMODULEREC2D_H
6#define CBMTRDMODULEREC2D_H
74 Int_t
LoadDigis(vector<const CbmTrdDigi*>* din, Int_t cid);
94 Double_t
GetXcorr(Double_t dx, Int_t typ, Int_t cls = 0)
const;
100 Double_t
GetYcorr(Double_t dy, Int_t cls = 0)
const;
140 virtual inline void Config(Bool_t vcl, Bool_t vrc, Bool_t dw);
179 Int_t
LoadDigis(std::vector<const CbmTrdDigi*>* digis, std::vector<CbmTrdDigi*>* vdgM, std::vector<Bool_t>* vmask,
180 ULong64_t& t0, Int_t& cM);
181 Int_t
LoadDigisRC(vector<const CbmTrdDigi*>* digis,
const Int_t r0,
const Int_t a0,
182 ULong64_t& t0, Int_t& cM);
190 Bool_t
MergeDigis(std::vector<const CbmTrdDigi*>* digis, std::vector<CbmTrdDigi*>* vdgM, std::vector<Bool_t>* vmask);
223 std::map<Int_t, std::list<CbmTrdCluster*>>
fBuffer;
224 std::map<Int_t, vector<CbmTrdDigiRec*>>
fDigis;
232 std::vector<Double_t>
vs;
233 std::vector<Double_t>
vse;
234 std::vector<Char_t>
vt;
235 std::vector<Double_t>
vx;
236 std::vector<Double_t>
vxe;
243 static Double_t
fgDT[3];
258 printf(
"CbmTrdModuleRec2D::kVerbCluster[%c]\n",
CWRITE(0) ?
'y' :
'n');
263 printf(
"CbmTrdModuleRec2D::kVerbReco[%c]\n",
CWRITE(1) ?
'y' :
'n');
268 printf(
"CbmTrdModuleRec2D::Draw[%c]\n",
CDRAW() ?
'y' :
'n');
273 Int_t nR =
vs.size() - 1 -
viM;
Data class with information on a STS local track.
Data Container for TRD clusters.
Extend the TRD(2D) digi class to incorporate FEE calibration.
data class for a reconstructed Energy-4D measurement in the TRD
Cluster finding and hit reconstruction algorithms for the TRD(2D) module.
UShort_t GetHitMap() const
static Float_t fgCorrYval[NBINSCORRY][2]
discretized correction LUT
void SetSymmHit(Bool_t set=1)
void SetBiasYright(Bool_t set=1)
std::vector< Char_t > vt
working copy of signal errors from cluster
void SetBiasXleft(Bool_t set=1)
Bool_t Deconvolute(CbmTrdHit *h)
Algorithm for cluster spliting.
int fHitTimeOff
bit map for cluster topology classification
virtual void Config(Bool_t vcl, Bool_t vrc, Bool_t dw)
Config task with the following settings.
Bool_t CWRITE(int level) const
virtual Int_t GetOverThreshold() const
Count RO channels (R or T) with data.
Bool_t MergeHits(CbmTrdHit *h, Int_t a0)
Algorithm for hit merging.
std::map< Int_t, vector< CbmTrdDigiRec * > > fDigis
CbmTrdModuleRec2D(const CbmTrdModuleRec2D &ref)
UShort_t vyM
index of maximum signal in the projection
void SetLeftSgn(Bool_t set=1)
std::map< Int_t, std::list< CbmTrdCluster * > > fBuffer
time interval to still keep clusters in buffer [clk]
void SetMaxTilt(Bool_t set=1)
void SetHitTimeOffset(int dt)
Time offset to synchronize TRD2D hits to the rest of detectors.
CbmTrdModuleRec2D()
Default constructor.
Bool_t IsOpenRight() const
Double_t GetYcorr(Double_t dy, Int_t cls=0) const
y position correction based on LUT
std::vector< Double_t > vxe
working copy of signal relative positions
Bool_t IsBiasXmid() const
static Float_t fgCorrXval[3][NBINSCORRX]
step of the discretized correction LUT
virtual ~CbmTrdModuleRec2D()
std::vector< Double_t > vse
working copy of signals from cluster
ULong64_t fT0
task configuration settings
void SetBiasY(Bool_t set=1)
void SetBiasYmid(Bool_t set=1)
virtual CbmTrdHit * MakeHit(Int_t cId, const CbmTrdCluster *c, std::vector< const CbmTrdDigi * > *digis)
Steering routine for converting cluster to hit.
virtual void DrawHit(CbmTrdHit *) const
void RecenterXoffset(Double_t &dx)
Shift graph representation to [-0.5, 0.5].
@ kHelpers
use helper graph for time and energy estimation
@ kVerbCluster
steer clusterizer verbosity on/off
@ kDraw
steer graphic representation on/off
@ kVerbReco
steer reconstructor verbosity on/off
Bool_t CheckConvolution(CbmTrdHit *h) const
Implement cuts for hit convolution definition.
Bool_t IsOpenLeft() const
Bool_t HasLeftSgn() const
Bool_t BuildHit(CbmTrdHit *h)
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.
void SetBiasYleft(Bool_t set=1)
std::vector< Double_t > vs
hit time offset for synchronization
void SetUseHelpers(bool use=true)
Steer usage of helper graphs for computing time and energy per hit. A cost wrt the additional perform...
UInt_t fTimeLast
start time of event/time slice [clk]
UChar_t vcM
start time of current hit [clk]
static TGraphErrors * fgT
fitter for cluster PRF
const CbmTrdModuleRec2D & operator=(const CbmTrdModuleRec2D &ref)
UInt_t fTimeWinKeep
time of last digi processed in module [clk]
Int_t LoadDigis(vector< const CbmTrdDigi * > *din, Int_t cid)
Load RAW digis into working array of RECO digis.
void SetBiasX(Bool_t set=1)
Int_t CheckMerge(Int_t cid, Int_t cjd)
Implement topologic cuts for hit merging.
void SetOvf(Bool_t set=1)
Int_t GetHitRcClass(Int_t a0) const
Hit classification wrt signal bias.
virtual Int_t FindClusters(bool clr)
Finalize clusters.
Int_t ProjectDigis(Int_t cid, Int_t cjd=-1)
ULong64_t vt0
cluster-wise organized calibrated digi
static Float_t fgCorrRcXbiasXval[3][NBINSCORRX]
discretized correction LUT
Int_t LoadDigisRC(vector< const CbmTrdDigi * > *digis, const Int_t r0, const Int_t a0, ULong64_t &t0, Int_t &cM)
virtual Bool_t PostProcessHits()
Finalize hits (merge RC hits, etc)
Bool_t IsBiasYleft() const
void RecenterYoffset(Double_t &dy)
Shift graph representation to [-0.5, 0.5].
Double_t GetXcorr(Double_t dx, Int_t typ, Int_t cls=0) const
x position correction based on LUT
static Float_t fgCorrRcXval[2][NBINSCORRX]
discretized correction params
Double_t GetYoffset(Int_t n0=0) const
void SetLeftHit(Bool_t set=1)
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.
virtual Bool_t AddDigi(const CbmTrdDigi *d, Int_t id)
Add digi to local module.
void SetBiasXmid(Bool_t set=1)
virtual Bool_t PreProcessHits()
Check hit quality (deconvolute pile-ups, etc)
Bool_t IsBiasXleft() const
static TGraphErrors * fgEdep
FASP delay wrt signal.
Int_t GetHitClass() const
Hit classification wrt center pad.
virtual Bool_t MakeHits()
Steering routine for building hits.
static Float_t fgCorrXdx
working copy of signal relative position errors
void SetBiasXright(Bool_t set=1)
const CbmTrdParFaspChannel * GetFaspChCalibrator(uint16_t ch) const
Retrive FASP ch calibrator by RO ch number in the module.
Bool_t IsBiasXright() const
std::vector< Double_t > vx
working copy of signal relative timing
int AddClusterEdges(CbmTrdCluster *cl)
Add left and right edge channels to the cluster in case this are masked channels.
static TF1 * fgPRF
data handler for cluster PRF
static Double_t fgDT[3]
discretized correction LUT
Double_t GetXoffset(Int_t n0=0) const
Abstract class for module wise cluster finding and hit reconstruction.
Definition of FASP channel calibration container.