Geant4 Cross Reference |
1 // -*- C++ -*- 1 2 // 3 // ------------------------------------------- 4 // HEP Random 5 // --- RandBit --- 6 // class header file 7 // ------------------------------------------- 8 // 9 10 // Class defining methods for shooting Flat or 11 // integers. 12 // It provides methods to fill with double fla 13 // specified size, as well as methods for shoo 14 // Default boundaries ]0.1[ for operator()(). 15 16 // This is derived from RandFlat and is a drop 17 // the shootBit() and fireBit() methods are st 18 // an order of magnitude slower, but allows sa 19 // to work correctly). 20 21 // =========================================== 22 // M. Fischler - Created: 15th Feb 2000 23 // M Fischler - put and get to/from strea 24 // M Fischler - static save/restore to st 25 // =========================================== 26 27 #ifndef RandBit_h 28 #define RandBit_h 1 29 30 #include "CLHEP/Random/RandFlat.h" 31 32 namespace CLHEP { 33 34 /** 35 * @author 36 * @ingroup random 37 */ 38 class RandBit : public RandFlat { 39 40 public: 41 42 inline RandBit ( HepRandomEngine& anEngine ) 43 inline RandBit ( HepRandomEngine& anEngine, 44 inline RandBit ( HepRandomEngine& anEngine, 45 inline RandBit ( HepRandomEngine* anEngine ) 46 inline RandBit ( HepRandomEngine* anEngine, 47 inline RandBit ( HepRandomEngine* anEngine, 48 // These constructors should be used to inst 49 // distribution object defining a local engi 50 // The static generator will be skipped usin 51 // defined below. 52 // If the engine is passed by pointer the co 53 // will be deleted by the RandBit destructor 54 // If the engine is passed by reference the 55 // will not be deleted by the RandBit destru 56 57 virtual ~RandBit(); 58 // Destructor 59 60 // Other than the Bit routines, constructors 61 // simply inherited from RandFlat. 62 63 static inline int shootBit(); 64 65 static inline int shootBit( HepRandomEngine 66 67 // Methods using the localEngine to shoot r 68 // the static generator. 69 70 inline int fireBit(); 71 72 // Save and restore to/from streams 73 74 std::ostream & put ( std::ostream & os ) con 75 std::istream & get ( std::istream & is ); 76 77 std::string name() const; 78 79 static std::string distributionName() {retur 80 // Provides the name of this distribution cl 81 82 static std::ostream& saveFullState ( std::os 83 // Saves to stream the state of the engine a 84 {return RandFlat::saveFullState(os 85 86 static std::istream& restoreFullState ( std: 87 // Restores from stream the state of the eng 88 {return RandFlat::restoreFullState 89 90 static std::ostream& saveDistState ( std::os 91 // Saves to stream the state of the cached d 92 {return RandFlat::saveDistState(os 93 94 static std::istream& restoreDistState ( std: 95 // Restores from stream the state of the cac 96 {return RandFlat::restoreDistState 97 98 99 private: 100 101 // All the engine info, and the default A an 102 // base class. 103 104 }; 105 106 } // namespace CLHEP 107 108 #include "CLHEP/Random/RandBit.icc" 109 110 #endif 111