Don't delete data member from AliGenCocktail. (G. Martinez)
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONCocktail.cxx
index 028a25c54f629c3c24c7403559d99efa0ee5c3ab..e988606466c0426bc9a2a8d95317503d5ce070d7 100644 (file)
 
 /* $Id$ */
 
+//
 // Classe to create the MUON coktail for physics in the Alice muon spectrometer
-// Gines Martinez, jan 2004, Nantes martinez@in2p3.fr
+// The followoing muons sources are included in this cocktail: 
+//     jpsi, upsilon, non-correlated open and beauty, and muons from pion and kaons.
+// The free parameeters are :
+//      pp reaction cross-section
+//      production cross-sections in pp collisions and 
+//      branching ratios in the muon channel
+// Hard probes are supposed to scale with Ncoll and hadronic production with (0.8Ncoll+0.2*Npart)
+// There is a primordial trigger wiche requires :
+//      a minimum muon multiplicity above a pT cut in a theta acceptance cone
+//
+// Gines Martinez, jan 2004, Nantes  martinez@in2p3.fr
 
 
 //
 
-#include <TList.h>
+//#include <TList.h>
 #include <TObjArray.h>
 #include <TF1.h>
 #include <TParticle.h>
@@ -72,7 +83,6 @@ AliGenMUONCocktail::AliGenMUONCocktail(const AliGenMUONCocktail & cocktail):
 AliGenMUONCocktail::~AliGenMUONCocktail()
 {
 // Destructor
-    delete fEntries;
 }
 
 //_________________________________________________________________________
@@ -89,135 +99,202 @@ void AliGenMUONCocktail::Init()
   Float_t phiMax = fPhiMax*180./TMath::Pi();
   printf(">>> Kinematical range pT:%f:%f  y:%f:%f Phi:%f:%f\n",ptMin,ptMax,yMin,yMax,phiMin,phiMax);
 
-  Float_t sigma_reaction =   0.072;   // MINB pp at LHC energies 72 mb
-  
+  Float_t sigmaReaction =   0.072;   // MINB pp at LHC energies 72 mb
+
   // Generating J/Psi Physics
-  AliGenParam * gen_jpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "Vogt", "Jpsi");
+  AliGenParam * genjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "Vogt", "Jpsi");
+  // 4pi Generation 
+  genjpsi->SetPtRange(0,100.);
+  genjpsi->SetYRange(-8.,8);
+  genjpsi->SetPhiRange(0.,360.);
+  genjpsi->SetForceDecay(kDiMuon);
+  genjpsi->SetTrackingFlag(1);
+  // Calculation of the paritcle multiplicity per event in the muonic channel
+  Float_t ratiojpsi; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmajpsi     = 31.0e-6 * 0.437;   //   section "6.7 Quarkonia Production" table 6.5 for pp  times shadowing
+  Float_t brjpsi        = 0.0588;           // Branching Ratio for JPsi
+  genjpsi->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratiojpsi = sigmajpsi * brjpsi * fNumberOfCollisions / sigmaReaction * genjpsi->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  printf(">>> ratio jpsi %g et %g Ncol %g sigma %g\n",ratiojpsi,genjpsi->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax),fNumberOfCollisions, sigmajpsi );
+  // Generation in the kinematical limits of AliGenMUONCocktail
+  genjpsi->SetPtRange(ptMin, ptMax);  
+  genjpsi->SetYRange(yMin, yMax);
+  genjpsi->SetPhiRange(phiMin, phiMax);
+  genjpsi->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+  // Adding Generator 
+  AddGenerator(genjpsi, "Jpsi", ratiojpsi);
+  fTotalRate+=ratiojpsi;
+
+ // Generating Psi prime Physics
+  AliGenParam * genpsiP = new AliGenParam(1, AliGenMUONlib::kPsiP, "Vogt", "PsiP");
   // 4pi Generation 
