Belle II Software  release-05-02-19
TOPtrack.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <TVector3.h>
14 #include <framework/gearbox/Const.h>
15 
16 namespace Belle2 {
22  class Track;
23  class ExtHit;
24  class MCParticle;
25  class TOPBarHit;
26 
27  namespace TOP {
28 
34  class TOPtrack {
35  public:
39  TOPtrack()
40  {}
41 
54  TOPtrack(double x, double y, double z, double Px, double Py, double Pz,
55  double Tlen, int Q, int pdg = 0);
56 
57 
63  explicit TOPtrack(const Track* track,
64  const Const::ChargedStable& chargedStable = Const::pion);
65 
72  TOPtrack(const Track* track, int moduleID,
73  const Const::ChargedStable& chargedStable = Const::pion);
74 
79  bool isValid() const {return m_valid;}
80 
85  const TVector3& getPosition() const {return m_position;}
86 
91  const TVector3& getMomentum() const {return m_momentum;}
92 
97  double getX() const {return m_position.X();}
98 
103  double getY() const {return m_position.Y();}
104 
109  double getZ() const {return m_position.Z();}
110 
115  double getPx() const {return m_momentum.X();}
116 
121  double getPy() const {return m_momentum.Y();}
122 
127  double getPz() const {return m_momentum.Z();}
128 
133  double getTrackLength() const {return m_trackLength;}
134 
140  double getTOF(double mass) const;
141 
147  double getTOF(const Const::ChargedStable& particle) const
148  {
149  return getTOF(particle.getMass());
150  }
151 
157  void setTrackLength(double tof, double mass);
158 
164  void setTrackLength(double tof, const Const::ChargedStable& particle)
165  {
166  setTrackLength(tof, particle.getMass());
167  }
168 
173  double getP() const {return m_momentum.Mag();}
174 
179  double getTheta() const {return m_momentum.Theta();}
180 
185  double getPhi() const {return m_momentum.Phi();}
186 
191  int getPDGcode() const {return m_pdg;}
192 
197  int getCharge() const {return m_charge;}
198 
203  int getHypID() const;
204 
209  int getModuleID() const {return m_moduleID;}
210 
215  bool atTop() const {return m_atTop;}
216 
221  const Track* getTrack() const {return m_track;}
222 
228  const ExtHit* getExtHit() const {return m_extHit;}
229 
234  const MCParticle* getMCParticle() const {return m_mcParticle;}
235 
240  const TOPBarHit* getBarHit() const {return m_barHit;}
241 
246  int toTop();
247 
255  void smear(double sig_x, double sig_z, double sig_theta, double sig_phi);
256 
260  void dump() const;
261 
262  private:
263 
268  int findModule();
269 
270  bool m_valid = false;
271  TVector3 m_position;
272  TVector3 m_momentum;
273  double m_trackLength = 0;
274  int m_charge = 0;
275  int m_pdg = 0;
276  bool m_atTop = false;
277  int m_moduleID = 0;
278  const Track* m_track = 0;
279  const ExtHit* m_extHit = 0;
281  const TOPBarHit* m_barHit = 0;
282  };
283 
284  } // end TOP namespace
286 } // end Belle2 namespace
287 
288 
Belle2::TOP::TOPtrack::getPDGcode
int getPDGcode() const
Return PDG code.
Definition: TOPtrack.h:199
Belle2::TOP::TOPtrack::setTrackLength
void setTrackLength(double tof, double mass)
Set track length from time-of-flight and particle mass.
Definition: TOPtrack.cc:170
Belle2::TOP::TOPtrack::getExtHit
const ExtHit * getExtHit() const
Return extrapolated hit (track entrance to the bar) if this track is constructed from mdst track.
Definition: TOPtrack.h:236
Belle2::TOP::TOPtrack::getBarHit
const TOPBarHit * getBarHit() const
Return bar hit of MC particle assigned to this track (if any)
Definition: TOPtrack.h:248
Belle2::TOP::TOPtrack::getPx
double getPx() const
Return momentum component.
Definition: TOPtrack.h:123
Belle2::TOP::TOPtrack::findModule
int findModule()
Finds moduleID the track is crossing.
Definition: TOPtrack.cc:248
Belle2::TOP::TOPtrack::isValid
bool isValid() const
Check if track is properly defined.
Definition: TOPtrack.h:87
Belle2::TOP::TOPtrack::toTop
int toTop()
Propagate track to TOP counter (assuming uniform B field along z)
Definition: TOPtrack.cc:186
Belle2::TOP::TOPtrack::getP
double getP() const
Return momentum magnitude.
Definition: TOPtrack.h:181
Belle2::TOP::TOPtrack::getModuleID
int getModuleID() const
Return module ID.
Definition: TOPtrack.h:217
Belle2::TOP::TOPtrack::m_valid
bool m_valid
true for properly defined track
Definition: TOPtrack.h:278
Belle2::TOP::TOPtrack::m_barHit
const TOPBarHit * m_barHit
pointer to bar hit or NULL
Definition: TOPtrack.h:289
Belle2::TOP::TOPtrack::getMCParticle
const MCParticle * getMCParticle() const
Return MC particle assigned to this track (if any)
Definition: TOPtrack.h:242
Belle2::TOP::TOPtrack::TOPtrack
TOPtrack()
Default constructor.
Definition: TOPtrack.h:47
Belle2::TOP::TOPtrack::getY
double getY() const
Return position component.
Definition: TOPtrack.h:111
Belle2::Const::pion
static const ChargedStable pion
charged pion particle
Definition: Const.h:535
Belle2::ExtHit
Store one Ext hit as a ROOT object.
Definition: ExtHit.h:40
Belle2::TOP::TOPtrack::getX
double getX() const
Return position component.
Definition: TOPtrack.h:105
Belle2::TOPBarHit
Class to store track parameters of incoming MC particles relation to MCParticle filled in top/simulat...
Definition: TOPBarHit.h:36
Belle2::TOP::TOPtrack::getTheta
double getTheta() const
Return momentum polar angle.
Definition: TOPtrack.h:187
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOP::TOPtrack::getTOF
double getTOF(double mass) const
Return time-of-flight from IP to current position for given particle mass.
Definition: TOPtrack.cc:163
Belle2::TOP::TOPtrack::dump
void dump() const
Print track parameters to std output.
Definition: TOPtrack.cc:229
Belle2::TOP::TOPtrack::m_atTop
bool m_atTop
true, if toTop() called
Definition: TOPtrack.h:284
Belle2::TOP::TOPtrack::m_momentum
TVector3 m_momentum
momentum vector
Definition: TOPtrack.h:280
Belle2::TOP::TOPtrack::getPosition
const TVector3 & getPosition() const
Return spatial position.
Definition: TOPtrack.h:93
Belle2::TOP::TOPtrack::getPy
double getPy() const
Return momentum component.
Definition: TOPtrack.h:129
Belle2::TOP::TOPtrack::getTrack
const Track * getTrack() const
Return mdst track if this track is constructed from it.
Definition: TOPtrack.h:229
Belle2::TOP::TOPtrack::getHypID
int getHypID() const
Return internal particle code.
Definition: TOPtrack.cc:177
Belle2::TOP::TOPtrack::m_mcParticle
const MCParticle * m_mcParticle
pointer to MC particle or NULL
Definition: TOPtrack.h:288
Belle2::TOP::TOPtrack::m_pdg
int m_pdg
PDG code (optional)
Definition: TOPtrack.h:283
Belle2::TOP::TOPtrack::getMomentum
const TVector3 & getMomentum() const
Return momentum vector.
Definition: TOPtrack.h:99
Belle2::TOP::TOPtrack::smear
void smear(double sig_x, double sig_z, double sig_theta, double sig_phi)
Smear track.
Definition: TOPtrack.cc:209
Belle2::TOP::TOPtrack::m_position
TVector3 m_position
position vector
Definition: TOPtrack.h:279
Belle2::TOP::TOPtrack::m_charge
int m_charge
charge
Definition: TOPtrack.h:282
Belle2::Const::ChargedStable
Provides a type-safe way to pass members of the chargedStableSet set.
Definition: Const.h:465
Belle2::TOP::TOPtrack::m_track
const Track * m_track
pointer to mdst track or NULL
Definition: TOPtrack.h:286
Belle2::Track
Class that bundles various TrackFitResults.
Definition: Track.h:35
Belle2::MCParticle
A Class to store the Monte Carlo particle information.
Definition: MCParticle.h:43
Belle2::TOP::TOPtrack::m_trackLength
double m_trackLength
track length from IP to point
Definition: TOPtrack.h:281
Belle2::TOP::TOPtrack::getZ
double getZ() const
Return position component.
Definition: TOPtrack.h:117
Belle2::TOP::TOPtrack::getCharge
int getCharge() const
Return charge.
Definition: TOPtrack.h:205
Belle2::TOP::TOPtrack::getPhi
double getPhi() const
Return momentum azimuthal angle.
Definition: TOPtrack.h:193
Belle2::TOP::TOPtrack::atTop
bool atTop() const
Check if toTop() was already called.
Definition: TOPtrack.h:223
Belle2::TOP::TOPtrack::getTrackLength
double getTrackLength() const
Return track length from IP to current position.
Definition: TOPtrack.h:141
Belle2::TOP::TOPtrack::m_extHit
const ExtHit * m_extHit
pointer to extrapolated hit or NULL
Definition: TOPtrack.h:287
Belle2::TOP::TOPtrack::m_moduleID
int m_moduleID
module ID or 0
Definition: TOPtrack.h:285
Belle2::TOP::TOPtrack::getPz
double getPz() const
Return momentum component.
Definition: TOPtrack.h:135