Belle II Software  release-05-01-25
TrackMC.cc
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : TrackMC.cc
5 // Section : Tracking
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 #include "trg/cdc/TRGCDC.h"
15 #include "trg/cdc/TrackMC.h"
16 
17 namespace Belle2 {
23  TRGCDCTrackMC*
24  TRGCDCTrackMC::_undefined = new TRGCDCTrackMC();
25 
26  std::vector<const TRGCDCTrackMC*>
27  TRGCDCTrackMC::_list = std::vector<const TRGCDCTrackMC*>();
28 
29  void
31  {
32  if (_list.size()) {
33  for (unsigned i = 0; i < _list.size(); i++)
34  delete _list[i];
35  _list.clear();
36  }
37 
38 // unsigned n = 0;
39 
40 // for (unsigned i = 0; i < n; i++) {
41 // struct gen_hepevt * h = 0;
42 // if (! h) {
43 // std::cout << "TRGCDCTrackMC::update !!! can not access to GEN_HEPEVT";
44 // std::cout << std::endl;
45 // break;
46 // }
47 // // if (h->m_P[3] != 0.0 && (h->m_P[0] * h->m_P[0] + h->m_P[1] * h->m_P[1]
48 // // + h->m_P[2] * h->m_P[2]) != 0.0) {
49 // _list.push_back(new TRGCDCTrackMC(h));
50 // // } else {
51 // // std::cout << "TRGCDCTrackMC::update !!! momentum/energy is zero";
52 // // std::cout << std::endl;
53 // // }
54 // }
55  }
56 
57 // TRGCDCTrackMC::TRGCDCTrackMC(const struct gen_hepevt * h)
58 // : _hep(h),
59 // _mother(0),
60 // _p(h->m_P[0], h->m_P[1], h->m_P[2], h->m_P[3]),
61 // _v(h->m_V[0], h->m_V[1], h->m_V[2]) {
62 // if (_hep->m_mother != 0) {
63 // _mother = _list[_hep->m_mother - 1];
64 // _mother->_children.push_back(this);
65 // }
66 // }
67 
69  {
70  }
71 
73  {
74  if (_list.size()) {
75  for (unsigned i = 0; i < _list.size(); i++)
76  delete _list[i];
77  _list.clear();
78  }
79  }
80 
81  void
82  TRGCDCTrackMC::dump(const std::string&, const std::string& pre) const
83  {
84  std::cout << pre;
85  std::cout << id() << ":";
86  std::cout << pType() << ":";
87  if (_mother) std::cout << _mother->id();
88  else std::cout << "-";
89  std::cout << ":";
90  std::cout << _p << ":" << _v;
91  std::cout << std::endl;
92  }
93 
94  std::vector<const TRGCDCTrackMC*>
96  {
97  std::vector<const TRGCDCTrackMC*> t;
98  t.assign(_list.begin(), _list.end());
99  return t;
100  }
101 
102  std::vector<const TRGCDCWireHitMC*>
104  {
105  std::vector<const TRGCDCWireHitMC*> t;
106  t.assign(_hits.begin(), _hits.end());
107  return t;
108  }
109 
111 } // namespace Belle2
Belle2::TRGCDCTrackMC::_list
static std::vector< const TRGCDCTrackMC * > _list
vector of pointers to TRGCDCTrackMC
Definition: TrackMC.h:106
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
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::_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::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