X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliGenerator.h;h=13a5ce63442eeec27c573866f963bbd7271f6303;hb=85ca11dd3caa8e95f58a16e6f07e155fda69982b;hp=699dbe6952c01553e95fef296f308f0b859a0acf;hpb=142488498a2efa6915769ae4e138d627f5633c74;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliGenerator.h b/STEER/AliGenerator.h index 699dbe6952c..13a5ce63442 100644 --- a/STEER/AliGenerator.h +++ b/STEER/AliGenerator.h @@ -20,8 +20,8 @@ class AliVertexGenerator; class AliCollisionGeometry; +class AliGenEventHeader; class AliStack; - class TGenerator; @@ -34,12 +34,11 @@ class AliGenerator : public TNamed, public AliRndm { public: + AliGenerator(); AliGenerator(Int_t npart); - AliGenerator(const AliGenerator &gen); virtual ~AliGenerator(); virtual void Init(); - void Copy(TObject &gen) const; virtual void SetOrigin(Float_t ox, Float_t oy, Float_t oz); virtual void SetOrigin(const TLorentzVector &o); virtual void SetSigma(Float_t sx, Float_t sy, Float_t sz); @@ -64,13 +63,16 @@ class AliGenerator : public TNamed, public AliRndm {fVertex[0] = vx; fVertex[1] = vy; fVertex[2] = vz;} void SetVertexGenerator(AliVertexGenerator* vertexGenerator) {fVertexGenerator = vertexGenerator; fVertexSource = kExternal; fVertexSmear = kPerEvent;} + void SetPileUpTimeWindow(Float_t pileUpTimeW) {fPileUpTimeWindow = pileUpTimeW;} + virtual void SetTrackingFlag(Int_t flag=1) {fTrackIt=flag;} void Vertex(); void VertexExternal(); virtual void VertexInternal(); virtual void FinishRun(); virtual void SetMC(TGenerator *theMC) {fMCEvGen =theMC;} - AliGenerator & operator=(const AliGenerator &gen); + virtual void AddHeader(AliGenEventHeader* /*header*/) {;} + virtual void SetContainer(AliGenerator* container) {fContainer = container;} // Getters @@ -86,6 +88,18 @@ class AliGenerator : public TNamed, public AliRndm virtual Bool_t NeedsCollisionGeometry() const {return kFALSE;} virtual AliCollisionGeometry* CollisionGeometry() const {return fCollisionGeometry;} virtual void SetCollisionGeometry(AliCollisionGeometry* geom) {fCollisionGeometry = geom;} + + virtual Float_t GetEnergyCMS() const { return fEnergyCMS; } + virtual void SetEnergyCMS(Float_t energy = 0) { fEnergyCMS = energy; } + virtual void GetProjectile(TString& tar, Int_t& a, Int_t& z) const + {tar = fProjectile; a = fAProjectile; z = fZProjectile;} + virtual void GetTarget(TString& tar, Int_t& a, Int_t& z) const + {tar = fTarget; a = fATarget; z = fZTarget;} + virtual void SetProjectile(TString proj="", Int_t a = 0, Int_t z = 0) + {fProjectile = proj; fAProjectile = a; fZProjectile = z;} + virtual void SetTarget(TString tar="", Int_t a = 0, Int_t z = 0) + {fTarget = tar; fATarget = a; fZTarget = z;} + protected: virtual void PushTrack(Int_t done, Int_t parent, Int_t pdg, Float_t *pmom, Float_t *vpos, Float_t *polar, @@ -98,7 +112,7 @@ class AliGenerator : public TNamed, public AliRndm 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); - + protected: TGenerator* fMCEvGen; //!Pointer to the generator Float_t fThetaMin; //Minimum theta of generation in radians @@ -120,14 +134,17 @@ class AliGenerator : public TNamed, public AliRndm // VertexSmear_t fVertexSmear; //Vertex Smearing mode VertexSource_t fVertexSource; //Vertex source (internal/external) - Float_t fCutVertexZ; // Vertex cut in units of sigma_z + Float_t fCutVertexZ; //Vertex cut in units of sigma_z + Float_t fPileUpTimeWindow; //Time window for pile-up events Int_t fTrackIt; // if 1, Track final state particles AliVertexGenerator* fVertexGenerator; //! Generator for the vertex TArrayF fOrigin; // Origin of event TArrayF fOsigma; // Sigma of the Origin of event - TArrayF fVertex; //! Vertex of current event + TArrayF fVertex; //! Vertex of current event - AliStack* fStack; //! Local pointer to stack + AliStack* fStack; //! Local pointer to stack + AliGenerator* fContainer; //! Local pointer to container + AliCollisionGeometry* fCollisionGeometry; //!Collision geometry /*************************************************************************/ enum {kThetaRange = BIT(14), @@ -137,7 +154,20 @@ class AliGenerator : public TNamed, public AliRndm kYRange = BIT(18), kMomentumRange = BIT(19) }; - ClassDef(AliGenerator,3) // Base class for event generators + + Float_t fEnergyCMS; // Centre of mass energy + Int_t fAProjectile; // Projectile A + Int_t fZProjectile; // Projectile Z + Int_t fATarget; // Target A + Int_t fZTarget; // Target Z + TString fProjectile; // Projectile + TString fTarget; // Target + + private: + AliGenerator(const AliGenerator &gen); + AliGenerator & operator=(const AliGenerator &gen); + + ClassDef(AliGenerator,4) // Base class for event generators }; #endif