AliDecayers will return particles coordinates,time in cm,sec. Generators
[u/mrichter/AliRoot.git] / PYTHIA8 / AliDecayerPythia8.cxx
index 0be6f40..7fb2265 100644 (file)
@@ -20,6 +20,8 @@
 #include <TMath.h>
 #include <TPDGCode.h>
 #include <TLorentzVector.h>
+#include <TClonesArray.h>
+#include <TParticle.h>
 #include "AliTPythia8.h"
 #include "AliDecayerPythia8.h"
 #include "ParticleData.h"
@@ -55,8 +57,17 @@ void AliDecayerPythia8::Decay(Int_t pdg, TLorentzVector* p)
 //___________________________________________________________________________
 Int_t AliDecayerPythia8::ImportParticles(TClonesArray *particles)
 {
-   //import the decay products into particles array
-   return (fPythia8->ImportParticles(particles, "All"));
+  //import the decay products into particles array
+  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 = fPythia8->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;
 }