ATLAS Offline Software
IParticleBroker.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 // IParticleBroker.h, (c) ATLAS Detector software
8 #ifndef ISF_INTERFACES_IPARTICLEBROKER_H
9 #define ISF_INTERFACES_IPARTICLEBROKER_H 1
10 
11 // Framework includes
12 #include "GaudiKernel/IInterface.h"
13 #include "GaudiKernel/StatusCode.h"
14 #include "GaudiKernel/ToolHandle.h"
15 #include "GaudiKernel/ServiceHandle.h"
16 
17 // DetectorDescription
19 
20 // ISF includes
21 #include "ISF_Event/SimSvcID.h"
23 #include "ISF_Event/EntryLayer.h"
25 
27 
28 namespace ISF {
29 
30  class ISFParticle;
31  class IStackFiller;
32 
39  class ATLAS_NOT_THREAD_SAFE IParticleBroker : virtual public IInterface {
40 
42  // Public methods:
44  public:
45 
48 
51 
53  virtual StatusCode initializeEvent(ISFParticleContainer&& simParticles) = 0;
54 
56  virtual StatusCode finalizeEvent() = 0;
57 
59  virtual void push( ISFParticle *particle, const ISFParticle *parent) = 0;
60 
62  virtual const ISFParticleVector& popVector(size_t maxVectorSize=10240) = 0;
63 
65  virtual size_t numParticles() const = 0;
66 
67  /* Dump the stack to the screen */
68  virtual StatusCode dump() const = 0;
69  };
70 }
71 
72 #endif //> !ISF_INTERFACES_IPARTICLEBROKER_H
73 
ISF::ISFParticleContainer
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
Definition: ISFParticleContainer.h:23
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
ISF::IParticleBroker::DeclareInterfaceID
DeclareInterfaceID(IParticleBroker, 1, 0)
Creates the InterfaceID and interfaceID() method.
ISF::IParticleBroker::numParticles
virtual size_t numParticles() const =0
Get the current number of particles stored.
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
AtlasRegion.h
ISF::IParticleBroker::push
virtual void push(ISFParticle *particle, const ISFParticle *parent)=0
hand a new ISF particle to the broker
AtlasDetDescr::AtlasRegion
AtlasRegion
Definition: AtlasRegion.h:27
ISF::ISFParticle
Definition: ISFParticle.h:42
ISF::SimSelectorToolArray
ToolHandleArray< ISimulationSelector > SimSelectorToolArray
typedef for better readable code
Definition: ISimulationSelector.h:76
ISF::IParticleBroker::dump
virtual StatusCode dump() const =0
ISF::IParticleBroker::finalizeEvent
virtual StatusCode finalizeEvent()=0
Finalize the event in the broker service.
ISFParticleContainer.h
ISF::IParticleBroker
@ class IParticleBroker
Definition: IParticleBroker.h:39
EntryLayer.h
ISimulationSelector.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
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ISF::IParticleBroker::initializeEvent
virtual StatusCode initializeEvent(ISFParticleContainer &&simParticles)=0
Initialize the broker.
ISF::IParticleBroker::registerSimSelector
virtual StatusCode registerSimSelector(SimSelectorToolArray &simSelectorTools, AtlasDetDescr::AtlasRegion geoID)=0
Register an array of SimulationSelectors.
ISF::IParticleBroker::popVector
virtual const ISFParticleVector & popVector(size_t maxVectorSize=10240)=0
Get vectors of ISF particles from the broker.
ISF
ISFParticleOrderedQueue.
Definition: PrimaryParticleInformation.h:13
checker_macros.h
Define macros for attributes used to control the static checker.
SimSvcID.h