PandaRoot
PndTrackingQualityRecoInfo.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
18 #ifndef PNDTRACKINGQUALITYRECOINFO_H
19 #define PNDTRACKINGQUALITYRECOINFO_H 1
20 
22 
23 #include "TVector3.h"
24 
25 class PndTrackingQualityRecoInfo : public TObject {
26 
27  public:
29  PndTrackingQualityRecoInfo(int recotrackid);
31 
33  {
34  fMCTrackInfo = *info;
43  }
44  void SetNofMCTracks(Int_t nofmctracks) { fNofMCTracks = nofmctracks; }
45  Int_t GetNofMCTracks() { return fNofMCTracks; }
46 
47  double GetPurity();
48  /* double GetSttParalPurity() { return (double) GetNofSttParalTrueHits()/GetNofSttParalHits(); } */
49  /* double GetSttSkewPurity() { return (double) GetNofSttSkewTrueHits()/GetNofSttSkewHits(); } */
50  double GetSttPurity();
51  double GetMvdPixelPurity();
52  double GetMvdStripPurity();
53  double GetMvdPurity();
54  double GetGemPurity();
55  double GetFtsPurity();
56  /* double GetSciTilPurity() { return (double) GetNofSciTilTrueHits()/GetNofSciTilHits(); } */
57 
58  double GetContamination();
59  /* double GetSttParalContamination() { return (double) GetNofSttParalFakeHits()/GetNofSttParalHits(); } */
60  /* double GetSttSkewContamination() { return (double) GetNofSttSkewFakeHits()/GetNofSttSkewHits(); } */
61  double GetSttContamination();
62  double GetMvdPixelContamination();
63  double GetMvdStripContamination();
64  double GetMvdContamination();
65  double GetGemContamination();
66  double GetFtsContamination();
67  /* double GetSciTilContamination() { return (double) GetNofSciTilFakeHits()/GetNofSciTilHits(); } */
68 
69  double GetEfficiency();
70  double GetMvdPixelEfficiency();
71  double GetMvdStripEfficiency();
72  double GetMvdEfficiency();
73  /* double GetSttParalEfficiency(); */
74  /* double GetSttSkewEfficiency(); */
75  double GetSttEfficiency();
76  double GetGemEfficiency();
77  double GetFtsEfficiency();
78  /* double GetSciTilEfficiency(); */
79 
80  double GetInefficiency();
81  double GetMvdPixelInefficiency();
82  double GetMvdStripInefficiency();
83  double GetMvdInefficiency();
84  /* double GetSttParalInefficiency(); */
85  /* double GetSttSkewInefficiency(); */
86  double GetSttInefficiency();
87  double GetGemInefficiency();
88  double GetFtsInefficiency();
89  /* double GetSciTilInefficiency(); */
90 
91  int GetQuality() { return fQuality; }
92  int GetMCQuality() { return fMCQuality; }
93 
94  void SetMCVertex(TVector3 pos) { fMCVertex = pos; }
95  void SetMCMomentum(TVector3 mom) { fMCMomentum = mom; }
96 
97  void SetPositionFirst(TVector3 pos) { fPosFirst = pos; }
98  void SetMomentumFirst(TVector3 mom) { fMomFirst = mom; }
99  void SetPositionLast(TVector3 pos) { fPosLast = pos; }
100  void SetMomentumLast(TVector3 mom) { fMomLast = mom; }
101 
102  TVector3 GetPositionFirst() { return fPosFirst; }
103  TVector3 GetMomentumFirst() { return fMomFirst; }
104  TVector3 GetPositionLast() { return fPosLast; }
105  TVector3 GetMomentumLast() { return fMomLast; }
106 
107  void SetCharge(int ch) { fCharge = ch; }
108 
109  void SetNofMvdPixelTrueHits(int nofpix) { fNofMvdPixelTrueHits = nofpix; }
110  void SetNofMvdStripTrueHits(int nofstr) { fNofMvdStripTrueHits = nofstr; }
111  /* void SetNofSttParalTrueHits(int nofsttparal) { fNofSttParalTrueHits = nofsttparal; } */
112  /* void SetNofSttSkewTrueHits(int nofsttskew) { fNofSttSkewTrueHits = nofsttskew; } */
113  void SetNofSttTrueHits(int nofstt) { fNofSttTrueHits = nofstt; }
114  void SetNofGemTrueHits(int nofgem) { fNofGemTrueHits = nofgem; }
115  void SetNofFtsTrueHits(int noffts) { fNofFtsTrueHits = noffts; }
116  /* void SetNofSciTilTrueHits(int nofscitil) { fNofSciTilTrueHits = nofscitil; } */
117 
121  /* Int_t GetNofSttParalTrueHits() { return fNofSttParalTrueHits; } */
122  /* Int_t GetNofSttSkewTrueHits() { return fNofSttSkewTrueHits; } */
123  Int_t GetNofSttTrueHits() { return fNofSttTrueHits; } // fNofParalSttTrueHits + fNofSttSkewTrueHits ;}
124  Int_t GetNofGemTrueHits() { return fNofGemTrueHits; }
125  Int_t GetNofFtsTrueHits() { return fNofFtsTrueHits; }
126  /* Int_t GetNofSciTilTrueHits() {return fNofSciTilTrueHits; } */
128  {
130  } // + fNofSttParalTrueHits + fNofSttSkewTrueHit + fNofSciTilTrueHits; }
131 
132  void SetNofMvdPixelFakeHits(int nofpix) { fNofMvdPixelFakeHits = nofpix; }
133  void SetNofMvdStripFakeHits(int nofstr) { fNofMvdStripFakeHits = nofstr; }
134  /* void SetNofSttParalFakeHits(int nofsttparal) { fNofSttParalFakeHits = nofsttparal; } */
135  /* void SetNofSttSkewFakeHits(int nofsttskew) { fNofSttSkewFakeHits = nofsttskew; } */
136  void SetNofSttFakeHits(int nofstt) { fNofSttFakeHits = nofstt; }
137  void SetNofGemFakeHits(int nofgem) { fNofGemFakeHits = nofgem; }
138  void SetNofFtsFakeHits(int noffts) { fNofFtsFakeHits = noffts; }
139  /* void SetNofSciTilFakeHits(int nofscitil) { fNofSciTilFakeHits = nofscitil; } */
140 
144  /* Int_t GetNofSttParalFakeHits() { return fNofSttParalFakeHits; } */
145  /* Int_t GetNofSttSkewFakeHits() { return fNofSttSkewFakeHits; } */
146  Int_t GetNofSttFakeHits() { return fNofSttFakeHits; } // fNofSttParalFakeHits + fNofSttSkewFakeHits ;}
147  Int_t GetNofGemFakeHits() { return fNofGemFakeHits; }
148  Int_t GetNofFtsFakeHits() { return fNofFtsFakeHits; }
149  /* Int_t GetNofSciTilFakeHits() {return fNofSciTilFakeHits; } */
151  {
153  } // + fNofSttParalFakeHits + fNofSttSkewFakeHits + fNofSciTilFakeHits; }
154 
158  /* Int_t GetNofSttParalMissingHits() { return fNofSttParalMissingHits; } */
159  /* Int_t GetNofSttSkewMissingHits() { return fNofSttSkewMissingHits; } */
160  Int_t GetNofSttMissingHits() { return fNofSttMissingHits; } // fNofSttParalMissingHits + fNofSttSkewMissingHits ;}
163  /* Int_t GetNofSciTilMissingHits() {return fNofSciTilMissingHits; } */
165  {
167  } // + fNofSttParalMissingHits + fNofSttSkewMissingHits + fNofSciTilMissingHits; }
168 
169  void SetNofMvdPixelMissingHits(int nofpix) { fNofMvdPixelMissingHits = nofpix; }
170  void SetNofMvdStripMissingHits(int nofstr) { fNofMvdStripMissingHits = nofstr; }
171  /* void SetNofSttParalMissingHits(int nofsttparal) { fNofSttParalMissingHits = nofsttparal; } */
172  /* void SetNofSttSkewMissingHits(int nofsttskew) { fNofSttSkewMissingHits = nofsttskew; } */
173  void SetNofSttMissingHits(int nofstt) { fNofSttMissingHits = nofstt; }
174  void SetNofGemMissingHits(int nofgem) { fNofGemMissingHits = nofgem; }
175  void SetNofFtsMissingHits(int nofgem) { fNofFtsMissingHits = nofgem; }
176  /* void SetNofSciTilMissingHits(int nofscitil) { fNofSciTilMissingHits = nofscitil; } */
177 
179  {
181  } // + fNofSttParalTrueHits + fNofSttSkewTrueHits + fNofSciTilTrueHits; }
183  {
185  } // + fNofSttParalFakeHits + fNofSttSkewFakeHits + fNofSciTilFakeHits; }
187 
191  /* Int_t GetNofSttParalHits() { return GetNofSttParalTrueHits() + GetNofSttParalFakeHits(); } */
192  /* Int_t GetNofSttSkewHits() { return GetNofSttSkewTrueHits() + GetNofSttSkewFakeHits(); } */
193  Int_t GetNofSttHits() { return GetNofSttTrueHits() + GetNofSttFakeHits(); } // GetNofSttParalHits() + GetNofSttSkewHits(); }
196  /* Int_t GetNofSciTilHits() { return GetNofSciTilTrueHits() + GetNofSciTilFakeHits(); } */
197 
198  Bool_t IsFull() { return GetEfficiency() > 0.9999; }
199  Bool_t IsAlmostFull() { return GetEfficiency() < 0.9999 && GetEfficiency() > 0.90; }
200  Bool_t IsPartial() { return GetEfficiency() < 0.90 && GetEfficiency() > 0.60; }
201  Bool_t IsScarce() { return GetEfficiency() < 0.60 && GetEfficiency() > 0.; }
202 
203  Bool_t IsClean() { return GetContamination() < 0.0001; }
204  Bool_t IsAlmostClean() { return GetContamination() > 0.0001 && GetContamination() < 0.1; }
205  Bool_t IsNoisy() { return GetContamination() > 0.1; }
206 
207  Int_t GetRecoTrackID() { return fRecoTrackID; }
208 
209  Int_t GetCharge() { return fCharge; }
210 
212  void SetMCTrackID(int mctrackid) { fMCTrackID = mctrackid; }
213  Int_t GetMCTrackID() { return fMCTrackID; }
214 
215  void SetTrue() { fTrue = 1; }
216  Bool_t IsTrue() { return fTrue == 1; }
217 
218  void SetClone() { fTrue = 0; }
219  Bool_t IsClone() { return fTrue == 0; }
220 
221  void SetFlag(int flag) { fFlag = flag; }
222  Int_t GetFlag() { return fFlag; }
223 
224  void SetIdealTrackId(int idealid) { fIdealTrackId = idealid; }
225  Int_t GetIdealTrackId() { return fIdealTrackId; }
226 
227  protected:
231 
232  /* Int_t fNofSttParalTrueHits, fNofSttSkewTrueHits, fNofSciTilTrueHits; */
233  /* Int_t fNofSttParalFakeHits, fNofSttSkewFakeHits, fNofSciTilFakeHits; */
234  /* Int_t fNofSttParalMissingHits, fNofSttSkewMissingHits, fNofSciTilMissingHits; */
235 
237  TVector3 fPosFirst, fMomFirst;
238  TVector3 fPosLast, fMomLast;
239 
241  Int_t fFlag;
244 
245  TVector3 fMCMomFirst;
246  TVector3 fMCMomLast;
247  TVector3 fMCVertex;
248  TVector3 fMCMomentum;
249  Int_t fMCCharge;
250  Int_t fMCPdg;
251 
252  Bool_t fIsPrimary;
253  Int_t fQuality;
254  Int_t fMCQuality;
255  Int_t fCharge;
256  Int_t fMCTrackID;
257  // true = 0, clone = 1
258  Bool_t fTrue;
259 
261 };
262 
263 #endif
PndTrackingQualityMCInfo GetMCTrackInfo()
void SetMCTrackInfo(PndTrackingQualityMCInfo *info)
void SetNofMCTracks(Int_t nofmctracks)
ClassDef(PndTrackingQualityRecoInfo, 2)
PndTrackingQualityMCInfo fMCTrackInfo