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 
18 #ifndef PNDGEMFINDCLUSTERS_H
19 #define PNDGEMFINDCLUSTERS_H 1
20 
21 #include "FairTask.h"
22 
23 #include "TStopwatch.h"
24 
25 #include <map>
26 #include <set>
27 
28 class TClonesArray;
29 class PndGemDigiPar;
30 class PndGemSensor;
31 class PndGemStation;
32 
33 struct DigiCluster {
34  Int_t detId;
35  std::vector<Int_t> digiNr;
36  std::vector<Int_t> chanNr;
37  std::vector<Double_t> sigADC;
38  Double_t cluTDC;
39  Double_t cluADC;
40  Double_t cluPos;
41  Int_t cluPMn;
42  Int_t cluPMx;
43  Double_t cluMPs;
44  Double_t cluMVl;
45 };
46 
47 class PndGemFindClusters : public FairTask {
48 
49  public:
52 
54  PndGemFindClusters(Int_t iVerbose);
55 
57  PndGemFindClusters(const char *name, Int_t iVerbose = 0);
58 
60  virtual ~PndGemFindClusters();
61 
63  virtual void Exec(Option_t *opt);
64 
65  private:
66  PndGemDigiPar *fDigiPar;
67  TClonesArray *fDigis;
68  TClonesArray *fClusters;
70  std::map<Double_t, Int_t> fTimeOrderedDigis;
71  std::vector<DigiCluster> fDigiClusters;
72 
73  Int_t fTNofEvents;
74  Int_t fTNofDigis;
75  Int_t fTNofClusters;
76 
77  TStopwatch fTimer;
78 
80  virtual void SetParContainers();
81 
83  virtual InitStatus Init();
84 
86  virtual InitStatus ReInit();
87 
89  Int_t SortDigis();
90 
91  // /** Find clusters **/
92  // void FindClusters();//not used
93 
95  Int_t CreateClusters();
96 
98  Int_t WriteClusters();
99 
100  // /** Compare digi to clusters **/
101  // Bool_t CompareDigiToClusters(Int_t digiNumber);
102 
104  Bool_t CompareDigiToClustersDigis(Int_t digiNumber);
105 
106  // /** Analyze clusters **/
107  // void AnalyzeClusters();//not used
108 
110  // void ClearClusters();//not used
111 
112  // void ClearClusters2();
113 
114  void SortClusters();
115  void SortCluster(Int_t clus);
116  void PrintClusters();
117  void PrintCluster(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  virtual void Finish();
125 
126  ClassDef(PndGemFindClusters, 1);
127 };
128 
129 #endif
std::vector< Int_t > digiNr
std::vector< Int_t > chanNr
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:30
std::vector< Double_t > sigADC