kPsiPrimeJpsiDiElectron added
[u/mrichter/AliRoot.git] / PYTHIA8 / AliDecayerPythia8.cxx
index b8c7590..2f9a437 100644 (file)
@@ -25,6 +25,8 @@
 
 ClassImp(AliDecayerPythia8)
 
+Bool_t AliDecayerPythia8::fgInit = kFALSE;
+
 AliDecayerPythia8::AliDecayerPythia8():
     TPythia8Decayer(),
     fDecay(kAll),
@@ -33,6 +35,48 @@ AliDecayerPythia8::AliDecayerPythia8():
     // Constructor
 }
 
+void AliDecayerPythia8::Init()
+{
+// Initialisation
+//
+    if (!fgInit) {
+       fgInit = kTRUE;
+       // fPythia->SetDecayTable();
+    }
+
+// Switch on heavy flavor decays
+    
+    Int_t j;
+    Int_t heavy[14] = {411, 421, 431, 4122, 4132, 4232, 4332, 511, 521, 531, 5122, 5132, 5232, 5332};
+//    fPythia->ResetDecayTable();
+    for (j=0; j < 14; j++) {
+       if (fDecay == kNoDecayHeavy) {
+           TPythia8::Instance()->ReadString(Form("%d:onMode = off", heavy[j]));
+       } else {
+           TPythia8::Instance()->ReadString(Form("%d:onMode = on", heavy[j]));
+       }
+    }
+    
+
+//...Switch off decay of pi0, K0S, Lambda, Sigma+-, Xi0-, Omega-.
+    
+    if (fDecay != kNeutralPion) {
+       TPythia8::Instance()->ReadString("111:onMode = off");
+    } else {
+       TPythia8::Instance()->ReadString("111:onMode = on");
+    }
+
+    TPythia8::Instance()->ReadString("310:onMode = off");
+    TPythia8::Instance()->ReadString("3112:onMode = off");
+    TPythia8::Instance()->ReadString("3212:onMode = off");
+    TPythia8::Instance()->ReadString("3222:onMode = off");
+    TPythia8::Instance()->ReadString("3312:onMode = off");
+    TPythia8::Instance()->ReadString("3322:onMode = off");
+    TPythia8::Instance()->ReadString("3334:onMode = off");
+// .. Force decay channels
+    ForceDecay();
+}
+
 void AliDecayerPythia8::ForceDecay()
 {
 // 
@@ -50,52 +94,52 @@ void AliDecayerPythia8::ForceDecay()
     switch (decay) 
     {
     case kHardMuons:
-
+//     B0 -> mu X 
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 13 443 100443");
-
+//     B+/- -> mu X 
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 13 443 100443");
-
+//     Bs -> mu X 
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 13 443 100443");
-
+//     Lambda_b -> mu X 
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 13 443 100443");
-
+//      Sigma_b- -> mu X 
        TPythia8::Instance()->ReadString("5132:onMode = off");
        TPythia8::Instance()->ReadString("5132:onIfAny = 13 443 100443");
-
+//      Sigma_b0 -> mu X
        TPythia8::Instance()->ReadString("5232:onMode = off");
        TPythia8::Instance()->ReadString("5232:onIfAny = 13 443 100443");
-
+//      Omega_b  -> mu X
        TPythia8::Instance()->ReadString("5332:onMode = off");
        TPythia8::Instance()->ReadString("5332:onIfAny = 13 443 100443");
-
+//      Psi' -> mu+ mu-
        TPythia8::Instance()->ReadString("100443:onMode = off");
        TPythia8::Instance()->ReadString("100443:onIfAny = 443");
-
+//      Psi  -> mu+ mu-
        TPythia8::Instance()->ReadString("443:onMode = off");
        TPythia8::Instance()->ReadString("443:onIfAll = 13 13");
-
+//      D+/- -> mu X
        TPythia8::Instance()->ReadString("411:onMode = off");
        TPythia8::Instance()->ReadString("411:onIfAll = 13");
-
+//      D0   -> mu X
        TPythia8::Instance()->ReadString("421:onMode = off");
        TPythia8::Instance()->ReadString("421:onIfAll = 13");
-
+//      D_s  -> mu X
        TPythia8::Instance()->ReadString("431:onMode = off");
        TPythia8::Instance()->ReadString("431:onIfAll = 13");
-
+//      Lambda_c -> mu X
        TPythia8::Instance()->ReadString("4122:onMode = off");
        TPythia8::Instance()->ReadString("4122:onIfAll = 13");
-
+//      Sigma_c  -> mu X
        TPythia8::Instance()->ReadString("4132:onMode = off");
        TPythia8::Instance()->ReadString("4132:onIfAll = 13");
-
+//      Sigma_c+ -> mu X
        TPythia8::Instance()->ReadString("4232:onMode = off");
        TPythia8::Instance()->ReadString("4232:onIfAll = 13");
-
+//      Omega_c  -> mu X
        TPythia8::Instance()->ReadString("4332:onMode = off");
        TPythia8::Instance()->ReadString("4332:onIfAll = 13");
 
@@ -124,335 +168,348 @@ void AliDecayerPythia8::ForceDecay()
        break;
 
     case kBSemiMuonic:
+//      B0 -> mu X 
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 13");
-
+//     B+/- -> mu X 
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 13");
-
+//     B_s -> mu X 
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 13");
-
+//     Lambda_b -> mu X 
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 13");
-
+//     Sigma_b -> mu X 
        TPythia8::Instance()->ReadString("5132:onMode = off");
        TPythia8::Instance()->ReadString("5132:onIfAny = 13");
-
+//     Sigma_b0 -> mu X 
        TPythia8::Instance()->ReadString("5232:onMode = off");
        TPythia8::Instance()->ReadString("5232:onIfAny = 13");
-
+//     Omega_b  -> mu X 
        TPythia8::Instance()->ReadString("5332:onMode = off");
        TPythia8::Instance()->ReadString("5332:onIfAny = 13");
        break;
     case kSemiMuonic:
+//      D+- -> mu X
        TPythia8::Instance()->ReadString("411:onMode = off");
        TPythia8::Instance()->ReadString("411:onIfAll = 13");
-
+//      D0  -> mu X
        TPythia8::Instance()->ReadString("421:onMode = off");
        TPythia8::Instance()->ReadString("421:onIfAll = 13");
-
+//      D_s  -> mu X
        TPythia8::Instance()->ReadString("431:onMode = off");
        TPythia8::Instance()->ReadString("431:onIfAll = 13");
-
+//      Lambda_c -> mu X
        TPythia8::Instance()->ReadString("4122:onMode = off");
        TPythia8::Instance()->ReadString("4122:onIfAll = 13");
-
+//      Sigma_c  -> mu X
        TPythia8::Instance()->ReadString("4132:onMode = off");
        TPythia8::Instance()->ReadString("4132:onIfAll = 13");
-
+//      Sigma  -> mu X
        TPythia8::Instance()->ReadString("4232:onMode = off");
        TPythia8::Instance()->ReadString("4232:onIfAll = 13");
-
+//      Omega_c  -> mu X
        TPythia8::Instance()->ReadString("4332:onMode = off");
        TPythia8::Instance()->ReadString("4332:onIfAll = 13");
-
+//      B0       -> mu X
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 13");
-
+//      B+/-     -> mu X
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 13");
-
+//      B_s      -> mu X
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 13");
-
+//      Lambda_c -> mu X
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 13");
-
+//      Sigma_c  -> mu X
        TPythia8::Instance()->ReadString("5132:onMode = off");
        TPythia8::Instance()->ReadString("5132:onIfAny = 13");
-
+//      Sigma_c  -> mu X
        TPythia8::Instance()->ReadString("5232:onMode = off");
        TPythia8::Instance()->ReadString("5232:onIfAny = 13");
-
+//      Omega_c  -> mu X
        TPythia8::Instance()->ReadString("5332:onMode = off");
        TPythia8::Instance()->ReadString("5332:onIfAny = 13");
 
        break;
     case kDiMuon:
-       // Rho
+//      Rho -> mu+ mu-
        TPythia8::Instance()->ReadString("113:onMode = off");
        TPythia8::Instance()->ReadString("113:onIfAll = 13 13");
-       // Eta
+//      Eta-> mu+ mu-
        TPythia8::Instance()->ReadString("221:onMode = off");
        TPythia8::Instance()->ReadString("221:onIfAll = 13 13");
-       // omega
+//      omega-> mu+ mu-
        TPythia8::Instance()->ReadString("223:onMode = off");
        TPythia8::Instance()->ReadString("223:onIfAll = 13 13");
-       // phi
+//      phi-> mu+ mu-
        TPythia8::Instance()->ReadString("333:onMode = off");
        TPythia8::Instance()->ReadString("333:onIfAll = 13 13");
-       // J/Psi
+//      J/Psi-> mu+ mu-
        TPythia8::Instance()->ReadString("443:onMode = off");
        TPythia8::Instance()->ReadString("443:onIfAll = 13 13");
-       // Psi'
+//      Psi'-> mu+ mu-
        TPythia8::Instance()->ReadString("100443:onMode = off");
        TPythia8::Instance()->ReadString("100443:onIfAll = 13 13");
-       // Ups
+//      Ups-> mu+ mu-
        TPythia8::Instance()->ReadString("553:onMode = off");
        TPythia8::Instance()->ReadString("553:onIfAll = 13 13");
-       // Ups'
+//      Ups'-> mu+ mu-
        TPythia8::Instance()->ReadString("100553:onMode = off");
-       TPythia8::Instance()->ReadString("100553:onIfAll = 13 13");
-       // Ups''
+       TPythia8::Instance()->ReadString("100553:onIfAll = 13 13"); 
+//      Ups''-> mu+ mu-
        TPythia8::Instance()->ReadString("200553:onMode = off");
        TPythia8::Instance()->ReadString("200553:onIfAll = 13 13");
        break;
     case kBSemiElectronic:
+//      B0 - > e+ e-
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 11");
-
+//      B+- -> e+ e-
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 11");
-
+//      B_s -> e+ e-
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 11");
-
+//      Lambda_b -> e+ e-
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 11");
-
+//      Sigma_b -> e+ e-
        TPythia8::Instance()->ReadString("5132:onMode = off");
        TPythia8::Instance()->ReadString("5132:onIfAny = 11");
-
+//      Sigma_b -> e+ e-
        TPythia8::Instance()->ReadString("5232:onMode = off");
        TPythia8::Instance()->ReadString("5232:onIfAny = 11");
-
+//      Omega_b ->e+ e-
        TPythia8::Instance()->ReadString("5332:onMode = off");
        TPythia8::Instance()->ReadString("5332:onIfAny = 11");
        break;
     case kSemiElectronic:
+//      D+/- -> e X
        TPythia8::Instance()->ReadString("411:onMode = off");
        TPythia8::Instance()->ReadString("411:onIfAll = 11");
-
+//      D0 -> e X
        TPythia8::Instance()->ReadString("421:onMode = off");
        TPythia8::Instance()->ReadString("421:onIfAll = 11");
-
+//      D_s ->e X
        TPythia8::Instance()->ReadString("431:onMode = off");
        TPythia8::Instance()->ReadString("431:onIfAll = 11");
-
+//      Lambda_c -> e X
        TPythia8::Instance()->ReadString("4122:onMode = off");
        TPythia8::Instance()->ReadString("4122:onIfAll = 11");
-
+//      Sigma_c -> e X
        TPythia8::Instance()->ReadString("4132:onMode = off");
        TPythia8::Instance()->ReadString("4132:onIfAll = 11");
-
+//      Sigma_c -> e X
        TPythia8::Instance()->ReadString("4232:onMode = off");
        TPythia8::Instance()->ReadString("4232:onIfAll = 11");
-
+//      Omega_c -> e X
        TPythia8::Instance()->ReadString("4332:onMode = off");
        TPythia8::Instance()->ReadString("4332:onIfAll = 11");
-
+//      B0 -> e X
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 11");
-
+//      B+/- -> e X
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 11");
-
+//      B_s -> e X
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 11");
-
+//      Lambda_b -> e X
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 11");
-
+//      Sigma_b -> e X
        TPythia8::Instance()->ReadString("5132:onMode = off");
        TPythia8::Instance()->ReadString("5132:onIfAny = 11");
-
+//      Sigma_b -> e X
        TPythia8::Instance()->ReadString("5232:onMode = off");
        TPythia8::Instance()->ReadString("5232:onIfAny = 11");
-
+//      Omega_b -> e X
        TPythia8::Instance()->ReadString("5332:onMode = off");
        TPythia8::Instance()->ReadString("5332:onIfAny = 11");
        break;
     case kDiElectron:
-       // Rho
+//      Rho -> e+e-
        TPythia8::Instance()->ReadString("113:onMode = off");
        TPythia8::Instance()->ReadString("113:onIfAll = 11 11");
-       // Eta
+//      Eta -> e+e-
        TPythia8::Instance()->ReadString("221:onMode = off");
        TPythia8::Instance()->ReadString("221:onIfAll = 11 11");
-       // omega
+//      omega -> e+e-
        TPythia8::Instance()->ReadString("223:onMode = off");
        TPythia8::Instance()->ReadString("223:onIfAll = 11 11");
-       // phi
+//      phi -> e+e-
        TPythia8::Instance()->ReadString("333:onMode = off");
        TPythia8::Instance()->ReadString("333:onIfAll = 11 11");
-       // J/Psi
+//      J/Psi -> e+e-
        TPythia8::Instance()->ReadString("443:onMode = off");
        TPythia8::Instance()->ReadString("443:onIfAll = 11 11");
-       // Psi'
+//      Psi' -> e+e-
        TPythia8::Instance()->ReadString("100443:onMode = off");
        TPythia8::Instance()->ReadString("100443:onIfAll = 11 11");
-       // Ups
+//      Ups -> e+e-
        TPythia8::Instance()->ReadString("553:onMode = off");
        TPythia8::Instance()->ReadString("553:onIfAll = 11 11");
-       // Ups'
+//      Ups' -> e+e-
        TPythia8::Instance()->ReadString("100553:onMode = off");
        TPythia8::Instance()->ReadString("100553:onIfAll = 11 11");
-       // Ups''
+//      Ups'' -> e+e-
        TPythia8::Instance()->ReadString("200553:onMode = off");
        TPythia8::Instance()->ReadString("200553:onIfAll = 11 11");
        break;
     case kBJpsiDiMuon:
-// B0   -> J/Psi (Psi') X   
+//      B0   -> J/Psi (Psi') X   
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 443 100443");
-// B+/-   -> J/Psi (Psi') X   
+//      B+/-   -> J/Psi (Psi') X   
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 443 100443");
-// B_s   -> J/Psi (Psi') X   
+//      B_s   -> J/Psi (Psi') X   
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 443 100443");
-// Lambda_b -> J/Psi (Psi') X   
+//      Lambda_b -> J/Psi (Psi') X   
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 443 100443");
 //
-       // J/Psi
+//      J/Psi -> mu+ mu-
        TPythia8::Instance()->ReadString("443:onMode = off");
        TPythia8::Instance()->ReadString("443:onIfAll = 13 13");
-       // Psi'
+//      Psi' -> mu+ mu-
        TPythia8::Instance()->ReadString("100443:onMode = off");
        TPythia8::Instance()->ReadString("100443:onIfAll = 13 13");
        break;
     case kBPsiPrimeDiMuon:
-// B0   -> Psi' X   
+//      B0   -> Psi' X   
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 100443");
-// B+/-   -> Psi' X   
+//      B+/-   -> Psi' X   
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 100443");
-// B_s   -> Psi'  X   
+//      B_s   -> Psi'  X   
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 100443");
-// Lambda_b -> Psi' X   
+//      Lambda_b -> Psi' X   
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 100443");
 //
-       // Psi' -> mu+ mu-
+//      Psi' -> mu+ mu-
        TPythia8::Instance()->ReadString("100443:onMode = off");
        TPythia8::Instance()->ReadString("100443:onIfAll = 13 13");
        break;
     case kBJpsiDiElectron:
-// B0   -> Psi X   
+//      B0   -> Psi X   
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 443");
-// B+/-   -> Psi X   
+//      B+/-   -> Psi X   
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 443");
-// B_s   -> Psi  X   
+//      B_s   -> Psi  X   
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 443");
-// Lambda_b -> Psi X   
+//      Lambda_b -> Psi X   
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 443");
 //
-       // Psi -> mu+ mu-
+//      Psi -> mu+ mu-
        TPythia8::Instance()->ReadString("443:onMode = off");
        TPythia8::Instance()->ReadString("443:onIfAll = 11 11");
 
        break;
     case kBJpsi:
-// B0   -> Psi X   
+//      B0   -> Psi X   
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 443");
-// B+/-   -> Psi X   
+//      B+/-   -> Psi X   
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 443");
-// B_s   -> Psi  X   
+//      B_s   -> Psi  X   
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 443");
-// Lambda_b -> Psi X   
+//      Lambda_b -> Psi X   
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 443");
        break;
     case kBPsiPrimeDiElectron:
-// B0   -> Psi' X   
+//      B0   -> Psi' X   
        TPythia8::Instance()->ReadString("511:onMode = off");
        TPythia8::Instance()->ReadString("511:onIfAny = 100443");
-// B+/-   -> Psi' X   
+//      B+/-   -> Psi' X   
        TPythia8::Instance()->ReadString("521:onMode = off");
        TPythia8::Instance()->ReadString("521:onIfAny = 100443");
-// B_s   -> Psi'  X   
+//      B_s   -> Psi'  X   
        TPythia8::Instance()->ReadString("531:onMode = off");
        TPythia8::Instance()->ReadString("531:onIfAny = 100443");
-// Lambda_b -> Psi' X   
+//      Lambda_b -> Psi' X   
        TPythia8::Instance()->ReadString("5122:onMode = off");
        TPythia8::Instance()->ReadString("5122:onIfAny = 100443");
 //
-       // Psi' -> mu+ mu-
+//      Psi' -> mu+ mu-
        TPythia8::Instance()->ReadString("100443:onMode = off");
        TPythia8::Instance()->ReadString("100443:onIfAll = 11 11");
        break;
     case kPiToMu:
+//      pi -> mu nu
        TPythia8::Instance()->ReadString("211:onMode = off");
        TPythia8::Instance()->ReadString("211:onIfAny = 13");
        break;
     case kKaToMu:
+//      K -> mu nu
        TPythia8::Instance()->ReadString("321:onMode = off");
        TPythia8::Instance()->ReadString("321:onIfAny = 13");
        break;
     case kAllMuonic:
+//      pi/K -> mu
        TPythia8::Instance()->ReadString("211:onMode = off");
        TPythia8::Instance()->ReadString("211:onIfAny = 13");
        TPythia8::Instance()->ReadString("321:onMode = off");
        TPythia8::Instance()->ReadString("321:onIfAny = 13");
        break;
     case kWToMuon:
+//      W -> mu X
        TPythia8::Instance()->ReadString("24:onMode = off");
        TPythia8::Instance()->ReadString("24:onIfAny = 13");
        break;
     case kWToCharm:
+//      W -> c X
        TPythia8::Instance()->ReadString("24:onMode = off");
        TPythia8::Instance()->ReadString("24:onIfAny = 4");
        break;
     case kWToCharmToMuon:
+//      W -> c X
        TPythia8::Instance()->ReadString("24:onMode = off");
        TPythia8::Instance()->ReadString("24:onIfAny = 4");
+//      D+- -> mu X
        TPythia8::Instance()->ReadString("411:onMode = off");
        TPythia8::Instance()->ReadString("411:onIfAll = 13");
-
+//      D0 -> mu X
        TPythia8::Instance()->ReadString("421:onMode = off");
        TPythia8::Instance()->ReadString("421:onIfAll = 13");
-
+//      D_s -> mu X
        TPythia8::Instance()->ReadString("431:onMode = off");
        TPythia8::Instance()->ReadString("431:onIfAll = 13");
-
+//      Lambda_c -> mu X
        TPythia8::Instance()->ReadString("4122:onMode = off");
        TPythia8::Instance()->ReadString("4122:onIfAll = 13");
-
+//      Sigma_c -> mu X
        TPythia8::Instance()->ReadString("4132:onMode = off");
        TPythia8::Instance()->ReadString("4132:onIfAll = 13");
-
+//      Sigma_c -> mu X
        TPythia8::Instance()->ReadString("4232:onMode = off");
        TPythia8::Instance()->ReadString("4232:onIfAll = 13");
-
+//      Omega_c -> mu X
        TPythia8::Instance()->ReadString("4332:onMode = off");
        TPythia8::Instance()->ReadString("4332:onIfAll = 13");
        break;
     case kZDiMuon:
+//      Z -> mu+ mu-
        TPythia8::Instance()->ReadString("23:onMode = off");
        TPythia8::Instance()->ReadString("23:onIfAll = 13 13");
        break;
     case kZDiElectron:
+//      Z -> e+ e-
        TPythia8::Instance()->ReadString("23:onMode = off");
        TPythia8::Instance()->ReadString("23:onIfAll = 11 11");
        break;
@@ -463,19 +520,27 @@ void AliDecayerPythia8::ForceDecay()
        ForceHadronicD(0);
        break;
     case kPhiKK:
+       // Phi-> K+ K-
        TPythia8::Instance()->ReadString("333:onMode = off");
        TPythia8::Instance()->ReadString("333:onIfAll = 321 321");
        break;
     case kOmega:
+       // Omega -> Lambda K
        TPythia8::Instance()->ReadString("3334:onMode = off");
        TPythia8::Instance()->ReadString("3334:onIfAll = 3122 321 ");
+    case kLambda:
+       // Lambda -> p pi-
+       TPythia8::Instance()->ReadString("3122:onMode = off");
+       TPythia8::Instance()->ReadString("3122:onIfAll = 2212 211 ");
     case kAll:
        break;
     case kNoDecay:
        TPythia8::Instance()->ReadString("HadronLevel:Decay = off");
        break;
     case kNoDecayHeavy:
+    case kNoDecayBeauty:
     case kNeutralPion:
+    case kPsiPrimeJpsiDiElectron: 
        break;
     }
 }
