Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-09-16 09:07:43

0001 // AUTOMATICALLY GENERATED FILE - DO NOT EDIT
0002 
0003 #ifndef EDM4HEP_MCParticleDATA_H
0004 #define EDM4HEP_MCParticleDATA_H
0005 
0006 #include "edm4hep/Vector2i.h"
0007 #include "edm4hep/Vector3d.h"
0008 #include "edm4hep/Vector3f.h"
0009 #include <cstdint>
0010 
0011 namespace edm4hep {
0012 
0013 /** @class MCParticleData
0014  *  The Monte Carlo particle - based on the lcio::MCParticle.
0015  *  @author: EDM4hep authors
0016  */
0017 class MCParticleData {
0018 public:
0019   std::int32_t PDG{};             ///< PDG code of the particle
0020   std::int32_t generatorStatus{}; ///< status of the particle as defined by the generator
0021   std::int32_t simulatorStatus{}; ///< status of the particle from the simulation program - use BIT constants below
0022   float charge{};                 ///< particle charge [e]
0023   float time{};  ///< creation time of the particle in wrt. the event, e.g. for preassigned decays or decays in flight
0024                  ///< from the simulator [ns]
0025   double mass{}; ///< mass of the particle [GeV]
0026   ::edm4hep::Vector3d vertex{};             ///< production vertex of the particle [mm]
0027   ::edm4hep::Vector3d endpoint{};           ///< endpoint of the particle [mm]
0028   ::edm4hep::Vector3d momentum{};           ///< particle 3-momentum at the production vertex [GeV]
0029   ::edm4hep::Vector3d momentumAtEndpoint{}; ///< particle 3-momentum at the endpoint [GeV]
0030   std::int32_t helicity{9};                 ///< particle helicity (9 if unset)
0031 
0032   unsigned int parents_begin{};
0033   unsigned int parents_end{};
0034   unsigned int daughters_begin{};
0035   unsigned int daughters_end{};
0036 };
0037 
0038 namespace v6 {
0039   using MCParticleData = edm4hep::MCParticleData;
0040 } // namespace v6
0041 
0042 // Definition for older versions
0043 namespace v5 {
0044   class MCParticleData {
0045   public:
0046     std::int32_t PDG{};             ///< PDG code of the particle
0047     std::int32_t generatorStatus{}; ///< status of the particle as defined by the generator
0048     std::int32_t simulatorStatus{}; ///< status of the particle from the simulation program - use BIT constants below
0049     float charge{};                 ///< particle charge [e]
0050     float time{};  ///< creation time of the particle in wrt. the event, e.g. for preassigned decays or decays in flight
0051                    ///< from the simulator [ns]
0052     double mass{}; ///< mass of the particle [GeV]
0053     ::edm4hep::v5::Vector3d vertex{};             ///< production vertex of the particle [mm]
0054     ::edm4hep::v5::Vector3d endpoint{};           ///< endpoint of the particle [mm]
0055     ::edm4hep::v5::Vector3d momentum{};           ///< particle 3-momentum at the production vertex [GeV]
0056     ::edm4hep::v5::Vector3d momentumAtEndpoint{}; ///< particle 3-momentum at the endpoint [GeV]
0057     std::int32_t helicity{9};                     ///< particle helicity (9 if unset)
0058 
0059     unsigned int parents_begin{};
0060     unsigned int parents_end{};
0061     unsigned int daughters_begin{};
0062     unsigned int daughters_end{};
0063   };
0064 } // namespace v5
0065 namespace v4 {
0066   class MCParticleData {
0067   public:
0068     std::int32_t PDG{};             ///< PDG code of the particle
0069     std::int32_t generatorStatus{}; ///< status of the particle as defined by the generator
0070     std::int32_t simulatorStatus{}; ///< status of the particle from the simulation program - use BIT constants below
0071     float charge{};                 ///< particle charge [e]
0072     float time{};  ///< creation time of the particle in wrt. the event, e.g. for preassigned decays or decays in flight
0073                    ///< from the simulator [ns]
0074     double mass{}; ///< mass of the particle [GeV]
0075     ::edm4hep::v4::Vector3d vertex{};             ///< production vertex of the particle [mm]
0076     ::edm4hep::v4::Vector3d endpoint{};           ///< endpoint of the particle [mm]
0077     ::edm4hep::v4::Vector3d momentum{};           ///< particle 3-momentum at the production vertex [GeV]
0078     ::edm4hep::v4::Vector3d momentumAtEndpoint{}; ///< particle 3-momentum at the endpoint [GeV]
0079     std::int32_t helicity{9};                     ///< particle helicity (9 if unset)
0080 
0081     unsigned int parents_begin{};
0082     unsigned int parents_end{};
0083     unsigned int daughters_begin{};
0084     unsigned int daughters_end{};
0085   };
0086 } // namespace v4
0087 namespace v3 {
0088   class MCParticleData {
0089   public:
0090     std::int32_t PDG{};             ///< PDG code of the particle
0091     std::int32_t generatorStatus{}; ///< status of the particle as defined by the generator
0092     std::int32_t simulatorStatus{}; ///< status of the particle from the simulation program - use BIT constants below
0093     float charge{};                 ///< particle charge [e]
0094     float time{};  ///< creation time of the particle in wrt. the event, e.g. for preassigned decays or decays in flight
0095                    ///< from the simulator [ns]
0096     double mass{}; ///< mass of the particle [GeV]
0097     ::edm4hep::v3::Vector3d vertex{};             ///< production vertex of the particle [mm]
0098     ::edm4hep::v3::Vector3d endpoint{};           ///< endpoint of the particle [mm]
0099     ::edm4hep::v3::Vector3d momentum{};           ///< particle 3-momentum at the production vertex [GeV]
0100     ::edm4hep::v3::Vector3d momentumAtEndpoint{}; ///< particle 3-momentum at the endpoint [GeV]
0101     ::edm4hep::v3::Vector3f spin{};               ///< spin (helicity) vector of the particle
0102 
0103     unsigned int parents_begin{};
0104     unsigned int parents_end{};
0105     unsigned int daughters_begin{};
0106     unsigned int daughters_end{};
0107   };
0108 } // namespace v3
0109 namespace v2 {
0110   class MCParticleData {
0111   public:
0112     std::int32_t PDG{};             ///< PDG code of the particle
0113     std::int32_t generatorStatus{}; ///< status of the particle as defined by the generator
0114     std::int32_t simulatorStatus{}; ///< status of the particle from the simulation program - use BIT constants below
0115     float charge{};                 ///< particle charge
0116     float time{};  ///< creation time of the particle in wrt. the event, e.g. for preassigned decays or decays in flight
0117                    ///< from the simulator [ns]
0118     double mass{}; ///< mass of the particle [GeV]
0119     ::edm4hep::v2::Vector3d vertex{};             ///< production vertex of the particle [mm]
0120     ::edm4hep::v2::Vector3d endpoint{};           ///< endpoint of the particle [mm]
0121     ::edm4hep::v2::Vector3d momentum{};           ///< particle 3-momentum at the production vertex [GeV]
0122     ::edm4hep::v2::Vector3d momentumAtEndpoint{}; ///< particle 3-momentum at the endpoint [GeV]
0123     ::edm4hep::v2::Vector3f spin{};               ///< spin (helicity) vector of the particle
0124     ::edm4hep::v2::Vector2i colorFlow{};          ///< color flow as defined by the generator
0125 
0126     unsigned int parents_begin{};
0127     unsigned int parents_end{};
0128     unsigned int daughters_begin{};
0129     unsigned int daughters_end{};
0130   };
0131 } // namespace v2
0132 
0133 } // namespace edm4hep
0134 
0135 #endif