ATLAS Offline Software
Loading...
Searching...
No Matches
FastCaloSimTool.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 G4FASTSIMULATION_FASTCALOSIMTOOL_H
6#define G4FASTSIMULATION_FASTCALOSIMTOOL_H
7
8/* Fast simulation base include */
10/* FastCaloSim parametrization service include */
12/* FastCaloSim calorimeter transportation include */
14/* FastCaloSim calorimeter extrapolation include */
16/* Geant4 transportation tool */
18// Geant4 Punchthrough G4 Tool
20
21class G4VFastSimulationModel;
22
24{
25 public:
26
27 FastCaloSimTool(const std::string& type, const std::string& name, const IInterface *parent);
28
29protected:
33 virtual G4VFastSimulationModel* makeFastSimModel() override final;
34
35 private:
36
37 // FastCaloSim service
38 ServiceHandle<ISF::IFastCaloSimParamSvc> m_FastCaloSimSvc{this, "ISF_FastCaloSimV2ParamSvc", "ISF_FastCaloSimV2ParamSvc"};
39 // FastCaloSim transportation tool
40 PublicToolHandle<IFastCaloSimCaloTransportation> m_FastCaloSimCaloTransportation{this, "FastCaloSimCaloTransportation", "FastCaloSimCaloTransportation", ""};
41 // FastCaloSim extrapolation tool
42 PublicToolHandle<IFastCaloSimCaloExtrapolation> m_FastCaloSimCaloExtrapolation{this, "FastCaloSimCaloExtrapolation", "FastCaloSimCaloExtrapolation", ""};
43 // Geant4 transportation tool
44 PublicToolHandle<IG4CaloTransportTool> m_G4CaloTransportTool{this, "G4CaloTransportTool", "G4CaloTransportTool", ""};
45 // Geant4 Punchthrough G4 Tool
46 PublicToolHandle<IPunchThroughSimWrapper> m_PunchThroughSimWrapper{this, "PunchThroughSimWrapper", "PunchThroughSimWrapper", ""};
47
48 // Name of associated CaloCellContainerSD
49 Gaudi::Property<std::string> m_CaloCellContainerSDName{this, "CaloCellContainerSDName", "", "Name of the associated CaloCellContainerSD"};
50 // Flag to enable G4 transportation
51 Gaudi::Property<bool> m_doG4Transport{this, "doG4Transport", false, "Flag to enable G4 transportation"};
52 // Flag to enable punch-through simulation
53 Gaudi::Property<bool> m_doPunchThrough{this, "doPunchThrough", true, "Run punchthrough simulation for particle entering Calo-MS boundary"};
54};
55
56#endif //G4FASTSIMULATION_FASTCALOSIMTOOL_H
FastCaloSimTool(const std::string &type, const std::string &name, const IInterface *parent)
Default constructor.
Gaudi::Property< bool > m_doPunchThrough
PublicToolHandle< IFastCaloSimCaloTransportation > m_FastCaloSimCaloTransportation
virtual G4VFastSimulationModel * makeFastSimModel() override final
Method to make the actual fast simulation model itself, which will be owned by the tool.
Gaudi::Property< bool > m_doG4Transport
PublicToolHandle< IPunchThroughSimWrapper > m_PunchThroughSimWrapper
PublicToolHandle< IG4CaloTransportTool > m_G4CaloTransportTool
PublicToolHandle< IFastCaloSimCaloExtrapolation > m_FastCaloSimCaloExtrapolation
Gaudi::Property< std::string > m_CaloCellContainerSDName
ServiceHandle< ISF::IFastCaloSimParamSvc > m_FastCaloSimSvc
FastSimulationBase(const std::string &type, const std::string &name, const IInterface *parent)