ATLAS Offline Software
IParticleHelper.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_INTERFACES_IPARTICLEHELPER_H
6 #define ISF_INTERFACES_IPARTICLEHELPER_H 1
7 
8 // Gaudi
9 #include "GaudiKernel/IAlgTool.h"
10 
11 // Simulation includes
12 #include "ISF_Event/SimSvcID.h"
13 
14 // Barcode includes
16 
17 // Amg includes
19 
20 // CLHEP includes
21 #include "CLHEP/Geometry/Vector3D.h"
22 #include "CLHEP/Geometry/Point3D.h"
23 
24 // McEventCollection
26 
27 namespace ISF {
28 
29  class ISFParticle;
30  class TruthBinding;
31 
43  class IParticleHelper : virtual public IAlgTool {
44  public:
45 
47  virtual ~IParticleHelper(){}
48 
51 
53  virtual ISFParticle* createParticle(double x, double y, double z,
54  double px, double py, double pz,
55  double pMass,
56  double pCharge,
57  int pPdgId,
58  int status,
59  double pTime,
60  const ISFParticle &parent,
61  int bc = HepMC::UNDEFINED_ID,
62  int id = 0,
63  TruthBinding* tBinding = nullptr,
64  const HepMcParticleLink * partLink = nullptr) const = 0;
65 
68  const Amg::Vector3D& p,
69  double pMass,
70  double pCharge,
71  int pPdgId,
72  int status,
73  double pTime,
74  const ISFParticle &parent,
75  int bc = HepMC::UNDEFINED_ID,
76  int id = 0,
77  TruthBinding* tBinding = nullptr,
78  const HepMcParticleLink * partLink = nullptr) const = 0;
79 
81  virtual ISFParticle* createParticle( const HepGeom::Point3D<double>& x,
82  const HepGeom::Vector3D<double>& p,
83  double pMass,
84  double pCharge,
85  int pPdgId,
86  int status,
87  double pTime,
88  const ISFParticle &parent,
89  int bc = HepMC::UNDEFINED_ID,
90  int id = 0,
91  TruthBinding* tBinding = nullptr,
92  const HepMcParticleLink * partLink = nullptr) const = 0;
93 
95  virtual ISFParticle* updatedParticle( const ISFParticle& origIsp,
96  const Amg::Vector3D& updatedPos,
97  const Amg::Vector3D& updatedMom,
98  double deltaTime = 0.) const = 0;
99 
101  virtual ISFParticle* updatedParticle( const ISFParticle& origIsp,
102  const HepGeom::Point3D<double>& updatedPos,
103  const HepGeom::Vector3D<double>& updatedMom,
104  double deltaTime = 0.) const = 0;
105 
106  };
107 
108 } // end of namespace
109 
110 #endif // ISF_INTERFACES_IParticleHelper_H
ISF::IParticleHelper::DeclareInterfaceID
DeclareInterfaceID(IParticleHelper, 1, 0)
Creates the InterfaceID and interfaceID() method.
test_pyathena.px
px
Definition: test_pyathena.py:18
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ISF::TruthBinding
Definition: TruthBinding.h:18
ISF::IParticleHelper::createParticle
virtual ISFParticle * createParticle(const Amg::Vector3D &x, const Amg::Vector3D &p, double pMass, double pCharge, int pPdgId, int status, double pTime, const ISFParticle &parent, int bc=HepMC::UNDEFINED_ID, int id=0, TruthBinding *tBinding=nullptr, const HepMcParticleLink *partLink=nullptr) const =0
Create a new particle.
ISF::IParticleHelper::~IParticleHelper
virtual ~IParticleHelper()
Virtual destructor.
Definition: IParticleHelper.h:47
ISF::ISFParticle
Definition: ISFParticle.h:42
Analysis::pMass
constexpr double pMass
Definition: JpsiPlus2Tracks.cxx:33
x
#define x
GeoPrimitives.h
z
#define z
ISF::IParticleHelper::updatedParticle
virtual ISFParticle * updatedParticle(const ISFParticle &origIsp, const Amg::Vector3D &updatedPos, const Amg::Vector3D &updatedMom, double deltaTime=0.) const =0
An updated particle (e.g.
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ISF::IParticleHelper::createParticle
virtual ISFParticle * createParticle(const HepGeom::Point3D< double > &x, const HepGeom::Vector3D< double > &p, double pMass, double pCharge, int pPdgId, int status, double pTime, const ISFParticle &parent, int bc=HepMC::UNDEFINED_ID, int id=0, TruthBinding *tBinding=nullptr, const HepMcParticleLink *partLink=nullptr) const =0
Create a new particle.
HepMC::UNDEFINED_ID
constexpr int UNDEFINED_ID
Definition: MagicNumbers.h:55
Amg::py
@ py
Definition: GeoPrimitives.h:39
MagicNumbers.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ISF::IParticleHelper
Definition: IParticleHelper.h:43
y
#define y
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::IParticleHelper::createParticle
virtual ISFParticle * createParticle(double x, double y, double z, double px, double py, double pz, double pMass, double pCharge, int pPdgId, int status, double pTime, const ISFParticle &parent, int bc=HepMC::UNDEFINED_ID, int id=0, TruthBinding *tBinding=nullptr, const HepMcParticleLink *partLink=nullptr) const =0
Create a new particle.
merge.status
status
Definition: merge.py:17
ISF::IParticleHelper::updatedParticle
virtual ISFParticle * updatedParticle(const ISFParticle &origIsp, const HepGeom::Point3D< double > &updatedPos, const HepGeom::Vector3D< double > &updatedMom, double deltaTime=0.) const =0
An updated particle (e.g.
SimSvcID.h