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