11 #ifndef ROOSTATS_NumEventsTestStat
12 #define ROOSTATS_NumEventsTestStat
41 class NumEventsTestStat :
public TestStatistic{
44 NumEventsTestStat() : fPdf(0) { }
45 NumEventsTestStat(RooAbsPdf& pdf) {
48 virtual ~NumEventsTestStat() {
54 virtual Double_t Evaluate(RooAbsData& data, RooArgSet& ) {
56 if(data.isWeighted()) {
57 return data.sumEntries();
61 if (!fPdf || fPdf->canBeExtended()) {
62 return data.numEntries();
66 if(data.numEntries() == 1) {
68 const RooArgSet *obsSet = data.get(0);
69 RooLinkedListIter iter = obsSet->iterator();
71 RooRealVar *obs = NULL; Double_t numEvents = 0.0;
72 while((obs = (RooRealVar *)iter.Next()) != NULL) {
73 numEvents += obs->getValV();
78 std::cout <<
"Data set is invalid" << std::endl;
83 virtual const RooAbsArg* GetTestStatistic()
const {
return fPdf;}
85 virtual const TString GetVarName()
const {
return "Number of events";}
92 ClassDef(NumEventsTestStat,1)