Index: external/TrackCovariance/ObsTrk.cc
===================================================================
--- external/TrackCovariance/ObsTrk.cc	(revision 942a70517ed882649876e315ec5dcc7a44ed72a6)
+++ external/TrackCovariance/ObsTrk.cc	(revision a0f5d71d4cbd81e390f872977c58db860597f571)
@@ -20,10 +20,14 @@
 	fGenPar.ResizeTo(5);
 	fGenParACTS.ResizeTo(6);
+	fGenParILC.ResizeTo(5);
 	fObsPar.ResizeTo(5);
 	fObsParACTS.ResizeTo(6);
+	fObsParILC.ResizeTo(5);
 	fCov.ResizeTo(5, 5);
 	fCovACTS.ResizeTo(6, 6);
+	fCovILC.ResizeTo(5, 5);
 	fGenPar = XPtoPar(x,p,Q);
 	fGenParACTS = ParToACTS(fGenPar);
+	fGenParILC = ParToILC(fGenPar);
 	/*
 	std::cout << "ObsTrk::ObsTrk: fGenPar";
@@ -33,8 +37,10 @@
 	fObsPar = GenToObsPar(fGenPar, fGC);
 	fObsParACTS = ParToACTS(fObsPar);
+	fObsParILC = ParToILC(fObsPar);
 	fObsX = ParToX(fObsPar);
 	fObsP = ParToP(fObsPar);
 	fObsQ = ParToQ(fObsPar);
 	fCovACTS = CovToACTS(fCov);
+	fCovILC = CovToILC(fCov);
 }
 //
@@ -206,4 +212,40 @@
 }
 
+// Parameter conversion to ILC format
+TVectorD ObsTrk::ParToILC(TVectorD Par)
+{
+	TVectorD pILC(5);	// Return vector
+	//
+	pILC(0) = Par(0)*1.0e3;			// d0 in mm
+	pILC(1) = Par(1);				// phi0 is unchanged
+	pILC(2) = -2 * Par(2)*1.0e-3;	// w in mm^-1
+	pILC(3) = Par(3)*1.0e3;			// z0 in mm
+	pILC(4) = Par(4);				// tan(lambda) = cot(theta)
+	//
+	return pILC;
+}
+// Covariance conversion to ILC format
+TMatrixDSym ObsTrk::CovToILC(TMatrixDSym Cov)
+{
+	TMatrixDSym cILC(5); cILC.Zero();
+	//
+	// Fill derivative matrix
+	TMatrixD A(5, 5);	A.Zero();
+	//
+	A(0, 0) = 1.0e3;		// D-d0 in mm
+	A(1, 1) = 1.0;		// phi0-phi0
+	A(2, 2) = -2.0e-3;	// w-C
+	A(3, 3) = 1.0e3;		// z0-z0 conversion to mm
+	A(4, 4) = 1.0;		// tan(lambda) - cot(theta)
+	//
+	TMatrixDSym Cv = Cov;
+	TMatrixD At(5, 5);
+	At.Transpose(A);
+	Cv.Similarity(At);
+	cILC = Cv;
+	//
+	return cILC;
+}
+
 
 
Index: external/TrackCovariance/ObsTrk.h
===================================================================
--- external/TrackCovariance/ObsTrk.h	(revision 942a70517ed882649876e315ec5dcc7a44ed72a6)
+++ external/TrackCovariance/ObsTrk.h	(revision a0f5d71d4cbd81e390f872977c58db860597f571)
@@ -29,15 +29,24 @@
 	TVector3 fObsP;					// Observed  track momentum @ track minimum approach
 	TVectorD fGenPar;				// Generated helix track parameters (D, phi0, C, z0, cot(th))
-	TVectorD fGenParACTS;			// Generated helix track parameters (D, z0, phi0, th, q/p, time)
+	TVectorD fGenParACTS;			// Generated helix track parameters (D, z0, phi0, th, q/p, time
+	TVectorD fGenParILC;				// Generated helix track parameters (w, phi0, d0, z0, tan(lambda))
 	TVectorD fObsPar;				// Observed  helix track parameters (D, phi0, C, z0, cot(th))
-	TVectorD fObsParACTS;			// Observed  helix track parameters (D, z0, phi0, th, q/p, time)
+	TVectorD fObsParACTS;			// Observed  helix track parameters (D, z0, phi0, th, q/p, time
+	TVectorD fObsParILC;				// Observed  helix track parameters (d0, phi0, w, z0, tan(lambda))
 	TMatrixDSym fCov;				// INterpolated covariance of track parameters
 	TMatrixDSym fCovACTS;			// Covariance of track parameters in ACTS format
 									// (D, z0, phi0, theta, q/p, time)
+	TMatrixDSym fCovILC;				// Covariance of track parameters in ILC format
+									// (d0, phi0, w, z0, tan(lambda))
 	//
 	// Conversion to ACTS parametrization
 	//
 	TVectorD ParToACTS(TVectorD Par);		// Parameter conversion
-	TMatrixDSym CovToACTS(TMatrixDSym Cov);	// Covariance conversion
+	TMatrixDSym CovToACTS(TMatrixDSym Cov);	// Covariance 
+	//
+	// Conversion to ILC parametrization
+	//
+	TVectorD ParToILC(TVectorD Par);		// Parameter conversion
+	TMatrixDSym CovToILC(TMatrixDSym Cov);	// Covariance conversion
 	//
 public:
@@ -68,4 +77,6 @@
 	// D, z0, phi0, theta, q/p, time
 	TVectorD GetGenParACTS()	{ return fGenParACTS; }
+	// d0, phi0, w, z0, tan(lambda)
+	TVectorD GetGenParILC()	{ return fGenParILC; }
 	// Observed level X, P, Q
 	Double_t GetObsQ()	{ return fObsQ; }
@@ -76,7 +87,10 @@
 	// D, z0, phi0, theta, q/p, time
 	TVectorD GetObsParACTS()	{ return fObsParACTS; }
+	// d0, phi0, w, z0, tan(lambda)
+	TVectorD GetObsParILC()	{ return fObsParILC; }
 	// Covariances
 	TMatrixDSym GetCov(){ return fCov; }
-	TMatrixDSym GetCovACTS(){ return fCovACTS; };
+	TMatrixDSym GetCovACTS(){ return fCovACTS; }
+	TMatrixDSym GetCovILC(){ return fCovILC; }
 };
 
