#ifndef MARS_MChisqEval #define MARS_MChisqEval #ifndef ROOT_MTask #include "MTask.h" #endif class MData; class MParameterD; class MChisqEval : public MTask { private: static const TString gsDefName; static const TString gsDefTitle; MData *fData0; // Data Member one (monte carlo data or chisq function) MData *fData1; // Data Member two (measured data) MParameterD *fWeight; //! Storage for weight MParameterD *fResult; //! Storage for result TString fNameResult; TString fNameWeight; Double_t fChisq; //! Evaluated chi square Double_t fSumW; //! Sum of weights void StreamPrimitive(ostream &out) const; enum { kIsOwner = BIT(14) }; Int_t PreProcess(MParList *plist); Int_t Process(); Int_t PostProcess(); public: MChisqEval(const char *name=NULL, const char *title=NULL); MChisqEval(MData *y1, const char *name=NULL, const char *title=NULL); MChisqEval(MData *y1, MData *y2, const char *name=NULL, const char *title=NULL); ~MChisqEval(); void SetY1(MData *data); void SetY2(MData *data); void SetY1(const TString data); void SetY2(const TString data); void SetOwner(Bool_t o=kTRUE) { o ? SetBit(kIsOwner) : ResetBit(kIsOwner); } void SetNameWeight(TString w="MWeight") { fNameWeight=w; } Double_t GetChisq() const { return fChisq; } ClassDef(MChisqEval, 0) }; #endif