PandaRoot
PndSimpleTrack.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 
13 /*
14  * PndSimpleTrack.h
15  *
16  * Created on: 05.03.2009
17  * Author: everybody
18  */
19 
20 #ifndef PNDSIMPLETRACK_H_
21 #define PNDSIMPLETRACK_H_
22 
23 #include "TObject.h"
24 #include "PndTrackCand.h"
25 #include "FairTrackPar.h"
26 #include "FairTimeStamp.h"
27 #include "TRef.h"
28 #include "Rtypes.h"
29 
30 #ifndef __CINT__
31 #include <boost/serialization/access.hpp>
32 #include <boost/serialization/base_object.hpp>
33 #endif //__CINT__
34 
35 class PndSimpleTrack : public FairTimeStamp {
36  public:
38  PndSimpleTrack(const FairTrackPar &par, const PndTrackCand &cand, const double &chi2);
39 
40  void Print();
41 
42  void SetTrackCand(const PndTrackCand &cand) { fTrackCand = cand; };
43 
44  PndTrackCand GetTrackCand() { return fTrackCand; }
45  PndTrackCand *GetTrackCandPtr() { return &fTrackCand; }
46  FairTrackPar GetParam() { return fTrackParam; }
47 
48  virtual bool equal(FairTimeStamp *data) const
49  {
50  if (!data)
51  return false; // dummy
52  return false;
53  }
54 
55  virtual bool operator<(const PndSimpleTrack &myTrack) const
56  {
57  PndTrackCand myCand = ((PndSimpleTrack)myTrack).GetTrackCand();
58  if (fTimeStamp < myCand.GetTimeStamp())
59  return true;
60  else if (fTimeStamp > myCand.GetTimeStamp())
61  return false;
62  return false;
63  }
64 
65  virtual bool operator>(const PndSimpleTrack &myTrack) const
66  {
67  PndTrackCand myCand = ((PndSimpleTrack)myTrack).GetTrackCand();
68  if (fTimeStamp > myCand.GetTimeStamp())
69  return true;
70  else if (fTimeStamp < myCand.GetTimeStamp())
71  return false;
72  return false;
73  }
74 
75  virtual bool operator==(const PndSimpleTrack &myTrack) const
76  {
77  if (myTrack.fChi2 != fChi2)
78  return false; // dummy
79  return false;
80  }
81 
82 #ifndef __CINT__ // for BOOST serialization
83  template <class Archive>
84  void serialize(Archive &ar, const unsigned int version)
85  {
86  ar &boost::serialization::base_object<FairTimeStamp>(*this);
87  ar &fTrackParam;
88  ar &fTrackCand;
89  ar &fChi2;
90  }
91 #endif // for BOOST serialization
92 
93  private:
94  FairTrackPar fTrackParam;
95  PndTrackCand fTrackCand;
96  Double_t fChi2;
97 
98  ClassDef(PndSimpleTrack, 2);
99 };
100 
101 #endif /* PNDTRACK_H_ */
virtual bool operator>(const PndSimpleTrack &myTrack) const
virtual bool operator<(const PndSimpleTrack &myTrack) const
FairTrackPar GetParam()
virtual bool operator==(const PndSimpleTrack &myTrack) const
PndTrackCand GetTrackCand()
virtual bool equal(FairTimeStamp *data) const
void SetTrackCand(const PndTrackCand &cand)
void serialize(Archive &ar, const unsigned int version)
PndTrackCand * GetTrackCandPtr()