Marlin  1.17.1
 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 <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 
89  int _global_seed ;
90 
93  bool _global_seed_set ;
94 
98  bool _eventProcessingStarted ;
99 
102  std::vector< std::pair<Processor*, unsigned int> > _vector_pair_proc_seed;
103 
104  } ;
105 
106 } // end namespace marlin
107 #endif
~ProcessorEventSeeder()
Destructor.
Definition: ProcessorEventSeeder.h:64
Processor event seeder - provides independent pseudo-randomly generated seeds for registered processo...
Definition: ProcessorEventSeeder.h:57
Processor manager singleton class.
Definition: ProcessorMgr.h:36
Base class for Marlin processors.
Definition: Processor.h:64