-  gen_jpsi->SetPtRange(0,100.);
-  gen_jpsi->SetYRange(-8.,8);
-  gen_jpsi->SetPhiRange(0.,360.);
-  gen_jpsi->SetForceDecay(kDiMuon);
-  gen_jpsi->SetTrackingFlag(1);
+  genpsiP->SetPtRange(0,100.);
+  genpsiP->SetYRange(-8.,8);
+  genpsiP->SetPhiRange(0.,360.);
+  genpsiP->SetForceDecay(kDiMuon);
+  genpsiP->SetTrackingFlag(1);
   // Calculation of the paritcle multiplicity per event in the muonic channel
-  Float_t ratio_jpsi; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
-  Float_t sigma_jpsi     = 31.0e-6 * 0.437;   //   section "6.7 Quarkonia Production" table 6.5 for pp  times shadowing
-  Float_t br_jpsi        = 0.0588;           // Branching Ratio for JPsi
-  gen_jpsi->Init();  // Generating pT and Y parametrsation for the 4pi
-  ratio_jpsi = sigma_jpsi * br_jpsi * fNumberOfCollisions / sigma_reaction * gen_jpsi->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
-  printf(">>> ratio jpsi %g et %g Ncol %g sigma %g\n",ratio_jpsi,gen_jpsi->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax),fNumberOfCollisions, sigma_jpsi );
+  Float_t ratiopsiP; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmapsiP     = 4.68e-6 * 0.437;   //   section "6.7 Quarkonia Production" table 6.5 for pp  times shadowing
+  Float_t brpsiP        = 0.0103;           // Branching Ratio for PsiP
+  genpsiP->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratiopsiP = sigmapsiP * brpsiP * fNumberOfCollisions / sigmaReaction * genpsiP->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  printf(">>> ratio psiP %g et %g Ncol %g sigma %g\n",ratiopsiP,genpsiP->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax),fNumberOfCollisions, sigmapsiP );
   // Generation in the kinematical limits of AliGenMUONCocktail
-  gen_jpsi->SetPtRange(ptMin, ptMax);  
-  gen_jpsi->SetYRange(yMin, yMax);
-  gen_jpsi->SetPhiRange(phiMin, phiMax);
-  gen_jpsi->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+  genpsiP->SetPtRange(ptMin, ptMax);  
+  genpsiP->SetYRange(yMin, yMax);
+  genpsiP->SetPhiRange(phiMin, phiMax);
+  genpsiP->Init(); // Generating pT and Y parametrsation in the desired kinematic range
   // Adding Generator 
-  AddGenerator(gen_jpsi, "Jpsi", ratio_jpsi);
-  fTotalRate+=ratio_jpsi;
+  AddGenerator(genpsiP, "PsiP", ratiopsiP);
+  fTotalRate+=ratiopsiP;
+
 
 // Generating Upsilon Physics
