PandaRoot
PndTrackingQualityMCInfo.h
Go to the documentation of this file.
1 
8 #ifndef PNDTRACKINGQUALITYMCINFO_H
9 #define PNDTRACKINGQUALITYMCINFO_H
10 
11 // #include "PndTrack.h"
12 #include "TVector3.h"
13 #include "TArrayI.h"
14 
15 class PndTrackingQualityMCInfo : public TObject {
16 
17  public:
19  PndTrackingQualityMCInfo(int nofmvdpix, int nofmvdstr, int nofsttparal, int nofsttskew, int nofgem, int noffts);
22 
24 
25  void SetPositionFirst(TVector3 pos) { fPosFirst = pos; }
26  void SetMomentumFirst(TVector3 mom) { fMomFirst = mom; }
27  void SetPositionLast(TVector3 pos) { fPosLast = pos; }
28  void SetMomentumLast(TVector3 mom) { fMomLast = mom; }
29 
30  void SetCharge(int ch) { fCharge = ch; }
31  void SetIsPrimary(Bool_t val) { fIsPrimary = val; }
32  void SetVertex(TVector3 val) { fVertex = val; }
33  void SetMomentum(TVector3 val) { fMomentum = val; }
34 
41  Int_t GetNofGemPoints() { return fNofGemPoints; }
42  Int_t GetNofFtsPoints() { return fNofFtsPoints; }
44 
45  Int_t GetMCTrackID() { return fMCTrackID; } //< Returns the corresponding MCTrack to an ideal track
46  Short_t GetNofRecoTracks(void) const { return fRecoTrackIDs.size(); } //< Returns the number of reco tracks associated to the ideal track
47  Int_t GetRecoTrackID(Int_t i = 0) const
48  { //< Returns the id of the ith reco track associated to the ideal track
49  if (i < GetNofRecoTracks())
50  return fRecoTrackIDs[i];
51  return -1;
52  }
53  Int_t GetAssoRecoTrackID() const { return fAssoRecoTrackID; }
54 
55  TVector3 GetPositionFirst() { return fPosFirst; }
56  TVector3 GetMomentumFirst() { return fMomFirst; }
57  TVector3 GetPositionLast() { return fPosLast; }
58  TVector3 GetMomentumLast() { return fMomLast; }
59 
60  Int_t GetCharge() { return fCharge; }
61  Bool_t GetIsPrimary() { return fIsPrimary; }
62  TVector3 GetVertex() { return fVertex; }
63  TVector3 GetStartMomentum() { return fMomentum; }
64 
65  void SetPDGCode(int pdg) { fPDGCode = pdg; }
66  Int_t GetPDGCode() { return fPDGCode; }
67 
70 
71  void SetMCTrackID(Int_t mctrackid) { fMCTrackID = mctrackid; }
72  void SetRecoTrackIDs(const std::vector<int> recotrkids) { fRecoTrackIDs = recotrkids; }
73  void SetRecoTrackID(int recotrkid) { fRecoTrackIDs.push_back(recotrkid); }
74  void SetAssoRecoTrackID(int asso) { fAssoRecoTrackID = asso; }
75  Bool_t IsReconstructed() { return GetNofRecoTracks() > 0; }
76 
77  void SetQuality(int quality) { fQuality = quality; }
78  Int_t GetQuality() { return fQuality; }
79 
80  void SetMCQuality(int mcquality) { fMCQuality = mcquality; }
81  Int_t GetMCQuality() { return fMCQuality; }
82 
83  protected:
84  // PndTrack* fAssociatedIdealTrack; // This pointer is used in the time based simulation in order to connect the MC trackInfo to the ideal track
85 
87 
89  Int_t fMCTrackID;
90  std::vector<int> fRecoTrackIDs;
91  TVector3 fPosFirst, fMomFirst;
92  TVector3 fPosLast, fMomLast;
93 
94  Int_t fCharge; //< Charge from MCTrack
95  Bool_t fIsPrimary;
96  TVector3 fVertex; //< Vertex position from MCTrack
97  TVector3 fMomentum; //< Momentum at vertex position from MCTrack
98  Int_t fPDGCode; //< PDG code from MCTrack
99 
100  Int_t fQuality;
101  Int_t fMCQuality;
102  Int_t fAssoRecoTrackID; //< Id of the reco track with the highest efficiency (or highest purity if two tracks with identical eff. exist)
103 
105 };
106 
107 #endif
ClassDef(PndTrackingQualityMCInfo, 3)
void SetMCTrackID(Int_t mctrackid)
void SetRecoTrackID(int recotrkid)
unsigned int i
Definition: P4_F32vec4.h:21
Int_t GetRecoTrackID(Int_t i=0) const
PndTrackingQualityMCInfo & operator=(const PndTrackingQualityMCInfo &info)
void SetRecoTrackIDs(const std::vector< int > recotrkids)
void SetReconstructabilityStatus(Int_t reco)
Short_t GetNofRecoTracks(void) const