X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=EVGEN%2FAliGenParam.cxx;h=f989ab94df772c163444a3473dd09449895a4e95;hp=2a5723c8a71c9aed4e8cb6190ba7b524b344e349;hb=aa62360d3b63ed897ceeaa3af8f1b75cc71c9e3f;hpb=ea79897ec75cf2fff69a06f28099dcae8df75184 diff --git a/EVGEN/AliGenParam.cxx b/EVGEN/AliGenParam.cxx index 2a5723c8a71..f989ab94df7 100644 --- a/EVGEN/AliGenParam.cxx +++ b/EVGEN/AliGenParam.cxx @@ -69,7 +69,7 @@ ClassImp(AliGenParam) // Default constructor } //____________________________________________________________ -AliGenParam::AliGenParam(Int_t npart, AliGenLib * Library, Int_t param, char* tname) +AliGenParam::AliGenParam(Int_t npart, AliGenLib * Library, Int_t param, const char* tname) :AliGenMC(npart), fPtParaFunc(Library->GetPt(param, tname)), fYParaFunc (Library->GetY (param, tname)), @@ -131,8 +131,8 @@ AliGenParam::AliGenParam(Int_t npart, Int_t param, const char* tname, const char //____________________________________________________________ AliGenParam::AliGenParam(Int_t npart, Int_t param, - Double_t (*PtPara) (Double_t*, Double_t*), - Double_t (*YPara ) (Double_t* ,Double_t*), + Double_t (*PtPara) (const Double_t*, const Double_t*), + Double_t (*YPara ) (const Double_t* ,const Double_t*), Int_t (*IpPara) (TRandom *)) :AliGenMC(npart), @@ -186,7 +186,7 @@ void AliGenParam::Init() */ //End_Html char name[256]; - sprintf(name, "pt-parameterisation for %s", GetName()); + snprintf(name, 256, "pt-parameterisation for %s", GetName()); if (fPtPara) fPtPara->Delete(); fPtPara = new TF1(name, fPtParaFunc, fPtMin, fPtMax,0); @@ -196,15 +196,15 @@ void AliGenParam::Init() fPtPara->SetNpx(npx); - sprintf(name, "y-parameterisation for %s", GetName()); + snprintf(name, 256, "y-parameterisation for %s", GetName()); if (fYPara) fYPara->Delete(); fYPara = new TF1(name, fYParaFunc, fYMin, fYMax, 0); gROOT->GetListOfFunctions()->Remove(fYPara); - sprintf(name, "pt-for-%s", GetName()); + snprintf(name, 256, "pt-for-%s", GetName()); TF1 ptPara(name ,fPtParaFunc, 0, 15, 0); - sprintf(name, "y-for-%s", GetName()); + snprintf(name, 256, "y-for-%s", GetName()); TF1 yPara(name, fYParaFunc, -6, 6, 0); // @@ -321,7 +321,7 @@ void AliGenParam::Generate() "Division by 0: Please check you rapidity range !"); } - pl=xmt*ty/sqrt(1.-ty*ty); + pl=xmt*ty/sqrt((1.-ty)*(1.+ty)); theta=TMath::ATan2(pt,pl); // Cut on theta if(thetafThetaMax) continue; @@ -348,6 +348,8 @@ void AliGenParam::Generate() // if fForceDecay == none Primary particle is tracked by GEANT // (In the latest, make sure that GEANT actually does all the decays you want) // + Bool_t decayed = kFALSE; + if (fForceDecay != kNoDecay) { // Using lujet to decay particle @@ -374,7 +376,8 @@ void AliGenParam::Generate() } if (np >1) { - TParticle* iparticle = (TParticle *) particles->At(0); + decayed = kTRUE; + TParticle* iparticle = 0; Int_t ipF, ipL; for (i = 1; iPx(); @@ -437,7 +440,9 @@ void AliGenParam::Generate() ipa++; // // Parent - PushTrack(0, -1, iPart, p, origin0, polar, 0, kPPrimary, nt, wgtp); + + + PushTrack(0, -1, iPart, p, origin0, polar, 0, kPPrimary, nt, wgtp, ((decayed)? 11 : 1)); pParent[0] = nt; KeepTrack(nt); fNprimaries++; @@ -449,6 +454,7 @@ void AliGenParam::Generate() if (pSelected[i]) { TParticle* iparticle = (TParticle *) particles->At(i); Int_t kf = iparticle->GetPdgCode(); + Int_t ksc = iparticle->GetStatusCode(); Int_t jpa = iparticle->GetFirstMother()-1; och[0] = origin0[0]+iparticle->Vx()/10; @@ -466,7 +472,7 @@ void AliGenParam::Generate() PushTrack(fTrackIt * trackIt[i], iparent, kf, pc, och, polar, - 0, kPDecay, nt, wgtch); + 0, kPDecay, nt, wgtch, ksc); pParent[i] = nt; KeepTrack(nt); fNprimaries++; @@ -482,7 +488,7 @@ void AliGenParam::Generate() else // nodecay option, so parent will be tracked by GEANT (pions, kaons, eta, omegas, baryons) { gAlice->GetMCApp()-> - PushTrack(fTrackIt,-1,iPart,p,origin0,polar,0,kPPrimary,nt,wgtp); + PushTrack(fTrackIt,-1,iPart,p,origin0,polar,0,kPPrimary,nt,wgtp, 1); ipa++; fNprimaries++; }