X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliGenSlowNucleons.h;h=ef32bf7770dd68ab4c21fea8383e874c73d0e7ca;hb=4af04bfd46c21d61ab42e98de2220e6815b4f3d2;hp=cdd281d3b84e1820566153ea3ee943b02f5a1778;hpb=5a9b7f8ed2d4b7b35913107955170622b69ac8a2;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenSlowNucleons.h b/EVGEN/AliGenSlowNucleons.h index cdd281d3b84..ef32bf7770d 100644 --- a/EVGEN/AliGenSlowNucleons.h +++ b/EVGEN/AliGenSlowNucleons.h @@ -21,14 +21,14 @@ class AliGenSlowNucleons : public AliGenerator public: AliGenSlowNucleons(); AliGenSlowNucleons(Int_t npart); - AliGenSlowNucleons(const AliGenSlowNucleons &sn); virtual ~AliGenSlowNucleons(); virtual void Init(); virtual void FinishRun(); virtual void Generate(); virtual void SetPmax(Float_t pmax = 10.) {fPmax = pmax;} virtual void SetNominalCmsEnergy(Float_t energy = 14000.) {fCMS = energy;} - virtual void SetTarget(Float_t a=208, Float_t z=82) {fATarget = a; fZTarget = z;} + virtual void SetTarget(Int_t a = 208, Int_t z = 82) {fATarget = a; fZTarget = z;} + virtual void SetTarget(TString s, Int_t a, Int_t z) {AliGenerator::SetTarget(s, a, z);} virtual void SetProtonDirection(Float_t dir = 1.); virtual void SetCharge(Int_t c = 1) {fCharge = c;} virtual void SetTemperature(Double_t t1 = 0.04, Double_t t2 = 0.004) @@ -47,20 +47,30 @@ public: // // Added by Chiara to take into account angular distribution 4 gray tracks virtual void SetThetaDist(Int_t flag=0) {fThetaDistribution = flag;} + // + virtual void SetBeamCrossingAngle(Float_t crossAngle) {fBeamCrossingAngle = crossAngle;} + virtual void SetBeamDivergence(Float_t divergence) {fBeamDivergence = divergence;} + // + virtual Int_t GetNGrayProtons() {return fNgp;} + virtual Int_t GetNGrayNeutrons() {return fNgn;} + virtual Int_t GetNBlackProtons() {return fNbp;} + virtual Int_t GetNBlackNeutrons() {return fNbn;} + // + virtual void SetModelSmear(Int_t imode) {fSmearMode=imode;} protected: void GenerateSlow(Int_t charge, Double_t T, Double_t beta, Float_t* q, Float_t &theta); Double_t Maxwell(Double_t m, Double_t p, Double_t t); void Lorentz(Double_t m, Double_t beta, Float_t* q); - void Copy(TObject&) const; - AliGenSlowNucleons & operator=(const AliGenSlowNucleons & rhs); + void BeamCrossDivergence(Int_t iwhat, Float_t *pLab);; + void AddAngle(Double_t theta1, Double_t phi1, Double_t theta2, + Double_t phi2, Double_t *angle); + void SetProcessID(Int_t nt, UInt_t process); protected: Float_t fCMS; // Center of mass energy - Float_t fMomentum; // Target nucleus momentum - Float_t fBeta; // Target nucleus beta + Double_t fMomentum; // Target nucleus momentum + Double_t fBeta; // Target nucleus beta Float_t fPmax; // Maximum slow nucleon momentum - Float_t fATarget; // Target nucleus mass number - Float_t fZTarget; // Target nucleus charge number Int_t fCharge; // Slow nucleon charge Float_t fProtonDirection; // Direction of the proton Float_t fTemperatureG; // Source Temperature for gray nucleons @@ -78,10 +88,22 @@ public: Int_t fThetaDistribution;// 0 -> flat dist., 1 -> fwd. peaked distribution TH1F* fCosThetaGrayHist; // Histogram for debugging TF1* fCosTheta; // Function for non-uniform cos(theta) distribution - + // + Float_t fBeamCrossingAngle; // beam crossing angle (in radians) + Float_t fBeamDivergence; // beam divergence (in radians) + Float_t fBeamDivEvent; // beam divergence (in radians) + // + Int_t fSmearMode; // 0=Skler (no smear), =1 smearing Ncoll, =2 smearing Nslow // AliSlowNucleonModel* fSlowNucleonModel; // The slow nucleon model - ClassDef(AliGenSlowNucleons,2) // Slow Nucleon Generator + + enum {kGrayProcess = 200, kBlackProcess = 300}; + + private: + AliGenSlowNucleons(const AliGenSlowNucleons &sn); + AliGenSlowNucleons & operator=(const AliGenSlowNucleons & rhs); + + ClassDef(AliGenSlowNucleons,4) // Slow Nucleon Generator }; #endif @@ -90,3 +112,4 @@ public: +