-  AliGenParam * gen_upsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, "Vogt", "Upsilon");  
-  gen_upsilon->SetPtRange(0,100.);  
-  gen_upsilon->SetYRange(-8.,8);
-  gen_upsilon->SetPhiRange(0.,360.);
-  gen_upsilon->SetForceDecay(kDiMuon);
-  gen_upsilon->SetTrackingFlag(1);
-  Float_t ratio_upsilon; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
-  Float_t sigma_upsilon     = 0.501e-6 * 0.674;   //  section "6.7 Quarkonia Production" table 6.5 for pp  times shadowing
-  Float_t br_upsilon        = 0.0248;  // Branching Ratio for Upsilon
-  gen_upsilon->Init();  // Generating pT and Y parametrsation for the 4pi
-  ratio_upsilon = sigma_upsilon * br_upsilon * fNumberOfCollisions / sigma_reaction * gen_upsilon->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
-  printf(">>> ratio upsilon %g et %g\n",ratio_upsilon, gen_upsilon->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax));
-  gen_upsilon->SetPtRange(ptMin, ptMax);  
-  gen_upsilon->SetYRange(yMin, yMax);
-  gen_upsilon->SetPhiRange(phiMin, phiMax);
-  gen_upsilon->Init(); // Generating pT and Y parametrsation in the desired kinematic range
-  AddGenerator(gen_upsilon,"Upsilon", ratio_upsilon);
-  fTotalRate+=ratio_upsilon;
+  AliGenParam * genupsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, "Vogt", "Upsilon");  
+  genupsilon->SetPtRange(0,100.);  
+  genupsilon->SetYRange(-8.,8);
+  genupsilon->SetPhiRange(0.,360.);
+  genupsilon->SetForceDecay(kDiMuon);
+  genupsilon->SetTrackingFlag(1);
+  Float_t ratioupsilon; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmaupsilon     = 0.501e-6 * 0.674;   //  section "6.7 Quarkonia Production" table 6.5 for pp  times shadowing
+  Float_t brupsilon        = 0.0248;  // Branching Ratio for Upsilon
+  genupsilon->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratioupsilon = sigmaupsilon * brupsilon * fNumberOfCollisions / sigmaReaction * genupsilon->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  printf(">>> ratio upsilon %g et %g\n",ratioupsilon, genupsilon->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax));
+  genupsilon->SetPtRange(ptMin, ptMax);  
+  genupsilon->SetYRange(yMin, yMax);
+  genupsilon->SetPhiRange(phiMin, phiMax);
+  genupsilon->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+  AddGenerator(genupsilon,"Upsilon", ratioupsilon);
+  fTotalRate+=ratioupsilon;
+
+// Generating UpsilonP Physics
+  AliGenParam * genupsilonP = new AliGenParam(1, AliGenMUONlib::kUpsilonP, "Vogt", "UpsilonP");  
+  genupsilonP->SetPtRange(0,100.);  
+  genupsilonP->SetYRange(-8.,8);
+  genupsilonP->SetPhiRange(0.,360.);
+  genupsilonP->SetForceDecay(kDiMuon);
+  genupsilonP->SetTrackingFlag(1);
+  Float_t ratioupsilonP; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmaupsilonP     = 0.246e-6 * 0.674;   //  section "6.7 Quarkonia Production" table 6.5 for pp  times shadowing
+  Float_t brupsilonP        = 0.0131;  // Branching Ratio for UpsilonP
+  genupsilonP->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratioupsilonP = sigmaupsilonP * brupsilonP * fNumberOfCollisions / sigmaReaction * genupsilonP->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  printf(">>> ratio upsilonP %g et %g\n",ratioupsilonP, genupsilonP->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax));
+  genupsilonP->SetPtRange(ptMin, ptMax);  
+  genupsilonP->SetYRange(yMin, yMax);
+  genupsilonP->SetPhiRange(phiMin, phiMax);
+  genupsilonP->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+  AddGenerator(genupsilonP,"UpsilonP", ratioupsilonP);
+  fTotalRate+=ratioupsilonP;
+
+
+// Generating UpsilonPP Physics
+  AliGenParam * genupsilonPP = new AliGenParam(1, AliGenMUONlib::kUpsilonPP, "Vogt", "UpsilonPP");  
+  genupsilonPP->SetPtRange(0,100.);  
+  genupsilonPP->SetYRange(-8.,8);
+  genupsilonPP->SetPhiRange(0.,360.);
+  genupsilonPP->SetForceDecay(kDiMuon);
+  genupsilonPP->SetTrackingFlag(1);
+  Float_t ratioupsilonPP; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmaupsilonPP     = 0.100e-6 * 0.674;   //  section "6.7 Quarkonia Production" table 6.5 for pp  times shadowing
+  Float_t brupsilonPP        = 0.0181;  // Branching Ratio for UpsilonPP
+  genupsilonPP->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratioupsilonPP = sigmaupsilonPP * brupsilonPP * fNumberOfCollisions / sigmaReaction * genupsilonPP->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  printf(">>> ratio upsilonPP %g et %g\n",ratioupsilonPP, genupsilonPP->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax));
+  genupsilonPP->SetPtRange(ptMin, ptMax);  
+  genupsilonPP->SetYRange(yMin, yMax);
+  genupsilonPP->SetPhiRange(phiMin, phiMax);
+  genupsilonPP->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+  AddGenerator(genupsilonPP,"UpsilonPP", ratioupsilonPP);
+  fTotalRate+=ratioupsilonPP;
+
 
 // Generating Charm Physics 
