00001 // -*- C++ -*- 00002 #ifndef RandomEngine_RandomEngineStates_h 00003 #define RandomEngine_RandomEngineStates_h 00004 00016 #include <vector> 00017 #include <string> 00018 00019 class RandomEngineState; 00020 00021 namespace edm { 00022 00023 class RandomEngineStates { 00024 public: 00025 00026 RandomEngineStates(); 00027 ~RandomEngineStates(); 00028 00029 void getRandomEngineStates(std::vector<RandomEngineState> & states) const; 00030 void setRandomEngineStates(std::vector<RandomEngineState> const& states); 00031 00032 bool isProductEqual(RandomEngineStates const& randomEngineStates) const; 00033 00034 private: 00035 00036 std::vector<std::string> moduleLabels_; 00037 00038 std::vector<unsigned> seedLengths_; 00039 std::vector<unsigned> seedVectors_; 00040 00041 std::vector<unsigned> stateLengths_; 00042 std::vector<unsigned> stateVectors_; 00043 }; 00044 } 00045 #endif