FairRoot/PandaRoot
PndTrackingQualityRecoInfo.h
Go to the documentation of this file.
1 
6 #ifndef PNDTRACKINGQUALITYRECOINFO_H
7 #define PNDTRACKINGQUALITYRECOINFO_H 1
8 
9 
11 
12 #include "TVector3.h"
13 
14 class PndTrackingQualityRecoInfo : public TObject
15 {
16 
17  public:
18 
20  PndTrackingQualityRecoInfo(int recotrackid);
22 
24  fMCTrackInfo = *info;
33  }
34  void SetNofMCTracks(Int_t nofmctracks) { fNofMCTracks = nofmctracks; }
35  Int_t GetNofMCTracks() { return fNofMCTracks; }
36 
37  double GetPurity();
38  /* double GetSttParalPurity() { return (double) GetNofSttParalTrueHits()/GetNofSttParalHits(); } */
39  /* double GetSttSkewPurity() { return (double) GetNofSttSkewTrueHits()/GetNofSttSkewHits(); } */
40  double GetSttPurity();
41  double GetMvdPixelPurity();
42  double GetMvdStripPurity();
43  double GetMvdPurity();
44  double GetGemPurity();
45  double GetFtsPurity();
46  /* double GetSciTilPurity() { return (double) GetNofSciTilTrueHits()/GetNofSciTilHits(); } */
47 
48  double GetContamination();
49  /* double GetSttParalContamination() { return (double) GetNofSttParalFakeHits()/GetNofSttParalHits(); } */
50  /* double GetSttSkewContamination() { return (double) GetNofSttSkewFakeHits()/GetNofSttSkewHits(); } */
51  double GetSttContamination();
52  double GetMvdPixelContamination();
53  double GetMvdStripContamination();
54  double GetMvdContamination();
55  double GetGemContamination();
56  double GetFtsContamination();
57  /* double GetSciTilContamination() { return (double) GetNofSciTilFakeHits()/GetNofSciTilHits(); } */
58 
59  double GetEfficiency();
60  double GetMvdPixelEfficiency();
61  double GetMvdStripEfficiency();
62  double GetMvdEfficiency();
63  /* double GetSttParalEfficiency(); */
64  /* double GetSttSkewEfficiency(); */
65  double GetSttEfficiency();
66  double GetGemEfficiency();
67  double GetFtsEfficiency();
68  /* double GetSciTilEfficiency(); */
69 
70  double GetInefficiency();
71  double GetMvdPixelInefficiency();
72  double GetMvdStripInefficiency();
73  double GetMvdInefficiency();
74  /* double GetSttParalInefficiency(); */
75  /* double GetSttSkewInefficiency(); */
76  double GetSttInefficiency();
77  double GetGemInefficiency();
78  double GetFtsInefficiency();
79  /* double GetSciTilInefficiency(); */
80 
81  int GetQuality(){ return fQuality; }
82  int GetMCQuality(){ return fMCQuality; }
83 
84  void SetMCVertex(TVector3 pos) { fMCVertex = pos; }
85  void SetMCMomentum(TVector3 mom) { fMCMomentum = mom; }
86 
87  void SetPositionFirst(TVector3 pos) { fPosFirst = pos; }
88  void SetMomentumFirst(TVector3 mom) { fMomFirst = mom; }
89  void SetPositionLast(TVector3 pos) { fPosLast = pos; }
90  void SetMomentumLast(TVector3 mom) { fMomLast = mom; }
91 
92  TVector3 GetPositionFirst() { return fPosFirst; }
93  TVector3 GetMomentumFirst() { return fMomFirst; }
94  TVector3 GetPositionLast() { return fPosLast; }
95  TVector3 GetMomentumLast() { return fMomLast; }
96 
97  void SetCharge(int ch) { fCharge = ch; }
98 
99  void SetNofMvdPixelTrueHits(int nofpix) { fNofMvdPixelTrueHits = nofpix; }
100  void SetNofMvdStripTrueHits(int nofstr) { fNofMvdStripTrueHits = nofstr; }
101  /* void SetNofSttParalTrueHits(int nofsttparal) { fNofSttParalTrueHits = nofsttparal; } */
102  /* void SetNofSttSkewTrueHits(int nofsttskew) { fNofSttSkewTrueHits = nofsttskew; } */
103  void SetNofSttTrueHits(int nofstt) { fNofSttTrueHits = nofstt; }
104  void SetNofGemTrueHits(int nofgem) { fNofGemTrueHits = nofgem; }
105  void SetNofFtsTrueHits(int noffts) { fNofFtsTrueHits = noffts; }
106  /* void SetNofSciTilTrueHits(int nofscitil) { fNofSciTilTrueHits = nofscitil; } */
107 
111  /* Int_t GetNofSttParalTrueHits() { return fNofSttParalTrueHits; } */
112  /* Int_t GetNofSttSkewTrueHits() { return fNofSttSkewTrueHits; } */
113  Int_t GetNofSttTrueHits() {return fNofSttTrueHits; } // fNofParalSttTrueHits + fNofSttSkewTrueHits ;}
116  /* Int_t GetNofSciTilTrueHits() {return fNofSciTilTrueHits; } */
117  Int_t GetNofRecoTrueHits() {return fNofMvdPixelTrueHits + fNofMvdStripTrueHits + fNofSttTrueHits + fNofGemTrueHits + fNofFtsTrueHits; } // + fNofSttParalTrueHits + fNofSttSkewTrueHit + fNofSciTilTrueHits; }
118 
119  void SetNofMvdPixelFakeHits(int nofpix) { fNofMvdPixelFakeHits = nofpix; }
120  void SetNofMvdStripFakeHits(int nofstr) { fNofMvdStripFakeHits = nofstr; }
121  /* void SetNofSttParalFakeHits(int nofsttparal) { fNofSttParalFakeHits = nofsttparal; } */
122  /* void SetNofSttSkewFakeHits(int nofsttskew) { fNofSttSkewFakeHits = nofsttskew; } */
123  void SetNofSttFakeHits(int nofstt) { fNofSttFakeHits = nofstt; }
124  void SetNofGemFakeHits(int nofgem) { fNofGemFakeHits = nofgem; }
125  void SetNofFtsFakeHits(int noffts) { fNofFtsFakeHits = noffts; }
126  /* void SetNofSciTilFakeHits(int nofscitil) { fNofSciTilFakeHits = nofscitil; } */
127 
131  /* Int_t GetNofSttParalFakeHits() { return fNofSttParalFakeHits; } */
132  /* Int_t GetNofSttSkewFakeHits() { return fNofSttSkewFakeHits; } */
133  Int_t GetNofSttFakeHits() {return fNofSttFakeHits; } // fNofSttParalFakeHits + fNofSttSkewFakeHits ;}
136  /* Int_t GetNofSciTilFakeHits() {return fNofSciTilFakeHits; } */
137  Int_t GetNofRecoFakeHits() {return fNofMvdPixelFakeHits + fNofMvdStripFakeHits + fNofSttFakeHits + fNofGemFakeHits; }// + fNofSttParalFakeHits + fNofSttSkewFakeHits + fNofSciTilFakeHits; }
138 
142  /* Int_t GetNofSttParalMissingHits() { return fNofSttParalMissingHits; } */
143  /* Int_t GetNofSttSkewMissingHits() { return fNofSttSkewMissingHits; } */
144  Int_t GetNofSttMissingHits() {return fNofSttMissingHits; } // fNofSttParalMissingHits + fNofSttSkewMissingHits ;}
147  /* Int_t GetNofSciTilMissingHits() {return fNofSciTilMissingHits; } */
148  Int_t GetNofMissingHits() {return fNofMvdPixelMissingHits + fNofMvdStripMissingHits + fNofSttMissingHits + fNofGemMissingHits; } // + fNofSttParalMissingHits + fNofSttSkewMissingHits + fNofSciTilMissingHits; }
149 
150  void SetNofMvdPixelMissingHits(int nofpix) { fNofMvdPixelMissingHits = nofpix; }
151  void SetNofMvdStripMissingHits(int nofstr) { fNofMvdStripMissingHits = nofstr; }
152  /* void SetNofSttParalMissingHits(int nofsttparal) { fNofSttParalMissingHits = nofsttparal; } */
153  /* void SetNofSttSkewMissingHits(int nofsttskew) { fNofSttSkewMissingHits = nofsttskew; } */
154  void SetNofSttMissingHits(int nofstt) { fNofSttMissingHits = nofstt; }
155  void SetNofGemMissingHits(int nofgem) { fNofGemMissingHits = nofgem; }
156  void SetNofFtsMissingHits(int nofgem) { fNofFtsMissingHits = nofgem; }
157  /* void SetNofSciTilMissingHits(int nofscitil) { fNofSciTilMissingHits = nofscitil; } */
158 
159  Int_t GetNofTrueHits() { return fNofMvdPixelTrueHits + fNofMvdStripTrueHits + fNofSttTrueHits + fNofGemTrueHits; } // + fNofSttParalTrueHits + fNofSttSkewTrueHits + fNofSciTilTrueHits; }
160  Int_t GetNofFakeHits() { return fNofMvdPixelFakeHits + fNofMvdStripFakeHits + fNofSttFakeHits + fNofGemFakeHits; } // + fNofSttParalFakeHits + fNofSttSkewFakeHits + fNofSciTilFakeHits; }
162 
166  /* Int_t GetNofSttParalHits() { return GetNofSttParalTrueHits() + GetNofSttParalFakeHits(); } */
167  /* Int_t GetNofSttSkewHits() { return GetNofSttSkewTrueHits() + GetNofSttSkewFakeHits(); } */
168  Int_t GetNofSttHits() { return GetNofSttTrueHits() + GetNofSttFakeHits(); } // GetNofSttParalHits() + GetNofSttSkewHits(); }
171  /* Int_t GetNofSciTilHits() { return GetNofSciTilTrueHits() + GetNofSciTilFakeHits(); } */
172 
173  Bool_t IsFull() { return GetEfficiency() > 0.9999; }
174  Bool_t IsAlmostFull() { return GetEfficiency() < 0.9999 && GetEfficiency() > 0.90; }
175  Bool_t IsPartial() { return GetEfficiency() < 0.90 && GetEfficiency() > 0.60; }
176  Bool_t IsScarce() { return GetEfficiency() < 0.60 && GetEfficiency() > 0.; }
177 
178  Bool_t IsClean() { return GetContamination() < 0.0001; }
179  Bool_t IsAlmostClean() { return GetContamination() > 0.0001 && GetContamination() < 0.1; }
180  Bool_t IsNoisy() { return GetContamination() > 0.1; }
181 
182 
183  Int_t GetRecoTrackID() { return fRecoTrackID; }
184 
185  Int_t GetCharge() { return fCharge; }
186 
188  void SetMCTrackID(int mctrackid) { fMCTrackID = mctrackid; }
189  Int_t GetMCTrackID() { return fMCTrackID; }
190 
191  void SetTrue() { fTrue = 1; }
192  Bool_t IsTrue() { return fTrue == 1; }
193 
194  void SetClone() { fTrue = 0; }
195  Bool_t IsClone() { return fTrue == 0; }
196 
197  void SetFlag(int flag) { fFlag = flag; }
198  Int_t GetFlag() { return fFlag; }
199 
200  void SetIdealTrackId(int idealid) { fIdealTrackId = idealid; }
201  Int_t GetIdealTrackId() { return fIdealTrackId; }
202 
203  protected:
204 
205 
209 
210  /* Int_t fNofSttParalTrueHits, fNofSttSkewTrueHits, fNofSciTilTrueHits; */
211  /* Int_t fNofSttParalFakeHits, fNofSttSkewFakeHits, fNofSciTilFakeHits; */
212  /* Int_t fNofSttParalMissingHits, fNofSttSkewMissingHits, fNofSciTilMissingHits; */
213 
214 
216  TVector3 fPosFirst, fMomFirst;
217  TVector3 fPosLast, fMomLast;
218 
220  Int_t fFlag;
223 
224  TVector3 fMCMomFirst;
225  TVector3 fMCMomLast;
226  TVector3 fMCVertex;
227  TVector3 fMCMomentum;
228  Int_t fMCCharge;
229  Int_t fMCPdg;
230 
232  Int_t fQuality;
233  Int_t fMCQuality;
234  Int_t fCharge;
235  Int_t fMCTrackID;
236  // true = 0, clone = 1
238 
239 
241 };
242 
243 
244 #endif
TVector3 pos
PndTrackingQualityMCInfo GetMCTrackInfo()
Double_t mom
Definition: plot_dirc.C:14
void SetMCTrackInfo(PndTrackingQualityMCInfo *info)
void SetNofMCTracks(Int_t nofmctracks)
ClassDef(PndTrackingQualityRecoInfo, 2)
PndTrackingQualityMCInfo fMCTrackInfo