#include <TRandom.h>
-static TRandom *sRandom;
-
class AliRndm
{
public:
- AliRndm() {SetRandom();}
- virtual ~AliRndm() {fRandom=sRandom=0;}
+ AliRndm();
+ AliRndm(const AliRndm &rn);
+ virtual ~AliRndm() {fRandom=0;}
+ AliRndm & operator=(const AliRndm& rn)
+ {rn.Copy(*this); return (*this);}
// Random number generator bit
virtual void SetRandom(TRandom *ran=0)
- {if(ran) fRandom=sRandom=ran;
- else fRandom=sRandom=gRandom;}
+ {if(ran) fRandom=ran;
+ else fRandom=gRandom;}
virtual TRandom* GetRandom() const {return fRandom;}
- virtual void Rndm(Float_t* array, const Int_t size) const;
+ virtual void Rndm(Float_t* array, Int_t size) const;
#ifdef CKNONE
virtual Float_t Rndm() const {return fRandom->Rndm();}
#else
virtual void WriteRandom(const char *filename) const;
virtual void ReadRandom(const char *filename);
- protected:
+protected:
TRandom *fRandom; // Pointer to the random number generator
- private:
- AliRndm(const AliRndm &) {}
- AliRndm & operator=(const AliRndm &) {return (*this);}
+private:
+ void Copy(AliRndm &rn) const;
ClassDef(AliRndm,1) //Random Number generator wrapper
};