ATLAS Offline Software
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 
26 #include "CaloIdentifier/TileID.h"
27 
28 namespace CLHEP
29 {
30  class HepRandomEngine;
31 }
32 
33 //forward declarations
34 class CaloCellContainer;
35 
36 namespace ISF {
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{};
81  CaloCellContainer* m_theContainerPtr{};
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
IPunchThroughTool.h
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition: ISFParticleContainer.h:23
ISF::FastCaloSimV2Tool::~FastCaloSimV2Tool
virtual ~FastCaloSimV2Tool()=default
Destructor.
LArEM_ID.h
IFastCaloSimCaloExtrapolation.h
ATLAS_NOT_THREAD_SAFE
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
Definition: checker_macros.h:212
initialize
void initialize()
Definition: run_EoverP.cxx:894
IFastCaloSimParamSvc.h
ISF::FastCaloSimV2Tool
Definition: FastCaloSimV2Tool.h:44
ISF::ISFParticle
Definition: ISFParticle.h:42
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:560
LArHEC_ID.h
TileID.h
AtlasDetectorID.h
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
ISF::FastCaloSimV2
@ FastCaloSimV2
Definition: SimulationFlavor.h:25
SG::WriteHandleKey< CaloCellContainer >
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CLHEP
STD'S.
Definition: IAtRndmGenSvc.h:19
test_pyathena.parent
parent
Definition: test_pyathena.py:15
BaseSimulatorTool.h
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
ISF::BaseSimulatorTool
Definition: BaseSimulatorTool.h:36
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
SimulationFlavor
Definition: SimulationFlavor.py:1
ICaloCellMakerTool.h
LArFCAL_ID.h
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ITruthSvc.h
checker_macros.h
Define macros for attributes used to control the static checker.
IAthRNGSvc.h
ServiceHandle
Definition: ClusterMakerTool.h:37