X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliGenMUONLMR.cxx;h=602991a8ee4bff966f2c0a1d31d095a8cf1cd848;hb=46ae38d01a1794cff7548598708dac8f35d354ee;hp=49ddb976b9979a47f546c62ec735b73f677a1ba5;hpb=4f51fb533fc4dfe86324c6297f805009265168a4;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenMUONLMR.cxx b/EVGEN/AliGenMUONLMR.cxx index 49ddb976b99..602991a8ee4 100644 --- a/EVGEN/AliGenMUONLMR.cxx +++ b/EVGEN/AliGenMUONLMR.cxx @@ -23,10 +23,10 @@ AliGenMUONLMR::AliGenMUONLMR () : AliGenMC(), fNMuMin(2), fGenSingleProc(-1), fC fScaleMult[kPionLMR] = 0; // set pion multiplicity to zero fScaleMult[kKaonLMR] = 0; // set kaon multiplicity to zero Int_t pdg[7] = {211, 321, 221, 113, 223, 333, 331}; - char* fptname[7] = {"fPtPion","fPtKaon","fPtEta","fPtRho","fPtOmega","fPtPhi","fPtEtaPrime"}; - char* fyname[7] = {"fYPion","fYKaon","fYEta","fYRho","fYOmega","fYPhi","fYEtaPrime"}; - char* fnname[7] = {"fMultPion","fMultKaon","fMultEta","fMultRho","fMultOmega","fMultPhi","fMultEtaPrime"}; - char* fdname[2] = {"fDecPion","fDecKaon"}; + const char* fptname[7] = {"fPtPion","fPtKaon","fPtEta","fPtRho","fPtOmega","fPtPhi","fPtEtaPrime"}; + const char* fyname[7] = {"fYPion","fYKaon","fYEta","fYRho","fYOmega","fYPhi","fYEtaPrime"}; + const char* fnname[7] = {"fMultPion","fMultKaon","fMultEta","fMultRho","fMultOmega","fMultPhi","fMultEtaPrime"}; + const char* fdname[2] = {"fDecPion","fDecKaon"}; Double_t ptparam[7][3] = { {1,0.427,2.52}, // pions from Pythia {1,0.58,2.57}, // kaons from Pythia {1,0.641,2.62}, // eta from Pythia @@ -187,7 +187,7 @@ void AliGenMUONLMR::FinishRun(){ //----------------------------------------------------------- -Double_t AliGenMUONLMR::YDistr(Double_t *px, Double_t *par){ +Double_t AliGenMUONLMR::YDistr(const Double_t *px, const Double_t *par){ // function for rapidity distribution: plateau at par[0] + // gaussian tails centered at par[1] and with par[2]=sigma Double_t x = TMath::Abs(px[0]); @@ -202,7 +202,7 @@ Double_t AliGenMUONLMR::YDistr(Double_t *px, Double_t *par){ //----------------------------------------------------------- -Double_t AliGenMUONLMR::PtDistr(Double_t *px, Double_t *par){ +Double_t AliGenMUONLMR::PtDistr(const Double_t *px, const Double_t *par){ // pt distribution: power law Double_t x = px[0]; Double_t func = par[0] * x / TMath::Power((1+(x/par[1])*(x/par[1])),par[2]); @@ -222,11 +222,14 @@ void AliGenMUONLMR::Generate() { Int_t nmuons = -1, npartPushed = 0, pdgPushed[100]; Double_t polar[3]= {0,0,0}; // Polarisation of the parent particle (for GEANT tracking) Double_t origin0[3]; // Origin of the generated parent particle (for GEANT tracking) + Double_t time0; // Time0 of the generated parent particle // Calculating vertex position per event for (Int_t j=0;j<3;j++) origin0[j]=fOrigin[j]; + time0 = fTimeOrigin; if(fVertexSmear==kPerEvent) { Vertex(); for (Int_t j=0;j<3;j++) origin0[j]=fVertex[j]; + time0 = fTime; } printf ("In Generate()\n"); @@ -338,7 +341,7 @@ void AliGenMUONLMR::Generate() { if (TMath::Abs(pdgPushed[ipart]) != 13) { // particle is not a muon, hence it's a mother PushTrack(0,-1,pdgPushed[ipart], pxPushed[ipart],pyPushed[ipart],pzPushed[ipart],ePushed[ipart], - origin0[0],origin0[1],origin0[2],0., + origin0[0],origin0[1],origin0[2],time0, polar[0],polar[1],polar[2], kPPrimary,ntmother,1,11); KeepTrack(ntmother); @@ -346,7 +349,7 @@ void AliGenMUONLMR::Generate() { else { PushTrack(1,ntmother,pdgPushed[ipart], pxPushed[ipart],pyPushed[ipart],pzPushed[ipart],ePushed[ipart], - origin0[0],origin0[1],origin0[2],0., + origin0[0],origin0[1],origin0[2],time0, polar[0],polar[1],polar[2], kPDecay,ntchild,1,1); KeepTrack(ntchild); @@ -355,13 +358,14 @@ void AliGenMUONLMR::Generate() { SetHighWaterMark(ntchild); AliGenEventHeader* header = new AliGenEventHeader("LMR"); header->SetPrimaryVertex(fVertex); + header->SetInteractionTime(fTime); header->SetNProduced(fNprimaries); AddHeader(header); } //------------------------------------------------------------------ -void AliGenMUONLMR::Decay2Body(TParticle *mother){ +void AliGenMUONLMR::Decay2Body(const TParticle *mother){ // performs decay in two muons of the low mass resonances Double_t md1 = fMu[0]->GetMass(); Int_t pdg = mother->GetPdgCode(); @@ -453,7 +457,7 @@ void AliGenMUONLMR::DecayPiK(TParticle *mother, Bool_t &hasDecayed){ //------------------------------------------------------------------- -void AliGenMUONLMR::DalitzDecay(TParticle *mother){ +void AliGenMUONLMR::DalitzDecay(const TParticle *mother){ // // perform dalitz decays of eta, omega and etaprime // @@ -644,7 +648,7 @@ Double_t AliGenMUONLMR::FormFactor(Double_t q2, Int_t decay){ //____________________________________________________________ -Double_t AliGenMUONLMR::RhoLineShapeNew(Double_t *x, Double_t* /*para*/){ +Double_t AliGenMUONLMR::RhoLineShapeNew(const Double_t *x, const Double_t* /*para*/){ //new parameterization implemented by Hiroyuki Sako (GSI) Double_t mass = *x; double r, GammaTot;