diff --git a/Makefile b/Makefile
index 7beaa8b491cce123a2643c45c1a662737ed4ef07..e44478d6fef8b88a11be9e89770c5104f23505de 100644
--- a/Makefile
+++ b/Makefile
@@ -10,9 +10,7 @@
 
 SRC  =  src/THcInterface.cxx src/THcParmList.cxx src/THcAnalyzer.cxx \
 	src/THcHodoscopeHit.cxx src/THcRawHit.cxx \
-	src/THcDetectorBase.cxx src/THcDetector.cxx \
-	src/THcSpectrometerDetector.cxx src/THcNonTrackingDetector.cxx \
-	src/THcHodoscope.cxx
+	src/THcHitList.cxx src/THcHodoscope.cxx
 
 # Name of your package. 
 # The shared library that will be built will get the name lib$(PACKAGE).so
diff --git a/src/HallC_LinkDef.h b/src/HallC_LinkDef.h
index c98a7cc684580db3083a281509a8d949c2c0d089..38578f3ce048fe11147f06ad63f426bd612fddd7 100644
--- a/src/HallC_LinkDef.h
+++ b/src/HallC_LinkDef.h
@@ -11,10 +11,7 @@
 #pragma link C++ class THcAnalyzer+;
 #pragma link C++ class THcRawHit+;
 #pragma link C++ class THcHodoscopeHit+;
-#pragma link C++ class THcDetectorBase+;
-#pragma link C++ class THcDetector+;
-#pragma link C++ class THcSpectrometerDetector+;
-#pragma link C++ class THcNonTrackingDetector+;
+#pragma link C++ class THcHitList+;
 #pragma link C++ class THcHodoscope+;
 
 #endif
