Updates on golden D hadronic decay channel by
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 22 Mar 2006 12:38:03 +0000 (12:38 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 22 Mar 2006 12:38:03 +0000 (12:38 +0000)
Francesco Prino and Rosetta Silvestri.

PYTHIA6/AliDecayerPythia.cxx

index 36a24b1..467a5c7 100644 (file)
@@ -324,12 +324,28 @@ void AliDecayerPythia::ForceHadronicD()
     const Int_t kNHadrons = 4;
     Int_t channel;
     Int_t hadron[kNHadrons] = {411,  421, 431, 4112};
-    Int_t decayP[kNHadrons][3] = 
+    // for D+ -> K0* (-> K- pi+) pi+
+    Int_t iKstar0    =  313;
+    Int_t iKstarbar0 = -313;
+    Int_t products[2] = {kKPlus, kPiMinus}, mult[2] = {1, 1};
+    ForceParticleDecay(iKstar0, products, mult, 2);
+    // for Ds -> Phi pi+
+    Int_t iPhi=333;
+    ForceParticleDecay(iPhi,kKPlus,2); // Phi->K+K-
+    Int_t decayP1[kNHadrons][3] = 
+
+       { 
+           {kKMinus, kPiPlus,    kPiPlus},
+           {kKMinus, kPiPlus,    0      },
+           {kKPlus , iKstarbar0, 0     },
+           {-1     , -1        , -1        }
+       };
+    Int_t decayP2[kNHadrons][3] = 
        { 
-           {kKMinus, kPiPlus, kPiPlus},
-           {kKMinus, kPiPlus, 0      },
-           {-1     , -1     , -1     },
-           {-1     , -1     , -1     }
+           {iKstarbar0, kPiPlus, 0   },
+           {-1        , -1     , -1  },
+           {iPhi      , kPiPlus, 0  },
+           {-1        , -1     , -1  }
        };
     
 
@@ -341,12 +357,18 @@ void AliDecayerPythia::ForceHadronicD()
        Int_t ilast  = ifirst + fPythia->GetMDCY(kc,3)-1;
 
        for (channel = ifirst; channel <= ilast; channel++) {
-           if (
-               fPythia->GetKFDP(channel,1) == decayP[ihadron][0] &&
-               fPythia->GetKFDP(channel,2) == decayP[ihadron][1] &&
-               fPythia->GetKFDP(channel,3) == decayP[ihadron][2] &&
+           if ((
+               fPythia->GetKFDP(channel,1) == decayP1[ihadron][0] &&
+               fPythia->GetKFDP(channel,2) == decayP1[ihadron][1] &&
+               fPythia->GetKFDP(channel,3) == decayP1[ihadron][2] &&
                fPythia->GetKFDP(channel,4) == 0
-               )
+               ) || (
+               fPythia->GetKFDP(channel,1) == decayP2[ihadron][0] &&
+               fPythia->GetKFDP(channel,2) == decayP2[ihadron][1] &&
+               fPythia->GetKFDP(channel,3) == decayP2[ihadron][2] &&
+               fPythia->GetKFDP(channel,4) == 0
+               ))
+
            {
                fPythia->SetMDME(channel,1,1);
            } else {
@@ -357,6 +379,7 @@ void AliDecayerPythia::ForceHadronicD()
     } // hadrons
 }
 
+
 void AliDecayerPythia::ForceParticleDecay(Int_t particle, Int_t product, Int_t mult)
 {
 //