diff --git a/roofit/roofitcore/inc/RooAbsOptTestStatistic.h b/roofit/roofitcore/inc/RooAbsOptTestStatistic.h index ee49889c27e4f..83fb0036f0824 100644 --- a/roofit/roofitcore/inc/RooAbsOptTestStatistic.h +++ b/roofit/roofitcore/inc/RooAbsOptTestStatistic.h @@ -39,11 +39,11 @@ class RooAbsOptTestStatistic : public RooAbsTestStatistic { virtual Double_t combinedValue(RooAbsReal** gofArray, Int_t nVal) const ; - RooAbsReal& function() { return *_funcClone ; } - const RooAbsReal& function() const { return *_funcClone ; } + virtual RooAbsReal& function() { return *_funcClone ; } + virtual const RooAbsReal& function() const { return *_funcClone ; } - RooAbsData& data() ; - const RooAbsData& data() const ; + virtual RooAbsData& data() ; + virtual const RooAbsData& data() const ; virtual const char* cacheUniqueSuffix() const { return Form("_%lx", (ULong_t)_dataClone) ; } diff --git a/roofit/roofitcore/inc/RooAbsTestStatistic.h b/roofit/roofitcore/inc/RooAbsTestStatistic.h index fe847e6a3d320..bc7c063f71398 100644 --- a/roofit/roofitcore/inc/RooAbsTestStatistic.h +++ b/roofit/roofitcore/inc/RooAbsTestStatistic.h @@ -68,6 +68,12 @@ class RooAbsTestStatistic : public RooAbsReal { virtual Double_t offset() const { return _offset ; } virtual Double_t offsetCarry() const { return _offsetCarry; } + virtual RooAbsReal& function() { return *_func ; } + virtual const RooAbsReal& function() const { return *_func ; } + + virtual RooAbsData& data() { return *_data ; } + virtual const RooAbsData& data() const { return *_data ; } + protected: virtual void printCompactTreeHook(std::ostream& os, const char* indent="") ; diff --git a/roofit/roofitcore/inc/RooTaskSpec.h b/roofit/roofitcore/inc/RooTaskSpec.h index 16ae245461c51..679c83ca1016a 100644 --- a/roofit/roofitcore/inc/RooTaskSpec.h +++ b/roofit/roofitcore/inc/RooTaskSpec.h @@ -17,14 +17,7 @@ #define ROO_TASK_SPEC #include "RooFit.h" -#include #include -#include -#include "RooMsgService.h" -#include "RooNLLVar.h" -#include "RooAbsTestStatistic.h" -#include "RooAbsOptTestStatistic.h" -#include "RooAddition.h" #include "RooAbsTestStatistic.h" class RooArgList; @@ -32,7 +25,7 @@ class RooArgList; class RooTaskSpec { public: RooTaskSpec(); - RooTaskSpec(RooAbsOptTestStatistic* nll); + RooTaskSpec(RooAbsTestStatistic* rats_nll); RooTaskSpec(RooAbsReal* nll); struct Task { Int_t id; @@ -43,8 +36,8 @@ class RooTaskSpec { }; std::list tasks; private: - void _initialise(RooAbsOptTestStatistic* rats); - Task _fill_task(const Int_t n, RooAbsOptTestStatistic* rats); + void _initialise(RooAbsTestStatistic* rats); + Task _fill_task(const Int_t n, RooAbsTestStatistic* rats); Int_t _fit_case; Int_t n_tasks = tasks.size(); diff --git a/roofit/roofitcore/src/RooAbsOptTestStatistic.cxx b/roofit/roofitcore/src/RooAbsOptTestStatistic.cxx index 3a8026e521be4..16bc642db72da 100644 --- a/roofit/roofitcore/src/RooAbsOptTestStatistic.cxx +++ b/roofit/roofitcore/src/RooAbsOptTestStatistic.cxx @@ -815,33 +815,33 @@ Bool_t RooAbsOptTestStatistic::setDataSlave(RooAbsData& indata, Bool_t cloneData //////////////////////////////////////////////////////////////////////////////// -RooAbsData& RooAbsOptTestStatistic::data() -{ +RooAbsData& RooAbsOptTestStatistic::data() +{ if (_sealed) { Bool_t notice = (sealNotice() && strlen(sealNotice())) ; - coutW(ObjectHandling) << "RooAbsOptTestStatistic::data(" << GetName() - << ") WARNING: object sealed by creator - access to data is not permitted: " + coutW(ObjectHandling) << "RooAbsOptTestStatistic::data(" << GetName() + << ") WARNING: object sealed by creator - access to data is not permitted: " << (notice?sealNotice():"") << endl ; static RooDataSet dummy ("dummy","dummy",RooArgSet()) ; return dummy ; } - return *_dataClone ; + return *_dataClone ; } //////////////////////////////////////////////////////////////////////////////// -const RooAbsData& RooAbsOptTestStatistic::data() const -{ +const RooAbsData& RooAbsOptTestStatistic::data() const +{ if (_sealed) { Bool_t notice = (sealNotice() && strlen(sealNotice())) ; - coutW(ObjectHandling) << "RooAbsOptTestStatistic::data(" << GetName() - << ") WARNING: object sealed by creator - access to data is not permitted: " + coutW(ObjectHandling) << "RooAbsOptTestStatistic::data(" << GetName() + << ") WARNING: object sealed by creator - access to data is not permitted: " << (notice?sealNotice():"") << endl ; static RooDataSet dummy ("dummy","dummy",RooArgSet()) ; return dummy ; } - return *_dataClone ; + return *_dataClone ; } diff --git a/roofit/roofitcore/src/RooTaskSpec.cxx b/roofit/roofitcore/src/RooTaskSpec.cxx index f718aeeb9f917..a63abad5ec7f7 100644 --- a/roofit/roofitcore/src/RooTaskSpec.cxx +++ b/roofit/roofitcore/src/RooTaskSpec.cxx @@ -37,17 +37,12 @@ ToDo: Simple use demonstration. **/ -#include "Riostream.h" -#include "RooFit.h" -#include -#include -#include "RooMsgService.h" -#include "RooNLLVar.h" +#include "RooTaskSpec.h" +// #include "Riostream.h" +// #include "RooFit.h" +// #include #include "RooAbsTestStatistic.h" -#include "RooAbsOptTestStatistic.h" #include "RooAddition.h" -#include "RooAbsTestStatistic.h" -#include "RooTaskSpec.h" #include "RooAbsData.h" using namespace std; @@ -56,17 +51,11 @@ using namespace RooFit; //ClassImp(RooTaskSpec); RooTaskSpec::RooTaskSpec(){}; -RooTaskSpec::RooTaskSpec(RooAbsOptTestStatistic* nll){ - cout <<"starting case1"<(nll) ; - if (rats) { - cout << " NLL is a RooAbsOptTestStatistic (Case 1)" << endl ; - rats->Print(); - _fit_case = 1; - _initialise(rats); - } else { - _fit_case = 0; - } +RooTaskSpec::RooTaskSpec(RooAbsTestStatistic* rats_nll){ + cout << " NLL is a RooAbsTestStatistic (Case 1)" << endl ; + rats_nll->Print(); + _fit_case = 1; + _initialise(rats_nll); } RooTaskSpec::RooTaskSpec(RooAbsReal* nll){ @@ -79,12 +68,12 @@ RooTaskSpec::RooTaskSpec(RooAbsReal* nll){ RooAbsOptTestStatistic* rats = dynamic_cast(ra->list().at(0)) ; if (!rats) { - cout << "ERROR: NLL is a RooAddition, but first element of addition is not a RooAbsOptTestStatistic!" << endl ; + cout << "ERROR: NLL is a RooAddition, but first element of addition is not a RooAbsTestStatistic!" << endl ; _fit_case = 0; cout << "It is a "<list().at(0)<numSimultaneous()==0){ // _set.add(_fill_task(0, rats)); @@ -104,13 +93,13 @@ void RooTaskSpec::_initialise (RooAbsOptTestStatistic* rats){ for (Int_t i=0 ; i < rats->numSimultaneous() ; i++) { cout << "SimComponent #" << i << " = " ; rats->simComponents()[i]->Print() ; - RooAbsOptTestStatistic* comp = (RooAbsOptTestStatistic*) rats->simComponents()[i] ; + RooAbsTestStatistic* comp = (RooAbsTestStatistic*) rats->simComponents()[i] ; tasks.push_back(_fill_task(i, comp)); } } } -RooTaskSpec::Task RooTaskSpec::_fill_task(Int_t n, RooAbsOptTestStatistic* rats){ +RooTaskSpec::Task RooTaskSpec::_fill_task(Int_t n, RooAbsTestStatistic* rats){ Bool_t b = rats->function().getAttribute("BinnedLikelihood") ; Task t; t.id = n;