#ifndef MARS_MFilter
#define MARS_MFilter

#ifndef MARS_MTask
#include "MTask.h"
#endif

class MParList;

class MFilter : public MTask
{
public:
    MFilter(const char *name=NULL, const char *title=NULL);

    virtual Bool_t IsExpressionTrue() const = 0;

    virtual Bool_t PreProcess(MParList *pList);
    virtual Bool_t Process();
    virtual Bool_t PostProcess();

    virtual TString GetRule() const;

    ClassDef(MFilter, 0)		// Abstract base class for the filters
};

#endif
