ATLAS Offline Software
ISimulationSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_INTERFACES_ISIMULATIONSVC_H
6 #define ISF_INTERFACES_ISIMULATIONSVC_H 1
7 
8 // stl includes
9 #include <string>
10 
11 // Framework includes
12 #include "GaudiKernel/IInterface.h"
13 #include "GaudiKernel/StatusCode.h"
15 
16 // ISF includes
18 #include "ISF_Event/SimSvcID.h"
19 
21 
22 class McEventCollection;
23 
24 namespace ISF {
25 
26  class ISFParticle;
27  class IParticleBroker;
28 
37  class ATLAS_NOT_THREAD_SAFE ISimulationSvc : virtual public IInterface {
38 
40  // Public methods:
42  public:
44 
47 
50 
52  virtual StatusCode simulateVector(const ISFParticleVector &particles, McEventCollection* mcEventCollection, McEventCollection *shadowTruth=nullptr) = 0;
53 
55  virtual StatusCode simulate(ISFParticle& isp, McEventCollection* mcEventCollection) = 0;
56 
58  virtual std::string& simSvcDescriptor() = 0;
59 
62  virtual StatusCode setupEvent() = 0;
63 
66  virtual StatusCode releaseEvent() = 0;
67 
69  inline void assignSimSvcID(SimSvcID id);
70 
72  inline SimSvcID simSvcID();
73 
74  private:
76  };
77 
81 
82 }
83 
84 #endif //> !ISF_INTERFACES_ISIMULATIONSVC_H
ISF::ISimulationSvc::setParticleBroker
virtual StatusCode setParticleBroker(IParticleBroker *broker)=0
Inform the SimulationSvc about the ParticleBroker.
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
ISF::ISimulationSvc::assignSimSvcID
void assignSimSvcID(SimSvcID id)
Assign a simulation service ID.
Definition: ISimulationSvc.h:79
ISF::ISFParticle
Definition: ISFParticle.h:42
ISF::ISimulationSvc::ISimulationSvc
ISimulationSvc()
Definition: ISimulationSvc.h:43
ISF::ISimulationSvc::m_ssvcID
SimSvcID m_ssvcID
Definition: ISimulationSvc.h:75
ISF::ISimulationSvc::simulate
virtual StatusCode simulate(ISFParticle &isp, McEventCollection *mcEventCollection)=0
Simulation call for individual particles.
ISFParticleContainer.h
ISF::IParticleBroker
@ class IParticleBroker
Definition: IParticleBroker.h:39
ISF::ISimulationSvc::simSvcDescriptor
virtual std::string & simSvcDescriptor()=0
Return the simulation service descriptor.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ISF::ISimulationSvc
@ class ISimulationSvc
Definition: ISimulationSvc.h:37
ISF::ISimulationSvc::releaseEvent
virtual StatusCode releaseEvent()=0
Release Event chain - in case of an end-of event action is needed, to be called by simulation kernel
ISF::ISFParticleVector
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.
Definition: ISFParticleContainer.h:26
ISF::ISimulationSvc::simSvcID
SimSvcID simSvcID()
Return the simulation service ID.
Definition: ISimulationSvc.h:80
McEventCollection
This defines the McEventCollection, which is really just an ObjectVector of McEvent objects.
Definition: McEventCollection.h:33
ISF::ISimulationSvc::DeclareInterfaceID
DeclareInterfaceID(ISimulationSvc, 1, 0)
Creates the InterfaceID and interfaceID() method.
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
ISF::SimSvcID
uint8_t SimSvcID
Simulation service ID datatype.
Definition: SimSvcID.h:28
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
ISF::ISimulationSvc::setupEvent
virtual StatusCode setupEvent()=0
Setup Event chain - in case of a begin-of event action is needed, to be called by simulation kernel.
IOVSvcDefs.h
defines and typedefs for IOVSvc
checker_macros.h
Define macros for attributes used to control the static checker.
ISF::fUndefinedSimID
@ fUndefinedSimID
Definition: SimSvcID.h:32
SimSvcID.h
ISF::ISimulationSvc::simulateVector
virtual StatusCode simulateVector(const ISFParticleVector &particles, McEventCollection *mcEventCollection, McEventCollection *shadowTruth=nullptr)=0
Simulation call for vectors of particles.