#ifndef MARS_MF #define MARS_MF ///////////////////////////////////////////////////////////////////////////// // // // MF // // // ///////////////////////////////////////////////////////////////////////////// #ifndef MARS_MFilter #include "MFilter.h" #endif class MParList; class TMethodCall; class MF : public MFilter { private: static const TString gsDefName; //! static const TString gsDefTitle; //! MFilter *fF; // Filter Int_t IsRule(TString &txt, TString &rule) const; Int_t IsVal(const TString &txt) const; Int_t IsAlNum(TString txt) const; MFilter *ParseRule(TString &txt, MFilter *filter0, Int_t level) const; MFilter *ParseString(TString txt, Int_t level); void StreamPrimitive(ofstream &out) const; public: MF(); MF(const char *text, const char *name=NULL, const char *title=NULL); ~MF(); TString GetRule() const { return fF ? fF->GetRule() : MFilter::GetRule(); } Bool_t IsExpressionTrue() const; Int_t PreProcess(MParList *pList); Int_t Process(); Int_t PostProcess(); void Print(Option_t *opt="") const; void SetVariables(const TArrayD &arr) { if (fF) fF->SetVariables(arr); } ClassDef(MF, 0) // A Filter for cuts in any data member }; #endif