PandaRoot
PndGemFindClustersTB.h
Go to the documentation of this file.
1 //* $Id: */
2 
3 // -------------------------------------------------------------------------
4 // ----- PndGemFindClustersTB header file -----
5 // ----- Created 15/06/2013 by R. Karabowicz -----
6 // -------------------------------------------------------------------------
7 
18 #ifndef PNDGEMFINDCLUSTERSTB_H
19 #define PNDGEMFINDCLUSTERSTB_H 1
20 
21 #include "FairTask.h"
22 #include "FairTSBufferFunctional.h"
23 
24 #include "TStopwatch.h"
25 
26 #include <map>
27 #include <set>
28 
29 class TClonesArray;
30 class PndGemDigiPar;
31 class PndGemSensor;
32 class PndGemStation;
33 
34 struct DigiClusterTB {
35  Int_t detId;
36  std::vector<Int_t> digiNr;
37  std::vector<Int_t> chanNr;
38  std::vector<Double_t> sigADC;
39  std::vector<Double_t> sigTDC;
40  Double_t cluTDC;
41  Double_t cluADC;
42  Double_t cluPos;
43  Int_t cluPMn;
44  Int_t cluPMx;
45  Double_t cluMPs;
46  Double_t cluMVl;
47 };
48 
49 class PndGemFindClustersTB : public FairTask {
50 
51  public:
54 
56  PndGemFindClustersTB(Int_t iVerbose);
57 
59  PndGemFindClustersTB(const char *name, Int_t iVerbose = 0);
60 
62  virtual ~PndGemFindClustersTB();
63 
65  virtual void Exec(Option_t *opt);
66 
67  void SetInBranchName(TString ibn) { fInBranchName = ibn.Data(); }
68 
69  private:
70  PndGemDigiPar *fDigiPar;
71  TClonesArray *fDigis;
72  TClonesArray *fClusters;
74  Int_t fTNofEvents;
75  Int_t fTNofDigis;
76  Int_t fTNofClusters;
77 
78  BinaryFunctor *fFunctor;
79 
80  Double_t fPrepTime;
81  Double_t fCreateTime;
82  Double_t fSortTime;
83  Double_t fCheckTime;
84  Double_t fAnaTime;
85  Double_t fWriteTime;
86  Double_t fAllTime;
87 
88  TString fInBranchName;
89 
90  std::vector<DigiClusterTB> fDigiClusters;
91 
92  TStopwatch fTimer;
93 
95  virtual void SetParContainers();
96 
98  virtual InitStatus Init();
99 
101  virtual InitStatus ReInit();
102 
104  Int_t CreateClusters();
105 
107  Int_t WriteClusters();
108 
109  void AnalyzeClusters();
110 
111  void SortClusters();
112  void SortCluster(Int_t clus);
113  void PrintClusters();
114  void PrintCluster(Int_t clus);
115 
116  void CheckClusters();
117  void CheckCluster(Int_t clus);
118 
119  void JoinTwoClusters(Int_t clus1, Int_t clus2);
120 
121  void AddDigiToCluster(Int_t digiNr, Int_t clusNr);
122 
124  Bool_t CompareDigiToClusters(Int_t digiNumber);
125 
127  virtual void Finish();
128 
129  ClassDef(PndGemFindClustersTB, 1);
130 };
131 
132 #endif
std::vector< Double_t > sigTDC
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:30
std::vector< Int_t > digiNr
void SetInBranchName(TString ibn)
std::vector< Double_t > sigADC
std::vector< Int_t > chanNr