]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliDecayerPythia.cxx
For Heavy Flavor off: switching of QQbar splittings is responsibility of
[u/mrichter/AliRoot.git] / PYTHIA6 / AliDecayerPythia.cxx
index 6b32ee51d0ab274a7e689d795e188d3958d73a09..d4f3432f8483a92d40facd1d289461287b397b9b 100644 (file)
@@ -56,7 +56,8 @@ Bool_t AliDecayerPythia::fgInit = kFALSE;
 
 AliDecayerPythia::AliDecayerPythia():
     fPythia(AliPythia::Instance()),
-    fDecay(kAll)
+    fDecay(kAll),
+    fHeavyFlavour(kTRUE)
 {
 // Default Constructor
     for (Int_t i=0; i< 501; i++) fBraPart[i]= 1.;
@@ -66,7 +67,8 @@ AliDecayerPythia::AliDecayerPythia():
 AliDecayerPythia::AliDecayerPythia(const AliDecayerPythia &decayer):
     AliDecayer(decayer),
     fPythia(0),
-    fDecay(kAll)
+    fDecay(kAll),
+    fHeavyFlavour(kTRUE)
 {
     // Copy Constructor
     decayer.Copy(*this);
@@ -102,9 +104,9 @@ void AliDecayerPythia::Init()
 //...Switch off decay of pi0, K0S, Lambda, Sigma+-, Xi0-, Omega-.
     
     if (fDecay != kNeutralPion) {
-       fPythia->SetMDCY(fPythia->Pycomp(111) ,1,0);
+       fPythia->SetMDCY(fPythia->Pycomp(111) ,1, 0);
     } else {
-       fPythia->SetMDCY(fPythia->Pycomp(111) ,1,1);
+       fPythia->SetMDCY(fPythia->Pycomp(111) ,1, 1);
     }
 
 
@@ -116,6 +118,7 @@ void AliDecayerPythia::Init()
     fPythia->SetMDCY(fPythia->Pycomp(3312),1,0);
     fPythia->SetMDCY(fPythia->Pycomp(3322),1,0);
     fPythia->SetMDCY(fPythia->Pycomp(3334),1,0);
+
 // .. Force decay channels
     ForceDecay();
 }
@@ -130,8 +133,6 @@ void AliDecayerPythia::Decay(Int_t idpart, TLorentzVector* p)
     
     Lu1Ent(0, idpart, energy, theta, phi);
     fPythia->GetPrimaries();
-//    fPythia->Pylist(1);
-    
 }
 
 Int_t AliDecayerPythia::ImportParticles(TClonesArray *particles)
@@ -145,6 +146,9 @@ Int_t AliDecayerPythia::ImportParticles(TClonesArray *particles)
 void AliDecayerPythia::ForceDecay()
 {
 // Force a particle decay mode
+// Switch heavy flavour production off if requested
+    if (!fHeavyFlavour) SwitchOffHeavyFlavour();
+//
     Decay_t decay=fDecay;
     fPythia->SetMSTJ(21,2);
     if (decay == kNoDecayHeavy) return;
@@ -350,6 +354,18 @@ void AliDecayerPythia::ForceDecay()
     }
 }
 
+void  AliDecayerPythia::SwitchOffHeavyFlavour()
+{
+    // Switch off heavy flavour production
+    //
+    // Maximum number of quark flavours used in pdf 
+    fPythia->SetMSTP(58, 3);
+    // Maximum number of flavors that can be used in showers
+    fPythia->SetMSTJ(45, 3);   
+    // Switch off g->QQbar splitting in decay table
+    for (Int_t i = 156; i <= 160; i++) fPythia->SetMDME(i, 1, 0);
+}
+
 void  AliDecayerPythia::Lu1Ent(Int_t flag, Int_t idpart, 
                      Double_t mom, Double_t theta, Double_t phi)
 {