// RooAbsTestStatistic is the abstract base class for all test
// statistics. Test statistics that evaluate the PDF at each data
// point should inherit from the RooAbsOptTestStatistic class which
// implements several generic optimizations that can be done for such
// quantities.
//
// This test statistic base class organizes calculation of test
// statistic values for RooSimultaneous PDF as a combination of test
// statistic values for the PDF components of the simultaneous PDF and
// organizes multi-processor parallel calculation of test statistic
// values. For the latter, the test statistic value is calculated in
// partitions in parallel executing processes and a posteriori
// combined in the main thread.
// END_HTML
#include "RooFit.h"
#include "Riostream.h"
#include "RooAbsTestStatistic.h"
#include "RooAbsPdf.h"
#include "RooSimultaneous.h"
#include "RooAbsData.h"
#include "RooArgSet.h"
#include "RooRealVar.h"
#include "RooNLLVar.h"
#include "RooRealMPFE.h"
#include "RooErrorHandler.h"
#include "RooMsgService.h"
#include "TTimeStamp.h"
#include "RooProdPdf.h"
#include "RooRealSumPdf.h"
#include <string>
using namespace std;
ClassImp(RooAbsTestStatistic)
;
RooAbsTestStatistic::RooAbsTestStatistic() :
_func(0), _data(0), _projDeps(0), _splitRange(0), _simCount(0),
_verbose(kFALSE), _init(kFALSE), _gofOpMode(Slave), _nEvents(0), _setNum(0),
_numSets(0), _extSet(0), _nGof(0), _gofArray(0), _nCPU(1), _mpfeArray(0),
_mpinterl(RooFit::BulkPartition), _doOffset(kFALSE), _offset(0),
_offsetCarry(0), _evalCarry(0)
{
}
RooAbsTestStatistic::RooAbsTestStatistic(const char *name, const char *title, RooAbsReal& real, RooAbsData& data,
const RooArgSet& projDeps, const char* rangeName, const char* addCoefRangeName,
Int_t nCPU, RooFit::MPSplit interleave, Bool_t verbose, Bool_t splitCutRange) :
RooAbsReal(name,title),
_paramSet("paramSet","Set of parameters",this),
_func(&real),
_data(&data),
_projDeps((RooArgSet*)projDeps.Clone()),
_rangeName(rangeName?rangeName:""),
_addCoefRangeName(addCoefRangeName?addCoefRangeName:""),
_splitRange(splitCutRange),
_simCount(1),
_verbose(verbose),
_nGof(0),
_gofArray(0),
_nCPU(nCPU),
_mpfeArray(0),
_mpinterl(interleave),
_doOffset(kFALSE),
_offset(0),
_offsetCarry(0),
_evalCarry(0)
{
RooArgSet* params = real.getParameters(&data) ;
_paramSet.add(*params) ;
delete params ;
if (_nCPU>1 || _nCPU==-1) {
if (_nCPU==-1) {
_nCPU=1 ;
}
_gofOpMode = MPMaster ;
} else {
Bool_t simMode = dynamic_cast<RooSimultaneous*>(&real)?kTRUE:kFALSE ;
if (simMode) {
_gofOpMode = SimMaster ;
} else {
_gofOpMode = Slave ;
}
}
_setNum = 0 ;
_extSet = 0 ;
_numSets = 1 ;
_init = kFALSE ;
_nEvents = data.numEntries() ;
}
RooAbsTestStatistic::RooAbsTestStatistic(const RooAbsTestStatistic& other, const char* name) :
RooAbsReal(other,name),
_paramSet("paramSet","Set of parameters",this),
_func(other._func),
_data(other._data),
_projDeps((RooArgSet*)other._projDeps->Clone()),
_rangeName(other._rangeName),
_addCoefRangeName(other._addCoefRangeName),
_splitRange(other._splitRange),
_simCount(1),
_verbose(other._verbose),
_nGof(0),
_gofArray(0),
_gofSplitMode(other._gofSplitMode),
_nCPU(other._nCPU),
_mpfeArray(0),
_mpinterl(other._mpinterl),
_doOffset(other._doOffset),
_offset(other._offset),
_offsetCarry(other._offsetCarry),
_evalCarry(other._evalCarry)
{
_paramSet.add(other._paramSet) ;
if (_nCPU>1 || _nCPU==-1) {
if (_nCPU==-1) {
_nCPU=1 ;
}
_gofOpMode = MPMaster ;
} else {
Bool_t simMode = dynamic_cast<RooSimultaneous*>(_func)?kTRUE:kFALSE ;
if (simMode) {
_gofOpMode = SimMaster ;
} else {
_gofOpMode = Slave ;
}
}
_setNum = 0 ;
_extSet = 0 ;
_numSets = 1 ;
_init = kFALSE ;
_nEvents = _data->numEntries() ;
}
RooAbsTestStatistic::~RooAbsTestStatistic()
{
if (MPMaster == _gofOpMode && _init) {
for (Int_t i = 0; i < _nCPU; ++i) delete _mpfeArray[i];
delete[] _mpfeArray ;
}
if (SimMaster == _gofOpMode && _init) {
for (Int_t i = 0; i < _nGof; ++i) delete _gofArray[i];
delete[] _gofArray ;
}
delete _projDeps ;
}
Double_t RooAbsTestStatistic::evaluate() const
{
if (!_init) {
const_cast<RooAbsTestStatistic*>(this)->initialize() ;
}
if (SimMaster == _gofOpMode) {
Double_t ret = 0.;
if (_mpinterl == RooFit::BulkPartition || _mpinterl == RooFit::Interleave ) {
ret = combinedValue((RooAbsReal**)_gofArray,_nGof);
} else {
Double_t sum = 0., carry = 0.;
for (Int_t i = 0 ; i < _nGof; ++i) {
if (i % _numSets == _setNum || (_mpinterl==RooFit::Hybrid && _gofSplitMode[i] != RooFit::SimComponents )) {
Double_t y = _gofArray[i]->getValV();
carry += _gofArray[i]->getCarry();
y -= carry;
const Double_t t = sum + y;
carry = (t - sum) - y;
sum = t;
}
}
ret = sum ;
_evalCarry = carry;
}
if (numSets()==1) {
const Double_t norm = globalNormalization();
ret /= norm;
_evalCarry /= norm;
}
return ret ;
} else if (MPMaster == _gofOpMode) {
for (Int_t i = 0; i < _nCPU; ++i) _mpfeArray[i]->calculate();
Double_t sum(0), carry = 0.;
for (Int_t i = 0; i < _nCPU; ++i) {
Double_t y = _mpfeArray[i]->getValV();
carry += _mpfeArray[i]->getCarry();
y -= carry;
const Double_t t = sum + y;
carry = (t - sum) - y;
sum = t;
}
Double_t ret = sum ;
_evalCarry = carry;
return ret ;
} else {
Int_t nFirst(0), nLast(_nEvents), nStep(1) ;
switch (_mpinterl) {
case RooFit::BulkPartition:
nFirst = _nEvents * _setNum / _numSets ;
nLast = _nEvents * (_setNum+1) / _numSets ;
nStep = 1 ;
break;
case RooFit::Interleave:
nFirst = _setNum ;
nLast = _nEvents ;
nStep = _numSets ;
break ;
case RooFit::SimComponents:
nFirst = 0 ;
nLast = _nEvents ;
nStep = 1 ;
break ;
case RooFit::Hybrid:
throw(std::string("this should never happen")) ;
break ;
}
Double_t ret = evaluatePartition(nFirst,nLast,nStep);
if (numSets()==1) {
const Double_t norm = globalNormalization();
ret /= norm;
_evalCarry /= norm;
}
return ret ;
}
}
Bool_t RooAbsTestStatistic::initialize()
{
if (_init) return kFALSE;
if (MPMaster == _gofOpMode) {
initMPMode(_func,_data,_projDeps,_rangeName.size()?_rangeName.c_str():0,_addCoefRangeName.size()?_addCoefRangeName.c_str():0) ;
} else if (SimMaster == _gofOpMode) {
initSimMode((RooSimultaneous*)_func,_data,_projDeps,_rangeName.size()?_rangeName.c_str():0,_addCoefRangeName.size()?_addCoefRangeName.c_str():0) ;
}
_init = kTRUE;
return kFALSE;
}
Bool_t RooAbsTestStatistic::redirectServersHook(const RooAbsCollection& newServerList, Bool_t mustReplaceAll, Bool_t nameChange, Bool_t)
{
if (SimMaster == _gofOpMode && _gofArray) {
for (Int_t i = 0; i < _nGof; ++i) {
if (_gofArray[i]) {
_gofArray[i]->recursiveRedirectServers(newServerList,mustReplaceAll,nameChange);
}
}
} else if (MPMaster == _gofOpMode&& _mpfeArray) {
for (Int_t i = 0; i < _nCPU; ++i) {
if (_mpfeArray[i]) {
_mpfeArray[i]->recursiveRedirectServers(newServerList,mustReplaceAll,nameChange);
}
}
}
return kFALSE;
}
void RooAbsTestStatistic::printCompactTreeHook(ostream& os, const char* indent)
{
if (SimMaster == _gofOpMode) {
os << indent << "RooAbsTestStatistic begin GOF contents" << endl ;
for (Int_t i = 0; i < _nGof; ++i) {
if (_gofArray[i]) {
TString indent2(indent);
indent2 += Form("[%d] ",i);
_gofArray[i]->printCompactTreeHook(os,indent2);
}
}
os << indent << "RooAbsTestStatistic end GOF contents" << endl;
} else if (MPMaster == _gofOpMode) {
}
}
void RooAbsTestStatistic::constOptimizeTestStatistic(ConstOpCode opcode, Bool_t doAlsoTrackingOpt)
{
initialize();
if (SimMaster == _gofOpMode) {
for (Int_t i = 0; i < _nGof; ++i) {
RooFit::MPSplit effSplit = (_mpinterl!=RooFit::Hybrid) ? _mpinterl : _gofSplitMode[i];
if ( (i % _numSets == _setNum) || (effSplit != RooFit::SimComponents) ) {
if (_gofArray[i]) _gofArray[i]->constOptimizeTestStatistic(opcode,doAlsoTrackingOpt);
}
}
} else if (MPMaster == _gofOpMode) {
for (Int_t i = 0; i < _nCPU; ++i) {
_mpfeArray[i]->constOptimizeTestStatistic(opcode,doAlsoTrackingOpt);
}
}
}
void RooAbsTestStatistic::setMPSet(Int_t inSetNum, Int_t inNumSets)
{
_setNum = inSetNum; _numSets = inNumSets;
_extSet = _mpinterl==RooFit::SimComponents ? _setNum : (_numSets - 1);
if (SimMaster == _gofOpMode) {
initialize();
for (Int_t i = 0; i < _nGof; ++i) {
if (_gofArray[i]) _gofArray[i]->setMPSet(inSetNum,inNumSets);
}
}
}
void RooAbsTestStatistic::initMPMode(RooAbsReal* real, RooAbsData* data, const RooArgSet* projDeps, const char* rangeName, const char* addCoefRangeName)
{
_mpfeArray = new pRooRealMPFE[_nCPU];
RooAbsTestStatistic* gof = create(GetName(),GetTitle(),*real,*data,*projDeps,rangeName,addCoefRangeName,1,_mpinterl,_verbose,_splitRange);
gof->recursiveRedirectServers(_paramSet);
for (Int_t i = 0; i < _nCPU; ++i) {
gof->setMPSet(i,_nCPU);
gof->SetName(Form("%s_GOF%d",GetName(),i));
gof->SetTitle(Form("%s_GOF%d",GetTitle(),i));
ccoutD(Eval) << "RooAbsTestStatistic::initMPMode: starting remote server process #" << i << endl;
_mpfeArray[i] = new RooRealMPFE(Form("%s_%lx_MPFE%d",GetName(),(ULong_t)this,i),Form("%s_%lx_MPFE%d",GetTitle(),(ULong_t)this,i),*gof,false);
_mpfeArray[i]->initialize();
if (i > 0) {
_mpfeArray[i]->followAsSlave(*_mpfeArray[0]);
}
}
_mpfeArray[_nCPU - 1]->addOwnedComponents(*gof);
coutI(Eval) << "RooAbsTestStatistic::initMPMode: started " << _nCPU << " remote server process." << endl;
return ;
}
void RooAbsTestStatistic::initSimMode(RooSimultaneous* simpdf, RooAbsData* data,
const RooArgSet* projDeps, const char* rangeName, const char* addCoefRangeName)
{
RooAbsCategoryLValue& simCat = (RooAbsCategoryLValue&) simpdf->indexCat();
TString simCatName(simCat.GetName());
TList* dsetList = const_cast<RooAbsData*>(data)->split(simCat,processEmptyDataSets());
if (!dsetList) {
coutE(Fitting) << "RooAbsTestStatistic::initSimMode(" << GetName() << ") ERROR: index category of simultaneous pdf is missing in dataset, aborting" << endl;
throw std::string("RooAbsTestStatistic::initSimMode() ERROR, index category of simultaneous pdf is missing in dataset, aborting");
}
Int_t n = 0;
_nGof = 0;
RooCatType* type;
TIterator* catIter = simCat.typeIterator();
while ((type = (RooCatType*) catIter->Next())) {
RooAbsPdf* pdf = simpdf->getPdf(type->GetName());
RooAbsData* dset = (RooAbsData*) dsetList->FindObject(type->GetName());
if (pdf && dset && (0. != dset->sumEntries() || processEmptyDataSets())) {
++_nGof;
}
}
_gofArray = new pRooAbsTestStatistic[_nGof];
_gofSplitMode.resize(_nGof);
catIter->Reset();
while ((type = (RooCatType*) catIter->Next())) {
RooAbsPdf* pdf = simpdf->getPdf(type->GetName());
RooAbsData* dset = (RooAbsData*) dsetList->FindObject(type->GetName());
if (pdf && dset && (0. != dset->sumEntries() || processEmptyDataSets())) {
ccoutI(Fitting) << "RooAbsTestStatistic::initSimMode: creating slave calculator #" << n << " for state " << type->GetName()
<< " (" << dset->numEntries() << " dataset entries)" << endl;
RooAbsPdf* binnedPdf = 0 ;
if (pdf->getAttribute("BinnedLikelihood") && pdf->IsA()->InheritsFrom(RooRealSumPdf::Class())) {
binnedPdf = pdf ;
} else if (pdf->IsA()->InheritsFrom(RooProdPdf::Class())) {
RooFIter iter = ((RooProdPdf*)pdf)->pdfList().fwdIterator() ;
RooAbsArg* component ;
while ((component = iter.next())) {
if (component->getAttribute("BinnedLikelihood") && component->IsA()->InheritsFrom(RooRealSumPdf::Class())) {
binnedPdf = (RooAbsPdf*) component ;
}
}
}
if (_splitRange && rangeName) {
_gofArray[n] = create(type->GetName(),type->GetName(),(binnedPdf?*binnedPdf:*pdf),*dset,*projDeps,
Form("%s_%s",rangeName,type->GetName()),addCoefRangeName,_nCPU*(_mpinterl?-1:1),_mpinterl,_verbose,_splitRange,(binnedPdf?kTRUE:kFALSE));
} else {
_gofArray[n] = create(type->GetName(),type->GetName(),(binnedPdf?*binnedPdf:*pdf),*dset,*projDeps,
rangeName,addCoefRangeName,_nCPU,_mpinterl,_verbose,_splitRange,(binnedPdf?kTRUE:kFALSE));
}
_gofArray[n]->setSimCount(_nGof);
if (_mpinterl==RooFit::Hybrid) {
if (dset->numEntries()<10) {
_gofSplitMode[n] = RooFit::SimComponents;
_gofArray[n]->_mpinterl = RooFit::SimComponents;
} else {
_gofSplitMode[n] = RooFit::BulkPartition;
_gofArray[n]->_mpinterl = RooFit::BulkPartition;
}
}
RooArgSet* actualParams = pdf->getParameters(dset);
RooArgSet* selTargetParams = (RooArgSet*) _paramSet.selectCommon(*actualParams);
_gofArray[n]->recursiveRedirectServers(*selTargetParams);
delete selTargetParams;
delete actualParams;
++n;
} else {
if ((!dset || (0. != dset->sumEntries() && !processEmptyDataSets())) && pdf) {
if (_verbose) {
ccoutD(Fitting) << "RooAbsTestStatistic::initSimMode: state " << type->GetName()
<< " has no data entries, no slave calculator created" << endl;
}
}
}
}
coutI(Fitting) << "RooAbsTestStatistic::initSimMode: created " << n << " slave calculators." << endl;
TIterator* iter = dsetList->MakeIterator();
TObject* ds;
while((ds = iter->Next())) {
delete ds;
}
delete iter;
delete dsetList;
delete catIter;
}
Bool_t RooAbsTestStatistic::setData(RooAbsData& indata, Bool_t cloneData)
{
if (isOffsetting()) {
enableOffsetting(kFALSE);
enableOffsetting(kTRUE);
}
switch(operMode()) {
case Slave:
return setDataSlave(indata, cloneData);
case SimMaster:
if (indata.canSplitFast()) {
for (Int_t i = 0; i < _nGof; ++i) {
RooAbsData* compData = indata.getSimData(_gofArray[i]->GetName());
_gofArray[i]->setDataSlave(*compData, cloneData);
}
} else if (0 == indata.numEntries()) {
for (Int_t i = 0; i < _nGof; ++i) {
_gofArray[i]->setDataSlave(indata, cloneData);
}
} else {
const RooAbsCategoryLValue* indexCat = & ((RooSimultaneous*)_func)->indexCat();
TList* dlist = indata.split(*indexCat, kTRUE);
for (Int_t i = 0; i < _nGof; ++i) {
RooAbsData* compData = (RooAbsData*) dlist->FindObject(_gofArray[i]->GetName());
if (compData) {
_gofArray[i]->setDataSlave(*compData,kFALSE,kTRUE);
} else {
coutE(DataHandling) << "RooAbsTestStatistic::setData(" << GetName() << ") ERROR: Cannot find component data for state " << _gofArray[i]->GetName() << endl;
}
}
}
break;
case MPMaster:
coutF(DataHandling) << "RooAbsTestStatistic::setData(" << GetName() << ") FATAL: setData() is not supported in multi-processor mode" << endl;
throw string("RooAbsTestStatistic::setData is not supported in MPMaster mode");
break;
}
return kTRUE;
}
void RooAbsTestStatistic::enableOffsetting(Bool_t flag)
{
if (!_init) {
const_cast<RooAbsTestStatistic*>(this)->initialize() ;
}
switch(operMode()) {
case Slave:
_doOffset = flag ;
if (!_doOffset) {
_offset = 0 ;
_offsetCarry = 0;
}
setValueDirty() ;
break ;
case SimMaster:
_doOffset = flag;
for (Int_t i = 0; i < _nGof; ++i) {
_gofArray[i]->enableOffsetting(flag);
}
break ;
case MPMaster:
_doOffset = flag;
for (Int_t i = 0; i < _nCPU; ++i) {
_mpfeArray[i]->enableOffsetting(flag);
}
break;
}
}
Double_t RooAbsTestStatistic::getCarry() const
{ return _evalCarry; }
RooAbsTestStatistic.cxx:1 RooAbsTestStatistic.cxx:2 RooAbsTestStatistic.cxx:3 RooAbsTestStatistic.cxx:4 RooAbsTestStatistic.cxx:5 RooAbsTestStatistic.cxx:6 RooAbsTestStatistic.cxx:7 RooAbsTestStatistic.cxx:8 RooAbsTestStatistic.cxx:9 RooAbsTestStatistic.cxx:10 RooAbsTestStatistic.cxx:11 RooAbsTestStatistic.cxx:12 RooAbsTestStatistic.cxx:13 RooAbsTestStatistic.cxx:14 RooAbsTestStatistic.cxx:15 RooAbsTestStatistic.cxx:16 RooAbsTestStatistic.cxx:17 RooAbsTestStatistic.cxx:18 RooAbsTestStatistic.cxx:19 RooAbsTestStatistic.cxx:20 RooAbsTestStatistic.cxx:21 RooAbsTestStatistic.cxx:22 RooAbsTestStatistic.cxx:23 RooAbsTestStatistic.cxx:24 RooAbsTestStatistic.cxx:25 RooAbsTestStatistic.cxx:26 RooAbsTestStatistic.cxx:27 RooAbsTestStatistic.cxx:28 RooAbsTestStatistic.cxx:29 RooAbsTestStatistic.cxx:30 RooAbsTestStatistic.cxx:31 RooAbsTestStatistic.cxx:32 RooAbsTestStatistic.cxx:33 RooAbsTestStatistic.cxx:34 RooAbsTestStatistic.cxx:35 RooAbsTestStatistic.cxx:36 RooAbsTestStatistic.cxx:37 RooAbsTestStatistic.cxx:38 RooAbsTestStatistic.cxx:39 RooAbsTestStatistic.cxx:40 RooAbsTestStatistic.cxx:41 RooAbsTestStatistic.cxx:42 RooAbsTestStatistic.cxx:43 RooAbsTestStatistic.cxx:44 RooAbsTestStatistic.cxx:45 RooAbsTestStatistic.cxx:46 RooAbsTestStatistic.cxx:47 RooAbsTestStatistic.cxx:48 RooAbsTestStatistic.cxx:49 RooAbsTestStatistic.cxx:50 RooAbsTestStatistic.cxx:51 RooAbsTestStatistic.cxx:52 RooAbsTestStatistic.cxx:53 RooAbsTestStatistic.cxx:54 RooAbsTestStatistic.cxx:55 RooAbsTestStatistic.cxx:56 RooAbsTestStatistic.cxx:57 RooAbsTestStatistic.cxx:58 RooAbsTestStatistic.cxx:59 RooAbsTestStatistic.cxx:60 RooAbsTestStatistic.cxx:61 RooAbsTestStatistic.cxx:62 RooAbsTestStatistic.cxx:63 RooAbsTestStatistic.cxx:64 RooAbsTestStatistic.cxx:65 RooAbsTestStatistic.cxx:66 RooAbsTestStatistic.cxx:67 RooAbsTestStatistic.cxx:68 RooAbsTestStatistic.cxx:69 RooAbsTestStatistic.cxx:70 RooAbsTestStatistic.cxx:71 RooAbsTestStatistic.cxx:72 RooAbsTestStatistic.cxx:73 RooAbsTestStatistic.cxx:74 RooAbsTestStatistic.cxx:75 RooAbsTestStatistic.cxx:76 RooAbsTestStatistic.cxx:77 RooAbsTestStatistic.cxx:78 RooAbsTestStatistic.cxx:79 RooAbsTestStatistic.cxx:80 RooAbsTestStatistic.cxx:81 RooAbsTestStatistic.cxx:82 RooAbsTestStatistic.cxx:83 RooAbsTestStatistic.cxx:84 RooAbsTestStatistic.cxx:85 RooAbsTestStatistic.cxx:86 RooAbsTestStatistic.cxx:87 RooAbsTestStatistic.cxx:88 RooAbsTestStatistic.cxx:89 RooAbsTestStatistic.cxx:90 RooAbsTestStatistic.cxx:91 RooAbsTestStatistic.cxx:92 RooAbsTestStatistic.cxx:93 RooAbsTestStatistic.cxx:94 RooAbsTestStatistic.cxx:95 RooAbsTestStatistic.cxx:96 RooAbsTestStatistic.cxx:97 RooAbsTestStatistic.cxx:98 RooAbsTestStatistic.cxx:99 RooAbsTestStatistic.cxx:100 RooAbsTestStatistic.cxx:101 RooAbsTestStatistic.cxx:102 RooAbsTestStatistic.cxx:103 RooAbsTestStatistic.cxx:104 RooAbsTestStatistic.cxx:105 RooAbsTestStatistic.cxx:106 RooAbsTestStatistic.cxx:107 RooAbsTestStatistic.cxx:108 RooAbsTestStatistic.cxx:109 RooAbsTestStatistic.cxx:110 RooAbsTestStatistic.cxx:111 RooAbsTestStatistic.cxx:112 RooAbsTestStatistic.cxx:113 RooAbsTestStatistic.cxx:114 RooAbsTestStatistic.cxx:115 RooAbsTestStatistic.cxx:116 RooAbsTestStatistic.cxx:117 RooAbsTestStatistic.cxx:118 RooAbsTestStatistic.cxx:119 RooAbsTestStatistic.cxx:120 RooAbsTestStatistic.cxx:121 RooAbsTestStatistic.cxx:122 RooAbsTestStatistic.cxx:123 RooAbsTestStatistic.cxx:124 RooAbsTestStatistic.cxx:125 RooAbsTestStatistic.cxx:126 RooAbsTestStatistic.cxx:127 RooAbsTestStatistic.cxx:128 RooAbsTestStatistic.cxx:129 RooAbsTestStatistic.cxx:130 RooAbsTestStatistic.cxx:131 RooAbsTestStatistic.cxx:132 RooAbsTestStatistic.cxx:133 RooAbsTestStatistic.cxx:134 RooAbsTestStatistic.cxx:135 RooAbsTestStatistic.cxx:136 RooAbsTestStatistic.cxx:137 RooAbsTestStatistic.cxx:138 RooAbsTestStatistic.cxx:139 RooAbsTestStatistic.cxx:140 RooAbsTestStatistic.cxx:141 RooAbsTestStatistic.cxx:142 RooAbsTestStatistic.cxx:143 RooAbsTestStatistic.cxx:144 RooAbsTestStatistic.cxx:145 RooAbsTestStatistic.cxx:146 RooAbsTestStatistic.cxx:147 RooAbsTestStatistic.cxx:148 RooAbsTestStatistic.cxx:149 RooAbsTestStatistic.cxx:150 RooAbsTestStatistic.cxx:151 RooAbsTestStatistic.cxx:152 RooAbsTestStatistic.cxx:153 RooAbsTestStatistic.cxx:154 RooAbsTestStatistic.cxx:155 RooAbsTestStatistic.cxx:156 RooAbsTestStatistic.cxx:157 RooAbsTestStatistic.cxx:158 RooAbsTestStatistic.cxx:159 RooAbsTestStatistic.cxx:160 RooAbsTestStatistic.cxx:161 RooAbsTestStatistic.cxx:162 RooAbsTestStatistic.cxx:163 RooAbsTestStatistic.cxx:164 RooAbsTestStatistic.cxx:165 RooAbsTestStatistic.cxx:166 RooAbsTestStatistic.cxx:167 RooAbsTestStatistic.cxx:168 RooAbsTestStatistic.cxx:169 RooAbsTestStatistic.cxx:170 RooAbsTestStatistic.cxx:171 RooAbsTestStatistic.cxx:172 RooAbsTestStatistic.cxx:173 RooAbsTestStatistic.cxx:174 RooAbsTestStatistic.cxx:175 RooAbsTestStatistic.cxx:176 RooAbsTestStatistic.cxx:177 RooAbsTestStatistic.cxx:178 RooAbsTestStatistic.cxx:179 RooAbsTestStatistic.cxx:180 RooAbsTestStatistic.cxx:181 RooAbsTestStatistic.cxx:182 RooAbsTestStatistic.cxx:183 RooAbsTestStatistic.cxx:184 RooAbsTestStatistic.cxx:185 RooAbsTestStatistic.cxx:186 RooAbsTestStatistic.cxx:187 RooAbsTestStatistic.cxx:188 RooAbsTestStatistic.cxx:189 RooAbsTestStatistic.cxx:190 RooAbsTestStatistic.cxx:191 RooAbsTestStatistic.cxx:192 RooAbsTestStatistic.cxx:193 RooAbsTestStatistic.cxx:194 RooAbsTestStatistic.cxx:195 RooAbsTestStatistic.cxx:196 RooAbsTestStatistic.cxx:197 RooAbsTestStatistic.cxx:198 RooAbsTestStatistic.cxx:199 RooAbsTestStatistic.cxx:200 RooAbsTestStatistic.cxx:201 RooAbsTestStatistic.cxx:202 RooAbsTestStatistic.cxx:203 RooAbsTestStatistic.cxx:204 RooAbsTestStatistic.cxx:205 RooAbsTestStatistic.cxx:206 RooAbsTestStatistic.cxx:207 RooAbsTestStatistic.cxx:208 RooAbsTestStatistic.cxx:209 RooAbsTestStatistic.cxx:210 RooAbsTestStatistic.cxx:211 RooAbsTestStatistic.cxx:212 RooAbsTestStatistic.cxx:213 RooAbsTestStatistic.cxx:214 RooAbsTestStatistic.cxx:215 RooAbsTestStatistic.cxx:216 RooAbsTestStatistic.cxx:217 RooAbsTestStatistic.cxx:218 RooAbsTestStatistic.cxx:219 RooAbsTestStatistic.cxx:220 RooAbsTestStatistic.cxx:221 RooAbsTestStatistic.cxx:222 RooAbsTestStatistic.cxx:223 RooAbsTestStatistic.cxx:224 RooAbsTestStatistic.cxx:225 RooAbsTestStatistic.cxx:226 RooAbsTestStatistic.cxx:227 RooAbsTestStatistic.cxx:228 RooAbsTestStatistic.cxx:229 RooAbsTestStatistic.cxx:230 RooAbsTestStatistic.cxx:231 RooAbsTestStatistic.cxx:232 RooAbsTestStatistic.cxx:233 RooAbsTestStatistic.cxx:234 RooAbsTestStatistic.cxx:235 RooAbsTestStatistic.cxx:236 RooAbsTestStatistic.cxx:237 RooAbsTestStatistic.cxx:238 RooAbsTestStatistic.cxx:239 RooAbsTestStatistic.cxx:240 RooAbsTestStatistic.cxx:241 RooAbsTestStatistic.cxx:242 RooAbsTestStatistic.cxx:243 RooAbsTestStatistic.cxx:244 RooAbsTestStatistic.cxx:245 RooAbsTestStatistic.cxx:246 RooAbsTestStatistic.cxx:247 RooAbsTestStatistic.cxx:248 RooAbsTestStatistic.cxx:249 RooAbsTestStatistic.cxx:250 RooAbsTestStatistic.cxx:251 RooAbsTestStatistic.cxx:252 RooAbsTestStatistic.cxx:253 RooAbsTestStatistic.cxx:254 RooAbsTestStatistic.cxx:255 RooAbsTestStatistic.cxx:256 RooAbsTestStatistic.cxx:257 RooAbsTestStatistic.cxx:258 RooAbsTestStatistic.cxx:259 RooAbsTestStatistic.cxx:260 RooAbsTestStatistic.cxx:261 RooAbsTestStatistic.cxx:262 RooAbsTestStatistic.cxx:263 RooAbsTestStatistic.cxx:264 RooAbsTestStatistic.cxx:265 RooAbsTestStatistic.cxx:266 RooAbsTestStatistic.cxx:267 RooAbsTestStatistic.cxx:268 RooAbsTestStatistic.cxx:269 RooAbsTestStatistic.cxx:270 RooAbsTestStatistic.cxx:271 RooAbsTestStatistic.cxx:272 RooAbsTestStatistic.cxx:273 RooAbsTestStatistic.cxx:274 RooAbsTestStatistic.cxx:275 RooAbsTestStatistic.cxx:276 RooAbsTestStatistic.cxx:277 RooAbsTestStatistic.cxx:278 RooAbsTestStatistic.cxx:279 RooAbsTestStatistic.cxx:280 RooAbsTestStatistic.cxx:281 RooAbsTestStatistic.cxx:282 RooAbsTestStatistic.cxx:283 RooAbsTestStatistic.cxx:284 RooAbsTestStatistic.cxx:285 RooAbsTestStatistic.cxx:286 RooAbsTestStatistic.cxx:287 RooAbsTestStatistic.cxx:288 RooAbsTestStatistic.cxx:289 RooAbsTestStatistic.cxx:290 RooAbsTestStatistic.cxx:291 RooAbsTestStatistic.cxx:292 RooAbsTestStatistic.cxx:293 RooAbsTestStatistic.cxx:294 RooAbsTestStatistic.cxx:295 RooAbsTestStatistic.cxx:296 RooAbsTestStatistic.cxx:297 RooAbsTestStatistic.cxx:298 RooAbsTestStatistic.cxx:299 RooAbsTestStatistic.cxx:300 RooAbsTestStatistic.cxx:301 RooAbsTestStatistic.cxx:302 RooAbsTestStatistic.cxx:303 RooAbsTestStatistic.cxx:304 RooAbsTestStatistic.cxx:305 RooAbsTestStatistic.cxx:306 RooAbsTestStatistic.cxx:307 RooAbsTestStatistic.cxx:308 RooAbsTestStatistic.cxx:309 RooAbsTestStatistic.cxx:310 RooAbsTestStatistic.cxx:311 RooAbsTestStatistic.cxx:312 RooAbsTestStatistic.cxx:313 RooAbsTestStatistic.cxx:314 RooAbsTestStatistic.cxx:315 RooAbsTestStatistic.cxx:316 RooAbsTestStatistic.cxx:317 RooAbsTestStatistic.cxx:318 RooAbsTestStatistic.cxx:319 RooAbsTestStatistic.cxx:320 RooAbsTestStatistic.cxx:321 RooAbsTestStatistic.cxx:322 RooAbsTestStatistic.cxx:323 RooAbsTestStatistic.cxx:324 RooAbsTestStatistic.cxx:325 RooAbsTestStatistic.cxx:326 RooAbsTestStatistic.cxx:327 RooAbsTestStatistic.cxx:328 RooAbsTestStatistic.cxx:329 RooAbsTestStatistic.cxx:330 RooAbsTestStatistic.cxx:331 RooAbsTestStatistic.cxx:332 RooAbsTestStatistic.cxx:333 RooAbsTestStatistic.cxx:334 RooAbsTestStatistic.cxx:335 RooAbsTestStatistic.cxx:336 RooAbsTestStatistic.cxx:337 RooAbsTestStatistic.cxx:338 RooAbsTestStatistic.cxx:339 RooAbsTestStatistic.cxx:340 RooAbsTestStatistic.cxx:341 RooAbsTestStatistic.cxx:342 RooAbsTestStatistic.cxx:343 RooAbsTestStatistic.cxx:344 RooAbsTestStatistic.cxx:345 RooAbsTestStatistic.cxx:346 RooAbsTestStatistic.cxx:347 RooAbsTestStatistic.cxx:348 RooAbsTestStatistic.cxx:349 RooAbsTestStatistic.cxx:350 RooAbsTestStatistic.cxx:351 RooAbsTestStatistic.cxx:352 RooAbsTestStatistic.cxx:353 RooAbsTestStatistic.cxx:354 RooAbsTestStatistic.cxx:355 RooAbsTestStatistic.cxx:356 RooAbsTestStatistic.cxx:357 RooAbsTestStatistic.cxx:358 RooAbsTestStatistic.cxx:359 RooAbsTestStatistic.cxx:360 RooAbsTestStatistic.cxx:361 RooAbsTestStatistic.cxx:362 RooAbsTestStatistic.cxx:363 RooAbsTestStatistic.cxx:364 RooAbsTestStatistic.cxx:365 RooAbsTestStatistic.cxx:366 RooAbsTestStatistic.cxx:367 RooAbsTestStatistic.cxx:368 RooAbsTestStatistic.cxx:369 RooAbsTestStatistic.cxx:370 RooAbsTestStatistic.cxx:371 RooAbsTestStatistic.cxx:372 RooAbsTestStatistic.cxx:373 RooAbsTestStatistic.cxx:374 RooAbsTestStatistic.cxx:375 RooAbsTestStatistic.cxx:376 RooAbsTestStatistic.cxx:377 RooAbsTestStatistic.cxx:378 RooAbsTestStatistic.cxx:379 RooAbsTestStatistic.cxx:380 RooAbsTestStatistic.cxx:381 RooAbsTestStatistic.cxx:382 RooAbsTestStatistic.cxx:383 RooAbsTestStatistic.cxx:384 RooAbsTestStatistic.cxx:385 RooAbsTestStatistic.cxx:386 RooAbsTestStatistic.cxx:387 RooAbsTestStatistic.cxx:388 RooAbsTestStatistic.cxx:389 RooAbsTestStatistic.cxx:390 RooAbsTestStatistic.cxx:391 RooAbsTestStatistic.cxx:392 RooAbsTestStatistic.cxx:393 RooAbsTestStatistic.cxx:394 RooAbsTestStatistic.cxx:395 RooAbsTestStatistic.cxx:396 RooAbsTestStatistic.cxx:397 RooAbsTestStatistic.cxx:398 RooAbsTestStatistic.cxx:399 RooAbsTestStatistic.cxx:400 RooAbsTestStatistic.cxx:401 RooAbsTestStatistic.cxx:402 RooAbsTestStatistic.cxx:403 RooAbsTestStatistic.cxx:404 RooAbsTestStatistic.cxx:405 RooAbsTestStatistic.cxx:406 RooAbsTestStatistic.cxx:407 RooAbsTestStatistic.cxx:408 RooAbsTestStatistic.cxx:409 RooAbsTestStatistic.cxx:410 RooAbsTestStatistic.cxx:411 RooAbsTestStatistic.cxx:412 RooAbsTestStatistic.cxx:413 RooAbsTestStatistic.cxx:414 RooAbsTestStatistic.cxx:415 RooAbsTestStatistic.cxx:416 RooAbsTestStatistic.cxx:417 RooAbsTestStatistic.cxx:418 RooAbsTestStatistic.cxx:419 RooAbsTestStatistic.cxx:420 RooAbsTestStatistic.cxx:421 RooAbsTestStatistic.cxx:422 RooAbsTestStatistic.cxx:423 RooAbsTestStatistic.cxx:424 RooAbsTestStatistic.cxx:425 RooAbsTestStatistic.cxx:426 RooAbsTestStatistic.cxx:427 RooAbsTestStatistic.cxx:428 RooAbsTestStatistic.cxx:429 RooAbsTestStatistic.cxx:430 RooAbsTestStatistic.cxx:431 RooAbsTestStatistic.cxx:432 RooAbsTestStatistic.cxx:433 RooAbsTestStatistic.cxx:434 RooAbsTestStatistic.cxx:435 RooAbsTestStatistic.cxx:436 RooAbsTestStatistic.cxx:437 RooAbsTestStatistic.cxx:438 RooAbsTestStatistic.cxx:439 RooAbsTestStatistic.cxx:440 RooAbsTestStatistic.cxx:441 RooAbsTestStatistic.cxx:442 RooAbsTestStatistic.cxx:443 RooAbsTestStatistic.cxx:444 RooAbsTestStatistic.cxx:445 RooAbsTestStatistic.cxx:446 RooAbsTestStatistic.cxx:447 RooAbsTestStatistic.cxx:448 RooAbsTestStatistic.cxx:449 RooAbsTestStatistic.cxx:450 RooAbsTestStatistic.cxx:451 RooAbsTestStatistic.cxx:452 RooAbsTestStatistic.cxx:453 RooAbsTestStatistic.cxx:454 RooAbsTestStatistic.cxx:455 RooAbsTestStatistic.cxx:456 RooAbsTestStatistic.cxx:457 RooAbsTestStatistic.cxx:458 RooAbsTestStatistic.cxx:459 RooAbsTestStatistic.cxx:460 RooAbsTestStatistic.cxx:461 RooAbsTestStatistic.cxx:462 RooAbsTestStatistic.cxx:463 RooAbsTestStatistic.cxx:464 RooAbsTestStatistic.cxx:465 RooAbsTestStatistic.cxx:466 RooAbsTestStatistic.cxx:467 RooAbsTestStatistic.cxx:468 RooAbsTestStatistic.cxx:469 RooAbsTestStatistic.cxx:470 RooAbsTestStatistic.cxx:471 RooAbsTestStatistic.cxx:472 RooAbsTestStatistic.cxx:473 RooAbsTestStatistic.cxx:474 RooAbsTestStatistic.cxx:475 RooAbsTestStatistic.cxx:476 RooAbsTestStatistic.cxx:477 RooAbsTestStatistic.cxx:478 RooAbsTestStatistic.cxx:479 RooAbsTestStatistic.cxx:480 RooAbsTestStatistic.cxx:481 RooAbsTestStatistic.cxx:482 RooAbsTestStatistic.cxx:483 RooAbsTestStatistic.cxx:484 RooAbsTestStatistic.cxx:485 RooAbsTestStatistic.cxx:486 RooAbsTestStatistic.cxx:487 RooAbsTestStatistic.cxx:488 RooAbsTestStatistic.cxx:489 RooAbsTestStatistic.cxx:490 RooAbsTestStatistic.cxx:491 RooAbsTestStatistic.cxx:492 RooAbsTestStatistic.cxx:493 RooAbsTestStatistic.cxx:494 RooAbsTestStatistic.cxx:495 RooAbsTestStatistic.cxx:496 RooAbsTestStatistic.cxx:497 RooAbsTestStatistic.cxx:498 RooAbsTestStatistic.cxx:499 RooAbsTestStatistic.cxx:500 RooAbsTestStatistic.cxx:501 RooAbsTestStatistic.cxx:502 RooAbsTestStatistic.cxx:503 RooAbsTestStatistic.cxx:504 RooAbsTestStatistic.cxx:505 RooAbsTestStatistic.cxx:506 RooAbsTestStatistic.cxx:507 RooAbsTestStatistic.cxx:508 RooAbsTestStatistic.cxx:509 RooAbsTestStatistic.cxx:510 RooAbsTestStatistic.cxx:511 RooAbsTestStatistic.cxx:512 RooAbsTestStatistic.cxx:513 RooAbsTestStatistic.cxx:514 RooAbsTestStatistic.cxx:515 RooAbsTestStatistic.cxx:516 RooAbsTestStatistic.cxx:517 RooAbsTestStatistic.cxx:518 RooAbsTestStatistic.cxx:519 RooAbsTestStatistic.cxx:520 RooAbsTestStatistic.cxx:521 RooAbsTestStatistic.cxx:522 RooAbsTestStatistic.cxx:523 RooAbsTestStatistic.cxx:524 RooAbsTestStatistic.cxx:525 RooAbsTestStatistic.cxx:526 RooAbsTestStatistic.cxx:527 RooAbsTestStatistic.cxx:528 RooAbsTestStatistic.cxx:529 RooAbsTestStatistic.cxx:530 RooAbsTestStatistic.cxx:531 RooAbsTestStatistic.cxx:532 RooAbsTestStatistic.cxx:533 RooAbsTestStatistic.cxx:534 RooAbsTestStatistic.cxx:535 RooAbsTestStatistic.cxx:536 RooAbsTestStatistic.cxx:537 RooAbsTestStatistic.cxx:538 RooAbsTestStatistic.cxx:539 RooAbsTestStatistic.cxx:540 RooAbsTestStatistic.cxx:541 RooAbsTestStatistic.cxx:542 RooAbsTestStatistic.cxx:543 RooAbsTestStatistic.cxx:544 RooAbsTestStatistic.cxx:545 RooAbsTestStatistic.cxx:546 RooAbsTestStatistic.cxx:547 RooAbsTestStatistic.cxx:548 RooAbsTestStatistic.cxx:549 RooAbsTestStatistic.cxx:550 RooAbsTestStatistic.cxx:551 RooAbsTestStatistic.cxx:552 RooAbsTestStatistic.cxx:553 RooAbsTestStatistic.cxx:554 RooAbsTestStatistic.cxx:555 RooAbsTestStatistic.cxx:556 RooAbsTestStatistic.cxx:557 RooAbsTestStatistic.cxx:558 RooAbsTestStatistic.cxx:559 RooAbsTestStatistic.cxx:560 RooAbsTestStatistic.cxx:561 RooAbsTestStatistic.cxx:562 RooAbsTestStatistic.cxx:563 RooAbsTestStatistic.cxx:564 RooAbsTestStatistic.cxx:565 RooAbsTestStatistic.cxx:566 RooAbsTestStatistic.cxx:567 RooAbsTestStatistic.cxx:568 RooAbsTestStatistic.cxx:569 RooAbsTestStatistic.cxx:570 RooAbsTestStatistic.cxx:571 RooAbsTestStatistic.cxx:572 RooAbsTestStatistic.cxx:573 RooAbsTestStatistic.cxx:574 RooAbsTestStatistic.cxx:575 RooAbsTestStatistic.cxx:576 RooAbsTestStatistic.cxx:577 RooAbsTestStatistic.cxx:578 RooAbsTestStatistic.cxx:579 RooAbsTestStatistic.cxx:580 RooAbsTestStatistic.cxx:581 RooAbsTestStatistic.cxx:582 RooAbsTestStatistic.cxx:583 RooAbsTestStatistic.cxx:584 RooAbsTestStatistic.cxx:585 RooAbsTestStatistic.cxx:586 RooAbsTestStatistic.cxx:587 RooAbsTestStatistic.cxx:588 RooAbsTestStatistic.cxx:589 RooAbsTestStatistic.cxx:590 RooAbsTestStatistic.cxx:591 RooAbsTestStatistic.cxx:592 RooAbsTestStatistic.cxx:593 RooAbsTestStatistic.cxx:594 RooAbsTestStatistic.cxx:595 RooAbsTestStatistic.cxx:596 RooAbsTestStatistic.cxx:597 RooAbsTestStatistic.cxx:598 RooAbsTestStatistic.cxx:599 RooAbsTestStatistic.cxx:600 RooAbsTestStatistic.cxx:601 RooAbsTestStatistic.cxx:602 RooAbsTestStatistic.cxx:603 RooAbsTestStatistic.cxx:604 RooAbsTestStatistic.cxx:605 RooAbsTestStatistic.cxx:606 RooAbsTestStatistic.cxx:607 RooAbsTestStatistic.cxx:608 RooAbsTestStatistic.cxx:609 RooAbsTestStatistic.cxx:610 RooAbsTestStatistic.cxx:611 RooAbsTestStatistic.cxx:612 RooAbsTestStatistic.cxx:613 RooAbsTestStatistic.cxx:614 RooAbsTestStatistic.cxx:615 RooAbsTestStatistic.cxx:616 RooAbsTestStatistic.cxx:617 RooAbsTestStatistic.cxx:618 RooAbsTestStatistic.cxx:619 RooAbsTestStatistic.cxx:620 RooAbsTestStatistic.cxx:621 RooAbsTestStatistic.cxx:622 RooAbsTestStatistic.cxx:623 RooAbsTestStatistic.cxx:624 RooAbsTestStatistic.cxx:625 RooAbsTestStatistic.cxx:626 RooAbsTestStatistic.cxx:627 RooAbsTestStatistic.cxx:628 RooAbsTestStatistic.cxx:629 RooAbsTestStatistic.cxx:630 RooAbsTestStatistic.cxx:631 RooAbsTestStatistic.cxx:632 RooAbsTestStatistic.cxx:633 RooAbsTestStatistic.cxx:634 RooAbsTestStatistic.cxx:635 RooAbsTestStatistic.cxx:636 RooAbsTestStatistic.cxx:637 RooAbsTestStatistic.cxx:638 RooAbsTestStatistic.cxx:639 RooAbsTestStatistic.cxx:640 RooAbsTestStatistic.cxx:641 RooAbsTestStatistic.cxx:642 RooAbsTestStatistic.cxx:643 RooAbsTestStatistic.cxx:644 RooAbsTestStatistic.cxx:645 RooAbsTestStatistic.cxx:646 RooAbsTestStatistic.cxx:647 RooAbsTestStatistic.cxx:648 RooAbsTestStatistic.cxx:649 RooAbsTestStatistic.cxx:650 RooAbsTestStatistic.cxx:651 RooAbsTestStatistic.cxx:652 RooAbsTestStatistic.cxx:653 RooAbsTestStatistic.cxx:654 RooAbsTestStatistic.cxx:655 RooAbsTestStatistic.cxx:656 RooAbsTestStatistic.cxx:657 RooAbsTestStatistic.cxx:658 RooAbsTestStatistic.cxx:659 RooAbsTestStatistic.cxx:660 RooAbsTestStatistic.cxx:661 RooAbsTestStatistic.cxx:662 RooAbsTestStatistic.cxx:663 RooAbsTestStatistic.cxx:664 RooAbsTestStatistic.cxx:665 RooAbsTestStatistic.cxx:666 RooAbsTestStatistic.cxx:667 RooAbsTestStatistic.cxx:668 RooAbsTestStatistic.cxx:669 RooAbsTestStatistic.cxx:670 RooAbsTestStatistic.cxx:671 RooAbsTestStatistic.cxx:672 RooAbsTestStatistic.cxx:673 RooAbsTestStatistic.cxx:674 RooAbsTestStatistic.cxx:675 RooAbsTestStatistic.cxx:676 RooAbsTestStatistic.cxx:677 RooAbsTestStatistic.cxx:678 RooAbsTestStatistic.cxx:679 RooAbsTestStatistic.cxx:680 RooAbsTestStatistic.cxx:681 RooAbsTestStatistic.cxx:682 RooAbsTestStatistic.cxx:683 RooAbsTestStatistic.cxx:684 RooAbsTestStatistic.cxx:685 RooAbsTestStatistic.cxx:686 RooAbsTestStatistic.cxx:687 RooAbsTestStatistic.cxx:688 RooAbsTestStatistic.cxx:689 RooAbsTestStatistic.cxx:690 RooAbsTestStatistic.cxx:691 RooAbsTestStatistic.cxx:692 RooAbsTestStatistic.cxx:693 RooAbsTestStatistic.cxx:694 RooAbsTestStatistic.cxx:695 RooAbsTestStatistic.cxx:696