Marlin  01.17.01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ProcessorEventSeeder.h
Go to the documentation of this file.
1 #ifndef PROCESSOREVENTSEEDER_H
2 #define PROCESSOREVENTSEEDER_H 1
3 
4 #include "lcio.h"
5 #include "EVENT/LCEvent.h"
6 #include <vector>
7 #include <map>
8 
9 using namespace lcio ;
10 
11 namespace marlin{
12 
13  class ProcessorMgr;
14  class Processor;
15 
58 
59  public:
60 
61  friend class ProcessorMgr;
62 
65 
68  void registerProcessor( Processor* proc ) ;
69 
72  unsigned int getSeed( Processor* proc ) ;
73 
74  private:
75 
78 
82  void refreshSeeds( LCEvent * evt ) ;
83 
84  ProcessorEventSeeder(const ProcessorEventSeeder&); // prevent copying
85  ProcessorEventSeeder& operator=(const ProcessorEventSeeder&); // prevent assignment
86 
90 
94 
99 
103 
104  } ;
105 
106 } // end namespace marlin
107 #endif
std::vector< std::pair< Processor *, unsigned int > > _vector_pair_proc_seed
vector to hold pair of pointers to the registered processors and their assigned seeds ...
int _global_seed
Global seed for current Job.
bool _global_seed_set
Global seed has been set for current Job.
Processor event seeder - provides independent pseudo-randomly generated seeds for registered processo...
bool _eventProcessingStarted
bool to ensure no calls of registerProcessor( Processor* proc ) after Event Processesing has started ...
Processor manager singleton class.
Definition: ProcessorMgr.h:36
Base class for Marlin processors.
Definition: Processor.h:64