X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliGenerator.h;h=402d81295ae56d36840bca198861135d03777ae5;hb=583e63b8cc5bcb315a36593ccc48f486c2907bbf;hp=54638baefb954b825c8a8ce994e8e12e3594cda3;hpb=39192f0596cda8cf10b41283c032de8a8a83d919;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliGenerator.h b/STEER/AliGenerator.h index 54638baefb9..402d81295ae 100644 --- a/STEER/AliGenerator.h +++ b/STEER/AliGenerator.h @@ -18,9 +18,10 @@ #include "AliRndm.h" +class AliVertexGenerator; class AliCollisionGeometry; +class AliGenEventHeader; class AliStack; - class TGenerator; @@ -33,15 +34,15 @@ 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); + virtual void SetSigmaZ(Float_t sz) {fOsigma[2] = sz;} virtual void SetMomentumRange(Float_t pmin=0, Float_t pmax=1.e10); virtual void SetPtRange(Float_t ptmin=0, Float_t ptmax=1.e10); virtual void SetPhiRange(Float_t phimin = 0., Float_t phimax = 360.); @@ -61,13 +62,18 @@ class AliGenerator : public TNamed, public AliRndm virtual void SetVertexSource(VertexSource_t source = kInternal) {fVertexSource = source;} virtual void SetVertex(Float_t vx, Float_t vy, Float_t vz) {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 @@ -83,6 +89,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, @@ -95,7 +113,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 @@ -117,13 +135,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), @@ -133,7 +155,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