]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenSlowNucleons.h
Temporary splines for LHC12b-e anchored MC
[u/mrichter/AliRoot.git] / EVGEN / AliGenSlowNucleons.h
index 73835cf2cba0591cfa99ba7010e1bb12cd9aed5a..ef32bf7770dd68ab4c21fea8383e874c73d0e7ca 100644 (file)
@@ -47,15 +47,29 @@ 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     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
     Int_t    fCharge;          // Slow nucleon charge
     Float_t  fProtonDirection; // Direction of the proton
@@ -74,15 +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
 
+    enum {kGrayProcess = 200, kBlackProcess = 300};
+
  private:
     AliGenSlowNucleons(const AliGenSlowNucleons &sn);
     AliGenSlowNucleons & operator=(const AliGenSlowNucleons & rhs);
 
-    ClassDef(AliGenSlowNucleons,2) // Slow Nucleon Generator
+    ClassDef(AliGenSlowNucleons,4) // Slow Nucleon Generator
 };
 #endif
 
@@ -91,3 +112,4 @@ public:
 
 
 
+