AliDecayerPythia::AliDecayerPythia():
fPythia(AliPythia::Instance()),
- fDecay(kAll)
+ fDecay(kAll),
+ fHeavyFlavour(kTRUE)
{
// Default Constructor
for (Int_t i=0; i< 501; i++) fBraPart[i]= 1.;
AliDecayerPythia::AliDecayerPythia(const AliDecayerPythia &decayer):
AliDecayer(decayer),
fPythia(0),
- fDecay(kAll)
+ fDecay(kAll),
+ fHeavyFlavour(kTRUE)
{
// Copy Constructor
decayer.Copy(*this);
//...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);
}
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();
}
Lu1Ent(0, idpart, energy, theta, phi);
fPythia->GetPrimaries();
-// fPythia->Pylist(1);
-
}
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;
}
}
+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)
{