CbmRoot
CbmTofTBClusterizer.h
Go to the documentation of this file.
1 /*
2  * To change this license header, choose License Headers in Project Properties.
3  * To change this template file, choose Tools | Templates
4  * and open the template in the editor.
5  */
6 
7 /*
8  * File: CbmTofTBClusterizer.h
9  * Author: tablyaz
10  *
11  * Created on December 6, 2016, 11:29 AM
12  */
13 
14 #ifndef CBMTOFTBCLUSTERIZER_H
15 #define CBMTOFTBCLUSTERIZER_H
16 
17 #include "CbmTofCell.h"
18 #include "CbmTofDetectorId_v12b.h"
19 #include "CbmTofDetectorId_v14a.h"
20 #include "CbmTofDigiBdfPar.h"
21 #include "CbmTofDigiExp.h"
22 #include "CbmTofDigiPar.h"
23 #include "CbmTofGeoHandler.h"
24 #include "FairTask.h"
25 #include "TClonesArray.h"
26 
27 
28 class CbmTofTBClusterizer : public FairTask {
29 public:
30  struct ChannelDigis {
32 
33  struct DigiDesc {
34  CbmTofDigiExp* pDigi;
35  Int_t digiInd;
36  };
37 
38  struct DigiPair {
39  Double_t y;
42  };
43 
44  std::map<Double_t, DigiDesc> topDigis;
45  std::map<Double_t, DigiDesc> bottomDigis;
46  std::map<Double_t, DigiPair> digiPairs;
47  };
48 
50  InitStatus Init();
51  void SetParContainers();
52  void Exec(Option_t* option);
53  void Finish();
54 
55 private:
56  Bool_t InitCalibParameter();
57  void GetEventInfo(Int_t& inputNr, Int_t& eventNr, Double_t& eventTime);
58 
59 private:
65  std::vector<std::vector<Double_t>> fvCPSigPropSpeed; //[nSMT][nRpc]
66  std::vector<std::vector<std::vector<std::vector<Double_t>>>>
67  fvCPDelTof; //[nSMT][nRpc][nbClDelTofBinX][nbTrg]
68  std::vector<std::vector<std::vector<std::vector<Double_t>>>>
69  fvCPTOff; //[nSMT][nRpc][nCh][nbSide]
70  std::vector<std::vector<std::vector<std::vector<Double_t>>>>
71  fvCPTotGain; //[nSMT][nRpc][nCh][nbSide]
72  std::vector<std::vector<std::vector<std::vector<std::vector<Double_t>>>>>
73  fvCPWalk; //[nSMT][nRpc][nCh][nbSide][nbWalkBins]
74  TClonesArray* fTofDigis;
75  TClonesArray* fTofPoints;
76  TClonesArray* fTofHits;
77  TClonesArray* fTofDigiMatchs;
78  //std::vector<std::vector<std::vector<std::list<CbmTofDigiExp*> > > > fStorDigiExp; //[nbType][nbSm*nbRpc][nbCh]{nDigis}
79 
80 
81  std::vector<std::vector<std::vector<ChannelDigis>>> fStorDigiExp;
82 
83  std::vector<std::vector<std::vector<std::pair<
84  std::pair<std::map<Double_t, std::pair<CbmTofDigiExp*, Int_t>>,
85  std::map<Double_t, std::pair<CbmTofDigiExp*, Int_t>>>,
86  std::map<Double_t,
87  std::pair<Double_t,
88  std::pair<std::pair<CbmTofDigiExp*, Int_t>,
89  std::pair<CbmTofDigiExp*, Int_t>>>>>>>>
90  fStorDigiExpOld; //[nbType][nbSm*nbRpc][nbCh]<[->|nTopDigis][->|nBottomDigis]>
91 
92  Double_t fOutTimeFactor;
93 
97 
99 };
100 
101 #endif /* CBMTOFTBCLUSTERIZER_H */
CbmTofDigiBdfPar.h
CbmTofTBClusterizer::ChannelDigis::ChannelDigis
ChannelDigis()
Definition: CbmTofTBClusterizer.h:31
CbmTofTBClusterizer::fTofDigis
TClonesArray * fTofDigis
Definition: CbmTofTBClusterizer.h:74
CbmTofTBClusterizer::fOutTimeFactor
Double_t fOutTimeFactor
Definition: CbmTofTBClusterizer.h:92
CbmTofTBClusterizer::fvCPTotGain
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTotGain
Definition: CbmTofTBClusterizer.h:71
CbmTofTBClusterizer::ChannelDigis::DigiDesc::pDigi
CbmTofDigiExp * pDigi
Definition: CbmTofTBClusterizer.h:34
CbmTofDigiPar.h
CbmTofTBClusterizer::ChannelDigis::DigiPair::y
Double_t y
Definition: CbmTofTBClusterizer.h:39
CbmTofTBClusterizer::CbmTofTBClusterizer
CbmTofTBClusterizer()
Definition: CbmTofTBClusterizer.cxx:65
CbmTofTBClusterizer::fTofId
CbmTofDetectorId * fTofId
Definition: CbmTofTBClusterizer.h:61
CbmTofGeoHandler.h
CbmTofTBClusterizer::fTofPoints
TClonesArray * fTofPoints
Definition: CbmTofTBClusterizer.h:75
CbmTofDetectorId_v14a.h
CbmTofTBClusterizer::fGeoHandler
CbmTofGeoHandler * fGeoHandler
Definition: CbmTofTBClusterizer.h:60
CbmTofTBClusterizer::InitCalibParameter
Bool_t InitCalibParameter()
Definition: CbmTofTBClusterizer.cxx:84
CbmTofGeoHandler
Definition: CbmTofGeoHandler.h:30
CbmTofTBClusterizer::fChannelInfo
CbmTofCell * fChannelInfo
Definition: CbmTofTBClusterizer.h:63
CbmTofDetectorId_v12b.h
CbmTofCell
Definition: CbmTofCell.h:8
CbmTofTBClusterizer::Init
InitStatus Init()
Definition: CbmTofTBClusterizer.cxx:284
CbmTofTBClusterizer::ChannelDigis::DigiPair::bottomDigi
DigiDesc bottomDigi
Definition: CbmTofTBClusterizer.h:41
CbmTofTBClusterizer::ChannelDigis::DigiDesc
Definition: CbmTofTBClusterizer.h:33
CbmTofTBClusterizer::GetEventInfo
void GetEventInfo(Int_t &inputNr, Int_t &eventNr, Double_t &eventTime)
Definition: CbmTofTBClusterizer.cxx:843
CbmTofTBClusterizer::ChannelDigis::DigiPair
Definition: CbmTofTBClusterizer.h:38
CbmTofTBClusterizer::fDigiBdfPar
CbmTofDigiBdfPar * fDigiBdfPar
Definition: CbmTofTBClusterizer.h:64
CbmTofTBClusterizer::ChannelDigis::bottomDigis
std::map< Double_t, DigiDesc > bottomDigis
Definition: CbmTofTBClusterizer.h:45
CbmTofDigiBdfPar
Parameters class for the CBM ToF digitizer using beam data distributions.
Definition: CbmTofDigiBdfPar.h:30
CbmTofTBClusterizer::CbmTofTBClusterizer
CbmTofTBClusterizer(const CbmTofTBClusterizer &)
CbmTofCell.h
CbmTofTBClusterizer::ChannelDigis::digiPairs
std::map< Double_t, DigiPair > digiPairs
Definition: CbmTofTBClusterizer.h:46
CbmTofTBClusterizer::operator=
CbmTofTBClusterizer & operator=(const CbmTofTBClusterizer &)
CbmTofTBClusterizer::fTofHits
TClonesArray * fTofHits
Definition: CbmTofTBClusterizer.h:76
CbmTofTBClusterizer::fDigiPar
CbmTofDigiPar * fDigiPar
Definition: CbmTofTBClusterizer.h:62
CbmTofTBClusterizer::SetParContainers
void SetParContainers()
Definition: CbmTofTBClusterizer.cxx:370
CbmTofTBClusterizer::fTofDigiMatchs
TClonesArray * fTofDigiMatchs
Definition: CbmTofTBClusterizer.h:77
CbmTofTBClusterizer::ClassDef
ClassDef(CbmTofTBClusterizer, 1)
CbmTofTBClusterizer::Finish
void Finish()
Definition: CbmTofTBClusterizer.cxx:835
CbmTofDigiPar
Definition: CbmTofDigiPar.h:18
CbmTofTBClusterizer::ChannelDigis::DigiPair::topDigi
DigiDesc topDigi
Definition: CbmTofTBClusterizer.h:40
CbmTofTBClusterizer
Definition: CbmTofTBClusterizer.h:28
CbmTofTBClusterizer::fvCPWalk
std::vector< std::vector< std::vector< std::vector< std::vector< Double_t > > > > > fvCPWalk
Definition: CbmTofTBClusterizer.h:73
CbmTofTBClusterizer::fvCPDelTof
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPDelTof
Definition: CbmTofTBClusterizer.h:67
CbmTofTBClusterizer::ChannelDigis
Definition: CbmTofTBClusterizer.h:30
CbmTofTBClusterizer::fStorDigiExpOld
std::vector< std::vector< std::vector< std::pair< std::pair< std::map< Double_t, std::pair< CbmTofDigiExp *, Int_t > >, std::map< Double_t, std::pair< CbmTofDigiExp *, Int_t > > >, std::map< Double_t, std::pair< Double_t, std::pair< std::pair< CbmTofDigiExp *, Int_t >, std::pair< CbmTofDigiExp *, Int_t > > > > > > > > fStorDigiExpOld
Definition: CbmTofTBClusterizer.h:90
CbmTofDetectorId
Definition: CbmTofDetectorId.h:66
CbmTofTBClusterizer::Exec
void Exec(Option_t *option)
Definition: CbmTofTBClusterizer.cxx:394
CbmTofTBClusterizer::ChannelDigis::topDigis
std::map< Double_t, DigiDesc > topDigis
Definition: CbmTofTBClusterizer.h:44
CbmTofTBClusterizer::fStorDigiExp
std::vector< std::vector< std::vector< ChannelDigis > > > fStorDigiExp
Definition: CbmTofTBClusterizer.h:81
CbmTofTBClusterizer::ChannelDigis::DigiDesc::digiInd
Int_t digiInd
Definition: CbmTofTBClusterizer.h:35
CbmTofTBClusterizer::fvCPTOff
std::vector< std::vector< std::vector< std::vector< Double_t > > > > fvCPTOff
Definition: CbmTofTBClusterizer.h:69
CbmTofTBClusterizer::fvCPSigPropSpeed
std::vector< std::vector< Double_t > > fvCPSigPropSpeed
Definition: CbmTofTBClusterizer.h:65