// @(#)root/roostats:$Id: NumberCountingPdfFactory.h 26324 2008-11-20 17:17:32Z moneta $ // Author: Kyle Cranmer 28/07/2008 /************************************************************************* * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef RooStats_NumberCountingPdfFactory #define RooStats_NumberCountingPdfFactory #ifndef ROOT_Rtypes #include "Rtypes.h" #endif class RooWorkspace; class RooRealVar; namespace RooStats{ class NumberCountingPdfFactory { public: // need one for expected and one for observed NumberCountingPdfFactory(); virtual ~NumberCountingPdfFactory(); void AddModel(Double_t* sigExp, Int_t nchan, RooWorkspace* ws, const char* pdfName = "CombinedPdf", const char* masterSignalName = "masterSignal") ; void AddData(Double_t* mainMeas, Double_t* bkgMeas, Double_t* db, Int_t nbins, RooWorkspace* ws, const char* dsName = "NumberCountingData"); void AddExpData(Double_t* sigExp, Double_t* bkgExp, Double_t* db, Int_t nbins, RooWorkspace* ws, const char* dsName = "ExpectedNumberCountingData"); void AddExpDataWithSideband(Double_t* sigExp, Double_t* bkgExp, Double_t* tau, Int_t nbins, RooWorkspace* ws, const char* dsName = "NumberCountingData"); void AddDataWithSideband(Double_t* mainMeas, Double_t* sideband, Double_t* tau, Int_t nbins, RooWorkspace* ws, const char* dsName = "ExpectedNumberCountingData"); private: RooRealVar* SafeObservableCreation(RooWorkspace* ws, const char* varName, Double_t value) ; RooRealVar* SafeObservableCreation(RooWorkspace* ws, const char* varName, Double_t value, Double_t maximum) ; protected: ClassDef(NumberCountingPdfFactory,1) // A factory specific to common number counting problems. }; } #endif