ATLAS Offline Software
BaseSimulatorG4Tool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_BASESIMULATORG4TOOL_H
6 #define ISF_BASESIMULATORG4TOOL_H
7 
8 // STL includes
9 #include <memory>
10 
11 // FrameWork includes
12 #include <GaudiKernel/IAlgTool.h>
13 #include <GaudiKernel/StatusCode.h>
14 
15 // ISF
16 #include "ISF_Event/ISFParticle.h"
19 
20 class HitCollectionMap;
21 
22 namespace ISF {
23 
24 /*
25  * @class BaseSimulatorG4Tool
26  * Base class for an ISimulatorTool which requires a Geant4 UserInfo object
27  */
29  public:
32 
34  virtual StatusCode simulate(const EventContext& ctx, ISFParticle& isp,
35  ISFParticleContainer& secondaries,
36  McEventCollection* mcEventCollection,
37  std::shared_ptr<HitCollectionMap>) = 0;
38 
41  const EventContext& ctx, const ISFParticleVector& particles,
42  ISFParticleContainer& secondaries, McEventCollection* mcEventCollection,
43  std::shared_ptr<HitCollectionMap> HitCollectionMap, McEventCollection* shadowTruth = nullptr) = 0;
44 
46  virtual StatusCode setupEvent(const EventContext&, HitCollectionMap&) = 0;
47 
49  virtual StatusCode setupEventST(HitCollectionMap& hitCollections) {
50  return setupEvent(Gaudi::Hive::currentContext(), hitCollections);
51  }
52 
54  virtual StatusCode releaseEvent(const EventContext&,
55  HitCollectionMap&) = 0;
56 
58  virtual StatusCode releaseEventST(HitCollectionMap& hitCollections) {
59  return releaseEvent(Gaudi::Hive::currentContext(), hitCollections);
60  }
61 
63 
65  virtual StatusCode simulate(const EventContext&, ISFParticle&,
67  return StatusCode::FAILURE;
68  };
69 
71  virtual StatusCode simulateVector(const EventContext&,
72  const ISFParticleVector&,
75  return StatusCode::FAILURE;
76  };
77 
79  virtual StatusCode setupEvent(const EventContext&) {
80  return StatusCode::FAILURE;
81  };
82 
84  virtual StatusCode setupEventST() { return StatusCode::FAILURE; };
85 
87  virtual StatusCode releaseEvent(const EventContext&) {
88  return StatusCode::FAILURE;
89  };
90 
92  virtual StatusCode releaseEventST() { return StatusCode::FAILURE; };
93 };
94 
95 } // namespace ISF
96 
97 #endif
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition: ISFParticleContainer.h:23
HitCollectionMap
Small wrapper around hit collection map to facilitate accessing the hit collection.
Definition: HitCollectionMap.h:21
ISF::ISFParticle
Definition: ISFParticle.h:42
ISF::BaseSimulatorG4Tool::releaseEvent
virtual StatusCode releaseEvent(const EventContext &, HitCollectionMap &)=0
Finalise data containers for an event.
ISFParticleContainer.h
ISF::BaseSimulatorG4Tool::setupEvent
virtual StatusCode setupEvent(const EventContext &, HitCollectionMap &)=0
Create data containers for an event.
ISF::BaseSimulatorG4Tool::simulateVector
virtual StatusCode simulateVector(const EventContext &ctx, const ISFParticleVector &particles, ISFParticleContainer &secondaries, McEventCollection *mcEventCollection, std::shared_ptr< HitCollectionMap > HitCollectionMap, McEventCollection *shadowTruth=nullptr)=0
Simulation call for vectors of particles.
ISFParticle.h
ISF::BaseSimulatorG4Tool::releaseEvent
virtual StatusCode releaseEvent(const EventContext &)
Finalise data containers for an event.
Definition: BaseSimulatorG4Tool.h:87
ISF::BaseSimulatorG4Tool::simulate
virtual StatusCode simulate(const EventContext &, ISFParticle &, ISFParticleContainer &, McEventCollection *)
Simulation call for individual particles.
Definition: BaseSimulatorG4Tool.h:65
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ISF::BaseSimulatorG4Tool::releaseEventST
virtual StatusCode releaseEventST()
Finalise data containers for an event (called by ISimulationSvc)
Definition: BaseSimulatorG4Tool.h:92
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition: ISFParticleContainer.h:26
BaseSimulatorTool.h
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:32
ISF::BaseSimulatorTool::BaseSimulatorTool
BaseSimulatorTool()
Default constructor.
ISF::BaseSimulatorTool
Definition: BaseSimulatorTool.h:36
ISF::BaseSimulatorG4Tool::simulateVector
virtual StatusCode simulateVector(const EventContext &, const ISFParticleVector &, ISFParticleContainer &, McEventCollection *, McEventCollection *)
Simulation call for vectors of particles.
Definition: BaseSimulatorG4Tool.h:71
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::BaseSimulatorG4Tool::simulate
virtual StatusCode simulate(const EventContext &ctx, ISFParticle &isp, ISFParticleContainer &secondaries, McEventCollection *mcEventCollection, std::shared_ptr< HitCollectionMap >)=0
Simulation call for individual particles.
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
ISF::BaseSimulatorG4Tool
Definition: BaseSimulatorG4Tool.h:28
ISF::BaseSimulatorG4Tool::setupEventST
virtual StatusCode setupEventST(HitCollectionMap &hitCollections)
Create data containers for an event (called by ISimulationSvc)
Definition: BaseSimulatorG4Tool.h:49
ISF::BaseSimulatorG4Tool::setupEventST
virtual StatusCode setupEventST()
Create data containers for an event (called by ISimulationSvc)
Definition: BaseSimulatorG4Tool.h:84
ISF::BaseSimulatorG4Tool::setupEvent
virtual StatusCode setupEvent(const EventContext &)
Create data containers for an event.
Definition: BaseSimulatorG4Tool.h:79
ISF::BaseSimulatorG4Tool::releaseEventST
virtual StatusCode releaseEventST(HitCollectionMap &hitCollections)
Finalise data containers for an event (called by ISimulationSvc)
Definition: BaseSimulatorG4Tool.h:58