diff --git a/Processes/TrackWriter/TrackWriter.cc b/Processes/TrackWriter/TrackWriter.cc
index ef15c3d2d4fe19b9d52fc277084751bc39ec9923..ffc67cde8a478486cca12670a7e0bb7838d130fa 100644
--- a/Processes/TrackWriter/TrackWriter.cc
+++ b/Processes/TrackWriter/TrackWriter.cc
@@ -9,5 +9,12 @@
  */
 
 #include <corsika/process/track_writer/TrackWriter.h>
+#include <string>
 
-void corsika::process::TrackWriter::TrackWriter::Init() { fFile.open(fFilename); }
+void corsika::process::TrackWriter::TrackWriter::Init() {
+  using namespace std::string_literals;
+
+  fFile.open(fFilename);
+  fFile << "# PID, E / eV, start coordinates / m, displacement vector to end / m "s
+        << '\n';
+}
diff --git a/Processes/TrackWriter/TrackWriter.h b/Processes/TrackWriter/TrackWriter.h
index 50e17e6af678dba9e3e0d8190fa8fd87dfe56915..8434ec6179bb770e1c8e0df3f497187df8f3ef13 100644
--- a/Processes/TrackWriter/TrackWriter.h
+++ b/Processes/TrackWriter/TrackWriter.h
@@ -36,9 +36,9 @@ namespace corsika::process::TrackWriter {
       auto const delta = t.GetPosition(1).GetCoordinates() - start;
       auto const& name = corsika::particles::GetName(p.GetPID());
 
-      fFile << name << "    " << 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';
+      fFile << name << "    " << p.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';
 
       return corsika::process::EProcessReturn::eOk;
     }