ATLAS Offline Software
Loading...
Searching...
No Matches
FastCaloSimV2Tool.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_FASTCALOSIMV2TOOL_H
6#define ISF_FASTCALOSIMV2TOOL_H 1
7
8// ISF includes
11
12// FastCaloSim includes
16
18
21
27
28namespace CLHEP
29{
30 class HepRandomEngine;
31}
32
33//forward declarations
35
36namespace ISF {
41
43 // ^ modifies CaloCellContainer
44 {
45 public:
47 FastCaloSimV2Tool( const std::string& type, const std::string& name, const IInterface* parent);
48
50 virtual ~FastCaloSimV2Tool() = default;
51
53 virtual StatusCode initialize() override final;
54
56 virtual StatusCode simulate(const EventContext& ctx, ISFParticle& isp, ISFParticleContainer&, McEventCollection* mcEventCollection) override final;
57
59 virtual StatusCode setupEvent(const EventContext&) override final;
60
61 virtual StatusCode setupEventST() override final;
62
64 virtual StatusCode releaseEvent(const EventContext&) override final;
65
66 virtual StatusCode releaseEventST() override final;
67
68 virtual SimulationFlavor simFlavor() const override final { return ISF::FastCaloSimV2; };
69 private:
70 StatusCode commonSetup(const EventContext& ctx);
71
72 ServiceHandle<IFastCaloSimParamSvc> m_paramSvc{this, "ParamSvc", "ISF_FastCaloSimV2ParamSvc"};
73 bool m_doPunchThrough{true};
74 ToolHandle< IPunchThroughTool > m_punchThroughTool{this, "PunchThroughTool", ""};
75 PublicToolHandleArray<ICaloCellMakerTool> m_caloCellMakerToolsSetup{this, "CaloCellMakerTools_setup", {}, ""};
76 PublicToolHandleArray<ICaloCellMakerTool> m_caloCellMakerToolsRelease{this, "CaloCellMakerTools_release", {}, ""};
77
78 PublicToolHandle<IFastCaloSimCaloExtrapolation> m_FastCaloSimCaloExtrapolation{this, "FastCaloSimCaloExtrapolation", "", ""};
79
80 std::unique_ptr<CaloCellContainer> m_theContainer{};
82 SG::WriteHandleKey< CaloCellContainer > m_caloCellKey{ this, "CaloCells", "DefaultCaloCellContainer", "The name of the output CaloCellContainer" };
83
84 ServiceHandle<IAthRNGSvc> m_rndmGenSvc{this, "RandomSvc", "AthRNGSvc", ""};
85 Gaudi::Property<std::string> m_randomEngineName{this, "RandomStream", ""};
86 Gaudi::Property<std::string> m_caloCellsOutputName{this, "CaloCellsOutputName", "AllCalo"};
87 ServiceHandle<ISF::ITruthSvc> m_truthRecordSvc{this,"ParticleTruthSvc", "ISF_TruthRecordSvc", "ISF Particle Truth Svc"};
88 };
89
90}
91
92#endif //> !ISF_FASTCALOSIMV2TOOL_H
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
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
Container class for CaloCell.
BaseSimulatorTool(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< std::string > m_caloCellsOutputName
virtual StatusCode releaseEvent(const EventContext &) override final
Release Event chain - in case of an end-of event action is needed.
virtual SimulationFlavor simFlavor() const override final
CaloCellContainer * m_theContainerPtr
virtual StatusCode setupEventST() override final
Setup Event chain - in case of a begin-of event action is needed (called by ISimulationSvc)
virtual StatusCode simulate(const EventContext &ctx, ISFParticle &isp, ISFParticleContainer &, McEventCollection *mcEventCollection) override final
Simulation Call.
virtual ~FastCaloSimV2Tool()=default
Destructor.
FastCaloSimV2Tool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters.
virtual StatusCode releaseEventST() override final
Release Event chain - in case of an end-of event action is needed (called by ISimulationSvc)
Gaudi::Property< std::string > m_randomEngineName
PublicToolHandleArray< ICaloCellMakerTool > m_caloCellMakerToolsSetup
SG::WriteHandleKey< CaloCellContainer > m_caloCellKey
virtual StatusCode setupEvent(const EventContext &) override final
Setup Event chain - in case of a begin-of event action is needed.
PublicToolHandle< IFastCaloSimCaloExtrapolation > m_FastCaloSimCaloExtrapolation
ServiceHandle< IAthRNGSvc > m_rndmGenSvc
ToolHandle< IPunchThroughTool > m_punchThroughTool
ServiceHandle< IFastCaloSimParamSvc > m_paramSvc
ServiceHandle< ISF::ITruthSvc > m_truthRecordSvc
std::unique_ptr< CaloCellContainer > m_theContainer
PublicToolHandleArray< ICaloCellMakerTool > m_caloCellMakerToolsRelease
The generic ISF particle definition,.
Definition ISFParticle.h:42
This defines the McEventCollection, which is really just an ObjectVector of McEvent objectsFile: Gene...
ISFParticleOrderedQueue.
@ FastCaloSimV2
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
void initialize()