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)
//
// 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;}
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);
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
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)
//
AliSlowNucleonModel* fSlowNucleonModel; // The slow nucleon model
AliGenSlowNucleons(const AliGenSlowNucleons &sn);
AliGenSlowNucleons & operator=(const AliGenSlowNucleons & rhs);
- ClassDef(AliGenSlowNucleons,2) // Slow Nucleon Generator
+ ClassDef(AliGenSlowNucleons,3) // Slow Nucleon Generator
};
#endif
+