diff --git a/src/SConscript.py b/src/SConscript.py
index eab45ad449d701e78350fbd87932aa57941b5c4c..58134e924bc43ec5dff2880144afbf9d50f55def 100644
--- a/src/SConscript.py
+++ b/src/SConscript.py
@@ -21,7 +21,7 @@ THcDCWire.cxx \
 THcSpacePoint.cxx THcDCTrack.cxx \
 THcDCLookupTTDConv.cxx THcDCTimeToDistConv.cxx \
 THcShower.cxx THcShowerPlane.cxx THcShowerArray.cxx \
-THcRawShowerHit.cxx \
+THcRawShowerHit.cxx THcShowerHitCluster.cxx
 THcAerogel.cxx THcAerogelHit.cxx \
 THcCherenkov.cxx THcCherenkovHit.cxx \
 THcFormula.cxx \
diff --git a/src/THcShowerHitCluster.cxx b/src/THcShowerHitCluster.cxx
index ead20f849da950d01c96084ed8eed7bc8a2d73ab..f805f796e09a75400f3c2d6b4efe53149d5e1ea8 100644
--- a/src/THcShowerHitCluster.cxx
+++ b/src/THcShowerHitCluster.cxx
@@ -1,6 +1,9 @@
 #include "THcShowerHitCluster.h"
 
-//____________________________________________________________________________
+//ClassImp(THcShowerHit)
+
+using namespace std;
+
 THcShowerHit::THcShowerHit() {         //default constructor
   fCol=fRow=0;
   fX=fZ=0.;
@@ -9,7 +12,6 @@ THcShowerHit::THcShowerHit() {         //default constructor
   fEneg=0.;
 }
 
-//____________________________________________________________________________
 THcShowerHit::THcShowerHit(Int_t hRow, Int_t hCol, Double_t hX, Double_t hZ,
 			   Double_t hE, Double_t hEpos, Double_t hEneg) {
   fRow=hRow;
@@ -44,8 +46,8 @@ void THcShowerHit::show() {
 }
 
 //____________________________________________________________________________
-// Define < operator in order to fill in set of hits in a sorted manner.
-//
+  // Define < operator in order to fill in set of hits in a sorted manner.
+  //
 bool THcShowerHit::operator<(THcShowerHit rhs) const {
   if (fCol != rhs.fCol)
     return fCol < rhs.fCol;
diff --git a/src/THcShowerHitCluster.h b/src/THcShowerHitCluster.h
index 57769da6b97f3b7630c98df10caeb609af3a65ad..081aba7805e17679f0cb423ddf213e78e2c3ad63 100644
--- a/src/THcShowerHitCluster.h
+++ b/src/THcShowerHitCluster.h
@@ -7,12 +7,12 @@
 #include <iterator>
 #include <iostream>
 #include <memory>
+#include "TMath.h"
 
 using namespace std;
 
 class THcShowerHit {       //HMS calorimeter hit class
 
-private:
   Int_t fCol, fRow;        //hit colomn and row
   Double_t fX, fZ;         //hit X (vert.) and Z (along spect.axis) coordinates
   Double_t fE;             //hit mean energy deposition
@@ -21,24 +21,10 @@ private:
   
 public:
 
-  THcShowerHit() {         //default constructor
-    fCol=fRow=0;
-    fX=fZ=0.;
-    fE=0.;
-    fEpos=0.;
-    fEneg=0.;
-  }
+  THcShowerHit();
 
   THcShowerHit(Int_t hRow, Int_t hCol, Double_t hX, Double_t hZ,
-	       Double_t hE, Double_t hEpos, Double_t hEneg) {
-    fRow=hRow;
-    fCol=hCol;
-    fX=hX;
-    fZ=hZ;
-    fE=hE;
-    fEpos=hEpos;
-    fEneg=hEneg;
-  }
+	       Double_t hE, Double_t hEpos, Double_t hEneg);
 
   ~THcShowerHit() {
     //    cout << " hit destructed" << endl;
@@ -72,34 +58,11 @@ public:
     return fEneg;
   }
 
-  // Decide if a hit is neighbouring the current hit.
-  // Two hits are neighbours if share a side or a corner,
-  // or in the same row but separated by no more than a block.
-  //
-  bool isNeighbour(THcShowerHit* hit1) {      //Is hit1 neighbouring this hit?
-    Int_t dRow = fRow-(*hit1).fRow;
-    Int_t dCol = fCol-(*hit1).fCol;
-    return (TMath::Abs(dRow)<2 && TMath::Abs(dCol)<2) ||
-      (dRow==0 && TMath::Abs(dCol)<3);
-  }
-
-  //Print out hit information
-  //
-  void show() {
-    cout << "row=" << fRow << "  column=" << fCol 
-	 << "  x=" << fX << "  z=" << fZ 
-	 << "  E=" << fE << "  Epos=" << fEpos << "  Eneg=" << fEneg << endl;
-  }
-
-  // Define < operator in order to fill in set of hits in a sorted manner.
-  //
-  bool operator<(THcShowerHit rhs) const {
-    if (fCol != rhs.fCol)
-      return fCol < rhs.fCol;
-    else
-      return fRow < rhs.fRow;
-  }
+  bool isNeighbour(THcShowerHit* hit1);
+  void show();
+  bool operator<(THcShowerHit rhs) const;
 
+  //  ClassDef(THcShowerHit,0);
 };