@@ -531,6 +596,7 @@ void AliDecayerPythia8::ForceHadronicD(Int_t optUse4Bodies)
 //
 // Force golden D decay modes
 //
+    // K* -> K pi
     TPythia8::Instance()->ReadString("313:onMode = off");
     TPythia8::Instance()->ReadString("313:onIfAll = 321 211");
     // for Ds -> Phi pi+
@@ -542,6 +608,9 @@ void AliDecayerPythia8::ForceHadronicD(Int_t optUse4Bodies)
     // for Lambda_c -> Delta++ K-
     TPythia8::Instance()->ReadString("2224:onMode = off");
     TPythia8::Instance()->ReadString("2224:onIfAll = 2212 211");
+    // for Lambda_c -> Lambda(1520) K-
+    TPythia8::Instance()->ReadString("3124:onMode = off");
+    TPythia8::Instance()->ReadString("3124:onIfAll = 2212 321");
 
 
     TPythia8::Instance()->ReadString("411:onMode = off");
@@ -550,22 +619,37 @@ void AliDecayerPythia8::ForceHadronicD(Int_t optUse4Bodies)
     TPythia8::Instance()->ReadString("4112:onMode = off");
     TPythia8::Instance()->ReadString("4122:onMode = off");
 
+    // D+/- -> K pi pi 
     TPythia8::Instance()->ReadString("411:onIfMatch = 321 211 211");
