PandaRoot
PndGemFindHitsQA.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndGemFindHitsQA header file -----
3 // ----- Created 02.06.2009 by R. Karabowicz -----
4 // -------------------------------------------------------------------------
5 
14 #ifndef PNDGEMFINDHITSQA_H
15 #define PNDGEMFINDHITSQA_H
16 
17 #include "TH1F.h"
18 #include "TH2F.h"
19 #include "TH3F.h"
20 
21 #include "FairMCPoint.h"
22 #include "FairTask.h"
23 #include "FairRootFileSink.h"
24 
25 #include "PndGemHit.h"
26 #include "PndGemDigiPar.h"
27 
28 #include <vector>
29 
30 class PndGemFindHitsQA : public FairTask {
31 
32  public:
35 
37  PndGemFindHitsQA(Int_t iVerbose);
38 
40  virtual ~PndGemFindHitsQA();
41 
43  virtual void Exec(Option_t *opt);
44 
46  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
47 
48  void SetPointEffDist(Double_t dn) { fPointEffDist = dn; };
49 
50  private:
51  PndGemDigiPar *fDigiPar;
52 
54  TClonesArray *fMCPointArray;
55 
57  TClonesArray *fGemHitArray;
58 
60  TClonesArray *fGemData[10];
61  Int_t fGemDataPointer[1000];
62  Int_t fGemPointNumber;
63 
65  Int_t fNofEvents;
66 
67  TList *fHistoList;
68 
69  Int_t fHistPlaneDivs;
70  Double_t fHistWidth[4][2];
71 
72  Double_t fPointEffDist;
73 
74  // XY distance from point to hit
75  // vs station(up to 4),sensor(2 per station),position(divide into 4x4 regions)
76  TH2F *fhPointToHit[4][2][4][4];
77  // distance of point to the closest hit
78  // TH3F* fhPointClosest [4][2];
79  TH2F *fhPointNof[4][2];
80  TH2F *fhPointReco[4][2];
81  TH2F *fhPointRecoEff[4][2];
82  TH1F *fhPointRadNof[4][2];
83  TH1F *fhPointRadReco[4][2];
84  TH1F *fhPointRadRecoEff[4][2];
85 
86  TH2F *fhPointMatch[4][2];
87  TH2F *fhPointMatchEff[4][2];
88  TH1F *fhPointRadMatch[4][2];
89  TH1F *fhPointRadMatchEff[4][2];
90 
91  TH2F *fhHitNof[4][2];
92  TH2F *fhHitFake[4][2];
93  TH2F *fhHitFakeProb[4][2];
94  TH1F *fhHitRadNof[4][2];
95  TH1F *fhHitRadFake[4][2];
96  TH1F *fhHitRadFakeProb[4][2];
97 
98  TH2F *fhHitMultipleRate[4][2];
99 
100  TH1F *fhCloseHits[4][2];
101 
102  TH2F *fhTrueMatchDiXYPerSt[4][2];
103  TH1F *fhTrueMatchDistPerSt[4][2];
104 
105  TH2F *fhTrueMatchDiXY;
106  TH1F *fhTrueMatchDist;
107  TH1F *fhTrueMatchValue;
108  TH2F *fhTrueMatchDistValue;
109 
110  TH1F *fhTrueMatchNofPerHit;
111  TH1F *fhTrueMatchNofPerPoint;
112 
113  void CreateHistos();
114  void DivideHistos(TH1 *hist1, TH1 *hist2, TH1 *hist3);
115 
116  Int_t GetPointVector(Int_t arrayId, Int_t entryId, std::vector<Int_t> &pointVector, Bool_t printInfo = kFALSE);
117 
119  virtual void SetParContainers();
120 
122  virtual void Finish();
123 
125  virtual InitStatus Init();
126 
128  virtual InitStatus ReInit();
129 
130  ClassDef(PndGemFindHitsQA, 1);
131 };
132 
133 #endif
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:30
void SetVerbose(const Int_t &verbose)
virtual ~PndGemFindHitsQA()
void SetPointEffDist(Double_t dn)
track finding quality assesment task
virtual void Exec(Option_t *opt)