Resonances added. (G. Martinez)
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Feb 2004 10:01:54 +0000 (10:01 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 2 Feb 2004 10:01:54 +0000 (10:01 +0000)
EVGEN/AliGenMUONCocktail.cxx
EVGEN/AliGenMUONCocktail.h
EVGEN/AliGenMUONlib.cxx
EVGEN/AliGenMUONlib.h

index 2c8b71e..4fbe764 100644 (file)
@@ -101,7 +101,7 @@ void AliGenMUONCocktail::Init()
   printf(">>> Kinematical range pT:%f:%f  y:%f:%f Phi:%f:%f\n",ptMin,ptMax,yMin,yMax,phiMin,phiMax);
 
   Float_t sigmaReaction =   0.072;   // MINB pp at LHC energies 72 mb
-  
+
   // Generating J/Psi Physics
   AliGenParam * genjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "Vogt", "Jpsi");
   // 4pi Generation 
@@ -126,6 +126,31 @@ void AliGenMUONCocktail::Init()
   AddGenerator(genjpsi, "Jpsi", ratiojpsi);
   fTotalRate+=ratiojpsi;
 
+ // Generating Psi prime Physics
+  AliGenParam * genpsiP = new AliGenParam(1, AliGenMUONlib::kPsiP, "Vogt", "PsiP");
+  // 4pi Generation 
+  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 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
+  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(genpsiP, "PsiP", ratiopsiP);
+  fTotalRate+=ratiopsiP;
+
+
 // Generating Upsilon Physics
   AliGenParam * genupsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, "Vogt", "Upsilon");  
   genupsilon->SetPtRange(0,100.);  
@@ -146,6 +171,48 @@ void AliGenMUONCocktail::Init()
   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 * gencharm = new AliGenParam(1, AliGenMUONlib::kCharm, "Vogt", "Charm");  
   gencharm->SetPtRange(0,100.);  
index cfbef3c..a658818 100644 (file)
@@ -3,6 +3,7 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
+
 /* $Id$ */
 //
 // Classe to create the MUON coktail for physics in the Alice muon spectrometer
index 5d6e5a1..6207544 100644 (file)
@@ -339,6 +339,11 @@ Int_t AliGenMUONlib::IpJpsi(TRandom *)
 // J/Psi composition
     return 443;
 }
+Int_t AliGenMUONlib::IpPsiP(TRandom *)
+{
+// Psi prime composition
+    return 100443;
+}
 Int_t AliGenMUONlib::IpJpsiFamily(TRandom *)
 {
 // J/Psi composition
@@ -353,6 +358,7 @@ Int_t AliGenMUONlib::IpJpsiFamily(TRandom *)
 }
 
 
+
 //                      Upsilon
 //
 //
@@ -500,6 +506,16 @@ Int_t AliGenMUONlib::IpUpsilon(TRandom *)
 // y composition
     return 553;
 }
+Int_t AliGenMUONlib::IpUpsilonP(TRandom *)
+{
+// y composition
+    return 100553;
+}
+Int_t AliGenMUONlib::IpUpsilonPP(TRandom *)
+{
+// y composition
+    return 200553;
+}
 Int_t AliGenMUONlib::IpUpsilonFamily(TRandom *)
 {
 // y composition
@@ -516,6 +532,7 @@ Int_t AliGenMUONlib::IpUpsilonFamily(TRandom *)
   return ip;
 }
 
+
 //
 //                        Phi
 //
@@ -704,6 +721,7 @@ GenFunc AliGenMUONlib::GetPt(Int_t param,  const char* tname) const
        func=PtEta;
        break;
     case kJpsiFamily:
+    case kPsiP:
     case kJpsi:
        if (sname == "Vogt" || sname == "Vogt PbPb") {
            func=PtJpsiPbPb;
@@ -717,6 +735,8 @@ GenFunc AliGenMUONlib::GetPt(Int_t param,  const char* tname) const
        func = PtJpsiBPbPb;
        break;
     case kUpsilonFamily:
+    case kUpsilonP:
+    case kUpsilonPP:
     case kUpsilon:
        if (sname == "Vogt" || sname == "Vogt PbPb") {
            func=PtUpsilonPbPb;
@@ -763,6 +783,7 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const
        func=YOmega;
        break;
     case kJpsiFamily:
+    case kPsiP:
     case kJpsi:
        if (sname == "Vogt" || sname == "Vogt PbPb") {
            func=YJpsiPbPb;
@@ -776,6 +797,8 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const
        func = YJpsiBPbPb;
        break;
     case kUpsilonFamily:
+    case kUpsilonP:
+    case kUpsilonPP:
     case kUpsilon:
        if (sname == "Vogt" || sname == "Vogt PbPb") {
            func=YUpsilonPbPb;
@@ -822,6 +845,9 @@ GenFuncIp AliGenMUONlib::GetIp(Int_t param,  const char* /*tname*/) const
     case kJpsiFamily:
        func=IpJpsiFamily;
        break;
+    case kPsiP:
+       func=IpPsiP;
+       break;
     case kJpsi:
     case kJpsiFromB:
        func=IpJpsi;
@@ -832,6 +858,12 @@ GenFuncIp AliGenMUONlib::GetIp(Int_t param,  const char* /*tname*/) const
     case kUpsilonFamily:
       func=IpUpsilonFamily;
       break;
+    case kUpsilonP:
+       func=IpUpsilonP;
+       break;
+    case kUpsilonPP:
+       func=IpUpsilonPP;
+       break;
     case kCharm:
        func=IpCharm;
        break;
index 668792b..50a6efe 100644 (file)
@@ -17,8 +17,8 @@ class AliGenMUONlib :
   public AliGenLib
 {
  public:
-  enum constants{kPhi, kOmega, kEta, kJpsi, kJpsiFamily, kJpsiFromB, kUpsilon, kUpsilonFamily,
-                  kCharm, kBeauty, kPion, kKaon};
+  enum constants{kPhi, kOmega, kEta, kJpsi, kJpsiFamily, kPsiP, kJpsiFromB, kUpsilon, kUpsilonFamily,
+                  kUpsilonP, kUpsilonPP, kCharm, kBeauty, kPion, kKaon};
     
     
 // pions
@@ -53,6 +53,8 @@ class AliGenMUONlib :
     static Double_t YJpsiBPbPb(Double_t *py, Double_t *dummy);
     static Int_t    IpJpsi(TRandom *ran);
     static Int_t    IpJpsiFamily(TRandom *ran);
+    static Int_t    IpPsiP(TRandom *ran);
+
 // Upsilon    
     static Double_t PtUpsilon( Double_t *px, Double_t *dummy );
     static Double_t YUpsilon(Double_t *py, Double_t *dummy);
@@ -62,6 +64,8 @@ class AliGenMUONlib :
     static Double_t YUpsilonPP(Double_t *py, Double_t *dummy);
     static Int_t    IpUpsilon(TRandom *ran);
     static Int_t    IpUpsilonFamily(TRandom *ran);
+    static Int_t    IpUpsilonP(TRandom *ran);
+    static Int_t    IpUpsilonPP(TRandom *ran);
 //
 // Charm    
     static Double_t PtCharm( Double_t *px, Double_t *dummy );