PandaRoot
PndTrack.h
Go to the documentation of this file.
1 /*
2  * PndTrack.h
3  *
4  * Created on: 05.03.2009
5  * Author: everybody
6  */
7 
8 #ifndef PNDTRACK_H_
9 #define PNDTRACK_H_
10 
11 #include "TObject.h"
12 #include "PndTrackCand.h"
13 #include "FairTrackParP.h"
14 #include "PndDetectorList.h"
15 #include "FairTimeStamp.h"
16 #include "TRef.h"
17 
18 #ifndef __CINT__
19 #include <boost/serialization/access.hpp>
20 #include <boost/serialization/base_object.hpp>
21 #endif //__CINT__
22 
23 class PndTrack : public FairTimeStamp {
24  public:
25  PndTrack();
26  PndTrack(const FairTrackParP &first, const FairTrackParP &last, const PndTrackCand &cand, Int_t flag = 0, Double_t chi2 = -1., Int_t ndf = 0, Int_t pid = 0, Int_t id = -1,
27  Int_t type = -1);
28 
29  void Print();
30 
31  Int_t GetPidHypo() const { return fPidHypo; }
32  Int_t GetFlag() const { return fFlag; } // Quality flag
33  Double_t GetChi2() const { return fChi2; }
34  Int_t GetNDF() const { return fNDF; }
35  Int_t GetRefIndex() const { return fRefIndex; }
36  void SetPidHypo(Int_t i) { fPidHypo = i; }
37  void SetFlag(Int_t i) { fFlag = i; }
38  void SetChi2(Double_t d) { fChi2 = d; }
39  void SetNDF(Int_t i) { fNDF = i; }
40  void SetRefIndex(TString branch, Int_t i)
41  {
42  fRefIndex = i;
43  SetLink(FairLink(branch, i));
44  }
45  void SetRefIndex(Int_t i) { fRefIndex = i; }
46  void SetTrackCand(const PndTrackCand &cand) { fTrackCand = cand; };
47  void SetTrackCandRef(PndTrackCand *candPointer) { fRefToPndTrackCand = candPointer; }
48  PndTrackCand *GetPndTrackCandViaRef() { return (PndTrackCand *)fRefToPndTrackCand.GetObject(); }
49 
50  PndTrackCand GetTrackCand() { return fTrackCand; }
51  PndTrackCand *GetTrackCandPtr() { return &fTrackCand; }
52  FairTrackParP GetParamFirst() { return fTrackParamFirst; }
53  FairTrackParP GetParamLast() { return fTrackParamLast; }
54 
55  virtual bool equal(FairTimeStamp *data) const
56  {
57  if (data)
58  return false; // dummy
59  return false;
60  }
61 
62  virtual bool operator<(const PndTrack &myTrack) const
63  {
64  PndTrackCand myCand = ((PndTrack)myTrack).GetTrackCand();
65  if (fTimeStamp < myCand.GetTimeStamp())
66  return true;
67  else if (fTimeStamp > myCand.GetTimeStamp())
68  return false;
69  return false;
70  }
71 
72  virtual bool operator>(const PndTrack &myTrack) const
73  {
74  PndTrackCand myCand = ((PndTrack)myTrack).GetTrackCand();
75  if (fTimeStamp > myCand.GetTimeStamp())
76  return true;
77  else if (fTimeStamp < myCand.GetTimeStamp())
78  return false;
79  return false;
80  }
81 
82  virtual bool operator==(const PndTrack &myTrack) const
83  {
84  if (fFlag == myTrack.fFlag)
85  return false; // dummy
86  return false;
87  }
88 
89 #ifndef __CINT__ // for BOOST serialization
90  template <class Archive>
91  void serialize(Archive &ar, const unsigned int version)
92  {
93  ar &boost::serialization::base_object<FairTimeStamp>(*this);
94  // ar & fTrackParamFirst;
95  // ar & fTrackParamLast;
96  ar &fTrackCand;
97  ar &fPidHypo;
98  ar &fFlag;
99  ar &fChi2;
100  ar &fNDF;
101  ar &fRefIndex;
102  }
103 #endif // for BOOST serialization
104 
105  private:
106  FairTrackParP fTrackParamFirst;
107  FairTrackParP fTrackParamLast;
108 
109  PndTrackCand fTrackCand;
110  TRef fRefToPndTrackCand;
111 
112  Int_t fPidHypo;
113  Int_t fFlag;
114  Double_t fChi2;
115  Int_t fNDF;
116  Int_t fRefIndex;
117 
118  public:
119  ClassDef(PndTrack, 2)
120 };
121 
122 #endif /* PNDTRACK_H_ */
void SetRefIndex(TString branch, Int_t i)
Definition: PndTrack.h:40
void SetChi2(Double_t d)
Definition: PndTrack.h:38
PndTrackCand * GetPndTrackCandViaRef()
Definition: PndTrack.h:48
void SetTrackCandRef(PndTrackCand *candPointer)
Definition: PndTrack.h:47
virtual bool equal(FairTimeStamp *data) const
Definition: PndTrack.h:55
virtual bool operator<(const PndTrack &myTrack) const
Definition: PndTrack.h:62
unsigned int i
Definition: P4_F32vec4.h:21
Int_t GetRefIndex() const
Definition: PndTrack.h:35
Int_t GetNDF() const
Definition: PndTrack.h:34
void SetPidHypo(Int_t i)
Definition: PndTrack.h:36
PndTrackCand GetTrackCand()
Definition: PndTrack.h:50
FairTrackParP GetParamLast()
Definition: PndTrack.h:53
Double_t GetChi2() const
Definition: PndTrack.h:33
void SetRefIndex(Int_t i)
Definition: PndTrack.h:45
void SetFlag(Int_t i)
Definition: PndTrack.h:37
void serialize(Archive &ar, const unsigned int version)
Definition: PndTrack.h:91
void SetNDF(Int_t i)
Definition: PndTrack.h:39
virtual bool operator>(const PndTrack &myTrack) const
Definition: PndTrack.h:72
void Print()
PndTrackCand * GetTrackCandPtr()
Definition: PndTrack.h:51
void SetTrackCand(const PndTrackCand &cand)
Definition: PndTrack.h:46
virtual bool operator==(const PndTrack &myTrack) const
Definition: PndTrack.h:82
FairTrackParP GetParamFirst()
Definition: PndTrack.h:52
Int_t GetPidHypo() const
Definition: PndTrack.h:31
Int_t GetFlag() const
Definition: PndTrack.h:32