FairRoot/PandaRoot
PndGemFindClusters.h
Go to the documentation of this file.
1 //* $Id: */
2 
3 // -------------------------------------------------------------------------
4 // ----- PndGemFindClusters header file -----
5 // ----- Created 15/02/2009 by R. Karabowicz -----
6 // -------------------------------------------------------------------------
7 
8 
20 #ifndef PNDGEMFINDCLUSTERS_H
21 #define PNDGEMFINDCLUSTERS_H 1
22 
23 
24 #include "FairTask.h"
25 
26 #include "TStopwatch.h"
27 
28 #include <map>
29 #include <set>
30 
31 
32 class TClonesArray;
33 class PndGemDigiPar;
34 class PndGemSensor;
35 class PndGemStation;
36 
37 struct DigiCluster {
38  Int_t detId;
39  std::vector<Int_t> digiNr;
40  std::vector<Int_t> chanNr;
41  std::vector<Double_t> sigADC;
45  Int_t cluPMn;
46  Int_t cluPMx;
49 };
50 
51 class PndGemFindClusters : public FairTask
52 {
53 
54 
55  public :
56 
59 
60 
63 
64 
66  PndGemFindClusters(const char* name, Int_t iVerbose=0);
67 
68 
70  virtual ~PndGemFindClusters();
71 
72 
74  virtual void Exec(Option_t* opt);
75 
76 
77 
78  private:
79 
81  TClonesArray* fDigis;
82  TClonesArray* fClusters;
84  std::map <Double_t, Int_t> fTimeOrderedDigis;
85  std::vector <DigiCluster> fDigiClusters;
86 
87  Int_t fTNofEvents;
88  Int_t fTNofDigis;
90 
91  TStopwatch fTimer;
92 
94  virtual void SetParContainers();
95 
96 
98  virtual InitStatus Init();
99 
100 
102  virtual InitStatus ReInit();
103 
104 
106  Int_t SortDigis();
107 
108  // /** Find clusters **/
109  //void FindClusters();//not used
110 
112  Int_t CreateClusters();
113 
115  Int_t WriteClusters();
116 
117  // /** Compare digi to clusters **/
118  //Bool_t CompareDigiToClusters(Int_t digiNumber);
119 
121  Bool_t CompareDigiToClustersDigis(Int_t digiNumber);
122 
123 
124  // /** Analyze clusters **/
125  //void AnalyzeClusters();//not used
126 
127 
129  //void ClearClusters();//not used
130 
131  //void ClearClusters2();
132 
133  void SortClusters();
134  void SortCluster(Int_t clus);
135  void PrintClusters();
136  void PrintCluster (Int_t clus);
137 
138  void JoinTwoClusters(Int_t clus1, Int_t clus2);
139 
140  void AddDigiToCluster(Int_t digiNr, Int_t clusNr);
141 
143  virtual void Finish();
144 
145 
147 
148 };
149 
150 #endif
std::vector< Int_t > digiNr
PndGemDigiPar * fDigiPar
Bool_t CompareDigiToClustersDigis(Int_t digiNumber)
std::map< Double_t, Int_t > fTimeOrderedDigis
ClassDef(PndGemFindClusters, 1)
TClonesArray * fClusters
void PrintCluster(Int_t clus)
std::vector< Int_t > chanNr
TClonesArray * fDigis
virtual InitStatus Init()
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:31
virtual InitStatus ReInit()
void SortCluster(Int_t clus)
Double_t
std::vector< DigiCluster > fDigiClusters
void AddDigiToCluster(Int_t digiNr, Int_t clusNr)
std::vector< Double_t > sigADC
virtual void SetParContainers()
TString name
void JoinTwoClusters(Int_t clus1, Int_t clus2)
Int_t iVerbose
virtual void Exec(Option_t *opt)