diff --git a/Processes/TrackWriter/TrackWriter.cc b/Processes/TrackWriter/TrackWriter.cc
index 1bfe40add4f6b6f21170ec9625c744fd1d7feea3..70e0c6bb6b1c44b1d95d02ee8aaa5802a554b112 100644
--- a/Processes/TrackWriter/TrackWriter.cc
+++ b/Processes/TrackWriter/TrackWriter.cc
@@ -15,6 +15,7 @@
 #include <corsika/setup/SetupStack.h>
 #include <corsika/setup/SetupTrajectory.h>
 
+#include <iomanip>
 #include <limits>
 
 using namespace corsika::setup;
@@ -38,9 +39,16 @@ namespace corsika::process::track_writer {
     auto const delta = vT.GetPosition(1).GetCoordinates() - start;
     auto const pdg = static_cast<int>(particles::GetPDG(vP.GetPID()));
 
-    fFile << pdg << ' ' << vP.GetEnergy() / 1_eV << ' ' << start[0] / 1_m << ' '
-          << start[1] / 1_m << ' ' << start[2] / 1_m << "   " << delta[0] / 1_m << ' '
-          << delta[1] / 1_m << ' ' << delta[2] / 1_m << '\n';
+    // clang-format off
+    fFile << std::setw(7) << pdg
+          << std::setw(width) << std::scientific << std::setprecision(precision) << vP.GetEnergy() / 1_eV
+          << std::setw(width) << std::scientific << std::setprecision(precision) << start[0] / 1_m 
+          << std::setw(width) << std::scientific << std::setprecision(precision) << start[1] / 1_m
+          << std::setw(width) << std::scientific << std::setprecision(precision) << start[2] / 1_m
+          << std::setw(width) << std::scientific << std::setprecision(precision) << delta[0] / 1_m
+          << std::setw(width) << std::scientific << std::setprecision(precision) << delta[1] / 1_m
+          << std::setw(width) << std::scientific << std::setprecision(precision) << delta[2] / 1_m << '\n';
+    // clang-format on
 
     return process::EProcessReturn::eOk;
   }
diff --git a/Processes/TrackWriter/TrackWriter.h b/Processes/TrackWriter/TrackWriter.h
index 81f14c5e7f534af62e40cca4200ee584fc78b033..0a7054c74c0efc48947fd98f5fdea88224445341 100644
--- a/Processes/TrackWriter/TrackWriter.h
+++ b/Processes/TrackWriter/TrackWriter.h
@@ -36,6 +36,9 @@ namespace corsika::process::track_writer {
   private:
     std::string const fFilename;
     std::ofstream fFile;
+
+    int width = 14;
+    int precision = 6;
   };
 
 } // namespace corsika::process::track_writer