HerdSoftware  0.1.1
MCPrimaryParticle.h
Go to the documentation of this file.
1 /*
2  * MCPrimaryParticle.h
3  *
4  * Created on: 21 Jan 2019
5  * Author: Nicola Mori
6  */
7 
8 #ifndef HERD_MCPRIMARYPARTICLE_H_
9 #define HERD_MCPRIMARYPARTICLE_H_
10 
11 // HerdSoftware headers
12 #include "common/DefaultValues.h"
14 #include "dataobjects/MCParticle.h"
15 
16 #ifdef HS_USE_ROOT
17 #include "Rtypes.h"
18 #endif
19 
20 // c++ headers
21 #include <memory>
22 #include <vector>
23 
24 namespace Herd {
25 
29 class MCPrimaryParticle : public MCParticle {
30 public:
36 
41  MCPrimaryParticle(Point position, Momentum momentum) : MCParticle(std::move(position), std::move(momentum)){};
42 
47  MCPrimaryParticle(float initialTime, int pdgCode, Point position, Momentum momentum)
48  : MCParticle(std::move(initialTime), std::move(pdgCode), std::move(position), std::move(momentum)){};
49 
51  virtual ~MCPrimaryParticle() = default;
52 
59 
69 
76 
82 
88  bool PrimaryDisappearanceIsPresent() const;
89 
98  const MCInteraction &PrimaryDisappearance() const;
99 
105  void SetPrimaryDisappearance(MCInteraction interaction);
106 
112 
119 
128  const std::vector<MCInteraction> &HadronicQuasiElasticInteractions() const;
129 
136 
141  void SetNHadronicQuasiElasticInteractions(size_t nInteractions);
142 
143 private:
144  std::vector<MCInteraction> m_hadronicInelasticInteraction;
145  std::vector<MCInteraction>
147  std::vector<MCInteraction> m_primaryDisappearence;
148 
149 #ifdef HS_USE_ROOT
150  ClassDef(MCPrimaryParticle, 2)
151 #endif
152 };
153 
154 } // namespace Herd
155 
156 #endif /* HERD_MCPRIMARYPARTICLE_H_ */
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:24
std::vector< MCInteraction > m_hadronicInelasticInteraction
First hadronic inelastic interaction of the particle.
Definition: MCPrimaryParticle.h:144
void SetNoPrimaryDisappearance()
Indicate that the primary disappearance is not found.
Definition: MCPrimaryParticle.cpp:70
bool HadronicQuasiElasticInteractionIsPresent() const
Return true if hadronic quasi-elastic interactions are present.
Definition: MCPrimaryParticle.cpp:72
void SetNHadronicQuasiElasticInteractions(size_t nInteractions)
Indicate that the first hadronic interaction is not found.
Definition: MCPrimaryParticle.cpp:90
void SetNoHadronicInelasticInteraction()
Indicate that the first hadronic interaction is not found.
Definition: MCPrimaryParticle.cpp:41
MCPrimaryParticle(Point position, Momentum momentum)
Construct a new MCPrimaryParticle object.
Definition: MCPrimaryParticle.h:41
void SetHadronicInelasticInteraction(MCInteraction interaction)
Set the first hadronic object.
Definition: MCPrimaryParticle.cpp:36
Description of a Monte Carlo primary particle.
Definition: MCPrimaryParticle.h:29
virtual ~MCPrimaryParticle()=default
Virtual destructor.
const MCInteraction & PrimaryDisappearance() const
Return the primary disappearance.
Definition: MCPrimaryParticle.cpp:56
MCPrimaryParticle(float initialTime, int pdgCode, Point position, Momentum momentum)
Construct a new MCPrimaryParticle object.
Definition: MCPrimaryParticle.h:47
std::vector< MCInteraction > m_primaryDisappearence
Primary disappearence event.
Definition: MCPrimaryParticle.h:147
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Description of a Monte Carlo particle.
Definition: MCParticle.h:30
void AddHadronicQuasiElasticInteraction(MCInteraction interaction)
Set the first hadronic object.
Definition: MCPrimaryParticle.cpp:86
void SetPrimaryDisappearance(MCInteraction interaction)
Set the first hadronic object.
Definition: MCPrimaryParticle.cpp:65
bool PrimaryDisappearanceIsPresent() const
Return true if the primary disappearance is present.
Definition: MCPrimaryParticle.cpp:43
std::vector< MCInteraction > m_hadronicQuasiElasticInteractions
Vector with hadronic quasi-elastic interactions of the particle.
Definition: MCPrimaryParticle.h:146
const std::vector< MCInteraction > & HadronicQuasiElasticInteractions() const
Return a list of hadronic quasi-elastic interaction.
Definition: MCPrimaryParticle.cpp:76
Description of a Monte Carlo Interaction.
Definition: MCInteraction.h:25
MCPrimaryParticle()
Default constructor.
Definition: MCPrimaryParticle.h:35
bool HadronicInelasticInteractionIsPresent() const
Return true if the first hadronic interaction is present.
Definition: MCPrimaryParticle.cpp:13
const MCInteraction & HadronicInelasticInteraction() const
Return the first hadronic interaction.
Definition: MCPrimaryParticle.cpp:26