ATLAS Offline Software
ISimulationSelector.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ISimulationSelector.h, (c) ATLAS Detector software
8 
9 #ifndef ISF_INTERFACES_ISIMULATIONSELECTOR_H
10 #define ISF_INTERFACES_ISIMULATIONSELECTOR_H 1
11 
12 // Gaudi & Athena basics
13 #include "GaudiKernel/IAlgTool.h"
14 #include "GaudiKernel/ServiceHandle.h"
15 #include "GaudiKernel/ToolHandle.h" // for ToolHandleArray
16 
17 // ISF includes
20 
22 
23 namespace ISF {
24 
25 class ISFParticle;
26 
33 class ISimulationSelector : virtual public IAlgTool {
34  public:
36  virtual ~ISimulationSelector() {};
37 
40 
43 
46  virtual bool isDynamic() = 0;
47 
49  virtual SimSvcID simSvcID ATLAS_NOT_THREAD_SAFE () = 0;
50 
52  virtual ISF::SimulationFlavor simFlavor() const = 0;
53 
55  virtual void initializeSelector() = 0;
56 
59  virtual void beginEvent ATLAS_NOT_THREAD_SAFE () = 0;
60 
63  virtual void endEvent ATLAS_NOT_THREAD_SAFE () = 0;
64 
66  virtual void update ATLAS_NOT_THREAD_SAFE (const ISFParticle& ) = 0;
67 
69  virtual bool selfSelect(const ISFParticle& particle) const = 0;
70 
72  virtual bool passSelectorCuts(const ISFParticle& particle) const = 0;
73 };
74 
76 typedef ToolHandleArray<ISimulationSelector> SimSelectorToolArray;
77 
78 } // end of `ISF` namespace
79 
80 #endif // ISF_INTERFACES_ISIMULATIONSELECTOR_H
ISF::ISimulationSelector::passSelectorCuts
virtual bool passSelectorCuts(const ISFParticle &particle) const =0
check whether given particle passes all cuts -> will be used for routing decision
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
ISF::ISimulationSelector::simFlavor
virtual ISF::SimulationFlavor simFlavor() const =0
return the simulation flavor
ISF::ISFParticle
Definition: ISFParticle.h:42
ISF::ISimulationSelector::DeclareInterfaceID
DeclareInterfaceID(ISimulationSelector, 1, 0)
Creates the InterfaceID and interfaceID() method.
ISF::SimSelectorToolArray
ToolHandleArray< ISimulationSelector > SimSelectorToolArray
typedef for better readable code
Definition: ISimulationSelector.h:76
ISF::ISimulationSelector::ATLAS_NOT_THREAD_SAFE
virtual void beginEvent ATLAS_NOT_THREAD_SAFE()=0
called at the beginning of each athena event (can be used for eg.
ISF::ISimulationSelector::ATLAS_NOT_THREAD_SAFE
virtual void update ATLAS_NOT_THREAD_SAFE(const ISFParticle &)=0
update internal event representation
ISF::ISimulationSelector::~ISimulationSelector
virtual ~ISimulationSelector()
virtual destructor
Definition: ISimulationSelector.h:36
ISF::ISimulationSelector::ATLAS_NOT_THREAD_SAFE
virtual void endEvent ATLAS_NOT_THREAD_SAFE()=0
called at the end of each athena event (can be used for eg.
ISF::ISimulationSelector::selfSelect
virtual bool selfSelect(const ISFParticle &particle) const =0
make the routing decision
ISF::ISimulationSelector::isDynamic
virtual bool isDynamic()=0
return if is this a static or dynamic SimulationSelector (is used by fully dynamic partilce routers)
ISF::ISimulationSelector::ATLAS_NOT_THREAD_SAFE
virtual ServiceHandle< ISimulationSvc > *simulator ATLAS_NOT_THREAD_SAFE()=0
return a handle on the simulator
ISF::SimSvcID
uint8_t SimSvcID
Simulation service ID datatype.
Definition: SimSvcID.h:28
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
ISF::ISimulationSelector
Definition: ISimulationSelector.h:33
ISimulationSvc.h
ISF::ISimulationSelector::initializeSelector
virtual void initializeSelector()=0
initialize Selector
checker_macros.h
Define macros for attributes used to control the static checker.
ISF::SimulationFlavor
int SimulationFlavor
Identifier type for simulation flavor.
Definition: SimulationFlavor.h:16
WriteBchToCool.update
update
Definition: WriteBchToCool.py:67
SimulationFlavor.h
ServiceHandle
Definition: ClusterMakerTool.h:37
ISF::ISimulationSelector::ATLAS_NOT_THREAD_SAFE
virtual SimSvcID simSvcID ATLAS_NOT_THREAD_SAFE()=0
return the simulation service ID