Belle II Software  release-05-01-25
TrackMC.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : TrackMC.h
5 // Section : TRG CDC
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a GEN_HEPEVT particle in tracking.
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifndef TRGCDCTrackMC_FLAG_
15 #define TRGCDCTrackMC_FLAG_
16 
17 #include <vector>
18 #include "CLHEP/Vector/LorentzVector.h"
19 #include "trg/trg/Utilities.h"
20 #include "trg/cdc/TRGCDC.h"
21 
22 #ifdef TRGCDC_SHORT_NAMES
23 #define TCTrackMC TRGCDCTrackMC
24 #endif
25 
26 namespace Belle2 {
32  class TRGCDCTrackMC {
34 
35  public:
37  static std::vector<const TRGCDCTrackMC*> list(void);
38 
39  private:
41  static void update(void);
42 
43  private:
45  TRGCDCTrackMC();
46 
47  public:
49  virtual ~TRGCDCTrackMC();
50 
51  public:
53  std::string name(void) const;
54 
56  unsigned id(void) const;
57 
59  int status(void) const;
60 
62  int pType(void) const;
63 
65  const TRGCDCTrackMC* mother(void) const;
66 
68  const TRGCDCTrackMC* child(unsigned i) const;
69 
71  const CLHEP::HepLorentzVector& p(void) const;
72 
74  const CLHEP::Hep3Vector& v(void) const;
75 
77  void dump(const std::string& message = std::string(""),
78  const std::string& prefix = std::string("")) const;
79 
81  std::vector<const TRGCDCWireHitMC*> hits(void) const;
82 
84 //cnv const struct gen_hepevt * gen(void) const;
85 
86  public:
87 
90 
91  private:
92  // const struct gen_hepevt * _hep;
94  TRGCDCTrackMC* _mother = nullptr;
96  std::vector<TRGCDCTrackMC*> _children;
98  const CLHEP::HepLorentzVector _p;
100  const CLHEP::Hep3Vector _v;
102  std::vector<TRGCDCWireHitMC*> _hits;
103 
104  private:// static members
106  static std::vector<const TRGCDCTrackMC*> _list;
107 
108  friend class TRGCDC;
109  };
110 
111 //-----------------------------------------------------------------------------
112 
113  inline
114  unsigned
115  TRGCDCTrackMC::id(void) const
116  {
117 //cnv return _hep->m_ID - 1;
118  return 0;
119  }
120 
121  inline
122  int
124  {
125 //cnv return _hep->m_isthep;
126  return 0;
127  }
128 
129  inline
130  int
132  {
133 // return _hep->m_idhep;
134  return 0;
135  }
136 
137  inline
138  const TRGCDCTrackMC*
140  {
141  return _mother;
142  }
143 
144  inline
145  const TRGCDCTrackMC*
146  TRGCDCTrackMC::child(unsigned i) const
147  {
148  return _children[i];
149  }
150 
151  inline
152  const CLHEP::HepLorentzVector&
153  TRGCDCTrackMC::p(void) const
154  {
155  return _p;
156  }
157 
158  inline
159  const CLHEP::Hep3Vector&
160  TRGCDCTrackMC::v(void) const
161  {
162  return _v;
163  }
164 
165  inline
166  std::string
168  {
169  return "mc" + TRGUtilities::itostring(id());
170  }
171 
173 } // namespace Belle2
174 
175 #endif /* TRGCDCTrackMC_FLAG_ */
Belle2::TRGCDCTrackMC::_list
static std::vector< const TRGCDCTrackMC * > _list
vector of pointers to TRGCDCTrackMC
Definition: TrackMC.h:106
Belle2::TRGCDCTrackMC::mother
const TRGCDCTrackMC * mother(void) const
returns a pointer to a mother.
Definition: TrackMC.h:139
Belle2::TRGCDCTrackMC::p
const CLHEP::HepLorentzVector & p(void) const
returns momentum vector.
Definition: TrackMC.h:153
Belle2::TRGCDCTrackMC::status
int status(void) const
returns status.
Definition: TrackMC.h:123
Belle2::TRGCDCTrackMC::_children
std::vector< TRGCDCTrackMC * > _children
vector of pointers to children TRGCDCTrackMC
Definition: TrackMC.h:96
Belle2::TRGCDCTrackMC::_mother
TRGCDCTrackMC * _mother
pointer to mother TRGCDCTrackMC
Definition: TrackMC.h:94
Belle2::TRGCDCTrackMC::dump
void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
Definition: TrackMC.cc:82
Belle2::TRGCDCTrackMC::_hits
std::vector< TRGCDCWireHitMC * > _hits
vector of pointers to TRGCDCWireHitMC
Definition: TrackMC.h:102
Belle2::TRGCDCTrackMC::_undefined
static TRGCDCTrackMC * _undefined
returns a pointer to gen_hepevt.
Definition: TrackMC.h:89
Belle2::TRGCDCTrackMC::list
static std::vector< const TRGCDCTrackMC * > list(void)
returns a list of TRGCDCTrackMC's.
Definition: TrackMC.cc:95
Belle2::TRGCDCTrackMC
A class to represent a GEN_HEPEVT particle in tracking.
Definition: TrackMC.h:33
Belle2::TRGCDCTrackMC::name
std::string name(void) const
returns name.
Definition: TrackMC.h:167
Belle2::TRGCDCTrackMC::v
const CLHEP::Hep3Vector & v(void) const
returns position vector.
Definition: TrackMC.h:160
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGCDCTrackMC::hits
std::vector< const TRGCDCWireHitMC * > hits(void) const
returns a list of TRGCDCWireHitMC.
Definition: TrackMC.cc:103
Belle2::TRGCDCTrackMC::child
const TRGCDCTrackMC * child(unsigned i) const
returns a pointer to i'th child.
Definition: TrackMC.h:146
Belle2::TRGCDCTrackMC::_p
const CLHEP::HepLorentzVector _p
momentum
Definition: TrackMC.h:98
Belle2::TRGCDCTrackMC::update
static void update(void)
updates information.
Definition: TrackMC.cc:30
Belle2::TRGCDCTrackMC::pType
int pType(void) const
returns particle type.
Definition: TrackMC.h:131
Belle2::TRGCDCTrackMC::id
unsigned id(void) const
returns an id started from 0.
Definition: TrackMC.h:115
Belle2::TRGCDC
The instance of TRGCDC is a singleton.
Definition: TRGCDC.h:70
Belle2::TRGUtilities::itostring
static std::string itostring(int i)
converts int to string. (Use boost::lexical_cast)
Belle2::TRGCDCTrackMC::_v
const CLHEP::Hep3Vector _v
vertex
Definition: TrackMC.h:100
Belle2::TRGCDCTrackMC::TRGCDCTrackMC
TRGCDCTrackMC()
Constructor.
Definition: TrackMC.cc:68
Belle2::TRGCDCTrackMC::~TRGCDCTrackMC
virtual ~TRGCDCTrackMC()
Destructor.
Definition: TrackMC.cc:72