PandaRoot
PndGemTrackFinderQA.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndGemTrackFinderQA header file -----
3 // ----- Created 02.06.2009 by R. Karabowicz -----
4 // -------------------------------------------------------------------------
5 
14 #ifndef PNDGEMTRACKFINDERQA_H
15 #define PNDGEMTRACKFINDERQA_H
16 
17 #include "TH1F.h"
18 #include "TH2F.h"
19 
20 #include "FairTask.h"
21 #include "PndMCTrack.h"
22 
23 #include "PndGemHit.h"
24 #include "PndGemDigiPar.h"
25 
26 #include <vector>
27 
28 class PndGemTrackFinderQA : public FairTask {
29 
30  public:
33 
35  PndGemTrackFinderQA(Int_t iVerbose);
36 
38  virtual ~PndGemTrackFinderQA();
39 
41  virtual void Exec(Option_t *opt);
42 
44  void SetVerbose(const Int_t &verbose) { fVerbose = verbose; };
45 
46  private:
47  PndGemDigiPar *fDigiPar;
48 
50  TClonesArray *fMCTrackArray;
51  TClonesArray *fMCPointArray;
52 
53  TClonesArray *fGemHitArray; //
54  TClonesArray *fGemTrackArray;
55 
57  TClonesArray *fGemData[10];
58  Int_t fGemDataPointer[1000];
59  Int_t fGemPointNumber;
60 
62  Int_t fNofEvents;
63 
64  TVector3 fTargetPos;
65  std::vector<Int_t> fMCTrackNofCrossedGemStations;
66  std::vector<Int_t> fMCTrackNofGemPoints;
67  std::vector<Int_t> fRecoTrackMCMatch;
68  Int_t fNeededStationsToRecoTrack;
69  Double_t fMinQuota;
70 
71  Int_t fNofMCAll;
72  Int_t fNofMCAcc;
73  Int_t fNofMCPrim;
74  Int_t fNofMCSec;
75  Int_t fNofMCRef; // primary, mom.mag > 0.5GeV/c
76 
77  Int_t fNofRecoAcc;
78  Int_t fNofRecoPrim;
79  Int_t fNofRecoSec;
80  Int_t fNofRecoRef; // primary, mom.mag > 0.5GeV/c
81 
82  Int_t fNofRecoGhosts;
83  Int_t fNofRecoClones;
84 
85  TList *fHistoList;
86  // number of mc tracks, reco tracks, efficiency as function of MOMENTUM
87  TH1F *fhMCAllVsP, *fhMCAccVsP, *fhMCPrimVsP, *fhMCSecVsP, *fhMCRefVsP;
88  TH1F *fhRecoAccVsP, *fhRecoPrimVsP, *fhRecoSecVsP, *fhRecoRefVsP;
89  TH1F *fhEffAccVsP, *fhEffPrimVsP, *fhEffSecVsP, *fhEffRefVsP;
90  // number of mc tracks, reco tracks, efficiency as function of THETA
91  TH1F *fhMCAllVsT, *fhMCAccVsT, *fhMCPrimVsT, *fhMCSecVsT, *fhMCRefVsT;
92  TH1F *fhRecoAccVsT, *fhRecoPrimVsT, *fhRecoSecVsT, *fhRecoRefVsT;
93  TH1F *fhEffAccVsT, *fhEffPrimVsT, *fhEffSecVsT, *fhEffRefVsT;
94  // number of mc tracks, reco tracks, efficiency as function of PHI
95  TH1F *fhMCAllVsA, *fhMCAccVsA, *fhMCPrimVsA, *fhMCSecVsA, *fhMCRefVsA;
96  TH1F *fhRecoAccVsA, *fhRecoPrimVsA, *fhRecoSecVsA, *fhRecoRefVsA;
97  TH1F *fhEffAccVsA, *fhEffPrimVsA, *fhEffSecVsA, *fhEffRefVsA;
98  // number of mc tracks, reco tracks, efficiency as function of NUMBER OF POINTS
99  TH1F *fhMCAllVsN, *fhMCAccVsN, *fhMCPrimVsN, *fhMCSecVsN, *fhMCRefVsN;
100  TH1F *fhRecoAccVsN, *fhRecoPrimVsN, *fhRecoSecVsN, *fhRecoRefVsN;
101  TH1F *fhEffAccVsN, *fhEffPrimVsN, *fhEffSecVsN, *fhEffRefVsN;
102 
103  // MOMENTUM, THETA and (PHI)ANGLE reco tracks distribution
104  TH1F *fhRecoAllP, *fhRecoPrimP, *fhRecoSecP;
105  TH1F *fhRecoAllT, *fhRecoPrimT, *fhRecoSecT;
106  TH1F *fhRecoAllA, *fhRecoPrimA, *fhRecoSecA;
107 
108  // momentum resolution vs MOMENTUM
109  TH2F *fhMomResAccVsP, *fhMomResPrimVsP, *fhMomResSecVsP, *fhMomResRefVsP;
110  // momentum resolution vs THETA
111  TH2F *fhMomResAccVsT, *fhMomResPrimVsT, *fhMomResSecVsT, *fhMomResRefVsT;
112  // momentum resolution vs THETA
113  TH2F *fhMomResAccVsA, *fhMomResPrimVsA, *fhMomResSecVsA, *fhMomResRefVsA;
114 
115  TH1F *fhNofHitsPerTrack;
116  TH1F *fhNofHitsPerRecoTrack;
117  TH1F *fhNofHitsPerGhost;
118  TH1F *fhNofHitsPerClone;
119 
120  TH1F *fhNofCorrHitsPerRecoTrack;
121  TH1F *fhNofOthTHitsPerRecoTrack;
122  TH1F *fhNofNoTrHitsPerRecoTrack;
123 
124  TH1F *fhNofMCTracksPerEvent, *fhNofRecoTracksPerEvent;
125 
126  void CreateHistos();
127  void PrepareMCTracks();
128  void MatchRecoTracks();
129 
131  virtual void SetParContainers();
132 
133  void DivideHistos(TH1 *hist1, TH1 *hist2, TH1 *hist3);
134 
135  Int_t GetPointVector(Int_t arrayId, Int_t entryId, std::vector<Int_t> &pointVector, Bool_t printInfo = kFALSE);
136  Int_t FindMatchingPoint(Int_t gemHitIndex);
137 
139  virtual void Finish();
140 
142  virtual InitStatus Init();
143 
145  virtual InitStatus ReInit();
146 
147  ClassDef(PndGemTrackFinderQA, 1);
148 };
149 
150 #endif
virtual void Exec(Option_t *opt)
Digitization Parameter Class for GEM part.
Definition: PndGemDigiPar.h:30
void SetVerbose(const Int_t &verbose)
track finding quality assesment task
virtual ~PndGemTrackFinderQA()