X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=EVGEN%2FAliGenHIJINGpara.cxx;h=f3fa75d35735d40182a8c69b1d5ce9c8d1b1ee4b;hb=70292245a90765aac70df0e43871cb206a483f74;hp=65f33b3936e08e4c0f2e88f2e6450a6064508891;hpb=a142c1958b6d4cd6c6a2ce71fcede90c6625beb3;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenHIJINGpara.cxx b/EVGEN/AliGenHIJINGpara.cxx index 65f33b3936e..f3fa75d3573 100644 --- a/EVGEN/AliGenHIJINGpara.cxx +++ b/EVGEN/AliGenHIJINGpara.cxx @@ -58,15 +58,9 @@ ClassImp(AliGenHIJINGpara) -AliGenHIJINGpara::AliGenHIJINGpara(const AliGenHIJINGpara & para): - AliGenerator(para) -{ -// Copy constructor - para.Copy(*this); -} //_____________________________________________________________________________ -static Double_t ptpi(Double_t *px, Double_t *) +static Double_t ptpi(const Double_t *px, const Double_t *) { // // PT-PARAMETERIZATION CDF, PRL 61(88) 1819 @@ -164,42 +158,46 @@ static Double_t etakac( Double_t *py, Double_t *) //_____________________________________________________________________________ AliGenHIJINGpara::AliGenHIJINGpara() - :AliGenerator() + :AliGenerator(), + fNt(-1), + fNpartProd(0), + fPi0Decays(kFALSE), + fPtWgtPi(0.), + fPtWgtKa(0.), + fPtpi(0), + fPtka(0), + fETApic(0), + fETAkac(0), + fDecayer(0) { // // Default constructor // - fPtpi = 0; - fPtka = 0; - fETApic = 0; - fETAkac = 0; - fDecayer = 0; - fNt = -1; - fNpartProd = 0; SetCutVertexZ(); SetPtRange(); - SetPi0Decays(); } //_____________________________________________________________________________ AliGenHIJINGpara::AliGenHIJINGpara(Int_t npart) - :AliGenerator(npart) + :AliGenerator(npart), + fNt(-1), + fNpartProd(npart), + fPi0Decays(kFALSE), + fPtWgtPi(0.), + fPtWgtKa(0.), + fPtpi(0), + fPtka(0), + fETApic(0), + fETAkac(0), + fDecayer(0) { // // Standard constructor // fName="HIJINGpara"; fTitle="HIJING Parametrisation Particle Generator"; - fPtpi = 0; - fPtka = 0; - fETApic = 0; - fETAkac = 0; - fDecayer = 0; - fNt = -1; - fNpartProd = npart; SetCutVertexZ(); SetPtRange(); - SetPi0Decays(); } //_____________________________________________________________________________ @@ -283,6 +281,13 @@ void AliGenHIJINGpara::Init() // if (fPi0Decays && gMC) fDecayer = gMC->GetDecayer(); + + if (fPi0Decays) + { + fDecayer->SetForceDecay(kNeutralPion); + fDecayer->Init(); + } + } @@ -302,6 +307,7 @@ void AliGenHIJINGpara::Generate() const Int_t kKaons[4] = {kK0Long, kK0Short, kKPlus, kKMinus}; // Float_t origin[3]; + Float_t time; Float_t pt, pl, ptot, wgt; Float_t phi, theta; Float_t p[3]; @@ -313,16 +319,19 @@ void AliGenHIJINGpara::Generate() Float_t random[6]; // for (j=0;j<3;j++) origin[j]=fOrigin[j]; + time = fTimeOrigin; if(fVertexSmear == kPerEvent) { Vertex(); for (j=0; j < 3; j++) origin[j] = fVertex[j]; + time = fTime; } // if kPerEvent TArrayF eventVertex; eventVertex.Set(3); eventVertex[0] = origin[0]; eventVertex[1] = origin[1]; eventVertex[2] = origin[2]; + Float_t eventTime = time; for(i=0;iSetPrimaryVertex(eventVertex); + header->SetInteractionTime(eventTime); header->SetNProduced(fNpartProd); - gAlice->SetGenEventHeader(header); + if (fContainer) { + header->SetName(fName); + fContainer->AddHeader(header); + } else { + gAlice->SetGenEventHeader(header); + } } void AliGenHIJINGpara::SetPtRange(Float_t ptmin, Float_t ptmax) { AliGenerator::SetPtRange(ptmin, ptmax); } -void AliGenHIJINGpara::DecayPi0(Float_t* orig, Float_t * p) +void AliGenHIJINGpara::DecayPi0(Float_t* orig, Float_t * p, Float_t time) { // // Decay the pi0 @@ -423,7 +442,7 @@ void AliGenHIJINGpara::DecayPi0(Float_t* orig, Float_t * p) Float_t polar[3] = {0., 0., 0.}; Int_t np = fDecayer->ImportParticles(particles); fNpartProd += (np-1); - Int_t nt; + Int_t nt = 0; for (Int_t i = 1; i < np; i++) { TParticle* iParticle = (TParticle *) particles->At(i); @@ -432,18 +451,12 @@ void AliGenHIJINGpara::DecayPi0(Float_t* orig, Float_t * p) p[2] = iParticle->Pz(); Int_t part = iParticle->GetPdgCode(); - PushTrack(fTrackIt, fNt, part, p, orig, polar, 0, kPDecay, nt, fParentWeight); + PushTrack(fTrackIt, fNt, part, p, orig, polar, time, kPDecay, nt, fParentWeight); KeepTrack(nt); } fNt = nt; } -void AliGenHIJINGpara::Copy(TObject &) const -{ - Fatal("Copy","Not implemented!\n"); -} - - void AliGenHIJINGpara::Draw( const char * /*opt*/) { //