ATLAS Offline Software
Loading...
Searching...
No Matches
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
27namespace ISF {
28
29 class ISFParticle;
30 class TruthBinding;
31
42
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
#define y
#define x
#define z
Interface to create a particle from primary information, allows to reduce dependency on actual StackP...
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.
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.
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.
virtual ~IParticleHelper()
Virtual destructor.
virtual ISFParticle * updatedParticle(const ISFParticle &origIsp, const Amg::Vector3D &updatedPos, const Amg::Vector3D &updatedMom, double deltaTime=0.) const =0
An updated particle (e.g.
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.
DeclareInterfaceID(IParticleHelper, 1, 0)
Creates the InterfaceID and interfaceID() method.
The generic ISF particle definition,.
Definition ISFParticle.h:42
Eigen::Matrix< double, 3, 1 > Vector3D
constexpr int UNDEFINED_ID
ISFParticleOrderedQueue.