ATLAS Offline Software
Loading...
Searching...
No Matches
G4ParticleDecayHelper.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_FATRASTOOLSG4_G4PARTICLEDECAYHELPER_H
6#define ISF_FATRASTOOLSG4_G4PARTICLEDECAYHELPER_H
7
8// Gaudi & Athena
10#include "GaudiKernel/ServiceHandle.h"
11#include "GaudiKernel/ToolHandle.h"
14// ISF
16// iFatras
18// STD
19#include <vector>
20#include <math.h>
21
22class StoreGateSvc;
23
24namespace ISF {
25 class ISFParticle;
26 class IParticleBroker;
27 class ITruthSvc;
29}
30
31namespace iFatras {
32
33 class ITrackCreator;
34 class PDGToG4Particle;
36
44
45 class ATLAS_NOT_THREAD_SAFE G4ParticleDecayHelper : public extends<AthAlgTool, IParticleDecayHelper> { // deprecated: ATLASSIM-6020
46 public:
48 G4ParticleDecayHelper(const std::string&,const std::string&,const IInterface*);
51
53 StatusCode initialize();
55 StatusCode finalize();
56
58 double freePath(const ISF::ISFParticle& isp) const;
59
61 void decay(const ISF::ISFParticle& isp,
62 const Amg::Vector3D& vertex,
63 const Amg::Vector3D& mom,
64 double timeStamp = 0) const;
65
67 std::vector<ISF::ISFParticle*> decayParticle(const ISF::ISFParticle& parent,
68 const Amg::Vector3D& vertex,
69 const Amg::Vector3D& mom,
70 double timeStamp = 0) const;
71
72
73 private:
75 bool initG4RunManager() const;
76
79 const ISF::ISFParticleVector& children) const;
80
81 /*------------------------------------------------------------
82 * ServiceHandles
83 *------------------------------------------------------------*/
86
87
89 CLHEP::HepRandomEngine* m_randomEngine;
90 std::string m_randomEngineName;
92
93 /*------------------------------------------------------------
94 * ToolHandles
95 *------------------------------------------------------------*/
96 ToolHandle<ISF::IG4RunManagerHelper> m_g4RunManagerHelper;
97 ToolHandle<PDGToG4Particle> m_pdgToG4Conv;
98
101 ToolHandle<IPhysicsValidationTool> m_validationTool;
102
103 };
104
105}
106
107#endif
Define macros for attributes used to control the static checker.
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
@ class IParticleBroker
The generic ISF particle definition,.
Definition ISFParticle.h:42
@ class ITruthSvc
Definition ITruthSvc.h:29
The Athena Transient Store API.
bool initG4RunManager() const
initialize G4RunManager on first call if not done by then
std::vector< ISF::ISFParticle * > decayParticle(const ISF::ISFParticle &parent, const Amg::Vector3D &vertex, const Amg::Vector3D &mom, double timeStamp=0) const
decay
std::string m_randomEngineName
Name of the random number stream.
StatusCode finalize()
AlgTool finalize method.
ToolHandle< PDGToG4Particle > m_pdgToG4Conv
Handle for the PDGToG4Particle converter tool.
CLHEP::HepRandomEngine * m_randomEngine
Random engine (updated to streams)
ServiceHandle< IAtRndmGenSvc > m_rndmSvc
Random Svc.
void handleDecayParticles(const ISF::ISFParticle &isp, const ISF::ISFParticleVector &children) const
fill decay products: into broker svc, truth svc
void decay(const ISF::ISFParticle &isp, const Amg::Vector3D &vertex, const Amg::Vector3D &mom, double timeStamp=0) const
decay handling secondaries
ToolHandle< IPhysicsValidationTool > m_validationTool
the ntuple
bool m_validationMode
Validation output with histogram service.
ServiceHandle< ISF::ITruthSvc > m_truthRecordSvc
Truth Svc for truth tree.
G4ParticleDecayHelper(const std::string &, const std::string &, const IInterface *)
AlgTool constructor for ParticleDecayHelper.
double freePath(const ISF::ISFParticle &isp) const
free path estimator (-1 for stable particle)
ToolHandle< ISF::IG4RunManagerHelper > m_g4RunManagerHelper
G4RunManager needs to be initialized before G4 tables are accessed.
ServiceHandle< ISF::IParticleBroker > m_particleBroker
Broker Svc for ISF particles.
std::string m_G4RandomEngineName
Name of the random number stream for G4 tools.
AlgTool to convert a pdgCode into a particle definition used by the G4 decayer.
Eigen::Matrix< double, 3, 1 > Vector3D
ISFParticleOrderedQueue.
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
void initialize()