memory leak fixed
[u/mrichter/AliRoot.git] / HERWIG / AliHerwigRndm.h
1 #ifndef ALIHERWIGRNDM_H
2 #define ALIHERWIGRNDM_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-----------------------------------------------------------------------------
9 //   Class: AliHerwigRndm
10 //   Responsibilities: Interface to Root random number generator 
11 //                     from Fortran (re-implements FINCTION RLU_HERWIG 
12 //                     from HERWIG)
13 //-----------------------------------------------------------------------------
14
15 #include <Rtypes.h>
16 #include <TError.h>
17
18 class TRandom;
19
20 class AliHerwigRndm {
21  public:
22   AliHerwigRndm() {
23     // Default constructor. The static data member is initialized
24     // in the implementation file
25   }
26   AliHerwigRndm(const AliHerwigRndm &/*rn*/) {
27     // Copy constructor: no copy allowed for the object
28     ::Fatal("Copy constructor","Not allowed\n");
29   }
30   virtual ~AliHerwigRndm() {
31     // Destructor
32     fgHerwigRandom=0;
33   }
34   AliHerwigRndm & operator=(const AliHerwigRndm& /*rn*/) {
35     // Assignment operator: no assignment allowed
36     ::Fatal("Assignment operator","Not allowed\n");
37     return (*this);
38   }
39   
40   static void SetHerwigRandom(TRandom *ran=0);
41   static TRandom * GetHerwigRandom();
42
43 private:
44
45   static TRandom * fgHerwigRandom; //! pointer to the random number generator
46
47   ClassDef(AliHerwigRndm,0)  //Random Number generator wrapper (non persistent)
48 };
49
50 #endif 
51