2 #define ProcessorMgr_h 1
6 #include "LCIOOutputProcessor.h"
8 #include "IO/LCRunListener.h"
9 #include "IO/LCEventListener.h"
11 #include "EVENT/LCEvent.h"
12 #include "EVENT/LCRunHeader.h"
13 #include "LogicalExpressions.h"
19 using namespace lcio ;
23 class ProcessorEventSeeder;
25 typedef std::map< const std::string , Processor* > ProcessorMap ;
26 typedef std::list< Processor* > ProcessorList ;
27 typedef std::map< const std::string , int > SkippedEventMap ;
36 class ProcessorMgr :
public LCRunListener,
public LCEventListener {
61 bool addActiveProcessor(
const std::string& processorType ,
const std::string& processorName ,
62 std::shared_ptr<StringParameters> parameters ,
const std::string condition=
"true" ) ;
66 void removeActiveProcessor(
const std::string& name ) ;
72 Processor* getActiveProcessor(
const std::string& name ) ;
77 Processor* getProcessor(
const std::string& type ) ;
81 void dumpRegisteredProcessors() ;
85 void dumpRegisteredProcessorsXML() ;
88 virtual void processRunHeader( LCRunHeader* ) ;
89 virtual void processEvent( LCEvent* ) ;
93 virtual void modifyRunHeader( LCRunHeader*) ;
94 virtual void modifyEvent( LCEvent *) ;
98 virtual void readDataSource(
int numEvents ) ;
102 virtual void setProcessorReturnValue(
Processor* proc,
bool val ) ;
105 virtual void setProcessorReturnValue(
Processor* proc,
bool val ,
const std::string& name) ;
111 void registerProcessor(
Processor* processor ) ;
114 std::set< std::string > getAvailableProcessorTypes() ;
123 ProcessorMap _activeMap{};
124 ProcessorList _list{};
125 SkippedEventMap _skipMap{};
127 ProcessorList _eventModifierList{};
This singleton class contains an instance of every available marlin processor type.
Definition: CMProcessor.h:21
this class is a Marlin Steering File consistency check Tool.
Definition: MarlinSteerCheck.h:72
Helper class that holds named boolean values and named conditions that are expressions of these value...
Definition: LogicalExpressions.h:143
Processor manager singleton class.
Definition: ProcessorMgr.h:36
Base class for Marlin processors.
Definition: Processor.h:64