00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef ROO_DATA_WEIGHTED_AVERAGE
00017 #define ROO_DATA_WEIGHTED_AVERAGE
00018
00019 #include "RooAbsOptTestStatistic.h"
00020 #include "RooCmdArg.h"
00021
00022 class RooDataWeightedAverage : public RooAbsOptTestStatistic {
00023 public:
00024
00025
00026 RooDataWeightedAverage() {
00027
00028 } ;
00029
00030 RooDataWeightedAverage(const char *name, const char *title, RooAbsReal& real, RooAbsData& data, const RooArgSet& projDeps,
00031 Int_t nCPU=1, Bool_t interleave=kFALSE, Bool_t showProgress=kFALSE, Bool_t verbose=kTRUE) ;
00032
00033 RooDataWeightedAverage(const RooDataWeightedAverage& other, const char* name=0);
00034 virtual TObject* clone(const char* newname) const { return new RooDataWeightedAverage(*this,newname); }
00035
00036 virtual RooAbsTestStatistic* create(const char *name, const char *title, RooAbsReal& real, RooAbsData& adata,
00037 const RooArgSet& projDeps, const char* =0, const char* =0,
00038 Int_t nCPU=1, Bool_t interleave=kFALSE, Bool_t verbose=kTRUE, Bool_t =kFALSE) {
00039
00040 return new RooDataWeightedAverage(name,title,real,adata,projDeps,nCPU,interleave,verbose) ;
00041 }
00042
00043 virtual Double_t globalNormalization() const ;
00044
00045 virtual ~RooDataWeightedAverage();
00046
00047
00048 protected:
00049
00050 Double_t _sumWeight ;
00051 Bool_t _showProgress ;
00052 virtual Double_t evaluatePartition(Int_t firstEvent, Int_t lastEvent, Int_t stepSize) const ;
00053
00054 ClassDef(RooDataWeightedAverage,1)
00055 };
00056
00057 #endif