////////////////////////////////////////////////////////////////////////
// $Id: AlgThruMuonList.h,v 1.4 2000/11/28 12:45:15 psm Exp $
//
// AlgThruMuonList
//
// An Algorithm class that matches CandMSTClusters together to create a
// list of CandThruMuons.
//
// Author:  P.S. Miyagawa 9/2000
////////////////////////////////////////////////////////////////////////

#ifndef ALGTHRUMUONLIST_H
#define ALGTHRUMUONLIST_H

#include "Algorithm/AlgBase.h"

class CandMSTClusterHandle;
class TObjArray;

class AlgThruMuonList : public AlgBase
{

public:

// Constructors and destructors
   AlgThruMuonList();
   virtual ~AlgThruMuonList();

// State testing methods
   virtual void Trace(const char *c) const;

// State changing methods
   virtual void RunAlg(AlgConfig &ac, CandHandle &ch, CandContext &cx);

private:

// State testing methods
   Bool_t IsMatch(const CandMSTClusterHandle &clh1,
                  const CandMSTClusterHandle &clh2, Float_t diff) const;

// State changing methods
   void RunMatchMSTClusterAlg(Float_t diff, TObjArray *&toayUV);

ClassDef(AlgThruMuonList,1)              // ThruMuonList Algorithm Class

};

#endif                                              // ALGTHRUMUONLIST_H
