X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliGenFunction.cxx;h=659df3861d7840fd098209da612149c6c2307426;hb=b32d523bd541695de772550ce1d71b56b48049cf;hp=d431a06c7af639235bc4f475b8e72982e94cb006;hpb=48c27d6141f354568917fcbde2be45c847001553;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenFunction.cxx b/EVGEN/AliGenFunction.cxx index d431a06c7af..659df3861d7 100644 --- a/EVGEN/AliGenFunction.cxx +++ b/EVGEN/AliGenFunction.cxx @@ -58,9 +58,11 @@ #include #include "AliRun.h" +#include "AliLog.h" #include "AliESDtrack.h" #include "AliESDVertex.h" #include "AliGenFunction.h" +#include "AliGenEventHeader.h" ClassImp(AliGenFunction) @@ -83,6 +85,42 @@ AliGenFunction::AliGenFunction(): // 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() { @@ -99,7 +137,7 @@ 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(); @@ -124,7 +162,8 @@ void AliGenFunction::Generate() naccepted++; } - + AliGenEventHeader* header = new AliGenEventHeader("THn"); + gAlice->SetGenEventHeader(header); return; } //----------------------------------------------------------------------------- @@ -153,7 +192,7 @@ void AliGenFunction::Init() void AliGenFunction::SetFunctions(TF1 * momentum, TF1 *fphi, TF1 *ftheta,TF3 * position, TF1* pdg){ // - // + // Set the function // fFMomentum = momentum; fFPhi = fphi; @@ -164,7 +203,7 @@ void AliGenFunction::SetFunctions(TF1 * momentum, TF1 *fphi, TF1 *ftheta,TF3 * p void AliGenFunction::SetCylinder(Double_t refR, Double_t zmin, Double_t zmax){ // - // + // Set the cylinder geometry // fRefRadius = refR; // reference radius to be crossed fZmin = zmin; // minimal z at reference radius