ATLAS Offline Software
Loading...
Searching...
No Matches
BaseSimulationSelector.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_SIMULATIONSELECTORS_BASESIMULATIONSELECTOR_H
6#define ISF_SIMULATIONSELECTORS_BASESIMULATIONSELECTOR_H 1
7
8// ISF includes
12
13
14// Gaudi & Athena basics
15#include "GaudiKernel/ServiceHandle.h"
17
19
20
21namespace ISF {
22
23class ISFParticle;
24
30
31class BaseSimulationSelector : public extends<AthAlgTool, ISimulationSelector> {
32 public:
34 BaseSimulationSelector( const std::string& t, const std::string& n, const IInterface* p );
35
38
40 virtual StatusCode sysInitialize() override;
41
44
47 virtual bool isDynamic() override;
48
50 virtual SimSvcID simSvcID ATLAS_NOT_THREAD_SAFE () override;
51
53 virtual ISF::SimulationFlavor simFlavor() const override;
54
56 virtual void initializeSelector() override;
57
60 virtual void beginEvent ATLAS_NOT_THREAD_SAFE () override;
61
64 virtual void endEvent ATLAS_NOT_THREAD_SAFE () override;
65
67 virtual void update ATLAS_NOT_THREAD_SAFE (const ISFParticle& ) override;
68
70 virtual bool selfSelect(const ISFParticle& particle) const override;
71
72 private:
73 ServiceHandle<ISimulationSvc> m_simulator{this, "Simulator", "", "simulation service assigned to a single advisor"};
74 Gaudi::Property<bool> m_isDynamic{this, "IsDynamic", false, "this selector is either dynamic or static"};
75 Gaudi::Property<bool> m_invertCuts{this, "InvertCuts", false, "invert the result given by passesCuts(..) method"};
76 Gaudi::CheckedProperty<unsigned short> m_simFlavorProp{this, "SimulationFlavor", 0, "the simulation flavour that this selector will select"};
77 void SimulationFlavorHandler(Gaudi::Details::PropertyBase&);
79};
80
81
82} // end of namespace
83
84
85#endif // ISF_SIMULATIONSELECTORS_BASESIMULATIONSELECTOR_H
Define macros for attributes used to control the static checker.
virtual void update ATLAS_NOT_THREAD_SAFE(const ISFParticle &) override
update internal event representation
virtual void endEvent ATLAS_NOT_THREAD_SAFE() override
called at the end of each athena event (can be used for eg.
virtual SimSvcID simSvcID ATLAS_NOT_THREAD_SAFE() override
return the simulation service ID
virtual bool isDynamic() override
return if is this a static or dynamic SimulationSelector (is used by fully dynamic particle routers)
virtual ServiceHandle< ISimulationSvc > *simulator ATLAS_NOT_THREAD_SAFE() override
return a handle on the simulator
Gaudi::Property< bool > m_invertCuts
Gaudi::CheckedProperty< unsigned short > m_simFlavorProp
ServiceHandle< ISimulationSvc > m_simulator
Gaudi::Property< bool > m_isDynamic
ISF::SimulationFlavor m_simflavor
simulation flavor
virtual bool selfSelect(const ISFParticle &particle) const override
make the routing decision
virtual ISF::SimulationFlavor simFlavor() const override
return the simulation flavor
virtual void beginEvent ATLAS_NOT_THREAD_SAFE() override
called at the beginning of each athena event (can be used for eg.
virtual void initializeSelector() override
initialize Selector
void SimulationFlavorHandler(Gaudi::Details::PropertyBase &)
virtual StatusCode sysInitialize() override
Gaudi sysInitialize() method.
virtual ~BaseSimulationSelector()
virtual destructor
BaseSimulationSelector(const std::string &t, const std::string &n, const IInterface *p)
Constructor with parameters.
The generic ISF particle definition,.
Definition ISFParticle.h:42
ISFParticleOrderedQueue.
int SimulationFlavor
Identifier type for simulation flavor.
uint8_t SimSvcID
Simulation service ID datatype.
Definition SimSvcID.h:28