-  AliGenParam * gen_charm = new AliGenParam(1, AliGenMUONlib::kCharm, "Vogt", "Charm");  
-  gen_charm->SetPtRange(0,100.);  
-  gen_charm->SetYRange(-8.,8);
-  gen_charm->SetPhiRange(0.,360.);
-  gen_charm->SetForceDecay(kSemiMuonic);
-  gen_charm->SetTrackingFlag(1);
-  Float_t ratio_charm; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
-  Float_t sigma_charm     = 2. * 6.64e-3 * 0.65 ;   // 
-  Float_t br_charm        = 0.12;  // Branching Ratio for Charm
-  gen_charm->Init();  // Generating pT and Y parametrsation for the 4pi
-  ratio_charm = sigma_charm * br_charm * fNumberOfCollisions / sigma_reaction * 
-    gen_charm->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
-  gen_charm->SetPtRange(ptMin, ptMax);  
-  gen_charm->SetYRange(yMin, yMax);
-  gen_charm->SetPhiRange(phiMin, phiMax);
-  gen_charm->Init(); // Generating pT and Y parametrsation in the desired kinematic range
-
-  printf(">>> ratio charm %f\n",ratio_charm);
-  AddGenerator(gen_charm,"Charm", ratio_charm);
-  fTotalRate+=ratio_charm;
+  AliGenParam * gencharm = new AliGenParam(1, AliGenMUONlib::kCharm, "Vogt", "Charm");  
+  gencharm->SetPtRange(0,100.);  
+  gencharm->SetYRange(-8.,8);
+  gencharm->SetPhiRange(0.,360.);
+  gencharm->SetForceDecay(kSemiMuonic);
+  gencharm->SetTrackingFlag(1);
+  Float_t ratiocharm; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmacharm     = 2. * 6.64e-3 * 0.65 ;   // 
+  Float_t brcharm        = 0.12;  // Branching Ratio for Charm
+  gencharm->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratiocharm = sigmacharm * brcharm * fNumberOfCollisions / sigmaReaction * 
+    gencharm->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  gencharm->SetPtRange(ptMin, ptMax);  
+  gencharm->SetYRange(yMin, yMax);
+  gencharm->SetPhiRange(phiMin, phiMax);
+  gencharm->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+
+  printf(">>> ratio charm %f\n",ratiocharm);
+  AddGenerator(gencharm,"Charm", ratiocharm);
+  fTotalRate+=ratiocharm;
 
 // Generating Beauty Physics "Correlated Pairs"
