Rationalisation of the virtual MC interfaces
[u/mrichter/AliRoot.git] / STEER / AliVMC.h
1 #ifndef ALIVMC_H
2 #define ALIVMC_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 //                                                                           //
10 //                                                                           //
11 //    Generic interface to MC for AliRoot                                    //
12 //                                                                           //
13 //                                                                           //
14 ///////////////////////////////////////////////////////////////////////////////
15
16 #include <TNamed.h>
17
18 #include "AliMC.h"
19
20 class AliVMC;
21
22 R__EXTERN AliVMC *gVMC;
23
24 class AliVMC : public TNamed 
25 {
26
27 private:
28   static AliVMC* fgVMC;
29
30 public:
31   AliVMC(const char *name, const char *title);
32   AliVMC() {}
33   ~AliVMC() {if(gMC) delete gMC; fgVMC=gVMC=0;}
34   //Generic access functions
35   static AliVMC* GetVMC() {return fgVMC;}
36   //Generic Alice MonteCarlo Functions
37   virtual void FinishGeometry() = 0;
38   virtual void BuildPhysics() = 0;
39   virtual void ProcessEvent() = 0;
40   
41   //
42   ClassDef(AliVMC,1) //Generic MonteCarlo Class
43
44 };
45
46 #endif
47