ATLAS Offline Software
Loading...
Searching...
No Matches
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
18namespace 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
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
#define y
#define x
#define z
The generic ISF particle definition,.
Definition ISFParticle.h:42
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.
virtual StatusCode finalize() override
virtual StatusCode initialize() override
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.
ParticleHelper(const std::string &t, const std::string &n, const IInterface *p)
Constructor.
Eigen::Matrix< double, 3, 1 > Vector3D
ISFParticleOrderedQueue.