HerdSoftware  0.1.1
MCParticle.h
Go to the documentation of this file.
1 /*
2  * MCParticle.h
3  *
4  * Created on: 09 Sep 2020
5  * Author: Valerio Formato
6  */
7 
8 #ifndef HERD_MCPARTICLE_H_
9 #define HERD_MCPARTICLE_H_
10 
11 // HerdSoftware headers
12 #include "common/DefaultValues.h"
13 #include "dataobjects/Line.h"
14 #include "dataobjects/Momentum.h"
15 #include "dataobjects/Point.h"
16 
17 #ifdef HS_USE_ROOT
18 #include "Rtypes.h"
19 #endif
20 
21 // c++ headers
22 #include <memory>
23 #include <vector>
24 
25 namespace Herd {
26 
30 class MCParticle {
31 public:
39 
44  MCParticle(Point position, Momentum momentum)
46  DEFAULT_INIT(m_pdgCode), m_initialPosition{std::move(position)}, m_initialMomentum{momentum} {};
47 
52  MCParticle(float initialTime, int pdgCode, Point position, Momentum momentum)
53  : m_initialTime{initialTime}, m_pdgCode{pdgCode}, m_initialPosition{std::move(position)}, m_initialMomentum{
54  momentum} {};
55 
57  virtual ~MCParticle() = default;
58 
64  float InitialTime() const { return m_initialTime; };
65 
71  int PDGCode() const { return m_pdgCode; };
72 
79 
86 
93 
94 private:
95  float m_initialTime;
96  int m_pdgCode;
99 
100 #ifdef HS_USE_ROOT
101  ClassDef(MCParticle, 1)
102 #endif
103 };
104 
105 } // namespace Herd
106 
107 #endif /* HERD_MCPARTICLE_H_ */
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:24
MCParticle(Point position, Momentum momentum)
Construct a new MCParticle object.
Definition: MCParticle.h:44
MCParticle()
Default constructor.
Definition: MCParticle.h:36
#define DEFAULT_INIT(x)
Definition: DefaultValues.h:23
virtual ~MCParticle()=default
Virtual destructor.
int m_pdgCode
PDG code of the particle.
Definition: MCParticle.h:96
MCParticle(float initialTime, int pdgCode, Point position, Momentum momentum)
Construct a new MCParticle object.
Definition: MCParticle.h:52
Vec3D m_initialMomentum
Initial momentum vector.
Definition: MCParticle.h:98
Point m_initialPosition
Initial position vector.
Definition: MCParticle.h:97
Point InitialPosition() const
Get the generation position of the particle.
Definition: MCParticle.h:78
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Description of a Monte Carlo particle.
Definition: MCParticle.h:30
Class describing a line in the 3D space.
Definition: Line.h:32
float m_initialTime
Generation time of the particle in the MC simulation [ns].
Definition: MCParticle.h:92
Line InitialTrajectory() const
Get the generation trajectory of the particle.
Definition: MCParticle.h:92
int PDGCode() const
Get the PDG code of the particle.
Definition: MCParticle.h:71
float InitialTime() const
Get the time of generation of the particle.
Definition: MCParticle.h:64
Vec3D InitialMomentum() const
Get the generation momentum of the particle.
Definition: MCParticle.h:85