HerdSoftware  0.4.0
ParticleHit.h
Go to the documentation of this file.
1 /*
2  * ParticleHit.h
3  *
4  * Created on: 3 Dec 2018
5  * Author: Nicola Mori
6  */
7 
8 #ifndef HERD_PARTICLEHIT_H_
9 #define HERD_PARTICLEHIT_H_
10 
11 // HerdSoftware headers
15 
16 #ifdef HS_USE_ROOT
17 #include "Rtypes.h"
18 #endif
19 
20 // c++ headers
21 #include <array>
22 
23 namespace Herd {
24 
33 class ParticleHit {
34 public:
39 
52  ParticleHit(int particlePDG, float eDep, float entranceEnergy, Point entrancePoint, Point exitPoint,
53  Momentum entranceMomentum, int trackID, int parentTrackID, float time)
54  : _particlePdg(particlePDG), _eDep(eDep), _entranceEnergy(entranceEnergy),
55  _entrancePoint(std::move(entrancePoint)), _exitPoint(std::move(exitPoint)),
56  _entranceMomentum(std::move(entranceMomentum)), _trackID{trackID}, _parentTrackID{parentTrackID}, _time{time} {}
57 
59  virtual ~ParticleHit() = default;
60 
65  [[nodiscard]] float EDep() const { return _eDep; }
70  void SetEDep(float eDep) { _eDep = eDep; }
71 
76  [[nodiscard]] const Point &EntrancePoint() const { return _entrancePoint; }
81  void SetEntrancePoint(Point entrancePoint) { _entrancePoint = std::move(entrancePoint); }
82 
87  [[nodiscard]] const Point &ExitPoint() const { return _exitPoint; }
92  void SetExitPoint(Point exitPoint) { _exitPoint = std::move(exitPoint); }
93 
98  [[nodiscard]] const Momentum &EntranceMomentum() const { return _entranceMomentum; }
103  void SetEntranceMomentum(Momentum entranceMomentum) { _entranceMomentum = std::move(entranceMomentum); }
104 
109  [[nodiscard]] float EntranceEnergy() const { return _entranceEnergy; }
114  void SetEntranceEnergy(float entranceEnergy) { _entranceEnergy = entranceEnergy; }
115 
120  [[nodiscard]] int ParticlePDG() const { return _particlePdg; }
125  void SetParticlePDG(int particlePdg) { _particlePdg = particlePdg; }
126 
131  [[nodiscard]] int TrackID() const { return _trackID; }
132 
137  void SetTrackID(int trackID) { _trackID = trackID; }
138 
145  [[nodiscard]] int ParentTrackID() const { return _parentTrackID; }
146 
153  void SetParentTrackID(int parentTrackID) { _parentTrackID = parentTrackID; }
154 
159  [[nodiscard]] float Time() const { return _time; }
160 
165  void SetTime(float time) { _time = time; }
166 
172  bool operator==(const ParticleHit &rhs) const {
173  return _entrancePoint == rhs._entrancePoint && _exitPoint == rhs._exitPoint &&
175  _particlePdg == rhs._particlePdg && _time == rhs._time;
176  }
177 
178 private:
180  float _eDep;
185  int _trackID;
187  float _time;
188 
189 #ifdef HS_USE_ROOT
190  ClassDef(ParticleHit, 1)
191 #endif
192 };
193 
194 } // namespace Herd
195 
196 #endif /* HERD_PARTICLEHIT_H_ */
Herd::ParticleHit::SetEntranceMomentum
void SetEntranceMomentum(Momentum entranceMomentum)
Set the momentum at the entrance in the hit volume.
Definition: ParticleHit.h:103
Point.h
Herd::ParticleHit
Class to describe the energy deposit of a single particle.
Definition: ParticleHit.h:33
Herd::Vec3D
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Herd::ParticleHit::SetEDep
void SetEDep(float eDep)
Set the energy deposit of the hit.
Definition: ParticleHit.h:70
Herd::ParticleHit::SetTrackID
void SetTrackID(int trackID)
Set the track ID of the particle.
Definition: ParticleHit.h:137
DEFAULT_INIT
#define DEFAULT_INIT(x)
Definition: DefaultValues.h:23
Herd::ParticleHit::_time
float _time
The particle time of arrival.
Definition: ParticleHit.h:187
Herd::ParticleHit::EntranceMomentum
const Momentum & EntranceMomentum() const
Get the momentum at the entrance in the hit volume.
Definition: ParticleHit.h:98
Herd::ParticleHit::SetEntranceEnergy
void SetEntranceEnergy(float entranceEnergy)
Set the particle energy at the entrance in the hit volume.
Definition: ParticleHit.h:114
Herd::ParticleHit::_eDep
float _eDep
Deposited energy.
Definition: ParticleHit.h:180
Herd::ParticleHit::_entranceMomentum
Momentum _entranceMomentum
Entrance momentum.
Definition: ParticleHit.h:184
Herd
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:22
Herd::ParticleHit::Time
float Time() const
Get the particle track arrival time.
Definition: ParticleHit.h:159
Momentum.h
Herd::ParticleHit::ParticleHit
ParticleHit()
Constructor.
Definition: ParticleHit.h:36
Herd::ParticleHit::_entrancePoint
Point _entrancePoint
Entrance point.
Definition: ParticleHit.h:182
Herd::ParticleHit::_entranceEnergy
float _entranceEnergy
Entrance kinetic energy.
Definition: ParticleHit.h:181
Herd::ParticleHit::SetParticlePDG
void SetParticlePDG(int particlePdg)
Set the PDG code of the particle.
Definition: ParticleHit.h:125
Herd::ParticleHit::SetParentTrackID
void SetParentTrackID(int parentTrackID)
Set the track ID of the parent particle.
Definition: ParticleHit.h:153
Herd::ParticleHit::ParticlePDG
int ParticlePDG() const
Get the PDG code of the particle.
Definition: ParticleHit.h:120
Herd::ParticleHit::ParticleHit
ParticleHit(int particlePDG, float eDep, float entranceEnergy, Point entrancePoint, Point exitPoint, Momentum entranceMomentum, int trackID, int parentTrackID, float time)
Constructor.
Definition: ParticleHit.h:52
Herd::ParticleHit::EntrancePoint
const Point & EntrancePoint() const
Get the entrance point in the hit volume.
Definition: ParticleHit.h:76
Herd::ParticleHit::_trackID
int _trackID
The track ID of the particle.
Definition: ParticleHit.h:185
Herd::ParticleHit::SetEntrancePoint
void SetEntrancePoint(Point entrancePoint)
Set the entrance point in the hit volume.
Definition: ParticleHit.h:81
Herd::ParticleHit::_exitPoint
Point _exitPoint
Exit point.
Definition: ParticleHit.h:183
Herd::ParticleHit::ParentTrackID
int ParentTrackID() const
Get the ID of the parent particle track.
Definition: ParticleHit.h:145
Herd::ParticleHit::SetExitPoint
void SetExitPoint(Point exitPoint)
Set the exit point from the hit volume.
Definition: ParticleHit.h:92
Herd::ParticleHit::EDep
float EDep() const
Get the deposited energy.
Definition: ParticleHit.h:65
Herd::ParticleHit::_parentTrackID
int _parentTrackID
The track ID of the particle.
Definition: ParticleHit.h:186
DefaultValues.h
Herd::ParticleHit::EntranceEnergy
float EntranceEnergy() const
Get the particle energy at the entrance in the hit volume.
Definition: ParticleHit.h:109
Herd::ParticleHit::operator==
bool operator==(const ParticleHit &rhs) const
Comparison operator.
Definition: ParticleHit.h:172
Herd::ParticleHit::SetTime
void SetTime(float time)
Set the particle track arrival time.
Definition: ParticleHit.h:165
Herd::ParticleHit::TrackID
int TrackID() const
Get the ID of the particle track.
Definition: ParticleHit.h:131
Herd::ParticleHit::_particlePdg
int _particlePdg
Particle PDG ID.
Definition: ParticleHit.h:179
Herd::ParticleHit::~ParticleHit
virtual ~ParticleHit()=default
Virtual destructor
Herd::ParticleHit::ExitPoint
const Point & ExitPoint() const
Get the exit point from the hit volume.
Definition: ParticleHit.h:87