//
SetNumberParticles(1);
}
+
+AliGenFunction::AliGenFunction(const AliGenFunction& func):
+ AliGenerator(),
+ fBkG(func.fBkG),
+ fFMomentum(func.fFMomentum), // momentum distribution function
+ fFPhi(func.fFPhi), // phi distribution function
+ fFTheta(func.fFTheta), // theta distribution function
+ fFPosition(func.fFPosition), // position distribution function
+ fFPdg(func.fFPdg), // pdg distribution function
+ fRefRadius(func.fRefRadius), // reference radius to be crossed
+ fZmin(func.fZmin), // minimal z at reference radius
+ fZmax(func.fZmax), // z at reference radius
+ fMaxTrial(10000) // maximal number of attempts
+{
+ // Copy constructor
+ SetNumberParticles(1);
+}
+
+AliGenFunction & AliGenFunction::operator=(const AliGenFunction& func)
+{
+ // Assigment operator
+ if(&func == this) return *this;
+ fBkG = func.fBkG;
+ fFMomentum = func.fFMomentum;
+ fFPhi = func.fFPhi;
+ fFTheta = func.fFTheta;
+ fFPosition = func.fFPosition;
+ fFPdg = func.fFPdg;
+ fRefRadius = func.fRefRadius;
+ fZmin = func.fZmin;
+ fZmax = func.fZmax;
+ fMaxTrial = func.fMaxTrial;
+ return *this;
+}
+
+
//-----------------------------------------------------------------------------
void AliGenFunction::Generate()
{
Float_t posf[3];
Double_t pos[3];
Int_t pdg;
- Double_t ptot,pt, phi, theta;
+ Double_t ptot, pt, phi, theta;
//
ptot = fFMomentum->GetRandom();
phi = fFPhi->GetRandom();
public:
AliGenFunction();
+ AliGenFunction(const AliGenFunction& func);
+ AliGenFunction &operator=(const AliGenFunction& func);
virtual ~AliGenFunction() {}
virtual void Generate();
virtual void Init();
Float_t fBkG; // field in kGauss
TF1 * fFMomentum; // momentum distribution function
TF1 * fFPhi; // phi distribution function
- TF1 * fFTheta; // phi distribution function
+ TF1 * fFTheta; // theta distribution function
TF3 * fFPosition; // position distribution function
TF1 * fFPdg; // pdg distribution function
//