Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IPunchThroughG4Tool.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 IPunchThroughG4Tool_H
6 #define IPunchThroughG4Tool_H
7 
8 // C++
9 #include <vector>
10 #include <map>
11 #include <string>
12 
13 // Gaudi
14 #include "GaudiKernel/IAlgTool.h"
15 
16 //G4
17 #include "G4TrackVector.hh"
18 
19 // forward declarations
20 class G4Track;
21 class G4FastTrack;
22 class G4FastStep;
23 class G4ParticleTable;
24 
25 namespace CLHEP {
26  class HepRandomEngine;
27 }
28 
36 class IPunchThroughG4Tool : virtual public IAlgTool
37 {
38  public:
41 
43  virtual std::vector<std::map<std::string, double>> computePunchThroughParticles(const G4FastTrack& fastTrack, CLHEP::HepRandomEngine* rndmEngine, double punchThroughProbability, double punchThroughClassifierRand) = 0;
44  virtual void createAllSecondaryTracks(G4ParticleTable &ptable, G4FastStep& fastStep, const G4Track& g4PrimaryTrack, std::vector<std::map<std::string, double>> &secKinematicsMapVect, G4TrackVector& secTrackCont, const std::vector<double> &caloMSVars) = 0;
45 
47  virtual std::vector<double> getCaloMSVars() = 0;
48 };
49 
50 #endif // IPunchThroughG4Tool_H
IPunchThroughG4Tool
Definition: IPunchThroughG4Tool.h:37
IPunchThroughG4Tool::DeclareInterfaceID
DeclareInterfaceID(IPunchThroughG4Tool, 1, 0)
AlgTool interface method, handles constructor/destructor.
IPunchThroughG4Tool::getCaloMSVars
virtual std::vector< double > getCaloMSVars()=0
Other methods.
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
IPunchThroughG4Tool::computePunchThroughParticles
virtual std::vector< std::map< std::string, double > > computePunchThroughParticles(const G4FastTrack &fastTrack, CLHEP::HepRandomEngine *rndmEngine, double punchThroughProbability, double punchThroughClassifierRand)=0
Creates new vector of G4Track out of a given G4Track.
IPunchThroughG4Tool::createAllSecondaryTracks
virtual void createAllSecondaryTracks(G4ParticleTable &ptable, G4FastStep &fastStep, const G4Track &g4PrimaryTrack, std::vector< std::map< std::string, double >> &secKinematicsMapVect, G4TrackVector &secTrackCont, const std::vector< double > &caloMSVars)=0