//*****************************************************
// Class   : Match
// 
// Purpose : Abstract class to match TObjects:
//           Given 2 TObjArray, this class will match elements in those lists.
//           Concrete subclasses have the responsability of implementing 
//           the method:
//               TObject* findBest(TObject* anObject, TObjArray& anObjectList)
//            
//          
// Author  : A. Schwartzman
//
// Date    : 15-May-2001 : Creation of class
//*****************************************************
#ifndef Match_h
#define Match_h

#include "TObject.h"
#include "TObjArray.h"


class Match : public TObject 
{

public:

  ///
  Match();
  ///
  Match(TObjArray& list1, TObjArray& list2);
  ///
  virtual ~Match();

  ///
  TObjArray get_matched1(); 
  ///
  TObjArray get_matched2();
  ///
  TObjArray get_unMatched1();
  ///
  TObjArray get_unMatched2();
   ///
  TObjArray get_matched2unique(); 
  
  ///
  void match();
    
  ///
  virtual TObject* findBest(TObject* anObject, TObjArray& anObjectList) = 0;



protected:

  ///
  TObjArray _list1;
  ///
  TObjArray _list2;

  ///
  TObjArray _match1;
  ///
  TObjArray _match2;



  ClassDef(Match,1)  
};

#endif /* Match */