From 5620d6aaf48598f3d2fcec82a8f32d0984d14ad7 Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Wed, 26 Jul 2017 15:50:42 +0200 Subject: [PATCH 1/3] Changed RooAbsOptTestStat. to RooAbsTestStat. in TaskSpec --- roofit/roofitcore/inc/RooTaskSpec.h | 13 ++------- roofit/roofitcore/src/RooTaskSpec.cxx | 42 ++++++++++----------------- 2 files changed, 18 insertions(+), 37 deletions(-) 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/RooTaskSpec.cxx b/roofit/roofitcore/src/RooTaskSpec.cxx index e1486f2224ecd..71a474bb7c67e 100644 --- a/roofit/roofitcore/src/RooTaskSpec.cxx +++ b/roofit/roofitcore/src/RooTaskSpec.cxx @@ -37,18 +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; using namespace RooFit; @@ -56,17 +50,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){ @@ -76,14 +64,14 @@ RooTaskSpec::RooTaskSpec(RooAbsReal* nll){ ra->Print(); cout <<"printed"<(ra->list().at(0)) ; + RooAbsTestStatistic* 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)); @@ -102,13 +90,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; From c38bd259608777e1ece49c7290292ec174b93234 Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Wed, 26 Jul 2017 16:18:06 +0200 Subject: [PATCH 2/3] Add function() and data() virtual fcts to RooAbsTestStatistic --- .../roofitcore/inc/RooAbsOptTestStatistic.h | 8 ++++---- roofit/roofitcore/inc/RooAbsTestStatistic.h | 6 ++++++ .../roofitcore/src/RooAbsOptTestStatistic.cxx | 20 +++++++++---------- 3 files changed, 20 insertions(+), 14 deletions(-) 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/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 ; } From dbca675cf45b33c6883d9864d140deb315bea09b Mon Sep 17 00:00:00 2001 From: "E. G. Patrick Bos" Date: Thu, 27 Jul 2017 09:34:49 +0200 Subject: [PATCH 3/3] Compile fix --- roofit/roofitcore/src/RooTaskSpec.cxx | 1 + 1 file changed, 1 insertion(+) diff --git a/roofit/roofitcore/src/RooTaskSpec.cxx b/roofit/roofitcore/src/RooTaskSpec.cxx index 71a474bb7c67e..98f8823b3634c 100644 --- a/roofit/roofitcore/src/RooTaskSpec.cxx +++ b/roofit/roofitcore/src/RooTaskSpec.cxx @@ -43,6 +43,7 @@ ToDo: Simple use demonstration. // #include #include "RooAbsTestStatistic.h" #include "RooAddition.h" +#include "RooAbsData.h" using namespace std; using namespace RooFit;