-  AliGenParam * gen_beauty = new AliGenParam(2, AliGenMUONlib::kBeauty, "Vogt", "Beauty");  
-  gen_beauty->SetPtRange(0,100.);  
-  gen_beauty->SetYRange(-8.,8);
-  gen_beauty->SetPhiRange(0.,360.);
-  gen_beauty->SetForceDecay(kSemiMuonic);
-  gen_beauty->SetTrackingFlag(1);
-  Float_t ratio_beauty; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
-  Float_t sigma_beauty     = 2. * 0.210e-3 * 0.84;   // 
-  Float_t br_beauty        = 0.15;  // Branching Ratio for Beauty
-  gen_beauty->Init();  // Generating pT and Y parametrsation for the 4pi
-  ratio_beauty = sigma_beauty * br_beauty * fNumberOfCollisions / sigma_reaction * 
-    gen_beauty->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
-  gen_beauty->SetPtRange(ptMin, ptMax);  
-  gen_beauty->SetYRange(yMin, yMax);
-  gen_beauty->SetPhiRange(phiMin, phiMax);
-  gen_beauty->Init(); // Generating pT and Y parametrisation in the desired kinematic range
-
-  printf(">>> ratio beauty %f\n",ratio_beauty);
-  AddGenerator(gen_beauty,"Beauty", ratio_beauty);
-  fTotalRate+=ratio_beauty;
+  AliGenParam * genbeauty = new AliGenParam(2, AliGenMUONlib::kBeauty, "Vogt", "Beauty");  
+  genbeauty->SetPtRange(0,100.);  
+  genbeauty->SetYRange(-8.,8);
+  genbeauty->SetPhiRange(0.,360.);
+  genbeauty->SetForceDecay(kSemiMuonic);
+  genbeauty->SetTrackingFlag(1);
+  Float_t ratiobeauty; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmabeauty     = 2. * 0.210e-3 * 0.84;   // 
+  Float_t brbeauty        = 0.15;  // Branching Ratio for Beauty
+  genbeauty->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratiobeauty = sigmabeauty * brbeauty * fNumberOfCollisions / sigmaReaction * 
+    genbeauty->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  genbeauty->SetPtRange(ptMin, ptMax);  
+  genbeauty->SetYRange(yMin, yMax);
+  genbeauty->SetPhiRange(phiMin, phiMax);
+  genbeauty->Init(); // Generating pT and Y parametrisation in the desired kinematic range
+
+  printf(">>> ratio beauty %f\n",ratiobeauty);
+  AddGenerator(genbeauty,"Beauty", ratiobeauty);
+  fTotalRate+=ratiobeauty;
 
 // Generating Pion Physics
-  AliGenParam * gen_pion = new AliGenParam(1, AliGenMUONlib::kPion, "Vogt", "Pion");  
-  gen_pion->SetPtRange(0,100.);  
-  gen_pion->SetYRange(-8.,8);
-  gen_pion->SetPhiRange(0.,360.);
-  gen_pion->SetForceDecay(kPiToMu);
-  gen_pion->SetTrackingFlag(1);
-  Float_t ratio_pion; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
-  Float_t sigma_pion     = 1.6e-2;   // A ojo TO be studied in detail.  
-  Float_t br_pion        = 0.9999;  // Branching Ratio for Pion 
-  gen_pion->Init();  // Generating pT and Y parametrsation for the 4pi
-  ratio_pion = sigma_pion * br_pion * fNumberOfParticipants / sigma_reaction * gen_pion->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
-  gen_pion->SetPtRange(ptMin, ptMax);  
-  gen_pion->SetYRange(yMin, yMax);
-  gen_pion->SetPhiRange(phiMin, phiMax);
-  gen_pion->Init(); // Generating pT and Y parametrsation in the desired kinematic range
-  printf(">>> ratio pion %f\n",ratio_pion);
-  AddGenerator(gen_pion,"Pion", ratio_pion);
-  fTotalRate+=ratio_pion;
+  AliGenParam * genpion = new AliGenParam(1, AliGenMUONlib::kPion, "Vogt", "Pion");  
+  genpion->SetPtRange(0,100.);  
+  genpion->SetYRange(-8.,8);
+  genpion->SetPhiRange(0.,360.);
+  genpion->SetForceDecay(kPiToMu);
+  genpion->SetTrackingFlag(1);
+  Float_t ratiopion; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmapion     = 0.93e-2; // Valerie presentation Clermont-16-jan-2004 and Alice-int-2002-06
+  Float_t brpion        = 0.9999;  // Branching Ratio for Pion 
+  genpion->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratiopion = sigmapion * brpion *  (0.80*fNumberOfParticipants+0.2*fNumberOfCollisions) / sigmaReaction * genpion->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  genpion->SetPtRange(ptMin, ptMax);  
+  genpion->SetYRange(yMin, yMax);
+  genpion->SetPhiRange(phiMin, phiMax);
+  genpion->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+  printf(">>> ratio pion %f\n",ratiopion);
+  AddGenerator(genpion,"Pion", ratiopion);
+  fTotalRate+=ratiopion;
 
 // Generating Kaon Physics
