CbmRoot
Loading...
Searching...
No Matches
CbmTofEventClusterizer.h
Go to the documentation of this file.
1/* Copyright (C) 2013-2021 PI-UHd/GSI, Heidelberg/Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Norbert Herrmann [committer] */
4
15#ifndef CBMTOFEVENTCLUSTERIZER_H
16#define CBMTOFEVENTCLUSTERIZER_H 1
17
18// TOF Classes and includes
19// Input/Output
20//class CbmTofPoint;
21class CbmTofHit;
22class CbmEvent;
23class CbmVertex;
24// Geometry
27class CbmTofDigiPar;
29class CbmTofCell;
31class CbmDigiManager;
34class CbmTimeSlice;
35
36#include "CbmMatch.h"
37#include "CbmTofAddress.h" // in cbmdata/tof
38#include "CbmTofDigi.h"
39#include "TGeoManager.h"
41class TTofCalibData;
42class TTrbHeader;
43class FairEventHeader;
44
45// FAIR classes and includes
46#include "FairTask.h"
47
48// ROOT Classes and includes
49class TClonesArray;
50class TF1;
51class TFile;
52class TH1;
53class TH2;
54class TH3;
55class TProfile;
56class TString;
57#include "TTimeStamp.h"
58
59// C++ Classes and includes
60#include <list>
61#include <map>
62#include <vector>
63
64class CbmTofEventClusterizer : public FairTask {
65
66 friend class CbmTofAnaTestbeam;
67
68 public:
69 inline static CbmTofEventClusterizer* Instance() { return fInstance; }
70
75
79 CbmTofEventClusterizer(const char* name, Int_t verbose = 1, Bool_t writeDataInOut = kTRUE);
84
88 virtual InitStatus Init();
89
93 virtual void SetParContainers();
94
98 virtual void Exec(Option_t* option);
99 virtual void ExecEvent(Option_t* option, CbmEvent* tEvent = NULL);
100
104 virtual void Finish();
105 virtual void Finish(Double_t calMode);
106
107 inline void SetCalMode(Int_t iMode) { fCalMode = iMode; }
108 inline void SetCalSel(Int_t iSel) { fCalSel = iSel; }
109 inline void SetCalSmType(Int_t iCalSmType) { fCalSmAddr = CbmTofAddress::GetUniqueAddress(0, 0, 0, 0, iCalSmType); }
110 inline void SetCalSmAddr(Int_t iCalSmAddr) { fCalSmAddr = iCalSmAddr; }
111 inline void SetCalRpc(Int_t iCalRpc)
112 {
113 if (iCalRpc != 0) {
114 Int_t iSign = iCalRpc / TMath::Abs(iCalRpc);
115 iCalRpc *= iSign; // always a positive number
116 Int_t iRpc = iCalRpc % 10;
117 iCalRpc = (iCalRpc - iRpc) / 10;
118 Int_t iSm = iCalRpc % 10;
119 iCalRpc = (iCalRpc - iSm) / 10;
120 if (fIdMode == 1) iRpc = 0; // ignore RPC number
121 fCalSmAddr = iSign * CbmTofAddress::GetUniqueAddress(iSm, iRpc, 0, 0, iCalRpc);
122 }
123 else {
124 fCalSmAddr = 0;
125 }
126 }
127 inline void SetCaldXdYMax(Double_t dCaldXdYMax) { fdCaldXdYMax = dCaldXdYMax; }
128 inline void SetCalCluMulMax(Int_t ival) { fiCluMulMax = ival; }
129 inline void SetTRefId(Int_t Id) { fTRefMode = Id; }
130 inline void SetIdMode(Int_t Id) { fIdMode = Id; }
131 inline void SetDutId(Int_t Id) { fDutId = Id; }
132 inline void SetDutSm(Int_t Id) { fDutSm = Id; }
133 inline void SetDutRpc(Int_t Id) { fDutRpc = Id; }
134 inline void SetSelId(Int_t Id) { fSelId = Id; }
135 inline void SetSelSm(Int_t Id) { fSelSm = Id; }
136 inline void SetSelRpc(Int_t Id) { fSelRpc = Id; }
137 inline void SetBeamRefId(Int_t Id) { fiBeamRefType = Id; }
138 inline void SetBeamRefSm(Int_t Id) { fiBeamRefSm = Id; }
139 inline void SetBeamRefDet(Int_t Id) { fiBeamRefDet = Id; }
140 inline void SetBeamRefMulMax(Int_t Id) { fiBeamRefMulMax = Id; }
141 inline void SetBeamAddRefMul(Int_t ival) { fiBeamAddRefMul = ival; }
142 inline void SetTRefDifMax(Double_t val) { fTRefDifMax = val; }
143 inline void SetdTRefMax(Double_t val) { fdTRefMax = val; }
144 inline void PosYMaxScal(Double_t val) { fPosYMaxScal = val; }
145 inline void SetTotMax(Double_t val) { fTotMax = val; }
146 inline void SetTotMin(Double_t val) { fTotMin = val; }
147 inline double GetTotMax() { return fTotMax; }
148 inline double GetTotMin() { return fTotMin; }
149 inline void SetTotMean(Double_t val) { fTotMean = val; }
150 inline void SetDelTofMax(Double_t val) { fdDelTofMax = val; }
151 inline void SetTotPreRange(Double_t val) { fTotPreRange = val; }
152 inline void SetMaxTimeDist(Double_t val) { fMaxTimeDist = val; }
153 inline void SetChannelDeadtime(Double_t val) { fdChannelDeadtime = val; }
154 inline void SetMemoryTime(Double_t val) { fdMemoryTime = val; }
155 inline void SetYFitMin(Double_t val) { fdYFitMin = val; }
156 inline void SetToDAv(Double_t val) { fdToDAv = val; }
157 inline void SetSel2Id(Int_t ival) { fSel2Id = ival; }
158 inline void SetSel2Sm(Int_t ival) { fSel2Sm = ival; }
159 inline void SetSel2Rpc(Int_t ival) { fSel2Rpc = ival; }
160 inline void SetSel2MulMax(Int_t Id) { fSel2MulMax = Id; }
161 inline void SetCluSizeMin(Int_t iVal) { fiCluSizeMin = iVal; }
162 inline int GetCluSizeMin() { return fiCluSizeMin; }
163 inline void SetNbCalHitMin(Int_t iVal) { fNbCalHitMin = iVal; }
164 inline int GetNbCalHitMin() { return fNbCalHitMin; }
165
166 inline void SetOutHstFileName(TString OutHstFileName) { fOutHstFileName = OutHstFileName; }
167 inline void SetCalParFileName(TString CalParFileName) { fCalParFileName = CalParFileName; }
168 inline TString GetCalParFileName() { return fCalParFileName; }
169
170 inline void SetEnableMatchPosScaling(Bool_t bval) { fEnableMatchPosScaling = bval; }
171 inline void SetEnableAvWalk(Bool_t bval) { fEnableAvWalk = bval; }
172 inline void SetPs2Ns(Bool_t bval) { fbPs2Ns = bval; }
173 inline Double_t GetStartAnalysisTime() { return fdStartAnalysisTime; }
174 inline int GetNbHits() { return fiNbHits; }
175 CbmTofHit* GetHitPointer(int iHit);
176 CbmMatch* GetMatchPointer(int iHit);
178 inline double GetTotMean() { return fTotMean; }
179 inline int GetBeamAddr() { return fiBeamRefAddr; }
180 double GetLocalX(CbmTofHit* pHit);
181 double GetLocalY(CbmTofHit* pHit);
182 void MasterToLocal(const Int_t CellId, const Double_t* master, Double_t* local);
183
184 //static Double_t f1_xboxe(double *x, double *par); // Fit function
185 virtual void fit_ybox(const char* hname); // Fit
186 virtual void fit_ybox(TH1* h, Double_t dy); // Fit
187 virtual void fit_ybox(TH1* h, Double_t dy, Double_t* fpar); // Fit
188 virtual double* find_yedges(const char* hname, Double_t dThr, Double_t dLen);
189 virtual void CheckLHMemory(); // Check consistency of stored last hits
190 virtual void CleanLHMemory(); // Cleanup
191 virtual Bool_t AddNextChan(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iLastChan, Double_t dLastPosX,
192 Double_t dLastPosY, Double_t dLastTime,
193 Double_t dLastTot); // needed for time based data
194 virtual void LH_store(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iChm, CbmTofHit* pHit);
195
196 void SwapChannelSides(Bool_t bSwap) { fbSwapChannelSides = bSwap; }
197 void SetFileIndex(Int_t iIndex) { fiFileIndex = iIndex; }
198 void SetWriteDigisInOut(Bool_t bDigis) { fbWriteDigisInOut = bDigis; }
199 void SetWriteHitsInOut(Bool_t bHits) { fbWriteHitsInOut = bHits; }
200 void SetAlternativeBranchNames(Bool_t bNames) { fbAlternativeBranchNames = bNames; }
201 void SetDeadStrips(Int_t iDet, UInt_t ival);
202
203 inline void SetEdgeThr(double val) { fdEdgeThr = val; }
204 inline void SetEdgeLen(double val) { fdEdgeLen = val; }
205 inline void SetEdgeTbias(double val) { fdEdgeTbias = val; }
206 inline void SetEdgeFrange(double val) { fdEdgeFrange = val; }
207 inline double GetEdgeThr() { return fdEdgeThr; }
208 inline double GetEdgeLen() { return fdEdgeLen; }
209 inline double GetEdgeTbias() { return fdEdgeTbias; }
210 inline double GetEdgeFrange() { return fdEdgeFrange; }
211 inline void SetModifySigvel(Double_t val) { fdModifySigvel = val; }
212 inline double GetModifySigvel() { return fdModifySigvel; }
213
214 protected:
215 private:
225
226 // Functions common for all clusters approximations
230 Bool_t RegisterInputs();
234 Bool_t RegisterOutputs();
238 Bool_t InitParameters();
242 Bool_t InitCalibParameter();
246 Bool_t LoadGeometry();
250 Bool_t DeleteGeometry();
251
252 // Histogramming functions
253 Bool_t CreateHistos();
254 Bool_t FillHistos(CbmEvent* tEvent);
255 Bool_t WriteHistos();
256 Bool_t DeleteHistos();
257
261 Bool_t BuildClusters();
262 Bool_t MergeClusters();
263 Bool_t BuildHits();
264 Bool_t CalibRawDigis();
266 Bool_t CalibHits();
267
268 // ToF geometry variables
274
276 FairEventHeader* fEvtHeader;
279
280 // Input variables
281 const std::vector<CbmMatch>* fTofDigiPointMatches = nullptr; // TOF MC point matches
282 //TClonesArray * fTofDigisColl; // TOF Digis
283 std::vector<CbmTofDigi> fTofDigiVec{};
284 CbmDigiManager* fDigiMan; // TOF Input Digis
285 TClonesArray* fEventsColl; // CBMEvents (time based)
286
287 // Output variables
290 std::vector<CbmTofDigi>* fTofCalDigiVec = nullptr;
291 TClonesArray* fTofHitsColl; // TOF hits
292 TClonesArray* fTofDigiMatchColl; // TOF Digi Links
293 //TClonesArray * fTofCalDigisCollOut; // Calibrated TOF Digis
294 std::vector<CbmTofDigi>* fTofCalDigiVecOut = nullptr;
295 TClonesArray* fTofHitsCollOut; // TOF hits
296 TClonesArray* fTofDigiMatchCollOut; // TOF Digi Links
297 std::vector<CbmMatch>* fTofDigiPointMatchesOut = nullptr; // TOF Digi MC Point Matches
298 Int_t fiNbHits; // Index of the CbmTofHit TClonesArray
299
300 // Generic
301 Int_t fVerbose;
302 Int_t fiNbSkip1 = 0;
303 Int_t fiNbSkip2 = 0;
304
305
306 // Intermediate storage variables
307 std::vector<std::vector<std::vector<std::vector<CbmTofDigi*>>>> fStorDigi; //[nbType][nbSm*nbRpc][nbCh][nDigis]
308 std::vector<std::vector<std::vector<std::vector<Int_t>>>> fStorDigiInd; //[nbType][nbSm*nbRpc][nbCh][nDigis]
309 std::vector<Int_t> vDigiIndRef;
310
311 std::vector<std::vector<std::vector<Int_t>>> fviClusterMul; //[nbType][nbSm][nbRpc]
312 std::vector<std::vector<std::vector<Int_t>>> fviClusterSize; //[nbType][nbRpc][nClusters]
313 std::vector<std::vector<std::vector<Int_t>>> fviTrkMul; //[nbType][nbRpc][nClusters]
314 std::vector<std::vector<std::vector<Double_t>>> fvdX; //[nbType][nbRpc][nClusters]
315 std::vector<std::vector<std::vector<Double_t>>> fvdY; //[nbType][nbRpc][nClusters]
316 std::vector<std::vector<std::vector<Double_t>>> fvdDifX; //[nbType][nbRpc][nClusters]
317 std::vector<std::vector<std::vector<Double_t>>> fvdDifY; //[nbType][nbRpc][nClusters]
318 std::vector<std::vector<std::vector<Double_t>>> fvdDifCh; //[nbType][nbRpc][nClusters]
319
321
322 // Histograms
347
348 std::vector<TH2*> fhRpcDigiCor; //[nbDet]
349 std::vector<TH2*> fhRpcDigiMul; //[nbDet]
350 std::vector<TH2*> fhRpcDigiStatus; //[nbDet]
351 std::vector<TH2*> fhRpcDigiDTLD; //[nbDet]
352 std::vector<TH2*> fhRpcDigiDTFD; //[nbDet]
353 std::vector<TH2*> fhRpcDigiDTMul; //[nbDet]
354 std::vector<TH1*> fhRpcDigiRate; //[nbDet]
355 std::vector<TH2*> fhRpcDigiTotLeft; //[nbDet]
356 std::vector<TH2*> fhRpcDigiTotRight; //[nbDet]
357 std::vector<TH2*> fhRpcDigiTotDiff; //[nbDet]
358 std::vector<TH2*> fhRpcDigiTotMap; //[nbDet]
359 std::vector<TH1*> fhRpcCluMul; //[nbDet]
360 std::vector<TH1*> fhRpcCluRate; //[nbDet]
361 std::vector<TH1*> fhRpcCluRate10s; //[nbDet]
362 std::vector<TH2*> fhRpcCluPosition; //[nbDet]
363 std::vector<TH2*> fhRpcCluPos; //[nbDet]
364 std::vector<TProfile*> fhRpcCluPositionEvol; //[nbDet]
365 std::vector<TProfile*> fhRpcCluTimeEvol; //[nbDet]
366 std::vector<TH2*> fhRpcCluDelPos; //[nbDet]
367 std::vector<TH2*> fhRpcCluDelMatPos; //[nbDet]
368 std::vector<TH2*> fhRpcCluTOff; //[nbDet]
369 std::vector<TH2*> fhRpcCluDelTOff; //[nbDet]
370 std::vector<TH2*> fhRpcCluDelMatTOff; //[nbDet]
371 std::vector<TH2*> fhRpcCluTrms; //[nbDet]
372 std::vector<TH2*> fhRpcCluTot; //[nbDet]
373 std::vector<TH2*> fhRpcCluSize; //[nbDet]
374 std::vector<TH2*> fhRpcCluAvWalk; //[nbDet]
375 std::vector<TH2*> fhRpcCluAvLnWalk; //[nbDet]
376 std::vector<std::vector<std::vector<TH2*>>> fhRpcCluWalk; // [nbDet][nbCh][nSide]
377 std::vector<TH2*> fhSmCluPosition; //[nbSmTypes]
378 std::vector<TH2*> fhSmCluTOff;
379 std::vector<TProfile*> fhSmCluSvel;
380 std::vector<std::vector<TProfile*>> fhSmCluFpar;
381 std::vector<TH1*> fhRpcDTLastHits; //[nbDet]
382 std::vector<TH1*> fhRpcDTLastHits_Tot; //[nbDet]
383 std::vector<TH1*> fhRpcDTLastHits_CluSize; //[nbDet]
384
385 std::vector<std::vector<TH1*>> fhTRpcCluMul; //[nbDet][nbSel]
386 std::vector<std::vector<TH2*>> fhTRpcCluPosition; //[nbDet][nbSel]
387 std::vector<std::vector<TH2*>> fhTRpcCluTOff; //[nbDet] [nbSel]
388 std::vector<std::vector<TH2*>> fhTRpcCluTofOff; //[nbDet] [nbSel]
389 std::vector<std::vector<TH2*>> fhTRpcCluTot; // [nbDet][nbSel]
390 std::vector<std::vector<TH2*>> fhTRpcCluSize; // [nbDet][nbSel]
391 std::vector<std::vector<TH2*>> fhTRpcCluAvWalk; // [nbDet][nbSel]
392 std::vector<std::vector<TH2*>> fhTRpcCluDelTof; // [nbDet][nbSel]
393 std::vector<std::vector<TH2*>> fhTRpcCludXdY; // [nbDet][nbSel]
394 std::vector<std::vector<TH2*>> fhTRpcCluQASY; // [nbDet][nbSel]
395 std::vector<std::vector<std::vector<std::vector<TH2*>>>> fhTRpcCluWalk; // [nbDet][nbSel][nbCh][nSide]
396 std::vector<std::vector<TH3*>> fhTRpcCluWalk2; // [nbDet][nbSel]
397 std::vector<std::vector<TH3*>> fhTRpcCluQ2DT; // [nbDet][nbSel]
398
399 std::vector<std::vector<TH2*>> fhTSmCluPosition; //[nbSmTypes][nbSel]
400 std::vector<std::vector<TH2*>> fhTSmCluTOff; //[nbSmTypes][nbSel]
401 std::vector<std::vector<TH2*>> fhTSmCluTRun; //[nbSmTypes][nbSel]
402 std::vector<std::vector<TH2*>> fhTRpcCluTOffDTLastHits;
403 std::vector<std::vector<TH2*>> fhTRpcCluTotDTLastHits;
404 std::vector<std::vector<TH2*>> fhTRpcCluSizeDTLastHits;
405 std::vector<std::vector<TH2*>> fhTRpcCluMemMulDTLastHits;
406
407 std::vector<TH1*> fhSeldT; //[nbSel]
408
409 std::vector<std::vector<std::vector<std::vector<Double_t>>>> fvCPDelTof; //[nSMT][nRpc][nbClDelTofBinX][nbSel]
410 std::vector<std::vector<std::vector<std::vector<Double_t>>>> fvCPTOff; //[nSMT][nRpc][nCh][nbSide]
411 std::vector<std::vector<std::vector<std::vector<Double_t>>>> fvCPTotGain; //[nSMT][nRpc][nCh][nbSide]
412 std::vector<std::vector<std::vector<std::vector<Double_t>>>> fvCPTotOff; //[nSMT][nRpc][nCh][nbSide]
413 std::vector<std::vector<std::vector<std::vector<std::vector<Double_t>>>>>
414 fvCPWalk; //[nSMT][nRpc][nCh][nbSide][nbWalkBins]
415 std::vector<std::vector<std::vector<Double_t>>> fvCPTOffY; //[nSMT][nRpc][nBin]
416 std::vector<std::vector<Double_t>> fvCPTOffYBinWidth; //[nSMT][nRpc]
417 std::vector<std::vector<Double_t>> fvCPTOffYRange; //[nSMT][nRpc]
418
419 std::vector<std::vector<std::vector<std::vector<std::list<CbmTofHit*>>>>> fvLastHits; //[nSMT[nSm][nRpc][nCh][NHits]
420 std::vector<UInt_t> fvDeadStrips; //[nbDet]
421 std::vector<std::vector<Double_t>> fvTimeLastDigi; //[nbDet][nChannel*2]
422 std::vector<std::vector<Double_t>> fvTimeFirstDigi; //[nbDet][nChannel*2]
423 std::vector<std::vector<Double_t>> fvMulDigi; //[nbDet][nChannel*2]
424
425 // Digis quality
429
430 // Control
431 TTimeStamp fStart;
432 TTimeStamp fStop;
433
434 // Calib
435 Double_t dTRef;
436 Double_t fdTRefMax;
437 Int_t fCalMode;
438 Int_t fCalSel;
440 Double_t fdCaldXdYMax;
444 Int_t fIdMode;
445 Int_t fDutId;
446 Int_t fDutSm;
447 Int_t fDutRpc;
448 Int_t fDutAddr;
449 Int_t fSelId;
450 Int_t fSelSm;
451 Int_t fSelRpc;
452 Int_t fSelAddr;
459 Int_t fSel2Id;
460 Int_t fSel2Sm;
461 Int_t fSel2Rpc;
466 std::map<UInt_t, UInt_t> fDetIdIndexMap;
467 std::map<UInt_t, TGeoPhysicalNode*> fCellIdGeoMap;
468 std::vector<Int_t> fviDetId;
469
470 Double_t fPosYMaxScal;
471 Double_t fTRefDifMax;
472 Double_t fTotMax;
473 Double_t fTotMin;
474 Double_t fTotOff;
475 Double_t fTotMean;
476 Double_t fdDelTofMax;
477 Double_t fTotPreRange;
478 Double_t fMaxTimeDist;
480 Double_t fdMemoryTime;
481 Double_t fdYFitMin;
482 Double_t fdToDAv;
483
486 Bool_t fbPs2Ns; // convert input raw digis from ps to ns
487
488 TString fCalParFileName; // name of the file name with Calibration Parameters
489 TString fOutHstFileName; // name of the histogram output file name with Calibration Parameters
490 TFile* fCalParFile; // pointer to Calibration Parameter file
491
492 // Constants or setting parameters
494 Int_t fiMsgCnt;
495
496 Double_t fdTOTMax;
497 Double_t fdTOTMin;
498 Double_t fdTTotMean;
499
500 Double_t fdMaxTimeDist; // Isn't this just a local variable? Why make it global and preset?!?
501 Double_t fdMaxSpaceDist; // Isn't this just a local variable? Why make it global and preset?!?
502 Double_t fdEdgeThr; // for Calibrator
503 Double_t fdEdgeLen; // for Calibrator
504 Double_t fdEdgeTbias;
505 Double_t fdEdgeFrange;
507
508 Double_t fdEvent;
510
511 Double_t fProcessTime = 0.0;
512 uint64_t fuNbDigis = 0;
513 uint64_t fuNbHits = 0;
514
519
521};
522
523#endif // CBMTOFEVENTCLUSTERIZER_H
CbmDigiManager.
Class characterising one event by a collection of links (indices) to data objects,...
Definition CbmEvent.h:34
Data class with information on a STS local track.
Bookkeeping of time-slice content.
static uint32_t GetUniqueAddress(uint32_t Sm, uint32_t Rpc, uint32_t Channel, uint32_t Side=0, uint32_t SmType=0, uint32_t RpcType=0)
contains filling and updating of calibration histos
Parameters class for the CBM ToF digitizer using beam data distributions.
std::vector< UInt_t > fvDeadStrips
ClassDef(CbmTofEventClusterizer, 1)
std::vector< std::vector< TH2 * > > fhTRpcCludXdY
Bool_t RegisterOutputs()
Create and register output TClonesArray of Tof Hits.
std::vector< CbmTofDigi > * fTofCalDigiVecOut
std::vector< std::vector< TH3 * > > fhTRpcCluQ2DT
std::vector< Int_t > fviDetId
virtual void ExecEvent(Option_t *option, CbmEvent *tEvent=NULL)
Bool_t RegisterInputs()
Recover pointer on input TClonesArray: TofPoints, TofDigis...
std::vector< TH2 * > fhSmCluTOff
std::vector< TH2 * > fhRpcDigiCor
const CbmTimeSlice * fTimeSlice
void SetCaldXdYMax(Double_t dCaldXdYMax)
std::vector< TH2 * > fhRpcDigiTotDiff
CbmTofEventClusterizer & operator=(const CbmTofEventClusterizer &)
Copy operator.
static CbmTofEventClusterizer * fInstance
T0 Digis.
void MasterToLocal(const Int_t CellId, const Double_t *master, Double_t *local)
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTotGain
void SetWriteDigisInOut(Bool_t bDigis)
std::vector< std::vector< TH2 * > > fhTRpcCluAvWalk
std::vector< TProfile * > fhRpcCluPositionEvol
void SetTotPreRange(Double_t val)
const std::vector< CbmMatch > * fTofDigiPointMatches
std::vector< TH1 * > fhRpcDTLastHits_CluSize
virtual ~CbmTofEventClusterizer()
Destructor.
std::vector< std::vector< std::vector< std::vector< TH2 * > > > > fhTRpcCluWalk
std::vector< TProfile * > fhRpcCluTimeEvol
void SetDeadStrips(Int_t iDet, UInt_t ival)
std::vector< std::vector< TH2 * > > fhTRpcCluPosition
CbmDigiManager * fDigiMan
TOF Digis.
Bool_t LoadGeometry()
Load the geometry: for now just resizing the Digis temporary vectors.
std::vector< std::vector< std::vector< Double_t > > > fvCPTOffY
static CbmTofEventClusterizer * Instance()
std::vector< TH1 * > fhRpcDigiRate
std::vector< CbmTofDigi > fTofDigiVec
std::vector< std::vector< TH2 * > > fhTSmCluPosition
Bool_t BuildClusters()
Build clusters out of ToF Digis and store the resulting info in a TofHit.
std::vector< TH2 * > fhRpcDigiMul
std::vector< TH2 * > fhRpcCluDelMatPos
std::vector< TH2 * > fhRpcCluDelTOff
std::vector< std::vector< TH2 * > > fhTRpcCluTotDTLastHits
std::vector< std::vector< Double_t > > fvTimeFirstDigi
std::vector< std::vector< TH2 * > > fhTRpcCluDelTof
void SetAlternativeBranchNames(Bool_t bNames)
std::vector< TH1 * > fhRpcCluRate
std::vector< TH2 * > fhRpcCluTot
std::map< UInt_t, UInt_t > fDetIdIndexMap
void SwapChannelSides(Bool_t bSwap)
std::vector< std::vector< TProfile * > > fhSmCluFpar
Bool_t InitCalibParameter()
Initialize other parameters not included in parameter classes.
std::vector< std::vector< std::vector< std::vector< std::list< CbmTofHit * > > > > > fvLastHits
std::vector< std::vector< TH1 * > > fhTRpcCluMul
const CbmTsEventHeader * fTsHeader
CbmTofCalibrator * fTofCalibrator
virtual void fit_ybox(const char *hname)
std::vector< std::vector< std::vector< std::vector< std::vector< Double_t > > > > > fvCPWalk
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTotOff
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTOff
std::vector< std::vector< std::vector< Double_t > > > fvdDifX
void SetCalParFileName(TString CalParFileName)
std::vector< std::vector< TH2 * > > fhTSmCluTOff
std::vector< CbmTofDigi > * fTofCalDigiVec
Bool_t InitParameters()
Initialize other parameters not included in parameter classes.
std::vector< TH1 * > fhRpcCluRate10s
virtual void Exec(Option_t *option)
Inherited from FairTask.
std::vector< std::vector< TH2 * > > fhTRpcCluSizeDTLastHits
void SetOutHstFileName(TString OutHstFileName)
std::vector< TH2 * > fhRpcCluSize
void SetCalSmAddr(Int_t iCalSmAddr)
virtual void LH_store(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iChm, CbmTofHit *pHit)
std::vector< std::vector< std::vector< Double_t > > > fvdDifY
std::vector< TH2 * > fhRpcCluDelMatTOff
std::vector< TH2 * > fhRpcDigiTotMap
std::vector< TH2 * > fhRpcDigiDTFD
std::vector< std::vector< std::vector< Int_t > > > fviClusterMul
std::vector< std::vector< std::vector< Int_t > > > fviTrkMul
std::vector< std::vector< TH2 * > > fhTRpcCluTOffDTLastHits
virtual Bool_t AddNextChan(Int_t iSmType, Int_t iSm, Int_t iRpc, Int_t iLastChan, Double_t dLastPosX, Double_t dLastPosY, Double_t dLastTime, Double_t dLastTot)
std::vector< std::vector< TH2 * > > fhTRpcCluTOff
Bool_t DeleteGeometry()
Delete the geometry related arrays: for now just clearing the Digis temporary vectors.
std::vector< std::vector< TH2 * > > fhTRpcCluTofOff
CbmTofHit * GetHitPointer(int iHit)
std::vector< std::vector< Double_t > > fvCPTOffYRange
double GetLocalX(CbmTofHit *pHit)
std::vector< TH2 * > fhRpcDigiTotRight
void SetModifySigvel(Double_t val)
void SetChannelDeadtime(Double_t val)
std::vector< std::vector< TH3 * > > fhTRpcCluWalk2
std::vector< std::vector< std::vector< TH2 * > > > fhRpcCluWalk
virtual InitStatus Init()
Inherited from FairTask.
std::vector< TH2 * > fhRpcCluPos
std::vector< std::vector< std::vector< Double_t > > > fvdDifCh
virtual void Finish()
Inherited from FairTask.
std::map< UInt_t, TGeoPhysicalNode * > fCellIdGeoMap
std::vector< CbmMatch > * fTofDigiPointMatchesOut
CbmMatch * GetMatchPointer(int iHit)
TClonesArray * fTofHitsCollOut
// Calibrated TOF Digis
void SetMaxTimeDist(Double_t val)
std::vector< TH1 * > fhRpcCluMul
void SetWriteHitsInOut(Bool_t bHits)
CbmMatch * GetMatchIndexPointer(int idx)
std::vector< TH2 * > fhRpcDigiStatus
CbmTofEventClusterizer(const CbmTofEventClusterizer &)
Copy constructor.
std::vector< std::vector< TH2 * > > fhTRpcCluMemMulDTLastHits
std::vector< TH2 * > fhRpcCluDelPos
std::vector< TH2 * > fhRpcCluTOff
void SetCalSmType(Int_t iCalSmType)
virtual void SetParContainers()
Inherited from FairTask.
std::vector< std::vector< TH2 * > > fhTRpcCluTot
std::vector< std::vector< std::vector< std::vector< Int_t > > > > fStorDigiInd
std::vector< TH1 * > fhRpcDTLastHits
std::vector< std::vector< std::vector< Int_t > > > fviClusterSize
std::vector< std::vector< TH2 * > > fhTRpcCluSize
void SetEnableMatchPosScaling(Bool_t bval)
std::vector< TH2 * > fhRpcCluAvLnWalk
TClonesArray * fTofHitsColl
// Calibrated TOF Digis
std::vector< TH2 * > fhRpcCluTrms
std::vector< TH2 * > fhSmCluPosition
std::vector< std::vector< std::vector< Double_t > > > fvdY
Bool_t FillHistos(CbmEvent *tEvent)
std::vector< TH2 * > fhRpcCluAvWalk
std::vector< std::vector< TH2 * > > fhTRpcCluQASY
std::vector< Int_t > vDigiIndRef
std::vector< std::vector< std::vector< Double_t > > > fvdX
std::vector< TProfile * > fhSmCluSvel
std::vector< TH2 * > fhRpcDigiTotLeft
std::vector< std::vector< Double_t > > fvCPTOffYBinWidth
std::vector< TH2 * > fhRpcDigiDTMul
std::vector< TH2 * > fhRpcCluPosition
std::vector< std::vector< Double_t > > fvMulDigi
std::vector< std::vector< std::vector< std::vector< CbmTofDigi * > > > > fStorDigi
std::vector< TH2 * > fhRpcDigiDTLD
virtual double * find_yedges(const char *hname, Double_t dThr, Double_t dLen)
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPDelTof
std::vector< TH1 * > fhRpcDTLastHits_Tot
std::vector< std::vector< TH2 * > > fhTSmCluTRun
std::vector< std::vector< Double_t > > fvTimeLastDigi
double GetLocalY(CbmTofHit *pHit)