Belle II Software development
He3tubeSimHit.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#ifndef He3tubeSIMHIT_H
10#define He3tubeSIMHIT_H
11
12#include <simulation/dataobjects/SimHitBase.h>
13
14// ROOT
15#include <Math/Vector3D.h>
16
17namespace Belle2 {
22
30 class He3tubeSimHit : public SimHitBase {
31 public:
32 //typedef std::vector<unsigned int>::iterator iterator;
33 //typedef std::vector<unsigned int>::const_iterator const_iterator;
34
38
39
52 He3tubeSimHit(float energyDep, float energyNiel, int tkPDG, float tkKEnergy, float detNb, float GlTime, const float* tkPos,
53 const float* tkMom, const float* tkMomDir, bool neuProc):
54 SimHitBase(), m_energyDep(energyDep), m_energyNiel(energyNiel), m_tkPDG(tkPDG), m_tkKEnergy(tkKEnergy), m_detNb(detNb),
55 m_GlTime(GlTime), m_neuProc(neuProc)
56 {
57 std::copy(tkPos, tkPos + 3, m_tkPos);
58 std::copy(tkMom, tkMom + 3, m_tkMom);
59 std::copy(tkMomDir, tkMomDir + 3, m_tkMomDir);
60 }
61
63 float getEnergyDep() const { return m_energyDep; }
65 float getEnergyNiel() const { return m_energyNiel; }
67 int gettkPDG() const { return m_tkPDG; }
69 float gettkKEnergy() const { return m_tkKEnergy; }
71 float getdetNb() const { return m_detNb; }
73 float getGlTime() const { return m_GlTime; }
75 ROOT::Math::XYZVector gettkPos() const { return ROOT::Math::XYZVector(m_tkPos[0], m_tkPos[1], m_tkPos[2]); }
77 ROOT::Math::XYZVector gettkMom() const { return ROOT::Math::XYZVector(m_tkMom[0], m_tkMom[1], m_tkMom[2]); }
79 ROOT::Math::XYZVector gettkMomDir() const { return ROOT::Math::XYZVector(m_tkMomDir[0], m_tkMomDir[1], m_tkMomDir[2]); }
81 const float* gettkPosArray() const { return m_tkPos; }
83 const float* getrkDirArray() const { return m_tkMom; }
85 const float* getrkMomDirArray() const { return m_tkMomDir; }
87 bool getNeuProcess() {return m_neuProc;}
88
89
90 private:
100 float m_detNb;
102 float m_GlTime;
104 float m_tkPos[3];
106 float m_tkMom[3];
108 float m_tkMomDir[3];
111
112
114 };
115
117} // end namespace Belle2
118
119#endif
const float * getrkMomDirArray() const
Return track momentum direction as float array.
float m_energyDep
Deposited energy in electrons.
int m_tkPDG
PDG number of the track.
float m_tkMomDir[3]
track momentum direction
float m_energyNiel
Non-ionization energy in electrons.
float m_detNb
detector number
He3tubeSimHit()
default constructor for ROOT
float m_tkMom[3]
track momentum
float getEnergyDep() const
Return the energy deposition in electrons.
float m_GlTime
global time
float m_tkKEnergy
kinetic energy of the track
bool m_neuProc
true if creator process was a neutron type
const float * getrkDirArray() const
Return track momentum as float array.
float gettkKEnergy() const
Return the kinetic energy of the track.
ROOT::Math::XYZVector gettkMom() const
Return the track momentum.
ROOT::Math::XYZVector gettkPos() const
Return the track position.
const float * gettkPosArray() const
Return track position as float array.
float getdetNb() const
Return the He3tube number.
float getEnergyNiel() const
Return the non-ionization energy in electrons.
bool getNeuProcess()
Return whether or not the creator process was a neutron type.
ROOT::Math::XYZVector gettkMomDir() const
Return the track momentum direction.
int gettkPDG() const
Return the PDG number of the track.
He3tubeSimHit(float energyDep, float energyNiel, int tkPDG, float tkKEnergy, float detNb, float GlTime, const float *tkPos, const float *tkMom, const float *tkMomDir, bool neuProc)
Standard constructor.
float getGlTime() const
Return the global time.
float m_tkPos[3]
track position
SimHitBase()
Constructor.
Definition SimHitBase.h:33
Abstract base class for different kinds of events.