Marlin  1.10.0
 All Classes Namespaces Functions Variables Enumerations Friends Pages
ProcessorEventSeeder.h
1 #ifndef PROCESSOREVENTSEEDER_H
2 #define PROCESSOREVENTSEEDER_H 1
3 
4 #include "lcio.h"
5 #include "EVENT/LCEvent.h"
6 #include <map>
7 
8 using namespace lcio ;
9 
10 namespace marlin{
11 
12  class ProcessorMgr;
13  class Processor;
14 
57 
58  public:
59 
60  friend class ProcessorMgr;
61 
64 
67  void registerProcessor( Processor* proc ) ;
68 
71  unsigned int getSeed( Processor* proc ) ;
72 
73  private:
74 
77 
81  void refreshSeeds( LCEvent * evt ) ;
82 
83  ProcessorEventSeeder(const ProcessorEventSeeder&); // prevent copying
84  ProcessorEventSeeder& operator=(const ProcessorEventSeeder&); // prevent assignment
85 
88  int _global_seed ;
89 
92  bool _global_seed_set ;
93 
97  bool _eventProcessingStarted ;
98 
101  std::map<Processor*, unsigned int> _seed_map ;
102 
103  } ;
104 
105 } // end namespace marlin
106 #endif
~ProcessorEventSeeder()
Destructor.
Definition: ProcessorEventSeeder.h:63
Processor event seeder - provides independent pseudo-randomly generated seeds for registered processo...
Definition: ProcessorEventSeeder.h:56
Processor manager singleton class.
Definition: ProcessorMgr.h:36
Base class for Marlin processors.
Definition: Processor.h:63