#include <TPDGCode.h>
#include <TLorentzVector.h>
#include <TClonesArray.h>
+#include <TParticle.h>
ClassImp(AliDecayerPythia)
{
// Import the decay products
//
- return fPythia->ImportParticles(particles, "All");
+ const Float_t kconvT=0.001/2.999792458e8; // mm/c to seconds conversion
+ const Float_t kconvL=1./10; // mm to cm conversion
+ int np = fPythia->ImportParticles(particles, "All");
+ // pythia assigns decay time in mm/c, convert to seconds
+ for (int ip=1;ip<np;ip++) {
+ TParticle* prod = (TParticle*)particles->At(ip);
+ if (!prod) continue;
+ prod->SetProductionVertex(prod->Vx()*kconvL,prod->Vy()*kconvL,prod->Vz()*kconvL,kconvT*prod->T());
+ }
+ return np;
}
ForceParticleDecay( 531,443,1); // B_s
ForceParticleDecay( 5122,443,1); // Lambda_b
break;
+ case kBJpsiUndecayed:
+ ForceParticleDecay( 511,443,1); // B0
+ ForceParticleDecay( 521,443,1); // B+/-
+ ForceParticleDecay( 531,443,1); // B_s
+ ForceParticleDecay( 5122,443,1); // Lambda_b
+ fPythia->SetMDCY(fPythia->Pycomp(443),1,0); // switch-off J/psi
+ break;
case kBPsiPrimeDiElectron:
ForceParticleDecay( 511,100443,1); // B0
ForceParticleDecay( 521,100443,1); // B+/-
};
Int_t decayP3[kNHadrons][4] =
{
- {-1 , -1 , -1 , -1},
+ {kPiPlus , iPhi , 0 , 0},
{kKMinus , kPiPlus, iRho0 , 0 },
{-1 , -1 , -1 , -1},
{-1 , -1 , -1 , -1},
// for Lambda_c -> Lambda_1520 pi+ -> p K- pi+, D0-> K*0 pi+ pi- -> K3pi
Int_t decayP4[kNHadrons][4] =
{
- {-1 , -1 , -1 , -1},
+ {iKstarbar0 , kKPlus , 0 , 0},
{iKstarbar0 , kPiPlus , kPiMinus, 0},
{-1 , -1 , -1 , -1},
{-1 , -1 , -1 , -1},