diff --git a/src/THcDetector.cxx b/src/THcDetector.cxx
deleted file mode 100644
index 546a2c3970c2217ccb13622c999253997f7ca714..0000000000000000000000000000000000000000
--- a/src/THcDetector.cxx
+++ /dev/null
@@ -1,67 +0,0 @@
-//*-- Author :    Ole Hansen   15-May-00
-
-//////////////////////////////////////////////////////////////////////////
-//
-// THcDetector
-//
-//////////////////////////////////////////////////////////////////////////
-
-#include "THcDetector.h"
-#include "THaApparatus.h"
-
-ClassImp(THcDetector)
-
-//_____________________________________________________________________________
-THcDetector::THcDetector( const char* name, const char* description,
-			  THaApparatus* apparatus )
-  : THcDetectorBase(name,description), fApparatus(apparatus)
-{
-  // Constructor
-
-  if( !name || !*name ) {
-    Error( "THcDetector()", "Must construct detector with valid name! "
-	   "Object construction failed." );
-    MakeZombie();
-    return;
-  }
-}
-
-//_____________________________________________________________________________
-THcDetector::THcDetector( ) : fApparatus(0) {
-  // for ROOT I/O only
-}
-
-//_____________________________________________________________________________
-THcDetector::~THcDetector()
-{
-  // Destructor
-}
-
-//_____________________________________________________________________________
-void THcDetector::SetApparatus( THaApparatus* apparatus )
-{
-  // Associate this detector with the given apparatus.
-  // Only possible before initialization.
-
-  if( IsInit() ) {
-    Warning( Here("SetApparatus()"), "Cannot set apparatus. "
-	     "Object already initialized.");
-    return;
-  }
-  fApparatus = apparatus;
-}
-
-//_____________________________________________________________________________
-void THcDetector::MakePrefix()
-{
-  // Set up name prefix for global variables. Internal function called 
-  // during initialization.
-
-  const char* basename = NULL;
-  THaApparatus *app = GetApparatus();
-  if( app )
-    basename = app->GetName();
-  THcDetectorBase::MakePrefix( basename );
-
-}
-  
diff --git a/src/THcDetector.h b/src/THcDetector.h
deleted file mode 100644
index d048ebdffc1aa4132cecfafd5b4dde393fd5aca9..0000000000000000000000000000000000000000
--- a/src/THcDetector.h
+++ /dev/null
@@ -1,46 +0,0 @@
-#ifndef ROOT_THcDetector
-#define ROOT_THcDetector
-
-//////////////////////////////////////////////////////////////////////////
-//
-// THcDetector
-//
-// Abstract base class for a generic Hall C detector. This class 
-// describes an actual detector (not subdetector) and can be added to
-// an apparatus.
-//
-//////////////////////////////////////////////////////////////////////////
-
-#include "THcDetectorBase.h"
-#include <TRef.h>
-#include "THaApparatus.h"
-
-//class THaApparatus;
-
-class THcDetector : public THcDetectorBase {
-  
-public:
-  virtual ~THcDetector();
-  THaApparatus*  GetApparatus() const   {
-    return static_cast<THaApparatus*>(fApparatus.GetObject());
-  }
-  
-  virtual void   SetApparatus( THaApparatus* );
-
-  THcDetector();  // for ROOT I/O only
-
-protected:
-
-  virtual void MakePrefix();
-
-  //Only derived classes may construct me
-  THcDetector( const char* name, const char* description, 
-	       THaApparatus* apparatus = NULL );  
-
-private:
-  TRef  fApparatus;         // Apparatus containing this detector
-
-  ClassDef(THcDetector,0)   //Abstract base class for a Hall C detector
-};
-
-#endif
diff --git a/src/THcDetectorBase.cxx b/src/THcHitList.cxx
similarity index 100%
rename from src/THcDetectorBase.cxx
rename to src/THcHitList.cxx
diff --git a/src/THcDetectorBase.h b/src/THcHitList.h
similarity index 100%
rename from src/THcDetectorBase.h
rename to src/THcHitList.h
diff --git a/src/THcNonTrackingDetector.cxx b/src/THcNonTrackingDetector.cxx
deleted file mode 100644
index dd0cc66d93b4492ca5de14913e1f43fcd01d9bea..0000000000000000000000000000000000000000
--- a/src/THcNonTrackingDetector.cxx
+++ /dev/null
@@ -1,37 +0,0 @@
-//*-- Author :    Ole Hansen   7-Sep-00
-
-//////////////////////////////////////////////////////////////////////////
-//
-// THcNonTrackingDetector
-//
-//////////////////////////////////////////////////////////////////////////
-
-#include "THcNonTrackingDetector.h"
-
-ClassImp(THcNonTrackingDetector)
-
-//______________________________________________________________________________
-THcNonTrackingDetector::THcNonTrackingDetector( const char* name, 
-						const char* description,
-						THaApparatus* apparatus )
-  : THcSpectrometerDetector(name,description,apparatus)
-{
-  // Normal constructor with name and description
-
-}
-
-//______________________________________________________________________________
-THcNonTrackingDetector::THcNonTrackingDetector( )
-  : THcSpectrometerDetector( )
-{
-  // for ROOT I/O only
-
-}
-
-//______________________________________________________________________________
-THcNonTrackingDetector::~THcNonTrackingDetector()
-{
-  // Destructor
-
-}
-
diff --git a/src/THcNonTrackingDetector.h b/src/THcNonTrackingDetector.h
deleted file mode 100644
index 25b129d234abc64acd0fabd9175931ab1995ca5c..0000000000000000000000000000000000000000
--- a/src/THcNonTrackingDetector.h
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef ROOT_THcNonTrackingDetector
-#define ROOT_THcNonTrackingDetector
-
-//////////////////////////////////////////////////////////////////////////
-//
-// THcNonTrackingDetector.h
-//
-// Abstract base class for a generic non-tracking spectrometer detector. 
-//
-// This is a special THaSpectrometerDetector -- any detector that
-// is not a tracking detector.  This includes PID detectors.
-//
-//////////////////////////////////////////////////////////////////////////
-
-#include "THcSpectrometerDetector.h"
-
-class TClonesArray;
-
-class THcNonTrackingDetector : public THcSpectrometerDetector {
-  
-public:
-  THcNonTrackingDetector(); // only for ROOT I/O
-
-  virtual ~THcNonTrackingDetector();
-  
-  virtual Int_t    CoarseProcess( TClonesArray& tracks ) = 0;
-  virtual Int_t    FineProcess( TClonesArray& tracks )  = 0;
-          Bool_t   IsTracking() { return kFALSE; }
-  virtual Bool_t   IsPid()      { return kFALSE; }
-
-protected:
-
-  //Only derived classes may construct me for real
-
-  THcNonTrackingDetector( const char* name, const char* description,
-			  THaApparatus* a = NULL);
-
-  ClassDef(THcNonTrackingDetector,0)  //ABC for a non-tracking spectrometer detector
-};
-
-#endif
diff --git a/src/THcSpectrometerDetector.cxx b/src/THcSpectrometerDetector.cxx
deleted file mode 100644
index c21122a2bce911beb2975047ec77517296d7c134..0000000000000000000000000000000000000000
--- a/src/THcSpectrometerDetector.cxx
+++ /dev/null
@@ -1,96 +0,0 @@
-//*-- Author :    Ole Hansen   7-Sep-00
-
-//////////////////////////////////////////////////////////////////////////
-//
-// THcSpectrometerDetector
-//
-//////////////////////////////////////////////////////////////////////////
-
-#include "THcSpectrometerDetector.h"
-#include "THaTrack.h"
-#include "TMath.h"
-
-ClassImp(THcSpectrometerDetector)
-
-//______________________________________________________________________________
-THcSpectrometerDetector::THcSpectrometerDetector( const char* name, 
-						  const char* description,
-						  THaApparatus* apparatus )
-  : THcDetector(name,description,apparatus)
-{
-  // Constructor
-
-}
-
-//______________________________________________________________________________
-THcSpectrometerDetector::THcSpectrometerDetector( )
-{
-  // Constructor for ROOT I/O only
-}
-
-//______________________________________________________________________________
-THcSpectrometerDetector::~THcSpectrometerDetector()
-{
-  // Destructor
-
-}
-
-//_____________________________________________________________________________
-void THcSpectrometerDetector::DefineAxes(Double_t rotation_angle)
-{
-  // define variables used for calculating intercepts of tracks
-  // with the detector
-  // right now, we assume that all detectors except VDCs are 
-  // perpendicular to the Transport frame
-
-  fXax.SetXYZ( TMath::Cos(rotation_angle), 0.0, TMath::Sin(rotation_angle) );
-  fYax.SetXYZ( 0.0, 1.0, 0.0 );
-  fZax = fXax.Cross(fYax);
-
-}
-
-//_____________________________________________________________________________
-bool THcSpectrometerDetector::CalcTrackIntercept(THaTrack* theTrack, 
-					 Double_t& t, Double_t& xcross, 
-					 Double_t& ycross)
-{
-  // projects a given track on to the plane of the detector
-  // xcross and ycross are the x and y coords of this intersection
-  // t is the distance from the origin of the track to the given plane.
-  // 
-  // If a hit is NOT found, then t, xcross, and ycross are unchanged.
-  TVector3 t0( theTrack->GetX(), theTrack->GetY(), 0.0 );
-  Double_t norm = TMath::Sqrt(1.0 + theTrack->GetTheta()*theTrack->GetTheta() +
-			      theTrack->GetPhi()*theTrack->GetPhi());
-  TVector3 t_hat( theTrack->GetTheta()/norm, theTrack->GetPhi()/norm, 1.0/norm );
-
-  TVector3 v;
-  if( !IntersectPlaneWithRay( fXax, fYax, fOrigin, t0, t_hat, t, v ))
-    return false;
-  v -= fOrigin;
-  xcross = v.Dot(fXax);
-  ycross = v.Dot(fYax);
-
-  return true;
-}
-
-//_____________________________________________________________________________
-bool THcSpectrometerDetector::CheckIntercept(THaTrack *track)
-{
-  Double_t x, y, t;
-  return CalcTrackIntercept(track, t, x, y);
-}
-
-//_____________________________________________________________________________
-bool THcSpectrometerDetector::CalcInterceptCoords(THaTrack* track, Double_t& x, Double_t& y)
-{
-  Double_t t;
-  return CalcTrackIntercept(track, t, x, y);
-}
-
-//_____________________________________________________________________________
-bool THcSpectrometerDetector::CalcPathLen(THaTrack* track, Double_t& t)
-{
-  Double_t x, y;
-  return CalcTrackIntercept(track, t, x, y);
-}
diff --git a/src/THcSpectrometerDetector.h b/src/THcSpectrometerDetector.h
deleted file mode 100644
index ac909dd6b2e0160caec7da0be62837db82245b10..0000000000000000000000000000000000000000
--- a/src/THcSpectrometerDetector.h
+++ /dev/null
@@ -1,53 +0,0 @@
-#ifndef ROOT_THcSpectrometerDetector
-#define ROOT_THcSpectrometerDetector
-
-//////////////////////////////////////////////////////////////////////////
-//
-// THcSpectrometerDetector
-//
-// Abstract base class for a generic spectrometer detector. 
-//
-// This is a specialized detector class that supports the concept of
-// "tracking" and "PID" detectors.
-//
-//////////////////////////////////////////////////////////////////////////
-
-#include "THcDetector.h"
-
-class THaTrack;
-
-class THcSpectrometerDetector : public THcDetector {
-  
-public:
-  virtual ~THcSpectrometerDetector();
-  
-  virtual Bool_t   IsTracking() = 0;
-  virtual Bool_t   IsPid()      = 0;
-
-          bool     CheckIntercept( THaTrack* track );
-          bool     CalcInterceptCoords( THaTrack* track, 
-					Double_t& x, Double_t& y );
-          bool     CalcPathLen( THaTrack* track, Double_t& t );
-
-  THcSpectrometerDetector();       // for ROOT I/O only
-
-protected:
-
-  // Geometry data
-  TVector3  fXax;                  // X axis of the detector plane
-  TVector3  fYax;                  // Y axis of the detector plane
-  TVector3  fZax;                  // Normal to the detector plane
-
-  virtual void  DefineAxes( Double_t rotation_angle );
-
-          bool  CalcTrackIntercept( THaTrack* track, Double_t& t, 
-				    Double_t& ycross, Double_t& xcross);
-
-  //Only derived classes may construct me
-  THcSpectrometerDetector( const char* name, const char* description,
-			   THaApparatus* a = NULL );
-
-  ClassDef(THcSpectrometerDetector,0)   //ABC for a spectrometer detector
-};
-
-#endif