ATLAS Offline Software
ParticleHelper.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_TOOLS_PARTICLEHELPER_H
6 #define ISF_TOOLS_PARTICLEHELPER_H 1
7 
8 // STL includes
9 #include <string>
10 
11 // FrameWork includes
12 #include "GaudiKernel/ToolHandle.h"
13 #include "GaudiKernel/ServiceHandle.h"
15 // ISF includes
17 
18 namespace ISF {
19 
20  class ISFParticle;
21  class TruthBinding;
22 
29  class ParticleHelper : public extends<AthAlgTool, IParticleHelper> {
30 
31  public:
32  //** Constructor with parameters */
33  ParticleHelper( const std::string& t, const std::string& n, const IInterface* p );
34 
35  // Athena algtool's Hooks
36  virtual StatusCode initialize() override;
37  virtual StatusCode finalize() override;
38 
40  virtual ISFParticle* createParticle( double x, double y, double z,
41  double px, double py, double pz,
42  double pMass,
43  double pCharge,
44  int pPdgId,
45  int status,
46  double pTime,
47  const ISFParticle &parent,
48  int bc,
49  int id,
50  TruthBinding* tBinding = nullptr,
51  const HepMcParticleLink * partLink = nullptr) const override final;
52 
54  virtual ISFParticle* createParticle( const Amg::Vector3D& x,
55  const Amg::Vector3D& p,
56  double pMass,
57  double pCharge,
58  int pPdgId,
59  int status,
60  double pTime,
61  const ISFParticle &parent,
62  int bc,
63  int id,
64  TruthBinding* tBinding = nullptr,
65  const HepMcParticleLink * partLink = nullptr) const override final;
66 
68  virtual ISFParticle* createParticle( const HepGeom::Point3D<double>& x,
69  const HepGeom::Vector3D<double>& p,
70  double pMass,
71  double pCharge,
72  int pPdgId,
73  int status,
74  double pTime,
75  const ISFParticle &parent,
76  int bc,
77  int id,
78  TruthBinding* tBinding = nullptr,
79  const HepMcParticleLink * partLink = nullptr) const override final;
80 
82  virtual ISFParticle* updatedParticle( const ISFParticle& origIsp,
83  const Amg::Vector3D& updatedPos,
84  const Amg::Vector3D& updatedMom,
85  double deltaTime = 0.) const override final;
86 
88  virtual ISFParticle* updatedParticle( const ISFParticle& origIsp,
89  const HepGeom::Point3D<double>& updatedPos,
90  const HepGeom::Vector3D<double>& updatedMom,
91  double deltaTime = 0.) const override final;
92 
93 
94  };
95 
96 }
97 
98 
99 #endif //> !ISF_TOOLS_PARTICLEHELPER_H
test_pyathena.px
px
Definition: test_pyathena.py:18
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ISF::ParticleHelper::initialize
virtual StatusCode initialize() override
Definition: ParticleHelper.cxx:23
ISF::TruthBinding
Definition: TruthBinding.h:18
ISF::ISFParticle
Definition: ISFParticle.h:42
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Analysis::pMass
constexpr double pMass
Definition: JpsiPlus2Tracks.cxx:33
ISF::ParticleHelper::finalize
virtual StatusCode finalize() override
Definition: ParticleHelper.cxx:153
x
#define x
ISF::ParticleHelper
Definition: ParticleHelper.h:29
z
#define z
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IParticleHelper.h
ISF::ParticleHelper::updatedParticle
virtual ISFParticle * updatedParticle(const ISFParticle &origIsp, const Amg::Vector3D &updatedPos, const Amg::Vector3D &updatedMom, double deltaTime=0.) const override final
An updated particle (e.g.
Definition: ParticleHelper.cxx:113
AthAlgTool.h
Amg::pz
@ pz
Definition: GeoPrimitives.h:40
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Amg::py
@ py
Definition: GeoPrimitives.h:39
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
y
#define y
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::ParticleHelper::ParticleHelper
ParticleHelper(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
Definition: ParticleHelper.cxx:15
merge.status
status
Definition: merge.py:17
ISF::ParticleHelper::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, int id, TruthBinding *tBinding=nullptr, const HepMcParticleLink *partLink=nullptr) const override final
Create a new particle.
Definition: ParticleHelper.cxx:31