ATLAS Offline Software
Loading...
Searching...
No Matches
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
20class G4Track;
21class G4FastTrack;
22class G4FastStep;
23class G4ParticleTable;
24
25namespace CLHEP {
26 class HepRandomEngine;
27}
28
36class 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
Interface for a tool to simulate punchtrough particles outgoing Calo-MS boundaries.
DeclareInterfaceID(IPunchThroughG4Tool, 1, 0)
AlgTool interface method, handles constructor/destructor.
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
virtual std::vector< double > getCaloMSVars()=0
Other methods.
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.