diff --git a/src/THcShower.cxx b/src/THcShower.cxx
index e30987ab71242ea474de30bd8cf26608f871374f..6e8e311626c45e080e047007e16e25302b24e4d7 100644
--- a/src/THcShower.cxx
+++ b/src/THcShower.cxx
@@ -514,7 +514,8 @@ Int_t THcShower::DefineVariables( EMode mode )
     { "nhits", "Number of hits",                                 "fNhits" },
     { "nclust", "Number of clusters",                            "fNclust" },
     { "etot", "Total energy",                                    "fEtot" },
-    { "etotnorm", "Total energy divided by Central Momentum",   "fEtotNorm" },
+    { "etotnorm", "Total energy divided by Central Momentum",    "fEtotNorm" },
+    { "etrack", "Track energy",                                  "fEtrack" },
     { "ntracks", "Number of shower tracks",                      "fNtracks" },
     { 0 }
   };
@@ -568,6 +569,7 @@ void THcShower::Clear(Option_t* opt)
   fNtracks = 0;
   fEtot = 0.;
   fEtotNorm = 0.;
+  fEtrack = 0.;
 
   // Purge cluster list
 
@@ -1069,9 +1071,9 @@ Int_t THcShower::FineProcess( TClonesArray& tracks )
 
     THaTrack* theTrack = static_cast<THaTrack*>( tracks[itrk] );
 
-    Float_t energy = GetShEnergy(theTrack);
-    if (fHasArray) energy += fArray->GetShEnergy(theTrack);
-    theTrack->SetEnergy(energy);
+    fEtrack = GetShEnergy(theTrack);
+    if (fHasArray) fEtrack += fArray->GetShEnergy(theTrack);
+    theTrack->SetEnergy(fEtrack);
 
   }       //over tracks
 
diff --git a/src/THcShower.h b/src/THcShower.h
index a4a74543162f6fae1498845f1eb5941a70d7b330..b1573e31c3676ab5689b6d6263cb064c48a3f985 100644
--- a/src/THcShower.h
+++ b/src/THcShower.h
@@ -128,6 +128,7 @@ protected:
                              // cluster-to-track association
   Double_t fEtot;            // Total energy 
   Double_t fEtotNorm;        // Total energy divided by spec central momentum 
+  Double_t fEtrack;          // Cluster energy associated to the last track
 
   THcShowerClusterList* fClusterList;   // List of hit clusters