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