+    // D+/- -> K* pi
     TPythia8::Instance()->ReadString("411:onIfMatch = 313 211");
-
+    // D0 -> K pi
     TPythia8::Instance()->ReadString("421:onIfMatch = 321 211");
+
     if (optUse4Bodies) {
+       // D0 -> K pi pi pi
        TPythia8::Instance()->ReadString("421:onIfMatch = 321 211 211 211");
+       // D0 -> K pi rho
        TPythia8::Instance()->ReadString("421:onIfMatch = 321 211 113");
+       // D0 -> K*0 pi pi
+       TPythia8::Instance()->ReadString("421:onIfMatch = 313 211 211");
     }
     
+    // D_s -> K K*
     TPythia8::Instance()->ReadString("431:onIfMatch = 321 313");
+    // D_s -> Phi pi
     TPythia8::Instance()->ReadString("431:onIfMatch = 333 211");
-    TPythia8::Instance()->ReadString("431:onIfMatch = 321 313");
 
+    // Lambda_c -> p K*
     TPythia8::Instance()->ReadString("4122:onIfMatch = 2212 313");
+    // Lambda_c -> Delta K
     TPythia8::Instance()->ReadString("4122:onIfMatch = 2224 321");
+    // Lambda_c -> Lambda(1520) pi
+    TPythia8::Instance()->ReadString("4122:onIfMatch = 3124 211");
+    // Lambda_c -> p K pi
     TPythia8::Instance()->ReadString("4122:onIfMatch = 2212 321 211");
+    // Lambda_c -> Lambda pi 
+    TPythia8::Instance()->ReadString("4122:onIfMatch = 3122 211");
 
 }