]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliGenerator.h
Updates by M. Horner and J. Klay
[u/mrichter/AliRoot.git] / STEER / AliGenerator.h
index 0650e147af614bccf0beadd76f93160162746214..1b37afbe2374d2c18be3b7b865ce331f6ae43441 100644 (file)
 //                                                       //
 ///////////////////////////////////////////////////////////
 
-#include "TLorentzVector.h"
-#include "TArrayF.h"
+#include <TArrayF.h>
+#include <TLorentzVector.h>
+#include <TMCProcess.h>
+
 #include "AliRndm.h"
-#include "AliMCProcess.h"
-class TGenerator;
+
+class AliCollisionGeometry;
 class AliStack;
 
+class TGenerator;
+
+
 
 typedef enum { kNoSmear, kPerEvent, kPerTrack } VertexSmear_t;
 typedef enum { kExternal, kInternal}            VertexSource_t;
@@ -53,7 +58,7 @@ class AliGenerator : public TNamed, public AliRndm
     virtual void SetAnalog(Int_t flag=1) {fAnalog=flag;}       
     virtual void SetVertexSmear(VertexSmear_t smear) {fVertexSmear = smear;}
     virtual void SetCutVertexZ(Float_t cut=999999.) {fCutVertexZ = cut;}
-    virtual void SetVertexSource(VertexSource_t smear) {fVertexSource = kInternal;}    
+    virtual void SetVertexSource(VertexSource_t) {fVertexSource = kInternal;}    
     virtual void SetTrackingFlag(Int_t flag=1) {fTrackIt=flag;}
     void Vertex();
     void VertexExternal();
@@ -71,20 +76,24 @@ class AliGenerator : public TNamed, public AliRndm
        {ox=fOrigin.At(0);oy=fOrigin.At(1);oz=fOrigin.At(2);}
     virtual void GetOrigin(TLorentzVector &o) const
        {o[0]=fOrigin.At(0);o[1]=fOrigin.At(1);o[2]=fOrigin.At(2);o[3]=0;}
-
+  // Stack 
     void SetStack (AliStack *stack) {fStack = stack;}
     AliStack* GetStack(){return fStack;}
-// Comminication with stack
+  // Collision Geometry
+    virtual Bool_t ProvidesCollisionGeometry() const {return kFALSE;}
+    virtual Bool_t NeedsCollisionGeometry()    const {return kFALSE;}    
+    virtual AliCollisionGeometry* CollisionGeometry() {return fCollisionGeometry;}
+    virtual void SetCollisionGeometry(AliCollisionGeometry* geom) {fCollisionGeometry = geom;}
  protected:
     virtual  void  SetTrack(Int_t done, Int_t parent, Int_t pdg,
                                Float_t *pmom, Float_t *vpos, Float_t *polar,
-                               Float_t tof, AliMCProcess mech, Int_t &ntr,
+                               Float_t tof, TMCProcess mech, Int_t &ntr,
                                Float_t weight = 1, Int_t is = 0);
     virtual  void  SetTrack(Int_t done, Int_t parent, Int_t pdg,
                       Double_t px, Double_t py, Double_t pz, Double_t e,
                       Double_t vx, Double_t vy, Double_t vz, Double_t tof,
                       Double_t polx, Double_t poly, Double_t polz,
-                      AliMCProcess mech, Int_t &ntr, Float_t weight = 1, Int_t is = 0);
+                      TMCProcess mech, Int_t &ntr, Float_t weight = 1, Int_t is = 0);
     virtual void   KeepTrack(Int_t itrack); 
     virtual void   SetHighWaterMark(Int_t nt);
     
@@ -117,6 +126,7 @@ class AliGenerator : public TNamed, public AliRndm
     TArrayF     fEventVertex;   //!The current event vertex
 
     AliStack*   fStack;      //! Local pointer to stack
+    AliCollisionGeometry* fCollisionGeometry; //!Collision geometry
     /*************************************************************************/
     enum {kThetaRange    = BIT(14),
          kVertexRange   = BIT(15),
@@ -125,7 +135,7 @@ class AliGenerator : public TNamed, public AliRndm
          kYRange        = BIT(18),
          kMomentumRange = BIT(19)     
     };
-    ClassDef(AliGenerator,2) // Base class for event generators
+    ClassDef(AliGenerator,3) // Base class for event generators
 };
 
 #endif