Index: classes/DelphesClasses.h
===================================================================
--- classes/DelphesClasses.h	(revision 76c2a3b087f771e878afa877e26a15f1a19797a2)
+++ classes/DelphesClasses.h	(revision acd0621c754b63dd200e6f4a6a208f692f895fa1)
@@ -147,8 +147,11 @@
   Float_t Pz; // particle momentum vector (z component) | hepevt.phep[number][2]
 
-  Float_t PT; // particle transverse momentum
+  Float_t D0;
+  Float_t DZ;
+  Float_t P;
+  Float_t PT;
+  Float_t CtgTheta;
+  Float_t Phi;
   Float_t Eta; // particle pseudorapidity
-  Float_t Phi; // particle azimuthal angle
-
   Float_t Rapidity; // particle rapidity
 
@@ -397,9 +400,6 @@
   Int_t Charge; // track charge
 
-  Float_t PT; // track transverse momentum
-
   Float_t Eta; // track pseudorapidity
-  Float_t Phi; // track azimuthal angle
-
+  
   Float_t EtaOuter; // track pseudorapidity at the tracker edge
   Float_t PhiOuter; // track azimuthal angle at the tracker edge
@@ -415,6 +415,24 @@
   Float_t TOuter; // track position (z component) at the tracker edge
 
+  Float_t L; // track path length
+    
   Float_t D0;     // track signed transverse impact parameter
   Float_t ErrorD0;    // signed error on the track signed transverse impact parameter
+ 
+  Float_t DZ; // track transverse momentum
+  Float_t ErrorDZ; // track transverse momentum error
+ 
+  Float_t P; // track transverse momentum
+  Float_t ErrorP; // track transverse momentum error
+ 
+  Float_t PT; // track transverse momentum
+  Float_t ErrorPT; // track transverse momentum error
+ 
+  Float_t CtgTheta; // track transverse momentum
+  Float_t ErrorCtgTheta; // track transverse momentum error
+ 
+  Float_t Phi; // track azimuthal angle
+  Float_t ErrorPhi; // track azimuthal angle
+  
   Float_t Xd;      // X coordinate of point of closest approach to vertex
   Float_t Yd;      // Y coordinate of point of closest approach to vertex
Index: modules/ParticlePropagator.cc
===================================================================
--- modules/ParticlePropagator.cc	(revision 76c2a3b087f771e878afa877e26a15f1a19797a2)
+++ modules/ParticlePropagator.cc	(revision acd0621c754b63dd200e6f4a6a208f692f895fa1)
@@ -283,5 +283,5 @@
       p         = candidateMomentum.P();
       ctgTheta  = 1.0 / TMath::Tan (candidateMomentum.Theta ());
-         
+          
       // 3. time evaluation t = TMath::Min(t_r, t_z)
       //    t_r : time to exit from the sides
@@ -337,4 +337,14 @@
       if(r_t > 0.0)
       {
+        
+        // store these variables before cloning
+           
+        candidate->D0 = d0*1.0E3;
+        candidate->DZ = dz*1.0E3;
+        candidate->P  = p;
+        candidate->PT = pt;
+        candidate->CtgTheta = ctgTheta;
+        candidate->Phi = phip;
+      
         mother = candidate;
         candidate = static_cast<Candidate*>(candidate->Clone());
@@ -344,13 +354,7 @@
         candidate->Momentum = candidateMomentum;
         
-	candidate->L =  l*1.0E3;
-        candidate->D0 = d0*1.0E3;
-        candidate->DZ = dz*1.0E3;
-        candidate->P = p;
-        candidate->PT = pt;
-        candidate->CtgTheta = ctgTheta;
-        candidate->Phi = phi;
-
-	candidate->Xd = xd*1.0E3;
+	    candidate->L  =  l*1.0E3;
+        
+	    candidate->Xd = xd*1.0E3;
         candidate->Yd = yd*1.0E3;
         candidate->Zd = zd*1.0E3;
Index: modules/TreeWriter.cc
===================================================================
--- modules/TreeWriter.cc	(revision 76c2a3b087f771e878afa877e26a15f1a19797a2)
+++ modules/TreeWriter.cc	(revision acd0621c754b63dd200e6f4a6a208f692f895fa1)
@@ -215,4 +215,11 @@
     entry->Pz = momentum.Pz();
 
+    entry->D0            = candidate->D0;
+    entry->DZ            = candidate->DZ;
+    entry->P             = candidate->P;
+    entry->PT            = candidate->PT;
+    entry->CtgTheta      = candidate->CtgTheta;
+    entry->Phi           = candidate->Phi;
+
     entry->Eta = eta;
     entry->Phi = momentum.Phi();
@@ -291,7 +298,20 @@
     entry->ZOuter = position.Z();
     entry->TOuter = position.T()*1.0E-3/c_light;
-
-    entry->D0 = candidate->D0;
-    entry->ErrorD0 = candidate->ErrorD0 ;
+ 
+    entry->L = candidate->L;
+  
+    entry->D0            = candidate->D0;
+    entry->ErrorD0       = candidate->ErrorD0;
+    entry->DZ            = candidate->DZ;
+    entry->ErrorDZ       = candidate->ErrorDZ;
+    entry->P             = candidate->P;
+    entry->ErrorP        = candidate->ErrorP;
+    entry->PT            = candidate->PT;
+    entry->ErrorPT       = candidate->ErrorPT;
+    entry->CtgTheta      = candidate->CtgTheta;
+    entry->ErrorCtgTheta = candidate->ErrorCtgTheta;
+    entry->Phi           = candidate->Phi;
+    entry->ErrorPhi      = candidate->ErrorPhi; 
+    
     entry->Xd = candidate->Xd;
     entry->Yd = candidate->Yd;
@@ -307,7 +327,5 @@
 
     entry->Eta = eta;
-    entry->Phi = momentum.Phi();
-    entry->PT = pt;
-
+    
     particle = static_cast<Candidate*>(candidate->GetCandidates()->At(0));
     const TLorentzVector &initialPosition = particle->Position;
