ATLAS Offline Software
Loading...
Searching...
No Matches
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
23namespace ISF {
24
25class ISFParticle;
26
32
33class ISimulationSelector : virtual public IAlgTool {
34 public:
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
76typedef ToolHandleArray<ISimulationSelector> SimSelectorToolArray;
77
78} // end of `ISF` namespace
79
80#endif // ISF_INTERFACES_ISIMULATIONSELECTOR_H
Define macros for attributes used to control the static checker.
The generic ISF particle definition,.
Definition ISFParticle.h:42
virtual ~ISimulationSelector()
virtual destructor
virtual bool selfSelect(const ISFParticle &particle) const =0
make the routing decision
virtual ServiceHandle< ISimulationSvc > *simulator ATLAS_NOT_THREAD_SAFE()=0
return a handle on the simulator
virtual bool passSelectorCuts(const ISFParticle &particle) const =0
check whether given particle passes all cuts -> will be used for routing decision
virtual void beginEvent ATLAS_NOT_THREAD_SAFE()=0
called at the beginning of each athena event (can be used for eg.
virtual ISF::SimulationFlavor simFlavor() const =0
return the simulation flavor
virtual void endEvent ATLAS_NOT_THREAD_SAFE()=0
called at the end of each athena event (can be used for eg.
DeclareInterfaceID(ISimulationSelector, 1, 0)
Creates the InterfaceID and interfaceID() method.
virtual void initializeSelector()=0
initialize Selector
virtual bool isDynamic()=0
return if is this a static or dynamic SimulationSelector (is used by fully dynamic partilce routers)
virtual SimSvcID simSvcID ATLAS_NOT_THREAD_SAFE()=0
return the simulation service ID
virtual void update ATLAS_NOT_THREAD_SAFE(const ISFParticle &)=0
update internal event representation
ISFParticleOrderedQueue.
int SimulationFlavor
Identifier type for simulation flavor.
ToolHandleArray< ISimulationSelector > SimSelectorToolArray
typedef for better readable code
uint8_t SimSvcID
Simulation service ID datatype.
Definition SimSvcID.h:28