ATLAS Offline Software
Loading...
Searching...
No Matches
GenericMuonSimHit.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MUONSIMEVENT_GenericMuonSimHit_H
6#define MUONSIMEVENT_GenericMuonSimHit_H 1
7
10
11#include <string>
12
13typedef int HitID;
14
16 public:
17 //
18 // construction/destruction
19 //
20 // needed by athenaRoot
22
23 // Destructor:
25 GenericMuonSimHit(HitID id, double time, double pretime,
26 const Amg::Vector3D& position,
27 const Amg::Vector3D& local_position,
28 const Amg::Vector3D& preposition,
29 const Amg::Vector3D& local_preposition,
30 const int particleEncoding, const double kineticEnergy,
31 const Amg::Vector3D& direction, const double depositEnergy,
32 const double StepLength, const int truthBarcode);
33 GenericMuonSimHit(HitID id, double time, double pretime,
34 const Amg::Vector3D& position,
35 const Amg::Vector3D& local_position,
36 const Amg::Vector3D& preposition,
37 const Amg::Vector3D& local_preposition,
38 const int particleEncoding, const double kineticEnergy,
39 const Amg::Vector3D& direction, const double depositEnergy,
40 const double StepLength, const HepMcParticleLink& hmpl);
41
42 //
43 // member functions
44 //
45
46 //preStep globalTime
47 double globalpreTime() const { return (double) m_globalpreTime; }
48 //postStep globalTime
49 double globalTime() const { return (double) m_globalTime; }
50
51 //preStep Global and Local position
54 //postStep Global and Local Position
56 const Amg::Vector3D& localPosition() const { return m_localPosition; }
57 int particleEncoding() const { return m_particleEncoding; }
58 double kineticEnergy() const { return (double) m_kineticEnergy; }
60 double depositEnergy() const { return (double) m_depositEnergy; }
61 double StepLength() const { return (double) m_StepLength; }
62
63 HitID GenericId() const { return m_GenericId; }
64 std::string print() const;
65
66 bool operator< (const GenericMuonSimHit& rhs) const
67 { return m_GenericId < rhs.m_GenericId; }
68
69 double meanTime() const;
70
71 void setGlobalTime( const double time ) { m_globalTime = time; }
76
77 // truth barcode of the track which released this energy:
78 int truthBarcode() const;
79
80 // GenParticle::id of the track which released this energy:
81 int truthID() const;
82
83 // link to the particle generating the hit
84 const HepMcParticleLink& particleLink() const;
85
86 private:
87 //
88 // member data
89 //
93 // postStep
96 //preStep
99
100 int m_particleEncoding; // PDG id
101 float m_kineticEnergy; // kinetic energy of the particle
102
106
108};
109
110//inline methods
111
114inline double GenericMuonSimHit::meanTime() const
115{ return (double) m_globalTime; }
116inline float hitTime(const GenericMuonSimHit& hit)
117{ return (float) hit.meanTime(); }
118
119#endif
float hitTime(const GenericMuonSimHit &hit)
int HitID
void setKineticEnergy(const double kineticEnergy)
double globalpreTime() const
int particleEncoding() const
HitID GenericId() const
double kineticEnergy() const
std::string print() const
Amg::Vector3D m_globalDirection
const Amg::Vector3D & localPosition() const
Amg::Vector3D m_localPosition
void setGlobalPosition(const Amg::Vector3D &globalPosition)
sets the position expressed in global coordinates
const Amg::Vector3D & globalPrePosition() const
const Amg::Vector3D & globalPosition() const
double depositEnergy() const
double globalTime() const
void setGlobalTime(const double time)
double meanTime() const
HepMcParticleLink m_partLink
void setGlobalDirection(const Amg::Vector3D &globalDirection)
sets the direction expressed in global coordinates
void setDepositEnergy(const double depositEnergy)
double StepLength() const
const Amg::Vector3D & localPrePosition() const
Amg::Vector3D m_localPrePosition
const HepMcParticleLink & particleLink() const
const Amg::Vector3D & globalDirection() const
bool operator<(const GenericMuonSimHit &rhs) const
Amg::Vector3D m_globalPosition
Amg::Vector3D m_globalPrePosition
Eigen::Matrix< double, 3, 1 > Vector3D