diff --git a/src/THcShower.cxx b/src/THcShower.cxx
index 0b0c06fdb77341f38bb01d5c68ebddaf3021770e..06d6d44d0ac9ad472ac4fae63b26ae132d875fdf 100644
--- a/src/THcShower.cxx
+++ b/src/THcShower.cxx
@@ -597,6 +597,8 @@ void THcShower::Clear(Option_t* opt)
   fEtotNorm = 0.;
   fEtrack = 0.;
   fEtrackNorm = 0.;
+  fSizeClustArray = 0;
+  fNblockHighEnergy = 0.;
 
   // Purge cluster list
 
diff --git a/src/THcShowerArray.cxx b/src/THcShowerArray.cxx
index f6aaa2ccac26f799c0f917d24671c7557ef46665..57a231f2a078c8b7604317d903a3e08bfbae08ed 100644
--- a/src/THcShowerArray.cxx
+++ b/src/THcShowerArray.cxx
@@ -388,7 +388,7 @@ void THcShowerArray::Clear( Option_t* )
   fClustSize = 0;
   fNtracks = 0;
   fMatchClX = -1000.;
-  fMatchClX = -1000.;
+  fMatchClY = -1000.;
   fMatchClMaxEnergyBlock = -1000.;
 
   for (THcShowerClusterListIt i=fClusterList->begin(); i!=fClusterList->end();
@@ -495,6 +495,7 @@ Int_t THcShowerArray::CoarseProcess( TClonesArray& tracks )
 	   <<":  E=" << clE(*ppcl)
 	   << "  Epr=" << clEpr(*ppcl)
 	   << "  X=" << clX(*ppcl)
+	   << "  Y=" << clY(*ppcl)
 	   << "  Z=" << clZ(*ppcl)
 	   << "  size=" << (**ppcl).size()
 	   << endl;
@@ -578,16 +579,13 @@ Int_t THcShowerArray::MatchCluster(THaTrack* Track,
 
     // Since hits and clusters are in reverse order (with respect to Engine),
     // search backwards to be consistent with Engine.
-    //
-    // Note: cluster Z coordinate is used here as Y, for Z variable
-    // of the THcShowerHit class was used to save Y coordinates of hits.
 
     for (Int_t i=fNclust-1; i>-1; i--) {
 
       THcShowerCluster* cluster = *(fClusterList->begin()+i);
       fClustSize = (*cluster).size();
       Double_t dx = TMath::Abs( clX(cluster) - XTrFront );
-      Double_t dy = TMath::Abs( clY(cluster) - YTrFront ); //cluster Z for Y.
+      Double_t dy = TMath::Abs( clY(cluster) - YTrFront );
       Double_t distance = TMath::Sqrt(dx*dx+dy*dy);        //cluster-track dist.
   if (fParent->fdbg_tracks_cal) {  
     cout << " match clust = " << i << " clX = " << clX(cluster)<< " clY = " << clY(cluster) << " distacne = " << distance << " test = " << (0.5*(fXStep + fYStep) + fParent->fSlop) << endl;
diff --git a/src/THcShowerArray.h b/src/THcShowerArray.h
index ee3740a7cde859f82354147a09c538bc89eb2aba..a7e2a0e4bcca8aa16ea80a17f5283737a05a74e9 100644
--- a/src/THcShowerArray.h
+++ b/src/THcShowerArray.h
@@ -61,10 +61,6 @@ public:
   // spectrometer Track.
 
   Float_t GetShEnergy(THaTrack*);
-  Double_t fMatchClX;
-  Double_t fMatchClY;
-  Double_t fMatchClMaxEnergyBlock;
-  Double_t fClustSize;
   Double_t GetClMaxEnergyBlock() {
     return fMatchClMaxEnergyBlock;
   };
@@ -169,6 +165,11 @@ Int_t fPedSampLow;		// Sample range for
   Int_t fNtracks;            // Number of shower tracks, i.e. number of
                              // cluster-to-track associations
 
+  Double_t fMatchClX;
+  Double_t fMatchClY;
+  Double_t fMatchClMaxEnergyBlock;
+  Double_t fClustSize;
+
   THcShowerClusterList* fClusterList;   // List of hit clusters
 
   TClonesArray* frAdcPedRaw;
diff --git a/src/THcShowerHit.cxx b/src/THcShowerHit.cxx
index 3345f90360a3037a958e580459b95cea7da72d3a..28be5d428e925d42cd7741d688b0c9b0c61a3420 100644
--- a/src/THcShowerHit.cxx
+++ b/src/THcShowerHit.cxx
@@ -10,7 +10,7 @@ using namespace std;
 
 THcShowerHit::THcShowerHit() {         //default constructor
   fCol=fRow=0;
-  fX=fZ=0.;
+  fX=fY=fZ=0.;
   fE=0.;
   fEpos=0.;
   fEneg=0.;