]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenMUONLMR.cxx
Transition PWG3/base -> PWGDQ/base
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONLMR.cxx
index 49ddb976b9979a47f546c62ec735b73f677a1ba5..602991a8ee4bff966f2c0a1d31d095a8cf1cd848 100644 (file)
@@ -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;