5#ifndef ISF_SERVICES_PARTICLEBROKERDYNAMICONREADIN_H
6#define ISF_SERVICES_PARTICLEBROKERDYNAMICONREADIN_H 1
13#include "GaudiKernel/ToolHandle.h"
14#include "GaudiKernel/ServiceHandle.h"
16#include "GaudiKernel/ITHistSvc.h"
86 StatusCode
dump()
const;
97 const char *treeDescr,
115 PublicToolHandle<IEntryLayerTool>
m_entryLayerTool{
this,
"EntryLayerTool",
"iGeant4::EntryLayerTool/ISF_EntryLayerTool"};
118 PublicToolHandle<IParticleOrderingTool>
m_orderingTool{
this,
"ParticleOrderingTool",
""};
151 BooleanProperty
m_validationOutput{
this,
"ValidationOutput",
false,
"If turned on, write out a ROOT tree."};
#define ATLAS_NOT_THREAD_SAFE
getNoisyStrip() Find noisy strips from hitmaps and write out into xml/db formats
The interface to chose between the sub geometry services, realized as an AlgTool since it does not ha...
The generic ISF particle definition,.
PMonUtils::CustomBenchmark * m_benchPDGCode
virtual StatusCode finalizeEvent()
Finalize the event in the broker service.
void selectAndStore(ISFParticle *p)
go through the chain of SimulationSelectors and let the first one which selects the particle decide w...
StatusCode registerPosValTree(const char *treeName, const char *treeDescr, TTree *&tree)
setup the ROOT TTrees for THistSvc in validation mode
SimSelectorArray m_simSelector[AtlasDetDescr::fNumAtlasRegions]
the simulation selectors per geoID (the actual routing chain)
int m_val_pdg
memory containing the entries for the ROOT tree
PublicToolHandle< IEntryLayerTool > m_entryLayerTool
AthenaTool responsible for writing Calo/Muon Entry/Exit Layer collection.
void updateAllSelectors(const ISFParticle &particle)
update all unfrozen simSelectors with the given particle
BooleanProperty m_validationOutput
validation mode: create ROOT Tree with additional information
ISF::SimSvcID identifySimID(const ISF::ISFParticle *p)
go through the chain of SimulationSelectors and return the SimulatoID of the first SimulationSelector...
std::string m_screenOutputPrefix
Screen output refinement.
SimSelectorSet m_simSelectorSet
used to remove multiple uses of the same selector
ISFParticleVector m_popParticles
the vector of particles returned for simulation (via popVector() )
TTree * m_t_entryLayerPos[ISF::fNumAtlasEntryLayers]
TTree * m_t_pushPosition
the actual validation histograms and ROOT trees
virtual void push(ISFParticle *particle, const ISFParticle *ancestor)
add a new particle to the stack and inherit ISF properties from the given ancestor ISF particel (usua...
ParticleBrokerDynamicOnReadIn(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
StatusCode initializeEvent(ISFParticleContainer &&simParticles)
Initialize the particle broker.
ParticleBrokerDynamicOnReadIn()
Default constructor.
std::string m_screenEmptyPrefix
virtual const ISFParticleVector & popVector(size_t maxVectorSize)
Get vectors of ISF particles from the broker.
BooleanProperty m_forceGeoIDSvc
always use GeoIDSvc to determine GeoID of given particles
ServiceHandle< ITHistSvc > m_thistSvc
the histogram service
PMonUtils::CustomBenchmark * m_benchGeoID
BooleanProperty m_validateGeoID
always use GeoIDSvc to check correctness of GeoIDs already assigned to particles
StatusCode registerSimSelector(SimSelectorToolArray &simSelectorTools, AtlasDetDescr::AtlasRegion geoID)
Register an array of SimulationSelectors.
PublicToolHandle< IParticleOrderingTool > m_orderingTool
AthenaTool responsible for proritizing the particles and determine their simulation order.
BooleanProperty m_doSelectorCPUMon
Benchmarking.
virtual size_t numParticles() const
Get the current stack size.
ServiceHandle< IGeoIDSvc > m_geoIDSvc
the geo identifier service used to route the particle into the right SimulationSelector chain
void fillPosValTree(TTree *tree, const ISFParticle &particle)
fill the TTree with the (x,y,z) coordinates of the given ISFParticle
ISFParticleOrderedQueue m_particles
the particle container storing all particles which need to be simulated
IGeoIDSvc * m_geoIDSvcQuick
minimize Gaudi overhead
StringProperty m_validationStream
validation THist stream name
AtlasRegion
A simple enum of ATLAS regions and sub-detectors.
ToolHandleArray< ISimulationSelector > SimSelectorToolArray
typedef for better readable code
std::priority_queue< ISF::ISFParticle *, ISF::ISFParticleVector, ISF::ISFParticleOrdering > ISFParticleOrderedQueue
the actual particle priority_queue
uint8_t SimSvcID
Simulation service ID datatype.
std::list< ISF::ISFParticle * > ISFParticleContainer
generic ISFParticle container (not necessarily a std::list!)
std::vector< ISimulationSelector * > SimSelectorArray
std::set< ISimulationSelector * > SimSelectorSet
std::vector< ISF::ISFParticle * > ISFParticleVector
ISFParticle vector.