#ifndef MARS_MFDataChain #define MARS_MFDataChain ///////////////////////////////////////////////////////////////////////////// // // // MFDataChain // // // ///////////////////////////////////////////////////////////////////////////// #ifndef MARS_MFilter #include "MFilter.h" #endif #ifndef MARS_MDataChain #include "MDataChain.h" #endif class MParList; class MFDataChain : public MFilter { private: MDataChain fData; MData *fCond; typedef enum { kELowerThan, kEGreaterThan } FilterType_t; FilterType_t fFilterType; Bool_t fResult; //! void StreamPrimitive(ofstream &out) const; Int_t PreProcess(MParList *pList); Int_t Process(); public: MFDataChain(const char *name=NULL, const char *title=NULL); MFDataChain(const char *rule, const char type, const Double_t val, const char *name=NULL, const char *title=NULL); MFDataChain(const char *rule, const char type, const char *cond, const char *name=NULL, const char *title=NULL); ~MFDataChain(); Bool_t IsExpressionTrue() const { return fResult; } void Print(Option_t *opt = "") const; TString GetRule() const; void SetVariables(const TArrayD &arr) { fData.SetVariables(arr); if (fCond) fCond->SetVariables(arr); } ClassDef(MFDataChain, 1) // A Filter for cuts in any data member }; #endif