Belle II Software  release-05-02-19
TrackBase.h
1 //-----------------------------------------------------------------------------
2 // $Id$
3 //-----------------------------------------------------------------------------
4 // Filename : TrackBase.h
5 // Section : TRG CDC
6 // Owner : Yoshihito Iwasaki
7 // Email : yoshihito.iwasaki@kek.jp
8 //-----------------------------------------------------------------------------
9 // Description : A class to represent a track object in TRGCDC.
10 //-----------------------------------------------------------------------------
11 // $Log$
12 //-----------------------------------------------------------------------------
13 
14 #ifndef TRGCDCTrackBase_FLAG_
15 #define TRGCDCTrackBase_FLAG_
16 
17 #include <vector>
18 #include "CLHEP/Vector/LorentzVector.h"
19 
20 #ifdef TRGCDC_SHORT_NAMES
21 #define TCTBase TRGCDCTrackBase
22 #endif
23 
24 #define TRGCDCTrackBaseType 1
25 #define TRGCDCCircleType 2
26 #define TRGCDCLineType 4
27 #define TRGCDCTrackType 8
28 #define TRGCDCSegmentType 16
29 
30 namespace Belle2 {
36  class TRGCDCLink;
37  class TRGCDCFitter;
38  class TRGCDCRelation;
39 
42 
43  public:
44 
47 
49  TRGCDCTrackBase(const std::string& name, double charge);
50 
52  virtual ~TRGCDCTrackBase();
53 
54  public:
55 
57  std::string name(void) const;
58 
60  int status(void) const;
61 
63  double charge(void) const;
64 
66  virtual const CLHEP::Hep3Vector& p(void) const;
67 
69  virtual double pt(void) const;
70 
72  virtual const CLHEP::Hep3Vector& x(void) const;
73 
75  virtual void dump(const std::string& message = std::string(""),
76  const std::string& prefix = std::string("")) const;
77 
79  const std::vector<TRGCDCLink*>& links(void) const;
80 
82  const std::vector<TRGCDCLink*>& links(unsigned layerId) const;
83 
85  bool fitted(void) const;
86 
88  void setFitted(bool fitted);
89 
91  void setTrackID(int trackID);
92 
94  int getTrackID();
95 
97  virtual unsigned objectType(void) const;
98 
100  const TRGCDCFitter* fitter(void) const;
101 
104  const TRGCDCRelation relation(void) const;
105 
107  const TRGCDCRelation relation2D(void) const;
108 
110  const TRGCDCRelation relation3D(void) const;
111 
112  public: // Modifiers
113 
115  std::string name(const std::string& newName);
116 
118  void append(TRGCDCLink*);
119 
121  void append(const std::vector<TRGCDCLink*>& links);
122 
124  double charge(double c);
125 
127  virtual int fit(void);
128 
130  const TRGCDCFitter* fitter(const TRGCDCFitter*);
131 
132  public: // Utility functions
133 
135  virtual int approach2D(TRGCDCLink&) const;
136 
137  private:
138 
140  std::string _name;
141 
143  int _status;
144 
146  double _charge;
147 
149  CLHEP::Hep3Vector _p;
150 
152  CLHEP::Hep3Vector _x;
153 
155  std::vector<TRGCDCLink*>* _ts;
156 
158  std::vector<TRGCDCLink*> _tsAll;
159 
161  const unsigned _nTs;
162 
165 
167  mutable bool _fitted;
168 
171 
172  friend class TRGCDCFitter;
173  friend class TRGCDCCircleFitter;
174  friend class TRGCDCHelixFitter;
175  friend class TRGCDCCircle;
176  friend class TRGCDCTrack;
177  };
178 
179 //-----------------------------------------------------------------------------
180 
181  inline
182  std::string
184  {
185  return _name;
186  }
187 
188  inline
189  std::string
190  TRGCDCTrackBase::name(const std::string& a)
191  {
192  return _name = a;
193  }
194 
195  inline
196  int
198  {
199  return _status;
200  }
201 
202  inline
203  const CLHEP::Hep3Vector&
204  TRGCDCTrackBase::p(void) const
205  {
206  return _p;
207  }
208 
209  inline
210  const CLHEP::Hep3Vector&
211  TRGCDCTrackBase::x(void) const
212  {
213  return _x;
214  }
215 
216  inline
217  double
219  {
220  return _p.perp();
221  }
222 
223  inline
224  bool
226  {
227  return _fitted;
228  }
229 
230  inline
231  void
233  {
234  _fitted = fitted;
235  }
236 
237  inline
238  unsigned
240  {
241  return TRGCDCTrackBaseType;
242  }
243 
244  inline
245  double
247  {
248  return _charge;
249  }
250 
251  inline
252  double
254  {
255  return _charge = a;
256  }
257 
258  inline
259  const TRGCDCFitter*
261  {
262  return _fitter;
263  }
264 
265  inline
266  const TRGCDCFitter*
268  {
269  _fitted = false;
270  return _fitter = a;
271  }
272 
273  inline
274  void
276  {
277  m_trackID = trackID;
278  }
279 
280  inline
281  int
283  {
284  return m_trackID;
285  }
286 
288 } // namespace Belle2
289 
290 #endif /* TRGCDCTrackBase_FLAG_ */
Belle2::TRGCDCTrackBase::_charge
double _charge
Charge.
Definition: TrackBase.h:146
Belle2::TRGCDCTrackBase::status
int status(void) const
returns status.
Definition: TrackBase.h:197
Belle2::TRGCDCTrackBase::_p
CLHEP::Hep3Vector _p
Momentum.
Definition: TrackBase.h:149
Belle2::TRGCDCTrackBase::_tsAll
std::vector< TRGCDCLink * > _tsAll
Links for all super layers.
Definition: TrackBase.h:158
Belle2::TRGCDCTrackBase::dump
virtual void dump(const std::string &message=std::string(""), const std::string &prefix=std::string("")) const
dumps debug information.
Definition: TrackBase.cc:66
Belle2::TRGCDCTrackBase::append
void append(TRGCDCLink *)
appends a link.
Belle2::TRGCDCFitter
A class to fit a TRGCDCTrackBase object.
Definition: Fitter.h:41
Belle2::TRGCDCTrackBase::~TRGCDCTrackBase
virtual ~TRGCDCTrackBase()
Destructor.
Definition: TrackBase.cc:61
Belle2::TRGCDCTrackBase::p
virtual const CLHEP::Hep3Vector & p(void) const
returns momentum vector.
Definition: TrackBase.h:204
Belle2::TRGCDCTrackBase::objectType
virtual unsigned objectType(void) const
returns object type.
Definition: TrackBase.h:239
Belle2::TRGCDCTrackBase::_x
CLHEP::Hep3Vector _x
Position.
Definition: TrackBase.h:152
Belle2::TRGCDCTrackBase::getTrackID
int getTrackID()
get track ID.
Definition: TrackBase.h:282
Belle2::TRGCDCTrackBase::charge
double charge(void) const
returns charge.
Definition: TrackBase.h:246
Belle2::TRGCDCTrackBase::setTrackID
void setTrackID(int trackID)
set track ID.
Definition: TrackBase.h:275
Belle2::TRGCDCTrackBase::name
std::string name(void) const
returns name.
Definition: TrackBase.h:183
Belle2::TRGCDCTrackBase::setFitted
void setFitted(bool fitted)
set fit status
Definition: TrackBase.h:232
Belle2::TRGCDCTrackBase::_ts
std::vector< TRGCDCLink * > * _ts
Links for each super layer.
Definition: TrackBase.h:155
Belle2::TRGCDCTrackBase::x
virtual const CLHEP::Hep3Vector & x(void) const
returns position vector.
Definition: TrackBase.h:211
Belle2::TRGCDCTrackBase::fitted
bool fitted(void) const
returns true if fitted.
Definition: TrackBase.h:225
Belle2::TRGCDCTrackBase::_name
std::string _name
Name.
Definition: TrackBase.h:140
Belle2::TRGCDCTrackBase::fitter
const TRGCDCFitter * fitter(void) const
returns a pointer to a default fitter.
Definition: TrackBase.h:260
Belle2::TRGCDCTrackBase::TRGCDCTrackBase
TRGCDCTrackBase(const TRGCDCTrackBase &)
Copy constructor.
Definition: TrackBase.cc:32
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TRGCDCTrackBase::relation3D
const TRGCDCRelation relation3D(void) const
returns MC information for only stereo layers.
Definition: TrackBase.cc:233
Belle2::TRGCDCCircleFitter
A class to fit a TTrackBase object to a circle.
Definition: CircleFitter.h:32
Belle2::TRGCDCTrackBase::fit
virtual int fit(void)
fits itself by a default fitter. Error was happened if return value is not zero.
Definition: TrackBase.cc:98
Belle2::TRGCDCCircle
A class to represent a circle.
Definition: Circle.h:34
Belle2::TRGCDCTrackBase::relation2D
const TRGCDCRelation relation2D(void) const
returns MC information for only axial layers.
Definition: TrackBase.cc:183
Belle2::TRGCDCTrackBase::_status
int _status
Status.
Definition: TrackBase.h:143
Belle2::TRGCDCTrackBase::approach2D
virtual int approach2D(TRGCDCLink &) const
calculate closest approach. Error was happened if return value is not zero.
Definition: TrackBase.cc:136
Belle2::TRGCDCTrack
A class to represent a reconstructed charged track in TRGCDC.
Definition: Track.h:39
Belle2::TRGCDCTrackBase::relation
const TRGCDCRelation relation(void) const
returns MC information.
Definition: TrackBase.cc:143
Belle2::TRGCDCTrackBase
A class to represent a track object in TRGCDC.
Definition: TrackBase.h:41
Belle2::TRGCDCRelation
A class to represent a wire in CDC.
Definition: Relation.h:36
Belle2::TRGCDCTrackBase::_fitted
bool _fitted
Fitting status.
Definition: TrackBase.h:167
Belle2::TRGCDCTrackBase::pt
virtual double pt(void) const
returns Pt.
Definition: TrackBase.h:218
Belle2::TRGCDCTrackBase::m_trackID
int m_trackID
ID of tracks.
Definition: TrackBase.h:170
Belle2::TRGCDCTrackBase::links
const std::vector< TRGCDCLink * > & links(void) const
returns a vector to track segments.
Definition: TrackBase.cc:124
Belle2::TRGCDCTrackBase::_nTs
const unsigned _nTs
Size of _ts.
Definition: TrackBase.h:161
Belle2::TRGCDCTrackBase::_fitter
const TRGCDCFitter * _fitter
Fitter.
Definition: TrackBase.h:164