ATLAS Offline Software
ISimulatorTool.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef ISF_ISIMULATORTOOL_H
8 #define ISF_ISIMULATORTOOL_H
9 
10 // Gaudi
11 #include "GaudiKernel/IAlgTool.h"
12 
13 // ISF
15 
16 #include "ISF_Event/ISFParticle.h"
19 
20 class McEventCollection;
21 
22 namespace ISF {
23 
24 class ISimulatorTool : virtual public IAlgTool {
25 public:
27 
29  virtual StatusCode simulate(const EventContext& ctx, ISFParticle& isp, ISFParticleContainer& secondaries, McEventCollection* mcEventCollection) = 0;
30 
32  virtual StatusCode simulateVector(const EventContext& ctx, const ISFParticleVector &particles, ISFParticleContainer& secondaries, McEventCollection *mcEventCollection, McEventCollection *shadowTruth=nullptr) = 0;
33 
35  virtual StatusCode setupEvent(const EventContext&) = 0;
36 
38  virtual StatusCode setupEventST() = 0;
39 
41  virtual StatusCode releaseEvent(const EventContext&) = 0;
42 
44  virtual StatusCode releaseEventST() = 0;
45 
47  virtual ISF::SimulationFlavor simFlavor() const = 0;
48 
49 };
50 
51 }
52 
53 #endif
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition: ISFParticleContainer.h:23
ISF::ISimulatorTool::releaseEventST
virtual StatusCode releaseEventST()=0
Finalise data containers for an event (called by ISimulationSvc)
ISF::ISimulatorTool::setupEvent
virtual StatusCode setupEvent(const EventContext &)=0
Create data containers for an event.
ISF::ISimulatorTool
Definition: ISimulatorTool.h:24
ISF::ISFParticle
Definition: ISFParticle.h:42
ISF::ISimulatorTool::setupEventST
virtual StatusCode setupEventST()=0
Create data containers for an event (called by ISimulationSvc)
ISFParticleContainer.h
ISF::ISimulatorTool::DeclareInterfaceID
DeclareInterfaceID(ISimulatorTool, 1, 0)
ISFParticle.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition: ISFParticleContainer.h:26
ISF::ISimulatorTool::simFlavor
virtual ISF::SimulationFlavor simFlavor() const =0
return the simulation flavor
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
ISF::ISimulatorTool::releaseEvent
virtual StatusCode releaseEvent(const EventContext &)=0
Finalise data containers for an event.
ISF::ISimulatorTool::simulateVector
virtual StatusCode simulateVector(const EventContext &ctx, const ISFParticleVector &particles, ISFParticleContainer &secondaries, McEventCollection *mcEventCollection, McEventCollection *shadowTruth=nullptr)=0
Simulation call for vectors of particles.
ISF::ISimulatorTool::simulate
virtual StatusCode simulate(const EventContext &ctx, ISFParticle &isp, ISFParticleContainer &secondaries, McEventCollection *mcEventCollection)=0
Simulation call for individual particles.
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
ISF::SimulationFlavor
int SimulationFlavor
Identifier type for simulation flavor.
Definition: SimulationFlavor.h:16
SimulationFlavor.h