#ifndef TRACKFILTER_H
#define TRACKFILTER_H
//_____________________________________________________________________________
///
/// \class TrackFilter 
///
/// Abstract class to define track "filter" interface. Concrete implementations
/// can have different sets of cuts. 
///
/// \author Sergei avva@fnal.gov
///

#include "Rtypes.h"

class AlgConfig;
class TrackContext;

class TrackFilter {

public:
    
    virtual ~TrackFilter() {};

    ///
    /// configure filter using given AlgConfig 
    ///
    virtual void    Config(const AlgConfig& ) = 0;
    
    ///
    /// filter method
    ///
    virtual Bool_t  Pass(const TrackContext& ) const = 0;
};

#endif