-  AliGenParam * gen_kaon = new AliGenParam(1, AliGenMUONlib::kKaon, "Vogt", "Kaon");  
-  gen_kaon->SetPtRange(0,100.);  
-  gen_kaon->SetYRange(-8.,8);
-  gen_kaon->SetPhiRange(0.,360.);
-  gen_kaon->SetForceDecay(kKaToMu);
-  gen_kaon->SetTrackingFlag(1);
-  Float_t ratio_kaon; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
-  Float_t sigma_kaon     = 1.8e-4;   // OJO 
-  Float_t br_kaon        = 0.6351 ;  // Branching Ratio for Kaon 
-  gen_kaon->Init();  // Generating pT and Y parametrsation for the 4pi
-  ratio_kaon = sigma_kaon * br_kaon * fNumberOfParticipants/ sigma_reaction * gen_kaon->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
-  gen_kaon->SetPtRange(ptMin, ptMax);  
-  gen_kaon->SetYRange(yMin, yMax);
-  gen_kaon->SetPhiRange(phiMin, phiMax);
-  gen_kaon->Init(); // Generating pT and Y parametrsation in the desired kinematic range
-  printf(">>> ratio kaon %f\n",ratio_kaon);
-  AddGenerator(gen_kaon,"Kaon", ratio_kaon);
-  fTotalRate+=ratio_kaon;
+  AliGenParam * genkaon = new AliGenParam(1, AliGenMUONlib::kKaon, "Vogt", "Kaon");  
+  genkaon->SetPtRange(0,100.);  
+  genkaon->SetYRange(-8.,8);
+  genkaon->SetPhiRange(0.,360.);
+  genkaon->SetForceDecay(kKaToMu);
+  genkaon->SetTrackingFlag(1);
+  Float_t ratiokaon; // Ratio with respect to the reaction cross-section for the muonic channel in the kinematics limit of the MUONCocktail
+  Float_t sigmakaon     = 1.23e-4;   // Valerie presentation Clermont-16-jan-2004 and Alice-int-2002-06 
+  Float_t brkaon        = 0.6351 ;  // Branching Ratio for Kaon 
+  genkaon->Init();  // Generating pT and Y parametrsation for the 4pi
+  ratiokaon = sigmakaon * brkaon * (0.80*fNumberOfParticipants+0.2*fNumberOfCollisions)/ sigmaReaction * genkaon->GetRelativeArea(ptMin,ptMax,yMin,yMax,phiMin,phiMax);
+  genkaon->SetPtRange(ptMin, ptMax);  
+  genkaon->SetYRange(yMin, yMax);
+  genkaon->SetPhiRange(phiMin, phiMax);
+  genkaon->Init(); // Generating pT and Y parametrsation in the desired kinematic range
+  printf(">>> ratio kaon %f\n",ratiokaon);
+  AddGenerator(genkaon,"Kaon", ratiokaon);
+  fTotalRate+=ratiokaon;
 }
 
 //_________________________________________________________________________
@@ -236,9 +313,9 @@ void AliGenMUONCocktail::Generate()
 //  Generate the vertex position used by all generators
 //    
     if(fVertexSmear == kPerEvent) Vertex();
-    Bool_t PrimordialTrigger = kFALSE;
+    Bool_t primordialTrigger = kFALSE;
 
-    while(!PrimordialTrigger) {
+    while(!primordialTrigger) {
 
       //Reseting stack
       AliRunLoader * runloader = gAlice->GetRunLoader();
@@ -281,7 +358,7 @@ void AliGenMUONCocktail::Generate()
        }
       }
       //  printf(">>> Number of Muons is %d \n", numberOfMuons);
-      if (numberOfMuons >= fMuonMultiplicity ) PrimordialTrigger = kTRUE;
+      if (numberOfMuons >= fMuonMultiplicity ) primordialTrigger = kTRUE;
     }
     //printf(">>> Trigger Accepted!!! \n");
     fNSucceded++;