Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/clhep/include/CLHEP/Random/RandPoisson.h

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/clhep/include/CLHEP/Random/RandPoisson.h (Version 11.3.0) and /externals/clhep/include/CLHEP/Random/RandPoisson.h (Version 1.0)


  1 // -*- C++ -*-                                      1 
  2 //                                                
  3 // -------------------------------------------    
  4 //                             HEP Random         
  5 //                         --- RandPoisson ---    
  6 //                          class header file     
  7 // -------------------------------------------    
  8 // This file is part of Geant4 (simulation too    
  9                                                   
 10 // Class defining methods for shooting numbers    
 11 // distribution, given a mean (Algorithm taken    
 12 // Numerical Recipes in C, Second Edition".       
 13 // Default mean value is set to 1, value used     
 14                                                   
 15 // ===========================================    
 16 // Gabriele Cosmo - Created: 5th September 199    
 17 //                - Added not static Shoot() m    
 18 //                - Algorithm now operates on     
 19 //                - Added methods to shoot arr    
 20 // J.Marraffino   - Added default mean as attr    
 21 //                  operator() with mean: 16th    
 22 // Gabriele Cosmo - Relocated static data from    
 23 // M. Fischler    - Moved meanMax and defaultM    
 24 //        to accomodate derived classes RandPo    
 25 // M Fischler      - put and get to/from strea    
 26 // ===========================================    
 27                                                   
 28 #ifndef RandPoisson_h                             
 29 #define RandPoisson_h 1                           
 30                                                   
 31 #include "CLHEP/Random/Random.h"                  
 32 #include "CLHEP/Utility/memory.h"                 
 33 #include "CLHEP/Utility/thread_local.h"           
 34                                                   
 35 namespace CLHEP {                                 
 36                                                   
 37 /**                                               
 38  * @author                                        
 39  * @ingroup random                                
 40  */                                               
 41 class RandPoisson : public HepRandom {            
 42                                                   
 43 public:                                           
 44                                                   
 45   inline RandPoisson ( HepRandomEngine& anEngi    
 46   inline RandPoisson ( HepRandomEngine* anEngi    
 47   // These constructors should be used to inst    
 48   // distribution object defining a local engi    
 49   // The static generator will be skipped usin    
 50   // defined below.                               
 51   // If the engine is passed by pointer the co    
 52   // will be deleted by the RandPoisson destru    
 53   // If the engine is passed by reference the     
 54   // will not be deleted by the RandPoisson de    
 55                                                   
 56   virtual ~RandPoisson();                         
 57   // Destructor                                   
 58                                                   
 59   // Save and restore to/from streams             
 60                                                   
 61   std::ostream & put ( std::ostream & os ) con    
 62   std::istream & get ( std::istream & is );       
 63                                                   
 64   // Static methods to shoot random values usi    
 65                                                   
 66   static  long shoot( double mean=1.0 );          
 67                                                   
 68   static  void shootArray ( const int size, lo    
 69                                                   
 70   //  Static methods to shoot random values us    
 71   //  by-passing the static generator.            
 72                                                   
 73   static  long shoot( HepRandomEngine* anEngin    
 74                                                   
 75   static  void shootArray ( HepRandomEngine* a    
 76                             const int size, lo    
 77                                                   
 78   //  Methods using the localEngine to shoot r    
 79   //  the static generator.                       
 80                                                   
 81   long  fire();                                   
 82   long  fire( double mean );                      
 83                                                   
 84   void fireArray ( const int size, long* vect     
 85   void fireArray ( const int size, long* vect,    
 86                                                   
 87   double operator()();                            
 88   double operator()( double mean );               
 89                                                   
 90   std::string name() const;                       
 91   HepRandomEngine & engine();                     
 92                                                   
 93   static std::string distributionName() {retur    
 94   // Provides the name of this distribution cl    
 95                                                   
 96 protected:                                        
 97                                                   
 98   double meanMax;                                 
 99   double defaultMean;                             
100                                                   
101   static  double getOldMean() {return oldm_st;    
102                                                   
103   static  double getMaxMean() {return meanMax_    
104                                                   
105   static  void setOldMean( double val ){oldm_s    
106                                                   
107   static  double* getPStatus() {return status_    
108                                                   
109   static void setPStatus(double sq, double alx    
110     status_st[0] = sq; status_st[1] = alxm; st    
111   }                                               
112                                                   
113   inline HepRandomEngine* getLocalEngine();       
114                                                   
115 private:                                          
116                                                   
117   std::shared_ptr<HepRandomEngine> localEngine    
118   double status[3], oldm;                         
119                                                   
120   // static data                                  
121   static CLHEP_THREAD_LOCAL double status_st[3    
122   static CLHEP_THREAD_LOCAL double oldm_st;       
123   static const double meanMax_st;                 
124                                                   
125 };                                                
126                                                   
127 }  // namespace CLHEP                             
128                                                   
129 #include "CLHEP/Random/RandPoisson.icc"           
130                                                   
131 #endif                                            
132