diff --git a/examples/PARAM/hdebug.param b/examples/PARAM/hdebug.param
index 950b1f651a6675c7658d00a4e1c7d22184734287..2f7dc216236b0d1b1d7a09df181c552b8b27278a 100644
--- a/examples/PARAM/hdebug.param
+++ b/examples/PARAM/hdebug.param
@@ -65,7 +65,7 @@
 ;  hdbg_clusters_cal   call h_prt_cal_clusters
    hdbg_clusters_cal = 0
 ;  hdbg_tracks_cal     call h_prt_cal_tracks
-   hdbg_tracks_cal = 0
+   hdbg_tracks_cal = 1
 ;  hdbg_tests_cal      call h_prt_cal_tests    HMS_TRACK_TESTS
    hdbg_tests_cal = 0
 ;
diff --git a/src/THcHallCSpectrometer.cxx b/src/THcHallCSpectrometer.cxx
index dc5bfc5d1a081ab4ae5a1dcdbc41a8a8ec43fe48..7ce0bfcdf91041a520451b440999af641ca948c3 100644
--- a/src/THcHallCSpectrometer.cxx
+++ b/src/THcHallCSpectrometer.cxx
@@ -313,48 +313,9 @@ Int_t THcHallCSpectrometer::TrackCalc()
 {
   // Additioal track calculations. At present, we only calculate beta here.
 
-  // cout << "THcHallCSpectrometer::TrackCalc is called xxxxxxxxxxxxxxxxx\n";
-
-  TrackEnergies(fTracks);
-
   return TrackTimes( fTracks );
 }
 
-//_____________________________________________________________________________
-Int_t THcHallCSpectrometer::TrackEnergies( TClonesArray* Tracks ) {
-
-  // Example code for track energy assignments from shower counter.
-
-  //  cout << "THcHallCSpectrometer::TrackEnergies called -----------------\n" ;
-  
-  if ( !Tracks ) return -1;
-  
-  THaTrack *track=0;
-  Int_t ntrack = GetNTracks();
-
-  //  cout << "     number of tracks " << ntrack << endl;
-
-  for ( Int_t itrk=0; itrk < ntrack; itrk++ ) {
-
-    Double_t energy = kBig;
-
-    track = static_cast<THaTrack*>(Tracks->At(itrk));
-
-    TIter nextDet( fNonTrackingDetectors );
-    THaNonTrackingDetector *det;
-    while ((det = static_cast<THaNonTrackingDetector*>(nextDet()))) {
-      
-      THcShower *sh = dynamic_cast<THcShower*>(det);
-      if ( sh ) energy = sh->GetShEnergy(track);
-    }
-
-    track->SetEnergy(energy);
-    // cout << "track " << itrk << "   energy = " << track->GetEnergy() << endl;
-  }
-
-  return ntrack;
-}
-
 //_____________________________________________________________________________
 Int_t THcHallCSpectrometer::TrackTimes( TClonesArray* Tracks ) {
   // Do the actual track-timing (beta) calculation.
diff --git a/src/THcHallCSpectrometer.h b/src/THcHallCSpectrometer.h
index 90e1be5dbd90f93318d3a497c7b4661227c44e7e..f906546ec9c187e94ec3f607d90b2089420ae0ad 100644
--- a/src/THcHallCSpectrometer.h
+++ b/src/THcHallCSpectrometer.h
@@ -21,7 +21,6 @@ public:
   virtual Int_t   FindVertices( TClonesArray& tracks );
   virtual Int_t   TrackCalc();
   virtual Int_t   TrackTimes( TClonesArray* tracks );
-  Int_t TrackEnergies( TClonesArray* tracks );
 
   virtual Int_t   ReadRunDatabase( const TDatime& date );
 
diff --git a/src/THcShower.cxx b/src/THcShower.cxx
index 8cd56bc94a2ae1c7b81a4c376df9fd3cdb48e4b7..060d120c909fa87747d47ed9f4464ebd1350ba35 100644
--- a/src/THcShower.cxx
+++ b/src/THcShower.cxx
@@ -996,14 +996,35 @@ Float_t THcShower::GetShEnergy(THaTrack* Track) {
 //_____________________________________________________________________________
 Int_t THcShower::FineProcess( TClonesArray& tracks )
 {
-  // Reconstruct coordinates of particle track cross point with shower
-  // plane, and copy the data into the following local data structure:
+
+  // Shower energy assignment to the spectrometer tracks.
   //
-  // Units of measurements are meters.
 
-  // Calculation of coordinates of particle track cross point with shower
-  // plane in the detector coordinate system. For this, parameters of track 
-  // reconstructed in THaVDC::FineTrack() are used.
+  Int_t Ntracks = tracks.GetLast()+1;   // Number of reconstructed tracks
+
+  if (fdbg_tracks_cal) {
+    cout << endl;
+    cout << "THcShower::FineProcess: Number of tracks = " << Ntracks << endl;
+  }
+
+  for (Int_t itrk=0; itrk<Ntracks; itrk++) {
+
+    THaTrack* theTrack = static_cast<THaTrack*>( tracks[itrk] );
+
+    Float_t energy = GetShEnergy(theTrack);
+    theTrack->SetEnergy(energy);
+
+    if (fdbg_tracks_cal) {
+      cout << "THcShower::FineProcess, Track " << itrk << ": "
+	   << "  X = " << theTrack->GetX()
+	   << "  Y = " << theTrack->GetY()
+	   << "  Theta = " << theTrack->GetTheta()
+	   << "  Phi = " << theTrack->GetPhi()
+	   << "  Enegy = " << energy << endl;
+    }
+
+
+  }       //over tracks
 
   return 0;
 }