]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliPythia6/AliDecayerPythia.cxx
Options for D+ and Ds decays in channels with K0s
[u/mrichter/AliRoot.git] / PYTHIA6 / AliPythia6 / AliDecayerPythia.cxx
index 06ff91ce7a15db6cb496b4ed8737233ff587fe2b..945996f5d946a6e5afa0d434f5b5b464cc17f4a9 100644 (file)
@@ -455,10 +455,16 @@ void AliDecayerPythia::ForceDecay()
         ForceParticleDecay(  23, 11,2); // Z -> e+ e-
        break;
     case kHadronicD:
-       ForceHadronicD(1);
-       break;
+        ForceHadronicD(1,0);
+        break;
+    case kHadronicDWithV0:
+        ForceHadronicD(1,1);
+        break;
     case kHadronicDWithout4Bodies:
-       ForceHadronicD(0);
+        ForceHadronicD(0,0);
+        break;
+    case kHadronicDWithout4BodiesWithV0:
+      ForceHadronicD(0,1);
        break;
     case kPhiKK:
        ForceParticleDecay(333,321,2); // Phi->K+K-
@@ -560,7 +566,7 @@ void  AliDecayerPythia::ForceBeautyUpgrade()
    const Int_t prod2[2]={413,211};
    ForceParticleDecay(511,prod2,mult,2,1);
    // force charm hadronic decays (D mesons and Lc)
-   ForceHadronicD(0);
+   ForceHadronicD(0,0);
 }
 
 void  AliDecayerPythia::Lu1Ent(Int_t flag, Int_t idpart, 
@@ -585,8 +591,13 @@ Int_t AliDecayerPythia::CountProducts(Int_t channel, Int_t particle)
 }
 
 
-void AliDecayerPythia::ForceHadronicD(Int_t optUse4Bodies)
+void AliDecayerPythia::ForceHadronicD(Int_t optUse4Bodies, Int_t optUseDtoV0)
 {
+
+  // Xic->Xipipi
+  Int_t Xic = 4232;
+  Int_t productsX[3] = {3312, 211,211}, multX[3] = {1, 1, 1};
+  ForceParticleDecay(Xic, productsX, multX, 3);
 //
 // Force golden D decay modes
 //
@@ -638,8 +649,8 @@ void AliDecayerPythia::ForceHadronicD(Int_t optUse4Bodies)
   Int_t decayP3[kNHadrons][4] = 
     { 
       {kPiPlus   , iPhi   , 0       , 0},
-      {kKMinus   , kPiPlus, iRho0   , 0 },
-      {-1        , -1     , -1      , -1},
+      {kKMinus   , kPiPlus, iRho0   , 0},
+      {kKPlus    , iK0bar , 0       , 0},
       {-1        , -1     , -1      , -1},
       {kProton   , kKMinus, kPiPlus , 0}
     };
@@ -655,7 +666,7 @@ void AliDecayerPythia::ForceHadronicD(Int_t optUse4Bodies)
   // for Lambda_c -> Lambda pi+ 
     Int_t decayP5[kNHadrons][4] =
     {
-      {-1        , -1     , -1      , -1},
+      {iK0bar    , kPiPlus,  0      ,  0},
       {-1        , -1     , -1      , -1},
       {-1        , -1     , -1      , -1},
       {-1        , -1     , -1      , -1},
@@ -679,7 +690,13 @@ void AliDecayerPythia::ForceHadronicD(Int_t optUse4Bodies)
       decayP4[1][iDau]=-1; 
     }
   }  
-  
+  if(optUseDtoV0==0){
+    for(Int_t iDau=0;iDau<4;iDau++){
+      decayP3[2][iDau]=-1; // swicth off Ds->K0K+
+      decayP5[0][iDau]=-1; // swicth off D+->K0pi+
+    }
+  }
+
   for (Int_t ihadron = 0; ihadron < kNHadrons; ihadron++)
     {
       Int_t kc = fPythia->Pycomp(hadron[ihadron]);