#include <iomanip>
#include <sstream>
#include "TFile.h"
#include "TRegexp.h"
#include "TCanvas.h"
#include "TLegend.h"
#include "TMath.h"
#include "RooRealSumPdf.h"
#include "RooProduct.h"
#include "RooMsgService.h"
#include "RooCategory.h"
#include "RooSimultaneous.h"
#include "RooWorkspace.h"
#include "RooStats/HistFactory/HistFactoryNavigation.h"
#include "RooStats/HistFactory/HistFactoryException.h"
ClassImp(RooStats::HistFactory::HistFactoryNavigation);
namespace RooStats {
namespace HistFactory {
HistFactoryNavigation::HistFactoryNavigation(ModelConfig* mc)
: _minBinToPrint(-1), _maxBinToPrint(-1),
_label_print_width(20), _bin_print_width(12) {
if( !mc ) {
std::cout << "Error: The supplied ModelConfig is NULL " << std::endl;
throw hf_exc();
}
RooAbsPdf* pdf_in_mc = mc->GetPdf();
if( !pdf_in_mc ) {
std::cout << "Error: The pdf found in the ModelConfig: " << mc->GetName()
<< " is NULL" << std::endl;
throw hf_exc();
}
fModel = mc->GetPdf();
RooArgSet* observables_in_mc = const_cast<RooArgSet*>(mc->GetObservables());
if( !observables_in_mc ) {
std::cout << "Error: Observable set in the ModelConfig: " << mc->GetName()
<< " is NULL" << std::endl;
throw hf_exc();
}
if( observables_in_mc->getSize() == 0 ) {
std::cout << "Error: Observable list: " << observables_in_mc->GetName()
<< " found in ModelConfig: " << mc->GetName()
<< " has no entries." << std::endl;
throw hf_exc();
}
fObservables = observables_in_mc;
_GetNodes(fModel, fObservables);
}
HistFactoryNavigation::HistFactoryNavigation(const std::string& FileName,
const std::string& WorkspaceName,
const std::string& ModelConfigName) :
_minBinToPrint(-1), _maxBinToPrint(-1),
_label_print_width(20), _bin_print_width(12) {
TFile* file = new TFile(FileName.c_str());
if( !file ) {
std::cout << "Error: Failed to open file: " << FileName << std::endl;
throw hf_exc();
}
RooWorkspace* wspace = (RooWorkspace*) file->Get(WorkspaceName.c_str());
if( !wspace ) {
std::cout << "Error: Failed to get workspace: " << WorkspaceName
<< " from file: " << FileName << std::endl;
throw hf_exc();
}
ModelConfig* mc = (ModelConfig*) wspace->obj(ModelConfigName.c_str());
if( !mc ) {
std::cout << "Error: Failed to find ModelConfig: " << ModelConfigName
<< " from workspace: " << WorkspaceName
<< " in file: " << FileName << std::endl;
throw hf_exc();
}
RooAbsPdf* pdf_in_mc = mc->GetPdf();
if( !pdf_in_mc ) {
std::cout << "Error: The pdf found in the ModelConfig: " << ModelConfigName
<< " is NULL" << std::endl;
throw hf_exc();
}
fModel = pdf_in_mc;
RooArgSet* observables_in_mc = const_cast<RooArgSet*>(mc->GetObservables());
if( !observables_in_mc ) {
std::cout << "Error: Observable set in the ModelConfig: " << ModelConfigName
<< " is NULL" << std::endl;
throw hf_exc();
}
if( observables_in_mc->getSize() == 0 ) {
std::cout << "Error: Observable list: " << observables_in_mc->GetName()
<< " found in ModelConfig: " << ModelConfigName
<< " in file: " << FileName
<< " has no entries." << std::endl;
throw hf_exc();
}
fObservables = observables_in_mc;
_GetNodes(fModel, fObservables);
}
HistFactoryNavigation::HistFactoryNavigation(RooAbsPdf* model, RooArgSet* observables) :
_minBinToPrint(-1), _maxBinToPrint(-1),
_label_print_width(20), _bin_print_width(12) {
if( !model ) {
std::cout << "Error: The supplied pdf is NULL" << std::endl;
throw hf_exc();
}
fModel = model;
fObservables = observables;
if( !observables ) {
std::cout << "Error: Supplied Observable set is NULL" << std::endl;
throw hf_exc();
}
if( observables->getSize() == 0 ) {
std::cout << "Error: Observable list: " << observables->GetName()
<< " has no entries." << std::endl;
throw hf_exc();
}
_GetNodes(fModel, fObservables);
}
void HistFactoryNavigation::PrintMultiDimHist(TH1* hist, int bin_print_width) {
int current_bin = 0;
int num_bins = hist->GetNbinsX()*hist->GetNbinsY()*hist->GetNbinsZ();
for(int i = 0; i < num_bins; ++i) {
current_bin++;
while( hist->IsBinUnderflow(current_bin) ||
hist->IsBinOverflow(current_bin) ) {
current_bin++;
}
if( _minBinToPrint != -1 && i < _minBinToPrint) continue;
if( _maxBinToPrint != -1 && i > _maxBinToPrint) break;
std::cout << std::setw(bin_print_width) << hist->GetBinContent(current_bin);
}
std::cout << std::endl;
}
RooAbsPdf* HistFactoryNavigation::GetChannelPdf(const std::string& channel) {
std::map< std::string, RooAbsPdf* >::iterator itr;
itr = fChannelPdfMap.find(channel);
if( itr == fChannelPdfMap.end() ) {
std::cout << "Warning: Could not find channel: " << channel
<< " in pdf: " << fModel->GetName() << std::endl;
return NULL;
}
RooAbsPdf* pdf = itr->second;
if( pdf == NULL ) {
std::cout << "Warning: Pdf associated with channel: " << channel
<< " is NULL" << std::endl;
return NULL;
}
return pdf;
}
void HistFactoryNavigation::PrintState(const std::string& channel) {
std::cout << std::endl << channel << ":" << std::endl;
std::map< std::string, RooAbsReal*> SampleFunctionMap = GetSampleFunctionMap(channel);
int num_bins = 0;
std::map< std::string, RooAbsReal*>::iterator itr = SampleFunctionMap.begin();
for( ; itr != SampleFunctionMap.end(); ++itr) {
std::string sample_name = itr->first;
std::string tmp_name = sample_name + channel + "_pretty_tmp";
TH1* sample_hist = GetSampleHist(channel, sample_name, tmp_name);
num_bins = sample_hist->GetNbinsX()*sample_hist->GetNbinsY()*sample_hist->GetNbinsZ();
std::cout << std::setw(_label_print_width) << sample_name;
PrintMultiDimHist(sample_hist, _bin_print_width);
delete sample_hist;
}
std::string line_break;
int high_bin = _maxBinToPrint==-1 ? num_bins : TMath::Min(_maxBinToPrint, (int)num_bins);
int low_bin = _minBinToPrint==-1 ? 1 : _minBinToPrint;
int break_length = (high_bin - low_bin + 1) * _bin_print_width;
break_length += _label_print_width;
for(int i = 0; i < break_length; ++i) {
line_break += "=";
}
std::cout << line_break << std::endl;
std::string tmp_name = channel + "_pretty_tmp";
TH1* channel_hist = GetChannelHist(channel, tmp_name);
std::cout << std::setw(_label_print_width) << "TOTAL:";
PrintMultiDimHist(channel_hist, _bin_print_width);
delete channel_hist;
return;
}
void HistFactoryNavigation::PrintState() {
for(unsigned int i = 0; i < fChannelNameVec.size(); ++i) {
PrintState(fChannelNameVec.at(i));
}
}
void HistFactoryNavigation::SetPrintWidths(const std::string& channel) {
std::map< std::string, RooAbsReal*> SampleFunctionMap = GetSampleFunctionMap(channel);
for( std::map< std::string, RooAbsReal*>::iterator itr = SampleFunctionMap.begin();
itr != SampleFunctionMap.end(); ++itr) {
std::string sample_name = itr->first;
_label_print_width = TMath::Max(_label_print_width, (int)sample_name.size()+2);
}
_label_print_width = TMath::Max( _label_print_width, (int)channel.size() + 7);
}
void HistFactoryNavigation::PrintDataSet(RooDataSet* data,
const std::string& channel_to_print) {
for( unsigned int i_chan=0; i_chan < fChannelNameVec.size(); ++i_chan) {
std::string channel_name = fChannelNameVec.at(i_chan);
if( channel_to_print != "" && channel_name != channel_to_print) continue;
TH1* data_hist = GetDataHist(data, channel_name, channel_name+"_tmp");
std::cout << std::setw(_label_print_width) << channel_name + " (data)";
PrintMultiDimHist(data_hist, _bin_print_width);
delete data_hist;
}
}
void HistFactoryNavigation::PrintModelAndData(RooDataSet* data) {
for( unsigned int i = 0; i < fChannelNameVec.size(); ++i) {
std::string channel = fChannelNameVec.at(i);
SetPrintWidths(channel);
PrintState(channel);
PrintDataSet(data, channel);
}
std::cout << std::endl;
}
void HistFactoryNavigation::PrintParameters(bool IncludeConstantParams) {
RooArgSet* params = fModel->getParameters(*fObservables);
std::cout << std::endl;
std::cout << std::setw(30) << "Parameter";
std::cout << std::setw(15) << "Value"
<< std::setw(15) << "Error Low"
<< std::setw(15) << "Error High"
<< std::endl;
TIterator* paramItr = params->createIterator();
RooRealVar* param = NULL;
while( (param=(RooRealVar*)paramItr->Next()) ) {
if( !IncludeConstantParams && param->isConstant() ) continue;
std::cout << std::setw(30) << param->GetName();
std::cout << std::setw(15) << param->getVal();
if( !param->isConstant() ) {
std::cout << std::setw(15) << param->getErrorLo() << std::setw(15) << param->getErrorHi();
}
std::cout<< std::endl;
}
std::cout << std::endl;
return;
}
void HistFactoryNavigation::PrintChannelParameters(const std::string& channel,
bool IncludeConstantParams) {
RooArgSet* params = fModel->getParameters(*fObservables);
RooAbsPdf* channel_pdf = GetChannelPdf(channel);
std::cout << std::endl;
std::cout << std::setw(30) << "Parameter";
std::cout << std::setw(15) << "Value"
<< std::setw(15) << "Error Low"
<< std::setw(15) << "Error High"
<< std::endl;
TIterator* paramItr = params->createIterator();
RooRealVar* param = NULL;
while( (param=(RooRealVar*)paramItr->Next()) ) {
if( !IncludeConstantParams && param->isConstant() ) continue;
if( findChild(param->GetName(), channel_pdf)==NULL ) continue;
std::cout << std::setw(30) << param->GetName();
std::cout << std::setw(15) << param->getVal();
if( !param->isConstant() ) {
std::cout << std::setw(15) << param->getErrorLo() << std::setw(15) << param->getErrorHi();
}
std::cout<< std::endl;
}
std::cout << std::endl;
return;
}
void HistFactoryNavigation::PrintSampleParameters(const std::string& channel,
const std::string& sample,
bool IncludeConstantParams) {
RooArgSet* params = fModel->getParameters(*fObservables);
RooAbsReal* sample_func = SampleFunction(channel, sample);
std::cout << std::endl;
std::cout << std::setw(30) << "Parameter";
std::cout << std::setw(15) << "Value"
<< std::setw(15) << "Error Low"
<< std::setw(15) << "Error High"
<< std::endl;
TIterator* paramItr = params->createIterator();
RooRealVar* param = NULL;
while( (param=(RooRealVar*)paramItr->Next()) ) {
if( !IncludeConstantParams && param->isConstant() ) continue;
if( findChild(param->GetName(), sample_func)==NULL ) continue;
std::cout << std::setw(30) << param->GetName();
std::cout << std::setw(15) << param->getVal();
if( !param->isConstant() ) {
std::cout << std::setw(15) << param->getErrorLo() << std::setw(15) << param->getErrorHi();
}
std::cout<< std::endl;
}
std::cout << std::endl;
return;
}
double HistFactoryNavigation::GetBinValue(int bin, const std::string& channel) {
TH1* channel_hist_tmp = GetChannelHist(channel, (channel+"_tmp").c_str());
double val = channel_hist_tmp->GetBinContent(bin);
delete channel_hist_tmp;
return val;
}
double HistFactoryNavigation::GetBinValue(int bin, const std::string& channel, const std::string& sample){
TH1* sample_hist_tmp = GetSampleHist(channel, sample, (channel+"_tmp").c_str());
double val = sample_hist_tmp->GetBinContent(bin);
delete sample_hist_tmp;
return val;
}
std::map< std::string, RooAbsReal*> HistFactoryNavigation::GetSampleFunctionMap(const std::string& channel) {
std::map< std::string, std::map< std::string, RooAbsReal*> >::iterator channel_itr;
channel_itr = fChannelSampleFunctionMap.find(channel);
if( channel_itr==fChannelSampleFunctionMap.end() ){
std::cout << "Error: Channel: " << channel << " not found in Navigation" << std::endl;
throw hf_exc();
}
return channel_itr->second;
}
RooAbsReal* HistFactoryNavigation::SampleFunction(const std::string& channel, const std::string& sample){
std::map< std::string, std::map< std::string, RooAbsReal*> >::iterator channel_itr;
channel_itr = fChannelSampleFunctionMap.find(channel);
if( channel_itr==fChannelSampleFunctionMap.end() ){
std::cout << "Error: Channel: " << channel << " not found in Navigation" << std::endl;
throw hf_exc();
}
std::map< std::string, RooAbsReal*>& SampleMap = channel_itr->second;
std::map< std::string, RooAbsReal*>::iterator sample_itr;
sample_itr = SampleMap.find(sample);
if( sample_itr==SampleMap.end() ){
std::cout << "Error: Sample: " << sample << " not found in Navigation" << std::endl;
throw hf_exc();
}
return sample_itr->second;
}
RooArgSet* HistFactoryNavigation::GetObservableSet(const std::string& channel) {
std::map< std::string, RooArgSet*>::iterator channel_itr;
channel_itr = fChannelObservMap.find(channel);
if( channel_itr==fChannelObservMap.end() ){
std::cout << "Error: Channel: " << channel << " not found in Navigation" << std::endl;
throw hf_exc();
}
return channel_itr->second;
}
TH1* HistFactoryNavigation::GetSampleHist(const std::string& channel, const std::string& sample,
const std::string& hist_name) {
RooArgList observable_list( *GetObservableSet(channel) );
std::string name = hist_name;
if(hist_name=="") name = channel + "_" + sample + "_hist";
RooAbsReal* sample_function = SampleFunction(channel, sample);
return MakeHistFromRooFunction( sample_function, observable_list, name );
}
TH1* HistFactoryNavigation::GetChannelHist(const std::string& channel, const std::string& hist_name) {
RooArgList observable_list( *GetObservableSet(channel) );
std::map< std::string, RooAbsReal*> SampleFunctionMap = GetSampleFunctionMap(channel);
TH1* total_hist=NULL;
std::map< std::string, RooAbsReal*>::iterator itr = SampleFunctionMap.begin();
for( ; itr != SampleFunctionMap.end(); ++itr) {
std::string sample_name = itr->first;
std::string tmp_hist_name = sample_name + "_hist_tmp";
RooAbsReal* sample_function = itr->second;
TH1* sample_hist = MakeHistFromRooFunction(sample_function, observable_list,
tmp_hist_name);
total_hist = (TH1*) sample_hist->Clone("TotalHist");
delete sample_hist;
break;
}
total_hist->Reset();
itr = SampleFunctionMap.begin();
for( ; itr != SampleFunctionMap.end(); ++itr) {
std::string sample_name = itr->first;
std::string tmp_hist_name = sample_name + "_hist_tmp";
RooAbsReal* sample_function = itr->second;
TH1* sample_hist = MakeHistFromRooFunction(sample_function, observable_list,
tmp_hist_name);
total_hist->Add(sample_hist);
delete sample_hist;
}
if(hist_name=="") total_hist->SetName(hist_name.c_str());
else total_hist->SetName( (channel + "_hist").c_str() );
return total_hist;
}
std::vector< std::string > HistFactoryNavigation::GetChannelSampleList(const std::string& channel) {
std::vector<std::string> sample_list;
std::map< std::string, RooAbsReal*> sample_map = fChannelSampleFunctionMap[channel];
std::map< std::string, RooAbsReal*>::iterator itr = sample_map.begin();;
for( ; itr != sample_map.end(); ++itr) {
sample_list.push_back( itr->first );
}
return sample_list;
}
THStack* HistFactoryNavigation::GetChannelStack(const std::string& channel,
const std::string& name) {
THStack* stack = new THStack(name.c_str(), "");
std::vector< std::string > samples = GetChannelSampleList(channel);
for( unsigned int i=0; i < samples.size(); ++i) {
std::string sample_name = samples.at(i);
TH1* hist = GetSampleHist(channel, sample_name, sample_name+"_tmp");
hist->SetLineColor(2+i);
hist->SetFillColor(2+i);
stack->Add(hist);
}
return stack;
}
TH1* HistFactoryNavigation::GetDataHist(RooDataSet* data, const std::string& channel,
const std::string& name) {
if(strcmp(fModel->ClassName(),"RooSimultaneous")==0){
RooSimultaneous* simPdf = (RooSimultaneous*) fModel;
RooCategory* channelCat = (RooCategory*) (&simPdf->indexCat());
TList* dataset_list = data->split(*channelCat);
data = dynamic_cast<RooDataSet*>( dataset_list->FindObject(channel.c_str()) );
}
RooArgList vars( *GetObservableSet(channel) );
int dim = vars.getSize();
TH1* hist = NULL;
if( dim==1 ) {
RooRealVar* varX = (RooRealVar*) vars.at(0);
hist = data->createHistogram( name.c_str(),*varX, RooFit::Binning(varX->getBinning()) );
}
else if( dim==2 ) {
RooRealVar* varX = (RooRealVar*) vars.at(0);
RooRealVar* varY = (RooRealVar*) vars.at(1);
hist = data->createHistogram( name.c_str(),*varX, RooFit::Binning(varX->getBinning()),
RooFit::YVar(*varY, RooFit::Binning(varY->getBinning())) );
}
else if( dim==3 ) {
RooRealVar* varX = (RooRealVar*) vars.at(0);
RooRealVar* varY = (RooRealVar*) vars.at(1);
RooRealVar* varZ = (RooRealVar*) vars.at(2);
hist = data->createHistogram( name.c_str(),*varX, RooFit::Binning(varX->getBinning()),
RooFit::YVar(*varY, RooFit::Binning(varY->getBinning())),
RooFit::YVar(*varZ, RooFit::Binning(varZ->getBinning())) );
}
else {
std::cout << "Error: To Create Histogram from RooDataSet, Dimension must be 1, 2, or 3" << std::endl;
std::cout << "Observables: " << std::endl;
vars.Print("V");
throw hf_exc();
}
return hist;
}
void HistFactoryNavigation::DrawChannel(const std::string& channel, RooDataSet* data) {
THStack* stack = GetChannelStack(channel, channel+"_stack_tmp");
stack->Draw();
if( data!=NULL ) {
TH1* data_hist = GetDataHist(data, channel, channel+"_data_tmp");
data_hist->Draw("SAME");
}
}
RooArgSet HistFactoryNavigation::_GetAllProducts(RooProduct* node) {
RooArgSet allTerms;
RooArgSet productComponents = node->components();
TIterator* itr = productComponents.createIterator();
RooAbsArg* arg = NULL;
while( (arg=(RooAbsArg*)itr->Next()) ) {
std::string ClassName = arg->ClassName();
if( ClassName == "RooProduct" ) {
RooProduct* prod = dynamic_cast<RooProduct*>(arg);
allTerms.add( _GetAllProducts(prod) );
}
else {
allTerms.add(*arg);
}
}
delete itr;
return allTerms;
}
void HistFactoryNavigation::_GetNodes(RooAbsPdf* modelPdf, const RooArgSet* observables) {
if(strcmp(modelPdf->ClassName(),"RooSimultaneous")==0){
RooSimultaneous* simPdf = (RooSimultaneous*) modelPdf;
RooCategory* channelCat = (RooCategory*) (&simPdf->indexCat());
TIterator* iter = channelCat->typeIterator() ;
RooCatType* tt = NULL;
while((tt=(RooCatType*) iter->Next())) {
std::string ChannelName = tt->GetName();
fChannelNameVec.push_back( ChannelName );
RooAbsPdf* pdftmp = simPdf->getPdf(ChannelName.c_str()) ;
RooArgSet* obstmp = pdftmp->getObservables(*observables) ;
fChannelPdfMap[ChannelName] = pdftmp;
fChannelObservMap[ChannelName] = obstmp;
}
} else {
RooArgSet* obstmp = modelPdf->getObservables(*observables) ;
std::string ChannelName = modelPdf->GetName();
ChannelName = ChannelName.replace(0, 6, "");
fChannelNameVec.push_back(ChannelName);
fChannelPdfMap[ChannelName] = modelPdf;
fChannelObservMap[ChannelName] = obstmp;
}
for( unsigned int i = 0; i < fChannelNameVec.size(); ++i ) {
std::string ChannelName = fChannelNameVec.at(i);
RooAbsPdf* pdf = fChannelPdfMap[ChannelName];
RooArgSet* components = pdf->getComponents();
TIterator* argItr = components->createIterator();
RooAbsArg* arg = NULL;
while( (arg=(RooAbsArg*)argItr->Next()) ) {
std::string ClassName = arg->ClassName();
if( ClassName == "RooRealSumPdf" ) {
fChannelSumNodeMap[ChannelName] = (RooRealSumPdf*) arg;
break;
}
}
}
for( unsigned int i = 0; i < fChannelNameVec.size(); ++i ) {
std::string ChannelName = fChannelNameVec.at(i);
RooRealSumPdf* sumPdf = dynamic_cast<RooRealSumPdf*>(fChannelSumNodeMap[ChannelName]);
std::map< std::string, RooAbsReal*> sampleFunctionMap;
RooArgList nodes = sumPdf->funcList();
TIterator* sampleItr = nodes.createIterator();
RooAbsArg* sample;
while( (sample=(RooAbsArg*)sampleItr->Next()) ) {
RooAbsReal* func = (RooAbsReal*) sample;
std::string SampleName = sample->GetName();
if( SampleName.find("L_x_") != std::string::npos ) {
size_t index = SampleName.find("L_x_");
SampleName.replace( index, 4, "" );
}
if( SampleName.find(ChannelName.c_str()) != std::string::npos ) {
size_t index = SampleName.find(ChannelName.c_str());
SampleName = SampleName.substr(0, index-1);
}
sampleFunctionMap[SampleName] = func;
}
fChannelSampleFunctionMap[ChannelName] = sampleFunctionMap;
}
}
RooAbsArg* HistFactoryNavigation::findChild(const std::string& name, RooAbsReal* parent) const {
RooAbsArg* term=NULL;
RooArgSet* components = parent->getComponents();
TIterator* argItr = components->createIterator();
RooAbsArg* arg = NULL;
while( (arg=(RooAbsArg*)argItr->Next()) ) {
std::string ArgName = arg->GetName();
if( ArgName == name ) {
term = arg;
break;
}
}
delete components;
delete argItr;
if( term != NULL ) return term;
RooArgSet* args = new RooArgSet();
RooArgSet* paramSet = parent->getParameters(args);
TIterator* paramItr = paramSet->createIterator();
RooAbsArg* param = NULL;
while( (param=(RooAbsArg*)paramItr->Next()) ) {
std::string ParamName = param->GetName();
if( ParamName == name ) {
term = param;
break;
}
}
delete args;
delete paramSet;
delete paramItr;
return term;
}
RooAbsReal* HistFactoryNavigation::GetConstraintTerm(const std::string& parameter) {
std::string ConstraintTermName = parameter + "Constraint";
RooRealVar* param = dynamic_cast<RooRealVar*>(findChild(parameter, fModel));
if( param==NULL ) {
std::cout << "Error: Couldn't Find parameter: " << parameter << " in model."
<< std::endl;
return NULL;
}
if( parameter.find("gamma_stat_") != std::string::npos ) {
ConstraintTermName = parameter + "_constraint";
}
RooAbsReal* term = dynamic_cast<RooAbsReal*>(findChild(ConstraintTermName, fModel));
if( term==NULL ) {
std::cout << "Error: Couldn't Find constraint term for parameter: " << parameter
<< " (Looked for '" << ConstraintTermName << "')" << std::endl;
return NULL;
}
return term;
}
double HistFactoryNavigation::GetConstraintUncertainty(const std::string& parameter) {
RooAbsReal* constraintTerm = GetConstraintTerm(parameter);
if( constraintTerm==NULL ) {
std::cout << "Error: Cannot get uncertainty because parameter: " << parameter
<< " has no constraint term" << std::endl;
throw hf_exc();
}
std::string ConstraintType = constraintTerm->IsA()->GetName();
double sigma = 0.0;
if( ConstraintType == "" ) {
std::cout << "Error: Constraint type is an empty string."
<< " This simply should not be." << std::endl;
throw hf_exc();
}
else if( ConstraintType == "RooGaussian" ){
std::string sigmaName = "";
if( parameter.find("alpha_")!=std::string::npos ) {
sigmaName = "1";;
}
else if( parameter.find("gamma_stat_")!=std::string::npos ) {
sigmaName = parameter + "_sigma";
}
RooAbsReal* sigmaVar = dynamic_cast<RooAbsReal*>(constraintTerm->findServer(sigmaName.c_str()));
if( sigmaVar==NULL ) {
std::cout << "Error: Failed to find the 'sigma' node: " << sigmaName
<< " in the RooGaussian: " << constraintTerm->GetName() << std::endl;
throw hf_exc();
}
sigma = sigmaVar->getVal();
}
else if( ConstraintType == "RooPoisson" ){
std::string tauName = "nom_" + parameter;
RooAbsReal* tauVar = dynamic_cast<RooAbsReal*>( constraintTerm->findServer(tauName.c_str()) );
if( tauVar==NULL ) {
std::cout << "Error: Failed to find the nominal 'tau' node: " << tauName
<< " for the RooPoisson: " << constraintTerm->GetName() << std::endl;
throw hf_exc();
}
double tau_val = tauVar->getVal();
sigma = 1.0 / TMath::Sqrt( tau_val );
}
else {
std::cout << "Error: Encountered unknown constraint type for Stat Uncertainties: "
<< ConstraintType << std::endl;
throw hf_exc();
}
return sigma;
}
void HistFactoryNavigation::ReplaceNode(const std::string& ToReplace, RooAbsArg* ReplaceWith) {
RooAbsArg* nodeToReplace = findChild(ToReplace, fModel);
if( nodeToReplace==NULL ) {
std::cout << "Error: Cannot replace node: " << ToReplace
<< " because this node wasn't found in: " << fModel->GetName()
<< std::endl;
throw hf_exc();
}
TIterator* clientItr = nodeToReplace->clientIterator();
RooAbsArg* client=NULL;
while((client=(RooAbsArg*)clientItr->Next())) {
if( findChild(client->GetName(), fModel)==NULL ) continue;
bool valueProp=false;
bool shapeProp=false;
client->replaceServer( *nodeToReplace, *ReplaceWith, valueProp, shapeProp );
std::cout << "Replaced: " << ToReplace << " with: " << ReplaceWith->GetName()
<< " in node: " << client->GetName() << std::endl;
}
delete clientItr;
return;
}
void HistFactoryNavigation::PrintSampleComponents(const std::string& channel,
const std::string& sample) {
RooAbsReal* sampleNode = SampleFunction(channel, sample);
RooArgList observable_list( *GetObservableSet(channel) );
std::string total_Name = sampleNode->GetName();
TH1* total_hist= MakeHistFromRooFunction( sampleNode, observable_list, total_Name + "_tmp");
unsigned int num_bins = total_hist->GetNbinsX()*total_hist->GetNbinsY()*total_hist->GetNbinsZ();
RooArgSet components;
int label_print_width = 30;
int bin_print_width = 12;
if( strcmp(sampleNode->ClassName(),"RooProduct")==0){
RooProduct* prod = dynamic_cast<RooProduct*>(sampleNode);
components.add( _GetAllProducts(prod) );
}
else {
components.add(*sampleNode);
}
{
TIterator* itr = components.createIterator();
RooAbsArg* arg = NULL;
while( (arg=(RooAbsArg*)itr->Next()) ) {
RooAbsReal* component = dynamic_cast<RooAbsReal*>(arg);
std::string NodeName = component->GetName();
label_print_width = TMath::Max(label_print_width, (int)NodeName.size()+2);
}
}
std::cout << std::endl;
std::cout << "Channel: " << channel << " Sample: " << sample << std::endl;
std::cout << std::setw(label_print_width) << "Factor";
for(unsigned int i=0; i < num_bins; ++i) {
if( _minBinToPrint != -1 && (int)i < _minBinToPrint) continue;
if( _maxBinToPrint != -1 && (int)i > _maxBinToPrint) break;
std::stringstream sstr;
sstr << "Bin" << i;
std::cout << std::setw(bin_print_width) << sstr.str();
}
std::cout << std::endl;
TIterator* itr = components.createIterator();
RooAbsArg* arg = NULL;
while( (arg=(RooAbsArg*)itr->Next()) ) {
RooAbsReal* component = dynamic_cast<RooAbsReal*>(arg);
std::string NodeName = component->GetName();
RooFit::MsgLevel levelBefore = RooMsgService::instance().globalKillBelow();
RooMsgService::instance().setGlobalKillBelow(RooFit::FATAL);
TH1* hist=NULL;
try {
hist = MakeHistFromRooFunction( component, observable_list, NodeName+"_tmp");
} catch(...) {
RooMsgService::instance().setGlobalKillBelow(levelBefore);
throw;
}
RooMsgService::instance().setGlobalKillBelow(levelBefore);
std::cout << std::setw(label_print_width) << NodeName;
PrintMultiDimHist(hist, bin_print_width);
delete hist;
}
std::string line_break;
int high_bin = _maxBinToPrint==-1 ? num_bins : TMath::Min(_maxBinToPrint, (int)num_bins);
int low_bin = _minBinToPrint==-1 ? 1 : _minBinToPrint;
int break_length = (high_bin - low_bin + 1) * bin_print_width;
break_length += label_print_width;
for(int i = 0; i < break_length; ++i) {
line_break += "=";
}
std::cout << line_break << std::endl;
std::cout << std::setw(label_print_width) << "TOTAL:";
PrintMultiDimHist(total_hist, bin_print_width);
delete total_hist;
return;
}
TH1* HistFactoryNavigation::MakeHistFromRooFunction( RooAbsReal* func, RooArgList vars,
std::string name ) {
int dim = vars.getSize();
TH1* hist=NULL;
if( dim==1 ) {
RooRealVar* varX = (RooRealVar*) vars.at(0);
hist = func->createHistogram( name.c_str(),*varX, RooFit::Binning(varX->getBinning()), RooFit::Scaling(false) );
}
else if( dim==2 ) {
RooRealVar* varX = (RooRealVar*) vars.at(0);
RooRealVar* varY = (RooRealVar*) vars.at(1);
hist = func->createHistogram( name.c_str(),*varX, RooFit::Binning(varX->getBinning()), RooFit::Scaling(false),
RooFit::YVar(*varY, RooFit::Binning(varY->getBinning())) );
}
else if( dim==3 ) {
RooRealVar* varX = (RooRealVar*) vars.at(0);
RooRealVar* varY = (RooRealVar*) vars.at(1);
RooRealVar* varZ = (RooRealVar*) vars.at(2);
hist = func->createHistogram( name.c_str(),*varX, RooFit::Binning(varX->getBinning()), RooFit::Scaling(false),
RooFit::YVar(*varY, RooFit::Binning(varY->getBinning())),
RooFit::YVar(*varZ, RooFit::Binning(varZ->getBinning())) );
}
else {
std::cout << "Error: To Create Histogram from RooAbsReal function, Dimension must be 1, 2, or 3" << std::endl;
throw hf_exc();
}
return hist;
}
void HistFactoryNavigation::_GetNodes(ModelConfig* mc) {
RooAbsPdf* modelPdf = mc->GetPdf();
const RooArgSet* observables = mc->GetObservables();
_GetNodes(modelPdf, observables);
}
void HistFactoryNavigation::SetConstant(const std::string& regExpr, bool constant) {
TString RegexTString(regExpr);
TRegexp theRegExpr(RegexTString);
RooArgSet* params = fModel->getParameters(*fObservables);
std::cout << std::endl;
std::cout << std::setw(30) << "Parameter";
std::cout << std::setw(15) << "Value"
<< std::setw(15) << "Error Low"
<< std::setw(15) << "Error High"
<< std::endl;
TIterator* paramItr = params->createIterator();
RooRealVar* param = NULL;
while( (param=(RooRealVar*)paramItr->Next()) ) {
std::string ParamName = param->GetName();
TString ParamNameTString(ParamName);
Ssiz_t dummy;
if( theRegExpr.Index(ParamNameTString, &dummy) == -1 ) continue;
param->setConstant( constant );
std::cout << "Setting param: " << ParamName << " constant"
<< " (matches regex: " << regExpr << ")" << std::endl;
}
}
RooRealVar* HistFactoryNavigation::var(const std::string& varName) const {
RooAbsArg* arg = findChild(varName, fModel);
if( !arg ) return NULL;
RooRealVar* var_obj = dynamic_cast<RooRealVar*>(arg);
return var_obj;
}
}
}
HistFactoryNavigation.cxx:1 HistFactoryNavigation.cxx:2 HistFactoryNavigation.cxx:3 HistFactoryNavigation.cxx:4 HistFactoryNavigation.cxx:5 HistFactoryNavigation.cxx:6 HistFactoryNavigation.cxx:7 HistFactoryNavigation.cxx:8 HistFactoryNavigation.cxx:9 HistFactoryNavigation.cxx:10 HistFactoryNavigation.cxx:11 HistFactoryNavigation.cxx:12 HistFactoryNavigation.cxx:13 HistFactoryNavigation.cxx:14 HistFactoryNavigation.cxx:15 HistFactoryNavigation.cxx:16 HistFactoryNavigation.cxx:17 HistFactoryNavigation.cxx:18 HistFactoryNavigation.cxx:19 HistFactoryNavigation.cxx:20 HistFactoryNavigation.cxx:21 HistFactoryNavigation.cxx:22 HistFactoryNavigation.cxx:23 HistFactoryNavigation.cxx:24 HistFactoryNavigation.cxx:25 HistFactoryNavigation.cxx:26 HistFactoryNavigation.cxx:27 HistFactoryNavigation.cxx:28 HistFactoryNavigation.cxx:29 HistFactoryNavigation.cxx:30 HistFactoryNavigation.cxx:31 HistFactoryNavigation.cxx:32 HistFactoryNavigation.cxx:33 HistFactoryNavigation.cxx:34 HistFactoryNavigation.cxx:35 HistFactoryNavigation.cxx:36 HistFactoryNavigation.cxx:37 HistFactoryNavigation.cxx:38 HistFactoryNavigation.cxx:39 HistFactoryNavigation.cxx:40 HistFactoryNavigation.cxx:41 HistFactoryNavigation.cxx:42 HistFactoryNavigation.cxx:43 HistFactoryNavigation.cxx:44 HistFactoryNavigation.cxx:45 HistFactoryNavigation.cxx:46 HistFactoryNavigation.cxx:47 HistFactoryNavigation.cxx:48 HistFactoryNavigation.cxx:49 HistFactoryNavigation.cxx:50 HistFactoryNavigation.cxx:51 HistFactoryNavigation.cxx:52 HistFactoryNavigation.cxx:53 HistFactoryNavigation.cxx:54 HistFactoryNavigation.cxx:55 HistFactoryNavigation.cxx:56 HistFactoryNavigation.cxx:57 HistFactoryNavigation.cxx:58 HistFactoryNavigation.cxx:59 HistFactoryNavigation.cxx:60 HistFactoryNavigation.cxx:61 HistFactoryNavigation.cxx:62 HistFactoryNavigation.cxx:63 HistFactoryNavigation.cxx:64 HistFactoryNavigation.cxx:65 HistFactoryNavigation.cxx:66 HistFactoryNavigation.cxx:67 HistFactoryNavigation.cxx:68 HistFactoryNavigation.cxx:69 HistFactoryNavigation.cxx:70 HistFactoryNavigation.cxx:71 HistFactoryNavigation.cxx:72 HistFactoryNavigation.cxx:73 HistFactoryNavigation.cxx:74 HistFactoryNavigation.cxx:75 HistFactoryNavigation.cxx:76 HistFactoryNavigation.cxx:77 HistFactoryNavigation.cxx:78 HistFactoryNavigation.cxx:79 HistFactoryNavigation.cxx:80 HistFactoryNavigation.cxx:81 HistFactoryNavigation.cxx:82 HistFactoryNavigation.cxx:83 HistFactoryNavigation.cxx:84 HistFactoryNavigation.cxx:85 HistFactoryNavigation.cxx:86 HistFactoryNavigation.cxx:87 HistFactoryNavigation.cxx:88 HistFactoryNavigation.cxx:89 HistFactoryNavigation.cxx:90 HistFactoryNavigation.cxx:91 HistFactoryNavigation.cxx:92 HistFactoryNavigation.cxx:93 HistFactoryNavigation.cxx:94 HistFactoryNavigation.cxx:95 HistFactoryNavigation.cxx:96 HistFactoryNavigation.cxx:97 HistFactoryNavigation.cxx:98 HistFactoryNavigation.cxx:99 HistFactoryNavigation.cxx:100 HistFactoryNavigation.cxx:101 HistFactoryNavigation.cxx:102 HistFactoryNavigation.cxx:103 HistFactoryNavigation.cxx:104 HistFactoryNavigation.cxx:105 HistFactoryNavigation.cxx:106 HistFactoryNavigation.cxx:107 HistFactoryNavigation.cxx:108 HistFactoryNavigation.cxx:109 HistFactoryNavigation.cxx:110 HistFactoryNavigation.cxx:111 HistFactoryNavigation.cxx:112 HistFactoryNavigation.cxx:113 HistFactoryNavigation.cxx:114 HistFactoryNavigation.cxx:115 HistFactoryNavigation.cxx:116 HistFactoryNavigation.cxx:117 HistFactoryNavigation.cxx:118 HistFactoryNavigation.cxx:119 HistFactoryNavigation.cxx:120 HistFactoryNavigation.cxx:121 HistFactoryNavigation.cxx:122 HistFactoryNavigation.cxx:123 HistFactoryNavigation.cxx:124 HistFactoryNavigation.cxx:125 HistFactoryNavigation.cxx:126 HistFactoryNavigation.cxx:127 HistFactoryNavigation.cxx:128 HistFactoryNavigation.cxx:129 HistFactoryNavigation.cxx:130 HistFactoryNavigation.cxx:131 HistFactoryNavigation.cxx:132 HistFactoryNavigation.cxx:133 HistFactoryNavigation.cxx:134 HistFactoryNavigation.cxx:135 HistFactoryNavigation.cxx:136 HistFactoryNavigation.cxx:137 HistFactoryNavigation.cxx:138 HistFactoryNavigation.cxx:139 HistFactoryNavigation.cxx:140 HistFactoryNavigation.cxx:141 HistFactoryNavigation.cxx:142 HistFactoryNavigation.cxx:143 HistFactoryNavigation.cxx:144 HistFactoryNavigation.cxx:145 HistFactoryNavigation.cxx:146 HistFactoryNavigation.cxx:147 HistFactoryNavigation.cxx:148 HistFactoryNavigation.cxx:149 HistFactoryNavigation.cxx:150 HistFactoryNavigation.cxx:151 HistFactoryNavigation.cxx:152 HistFactoryNavigation.cxx:153 HistFactoryNavigation.cxx:154 HistFactoryNavigation.cxx:155 HistFactoryNavigation.cxx:156 HistFactoryNavigation.cxx:157 HistFactoryNavigation.cxx:158 HistFactoryNavigation.cxx:159 HistFactoryNavigation.cxx:160 HistFactoryNavigation.cxx:161 HistFactoryNavigation.cxx:162 HistFactoryNavigation.cxx:163 HistFactoryNavigation.cxx:164 HistFactoryNavigation.cxx:165 HistFactoryNavigation.cxx:166 HistFactoryNavigation.cxx:167 HistFactoryNavigation.cxx:168 HistFactoryNavigation.cxx:169 HistFactoryNavigation.cxx:170 HistFactoryNavigation.cxx:171 HistFactoryNavigation.cxx:172 HistFactoryNavigation.cxx:173 HistFactoryNavigation.cxx:174 HistFactoryNavigation.cxx:175 HistFactoryNavigation.cxx:176 HistFactoryNavigation.cxx:177 HistFactoryNavigation.cxx:178 HistFactoryNavigation.cxx:179 HistFactoryNavigation.cxx:180 HistFactoryNavigation.cxx:181 HistFactoryNavigation.cxx:182 HistFactoryNavigation.cxx:183 HistFactoryNavigation.cxx:184 HistFactoryNavigation.cxx:185 HistFactoryNavigation.cxx:186 HistFactoryNavigation.cxx:187 HistFactoryNavigation.cxx:188 HistFactoryNavigation.cxx:189 HistFactoryNavigation.cxx:190 HistFactoryNavigation.cxx:191 HistFactoryNavigation.cxx:192 HistFactoryNavigation.cxx:193 HistFactoryNavigation.cxx:194 HistFactoryNavigation.cxx:195 HistFactoryNavigation.cxx:196 HistFactoryNavigation.cxx:197 HistFactoryNavigation.cxx:198 HistFactoryNavigation.cxx:199 HistFactoryNavigation.cxx:200 HistFactoryNavigation.cxx:201 HistFactoryNavigation.cxx:202 HistFactoryNavigation.cxx:203 HistFactoryNavigation.cxx:204 HistFactoryNavigation.cxx:205 HistFactoryNavigation.cxx:206 HistFactoryNavigation.cxx:207 HistFactoryNavigation.cxx:208 HistFactoryNavigation.cxx:209 HistFactoryNavigation.cxx:210 HistFactoryNavigation.cxx:211 HistFactoryNavigation.cxx:212 HistFactoryNavigation.cxx:213 HistFactoryNavigation.cxx:214 HistFactoryNavigation.cxx:215 HistFactoryNavigation.cxx:216 HistFactoryNavigation.cxx:217 HistFactoryNavigation.cxx:218 HistFactoryNavigation.cxx:219 HistFactoryNavigation.cxx:220 HistFactoryNavigation.cxx:221 HistFactoryNavigation.cxx:222 HistFactoryNavigation.cxx:223 HistFactoryNavigation.cxx:224 HistFactoryNavigation.cxx:225 HistFactoryNavigation.cxx:226 HistFactoryNavigation.cxx:227 HistFactoryNavigation.cxx:228 HistFactoryNavigation.cxx:229 HistFactoryNavigation.cxx:230 HistFactoryNavigation.cxx:231 HistFactoryNavigation.cxx:232 HistFactoryNavigation.cxx:233 HistFactoryNavigation.cxx:234 HistFactoryNavigation.cxx:235 HistFactoryNavigation.cxx:236 HistFactoryNavigation.cxx:237 HistFactoryNavigation.cxx:238 HistFactoryNavigation.cxx:239 HistFactoryNavigation.cxx:240 HistFactoryNavigation.cxx:241 HistFactoryNavigation.cxx:242 HistFactoryNavigation.cxx:243 HistFactoryNavigation.cxx:244 HistFactoryNavigation.cxx:245 HistFactoryNavigation.cxx:246 HistFactoryNavigation.cxx:247 HistFactoryNavigation.cxx:248 HistFactoryNavigation.cxx:249 HistFactoryNavigation.cxx:250 HistFactoryNavigation.cxx:251 HistFactoryNavigation.cxx:252 HistFactoryNavigation.cxx:253 HistFactoryNavigation.cxx:254 HistFactoryNavigation.cxx:255 HistFactoryNavigation.cxx:256 HistFactoryNavigation.cxx:257 HistFactoryNavigation.cxx:258 HistFactoryNavigation.cxx:259 HistFactoryNavigation.cxx:260 HistFactoryNavigation.cxx:261 HistFactoryNavigation.cxx:262 HistFactoryNavigation.cxx:263 HistFactoryNavigation.cxx:264 HistFactoryNavigation.cxx:265 HistFactoryNavigation.cxx:266 HistFactoryNavigation.cxx:267 HistFactoryNavigation.cxx:268 HistFactoryNavigation.cxx:269 HistFactoryNavigation.cxx:270 HistFactoryNavigation.cxx:271 HistFactoryNavigation.cxx:272 HistFactoryNavigation.cxx:273 HistFactoryNavigation.cxx:274 HistFactoryNavigation.cxx:275 HistFactoryNavigation.cxx:276 HistFactoryNavigation.cxx:277 HistFactoryNavigation.cxx:278 HistFactoryNavigation.cxx:279 HistFactoryNavigation.cxx:280 HistFactoryNavigation.cxx:281 HistFactoryNavigation.cxx:282 HistFactoryNavigation.cxx:283 HistFactoryNavigation.cxx:284 HistFactoryNavigation.cxx:285 HistFactoryNavigation.cxx:286 HistFactoryNavigation.cxx:287 HistFactoryNavigation.cxx:288 HistFactoryNavigation.cxx:289 HistFactoryNavigation.cxx:290 HistFactoryNavigation.cxx:291 HistFactoryNavigation.cxx:292 HistFactoryNavigation.cxx:293 HistFactoryNavigation.cxx:294 HistFactoryNavigation.cxx:295 HistFactoryNavigation.cxx:296 HistFactoryNavigation.cxx:297 HistFactoryNavigation.cxx:298 HistFactoryNavigation.cxx:299 HistFactoryNavigation.cxx:300 HistFactoryNavigation.cxx:301 HistFactoryNavigation.cxx:302 HistFactoryNavigation.cxx:303 HistFactoryNavigation.cxx:304 HistFactoryNavigation.cxx:305 HistFactoryNavigation.cxx:306 HistFactoryNavigation.cxx:307 HistFactoryNavigation.cxx:308 HistFactoryNavigation.cxx:309 HistFactoryNavigation.cxx:310 HistFactoryNavigation.cxx:311 HistFactoryNavigation.cxx:312 HistFactoryNavigation.cxx:313 HistFactoryNavigation.cxx:314 HistFactoryNavigation.cxx:315 HistFactoryNavigation.cxx:316 HistFactoryNavigation.cxx:317 HistFactoryNavigation.cxx:318 HistFactoryNavigation.cxx:319 HistFactoryNavigation.cxx:320 HistFactoryNavigation.cxx:321 HistFactoryNavigation.cxx:322 HistFactoryNavigation.cxx:323 HistFactoryNavigation.cxx:324 HistFactoryNavigation.cxx:325 HistFactoryNavigation.cxx:326 HistFactoryNavigation.cxx:327 HistFactoryNavigation.cxx:328 HistFactoryNavigation.cxx:329 HistFactoryNavigation.cxx:330 HistFactoryNavigation.cxx:331 HistFactoryNavigation.cxx:332 HistFactoryNavigation.cxx:333 HistFactoryNavigation.cxx:334 HistFactoryNavigation.cxx:335 HistFactoryNavigation.cxx:336 HistFactoryNavigation.cxx:337 HistFactoryNavigation.cxx:338 HistFactoryNavigation.cxx:339 HistFactoryNavigation.cxx:340 HistFactoryNavigation.cxx:341 HistFactoryNavigation.cxx:342 HistFactoryNavigation.cxx:343 HistFactoryNavigation.cxx:344 HistFactoryNavigation.cxx:345 HistFactoryNavigation.cxx:346 HistFactoryNavigation.cxx:347 HistFactoryNavigation.cxx:348 HistFactoryNavigation.cxx:349 HistFactoryNavigation.cxx:350 HistFactoryNavigation.cxx:351 HistFactoryNavigation.cxx:352 HistFactoryNavigation.cxx:353 HistFactoryNavigation.cxx:354 HistFactoryNavigation.cxx:355 HistFactoryNavigation.cxx:356 HistFactoryNavigation.cxx:357 HistFactoryNavigation.cxx:358 HistFactoryNavigation.cxx:359 HistFactoryNavigation.cxx:360 HistFactoryNavigation.cxx:361 HistFactoryNavigation.cxx:362 HistFactoryNavigation.cxx:363 HistFactoryNavigation.cxx:364 HistFactoryNavigation.cxx:365 HistFactoryNavigation.cxx:366 HistFactoryNavigation.cxx:367 HistFactoryNavigation.cxx:368 HistFactoryNavigation.cxx:369 HistFactoryNavigation.cxx:370 HistFactoryNavigation.cxx:371 HistFactoryNavigation.cxx:372 HistFactoryNavigation.cxx:373 HistFactoryNavigation.cxx:374 HistFactoryNavigation.cxx:375 HistFactoryNavigation.cxx:376 HistFactoryNavigation.cxx:377 HistFactoryNavigation.cxx:378 HistFactoryNavigation.cxx:379 HistFactoryNavigation.cxx:380 HistFactoryNavigation.cxx:381 HistFactoryNavigation.cxx:382 HistFactoryNavigation.cxx:383 HistFactoryNavigation.cxx:384 HistFactoryNavigation.cxx:385 HistFactoryNavigation.cxx:386 HistFactoryNavigation.cxx:387 HistFactoryNavigation.cxx:388 HistFactoryNavigation.cxx:389 HistFactoryNavigation.cxx:390 HistFactoryNavigation.cxx:391 HistFactoryNavigation.cxx:392 HistFactoryNavigation.cxx:393 HistFactoryNavigation.cxx:394 HistFactoryNavigation.cxx:395 HistFactoryNavigation.cxx:396 HistFactoryNavigation.cxx:397 HistFactoryNavigation.cxx:398 HistFactoryNavigation.cxx:399 HistFactoryNavigation.cxx:400 HistFactoryNavigation.cxx:401 HistFactoryNavigation.cxx:402 HistFactoryNavigation.cxx:403 HistFactoryNavigation.cxx:404 HistFactoryNavigation.cxx:405 HistFactoryNavigation.cxx:406 HistFactoryNavigation.cxx:407 HistFactoryNavigation.cxx:408 HistFactoryNavigation.cxx:409 HistFactoryNavigation.cxx:410 HistFactoryNavigation.cxx:411 HistFactoryNavigation.cxx:412 HistFactoryNavigation.cxx:413 HistFactoryNavigation.cxx:414 HistFactoryNavigation.cxx:415 HistFactoryNavigation.cxx:416 HistFactoryNavigation.cxx:417 HistFactoryNavigation.cxx:418 HistFactoryNavigation.cxx:419 HistFactoryNavigation.cxx:420 HistFactoryNavigation.cxx:421 HistFactoryNavigation.cxx:422 HistFactoryNavigation.cxx:423 HistFactoryNavigation.cxx:424 HistFactoryNavigation.cxx:425 HistFactoryNavigation.cxx:426 HistFactoryNavigation.cxx:427 HistFactoryNavigation.cxx:428 HistFactoryNavigation.cxx:429 HistFactoryNavigation.cxx:430 HistFactoryNavigation.cxx:431 HistFactoryNavigation.cxx:432 HistFactoryNavigation.cxx:433 HistFactoryNavigation.cxx:434 HistFactoryNavigation.cxx:435 HistFactoryNavigation.cxx:436 HistFactoryNavigation.cxx:437 HistFactoryNavigation.cxx:438 HistFactoryNavigation.cxx:439 HistFactoryNavigation.cxx:440 HistFactoryNavigation.cxx:441 HistFactoryNavigation.cxx:442 HistFactoryNavigation.cxx:443 HistFactoryNavigation.cxx:444 HistFactoryNavigation.cxx:445 HistFactoryNavigation.cxx:446 HistFactoryNavigation.cxx:447 HistFactoryNavigation.cxx:448 HistFactoryNavigation.cxx:449 HistFactoryNavigation.cxx:450 HistFactoryNavigation.cxx:451 HistFactoryNavigation.cxx:452 HistFactoryNavigation.cxx:453 HistFactoryNavigation.cxx:454 HistFactoryNavigation.cxx:455 HistFactoryNavigation.cxx:456 HistFactoryNavigation.cxx:457 HistFactoryNavigation.cxx:458 HistFactoryNavigation.cxx:459 HistFactoryNavigation.cxx:460 HistFactoryNavigation.cxx:461 HistFactoryNavigation.cxx:462 HistFactoryNavigation.cxx:463 HistFactoryNavigation.cxx:464 HistFactoryNavigation.cxx:465 HistFactoryNavigation.cxx:466 HistFactoryNavigation.cxx:467 HistFactoryNavigation.cxx:468 HistFactoryNavigation.cxx:469 HistFactoryNavigation.cxx:470 HistFactoryNavigation.cxx:471 HistFactoryNavigation.cxx:472 HistFactoryNavigation.cxx:473 HistFactoryNavigation.cxx:474 HistFactoryNavigation.cxx:475 HistFactoryNavigation.cxx:476 HistFactoryNavigation.cxx:477 HistFactoryNavigation.cxx:478 HistFactoryNavigation.cxx:479 HistFactoryNavigation.cxx:480 HistFactoryNavigation.cxx:481 HistFactoryNavigation.cxx:482 HistFactoryNavigation.cxx:483 HistFactoryNavigation.cxx:484 HistFactoryNavigation.cxx:485 HistFactoryNavigation.cxx:486 HistFactoryNavigation.cxx:487 HistFactoryNavigation.cxx:488 HistFactoryNavigation.cxx:489 HistFactoryNavigation.cxx:490 HistFactoryNavigation.cxx:491 HistFactoryNavigation.cxx:492 HistFactoryNavigation.cxx:493 HistFactoryNavigation.cxx:494 HistFactoryNavigation.cxx:495 HistFactoryNavigation.cxx:496 HistFactoryNavigation.cxx:497 HistFactoryNavigation.cxx:498 HistFactoryNavigation.cxx:499 HistFactoryNavigation.cxx:500 HistFactoryNavigation.cxx:501 HistFactoryNavigation.cxx:502 HistFactoryNavigation.cxx:503 HistFactoryNavigation.cxx:504 HistFactoryNavigation.cxx:505 HistFactoryNavigation.cxx:506 HistFactoryNavigation.cxx:507 HistFactoryNavigation.cxx:508 HistFactoryNavigation.cxx:509 HistFactoryNavigation.cxx:510 HistFactoryNavigation.cxx:511 HistFactoryNavigation.cxx:512 HistFactoryNavigation.cxx:513 HistFactoryNavigation.cxx:514 HistFactoryNavigation.cxx:515 HistFactoryNavigation.cxx:516 HistFactoryNavigation.cxx:517 HistFactoryNavigation.cxx:518 HistFactoryNavigation.cxx:519 HistFactoryNavigation.cxx:520 HistFactoryNavigation.cxx:521 HistFactoryNavigation.cxx:522 HistFactoryNavigation.cxx:523 HistFactoryNavigation.cxx:524 HistFactoryNavigation.cxx:525 HistFactoryNavigation.cxx:526 HistFactoryNavigation.cxx:527 HistFactoryNavigation.cxx:528 HistFactoryNavigation.cxx:529 HistFactoryNavigation.cxx:530 HistFactoryNavigation.cxx:531 HistFactoryNavigation.cxx:532 HistFactoryNavigation.cxx:533 HistFactoryNavigation.cxx:534 HistFactoryNavigation.cxx:535 HistFactoryNavigation.cxx:536 HistFactoryNavigation.cxx:537 HistFactoryNavigation.cxx:538 HistFactoryNavigation.cxx:539 HistFactoryNavigation.cxx:540 HistFactoryNavigation.cxx:541 HistFactoryNavigation.cxx:542 HistFactoryNavigation.cxx:543 HistFactoryNavigation.cxx:544 HistFactoryNavigation.cxx:545 HistFactoryNavigation.cxx:546 HistFactoryNavigation.cxx:547 HistFactoryNavigation.cxx:548 HistFactoryNavigation.cxx:549 HistFactoryNavigation.cxx:550 HistFactoryNavigation.cxx:551 HistFactoryNavigation.cxx:552 HistFactoryNavigation.cxx:553 HistFactoryNavigation.cxx:554 HistFactoryNavigation.cxx:555 HistFactoryNavigation.cxx:556 HistFactoryNavigation.cxx:557 HistFactoryNavigation.cxx:558 HistFactoryNavigation.cxx:559 HistFactoryNavigation.cxx:560 HistFactoryNavigation.cxx:561 HistFactoryNavigation.cxx:562 HistFactoryNavigation.cxx:563 HistFactoryNavigation.cxx:564 HistFactoryNavigation.cxx:565 HistFactoryNavigation.cxx:566 HistFactoryNavigation.cxx:567 HistFactoryNavigation.cxx:568 HistFactoryNavigation.cxx:569 HistFactoryNavigation.cxx:570 HistFactoryNavigation.cxx:571 HistFactoryNavigation.cxx:572 HistFactoryNavigation.cxx:573 HistFactoryNavigation.cxx:574 HistFactoryNavigation.cxx:575 HistFactoryNavigation.cxx:576 HistFactoryNavigation.cxx:577 HistFactoryNavigation.cxx:578 HistFactoryNavigation.cxx:579 HistFactoryNavigation.cxx:580 HistFactoryNavigation.cxx:581 HistFactoryNavigation.cxx:582 HistFactoryNavigation.cxx:583 HistFactoryNavigation.cxx:584 HistFactoryNavigation.cxx:585 HistFactoryNavigation.cxx:586 HistFactoryNavigation.cxx:587 HistFactoryNavigation.cxx:588 HistFactoryNavigation.cxx:589 HistFactoryNavigation.cxx:590 HistFactoryNavigation.cxx:591 HistFactoryNavigation.cxx:592 HistFactoryNavigation.cxx:593 HistFactoryNavigation.cxx:594 HistFactoryNavigation.cxx:595 HistFactoryNavigation.cxx:596 HistFactoryNavigation.cxx:597 HistFactoryNavigation.cxx:598 HistFactoryNavigation.cxx:599 HistFactoryNavigation.cxx:600 HistFactoryNavigation.cxx:601 HistFactoryNavigation.cxx:602 HistFactoryNavigation.cxx:603 HistFactoryNavigation.cxx:604 HistFactoryNavigation.cxx:605 HistFactoryNavigation.cxx:606 HistFactoryNavigation.cxx:607 HistFactoryNavigation.cxx:608 HistFactoryNavigation.cxx:609 HistFactoryNavigation.cxx:610 HistFactoryNavigation.cxx:611 HistFactoryNavigation.cxx:612 HistFactoryNavigation.cxx:613 HistFactoryNavigation.cxx:614 HistFactoryNavigation.cxx:615 HistFactoryNavigation.cxx:616 HistFactoryNavigation.cxx:617 HistFactoryNavigation.cxx:618 HistFactoryNavigation.cxx:619 HistFactoryNavigation.cxx:620 HistFactoryNavigation.cxx:621 HistFactoryNavigation.cxx:622 HistFactoryNavigation.cxx:623 HistFactoryNavigation.cxx:624 HistFactoryNavigation.cxx:625 HistFactoryNavigation.cxx:626 HistFactoryNavigation.cxx:627 HistFactoryNavigation.cxx:628 HistFactoryNavigation.cxx:629 HistFactoryNavigation.cxx:630 HistFactoryNavigation.cxx:631 HistFactoryNavigation.cxx:632 HistFactoryNavigation.cxx:633 HistFactoryNavigation.cxx:634 HistFactoryNavigation.cxx:635 HistFactoryNavigation.cxx:636 HistFactoryNavigation.cxx:637 HistFactoryNavigation.cxx:638 HistFactoryNavigation.cxx:639 HistFactoryNavigation.cxx:640 HistFactoryNavigation.cxx:641 HistFactoryNavigation.cxx:642 HistFactoryNavigation.cxx:643 HistFactoryNavigation.cxx:644 HistFactoryNavigation.cxx:645 HistFactoryNavigation.cxx:646 HistFactoryNavigation.cxx:647 HistFactoryNavigation.cxx:648 HistFactoryNavigation.cxx:649 HistFactoryNavigation.cxx:650 HistFactoryNavigation.cxx:651 HistFactoryNavigation.cxx:652 HistFactoryNavigation.cxx:653 HistFactoryNavigation.cxx:654 HistFactoryNavigation.cxx:655 HistFactoryNavigation.cxx:656 HistFactoryNavigation.cxx:657 HistFactoryNavigation.cxx:658 HistFactoryNavigation.cxx:659 HistFactoryNavigation.cxx:660 HistFactoryNavigation.cxx:661 HistFactoryNavigation.cxx:662 HistFactoryNavigation.cxx:663 HistFactoryNavigation.cxx:664 HistFactoryNavigation.cxx:665 HistFactoryNavigation.cxx:666 HistFactoryNavigation.cxx:667 HistFactoryNavigation.cxx:668 HistFactoryNavigation.cxx:669 HistFactoryNavigation.cxx:670 HistFactoryNavigation.cxx:671 HistFactoryNavigation.cxx:672 HistFactoryNavigation.cxx:673 HistFactoryNavigation.cxx:674 HistFactoryNavigation.cxx:675 HistFactoryNavigation.cxx:676 HistFactoryNavigation.cxx:677 HistFactoryNavigation.cxx:678 HistFactoryNavigation.cxx:679 HistFactoryNavigation.cxx:680 HistFactoryNavigation.cxx:681 HistFactoryNavigation.cxx:682 HistFactoryNavigation.cxx:683 HistFactoryNavigation.cxx:684 HistFactoryNavigation.cxx:685 HistFactoryNavigation.cxx:686 HistFactoryNavigation.cxx:687 HistFactoryNavigation.cxx:688 HistFactoryNavigation.cxx:689 HistFactoryNavigation.cxx:690 HistFactoryNavigation.cxx:691 HistFactoryNavigation.cxx:692 HistFactoryNavigation.cxx:693 HistFactoryNavigation.cxx:694 HistFactoryNavigation.cxx:695 HistFactoryNavigation.cxx:696 HistFactoryNavigation.cxx:697 HistFactoryNavigation.cxx:698 HistFactoryNavigation.cxx:699 HistFactoryNavigation.cxx:700 HistFactoryNavigation.cxx:701 HistFactoryNavigation.cxx:702 HistFactoryNavigation.cxx:703 HistFactoryNavigation.cxx:704 HistFactoryNavigation.cxx:705 HistFactoryNavigation.cxx:706 HistFactoryNavigation.cxx:707 HistFactoryNavigation.cxx:708 HistFactoryNavigation.cxx:709 HistFactoryNavigation.cxx:710 HistFactoryNavigation.cxx:711 HistFactoryNavigation.cxx:712 HistFactoryNavigation.cxx:713 HistFactoryNavigation.cxx:714 HistFactoryNavigation.cxx:715 HistFactoryNavigation.cxx:716 HistFactoryNavigation.cxx:717 HistFactoryNavigation.cxx:718 HistFactoryNavigation.cxx:719 HistFactoryNavigation.cxx:720 HistFactoryNavigation.cxx:721 HistFactoryNavigation.cxx:722 HistFactoryNavigation.cxx:723 HistFactoryNavigation.cxx:724 HistFactoryNavigation.cxx:725 HistFactoryNavigation.cxx:726 HistFactoryNavigation.cxx:727 HistFactoryNavigation.cxx:728 HistFactoryNavigation.cxx:729 HistFactoryNavigation.cxx:730 HistFactoryNavigation.cxx:731 HistFactoryNavigation.cxx:732 HistFactoryNavigation.cxx:733 HistFactoryNavigation.cxx:734 HistFactoryNavigation.cxx:735 HistFactoryNavigation.cxx:736 HistFactoryNavigation.cxx:737 HistFactoryNavigation.cxx:738 HistFactoryNavigation.cxx:739 HistFactoryNavigation.cxx:740 HistFactoryNavigation.cxx:741 HistFactoryNavigation.cxx:742 HistFactoryNavigation.cxx:743 HistFactoryNavigation.cxx:744 HistFactoryNavigation.cxx:745 HistFactoryNavigation.cxx:746 HistFactoryNavigation.cxx:747 HistFactoryNavigation.cxx:748 HistFactoryNavigation.cxx:749 HistFactoryNavigation.cxx:750 HistFactoryNavigation.cxx:751 HistFactoryNavigation.cxx:752 HistFactoryNavigation.cxx:753 HistFactoryNavigation.cxx:754 HistFactoryNavigation.cxx:755 HistFactoryNavigation.cxx:756 HistFactoryNavigation.cxx:757 HistFactoryNavigation.cxx:758 HistFactoryNavigation.cxx:759 HistFactoryNavigation.cxx:760 HistFactoryNavigation.cxx:761 HistFactoryNavigation.cxx:762 HistFactoryNavigation.cxx:763 HistFactoryNavigation.cxx:764 HistFactoryNavigation.cxx:765 HistFactoryNavigation.cxx:766 HistFactoryNavigation.cxx:767 HistFactoryNavigation.cxx:768 HistFactoryNavigation.cxx:769 HistFactoryNavigation.cxx:770 HistFactoryNavigation.cxx:771 HistFactoryNavigation.cxx:772 HistFactoryNavigation.cxx:773 HistFactoryNavigation.cxx:774 HistFactoryNavigation.cxx:775 HistFactoryNavigation.cxx:776 HistFactoryNavigation.cxx:777 HistFactoryNavigation.cxx:778 HistFactoryNavigation.cxx:779 HistFactoryNavigation.cxx:780 HistFactoryNavigation.cxx:781 HistFactoryNavigation.cxx:782 HistFactoryNavigation.cxx:783 HistFactoryNavigation.cxx:784 HistFactoryNavigation.cxx:785 HistFactoryNavigation.cxx:786 HistFactoryNavigation.cxx:787 HistFactoryNavigation.cxx:788 HistFactoryNavigation.cxx:789 HistFactoryNavigation.cxx:790 HistFactoryNavigation.cxx:791 HistFactoryNavigation.cxx:792 HistFactoryNavigation.cxx:793 HistFactoryNavigation.cxx:794 HistFactoryNavigation.cxx:795 HistFactoryNavigation.cxx:796 HistFactoryNavigation.cxx:797 HistFactoryNavigation.cxx:798 HistFactoryNavigation.cxx:799 HistFactoryNavigation.cxx:800 HistFactoryNavigation.cxx:801 HistFactoryNavigation.cxx:802 HistFactoryNavigation.cxx:803 HistFactoryNavigation.cxx:804 HistFactoryNavigation.cxx:805 HistFactoryNavigation.cxx:806 HistFactoryNavigation.cxx:807 HistFactoryNavigation.cxx:808 HistFactoryNavigation.cxx:809 HistFactoryNavigation.cxx:810 HistFactoryNavigation.cxx:811 HistFactoryNavigation.cxx:812 HistFactoryNavigation.cxx:813 HistFactoryNavigation.cxx:814 HistFactoryNavigation.cxx:815 HistFactoryNavigation.cxx:816 HistFactoryNavigation.cxx:817 HistFactoryNavigation.cxx:818 HistFactoryNavigation.cxx:819 HistFactoryNavigation.cxx:820 HistFactoryNavigation.cxx:821 HistFactoryNavigation.cxx:822 HistFactoryNavigation.cxx:823 HistFactoryNavigation.cxx:824 HistFactoryNavigation.cxx:825 HistFactoryNavigation.cxx:826 HistFactoryNavigation.cxx:827 HistFactoryNavigation.cxx:828 HistFactoryNavigation.cxx:829 HistFactoryNavigation.cxx:830 HistFactoryNavigation.cxx:831 HistFactoryNavigation.cxx:832 HistFactoryNavigation.cxx:833 HistFactoryNavigation.cxx:834 HistFactoryNavigation.cxx:835 HistFactoryNavigation.cxx:836 HistFactoryNavigation.cxx:837 HistFactoryNavigation.cxx:838 HistFactoryNavigation.cxx:839 HistFactoryNavigation.cxx:840 HistFactoryNavigation.cxx:841 HistFactoryNavigation.cxx:842 HistFactoryNavigation.cxx:843 HistFactoryNavigation.cxx:844 HistFactoryNavigation.cxx:845 HistFactoryNavigation.cxx:846 HistFactoryNavigation.cxx:847 HistFactoryNavigation.cxx:848 HistFactoryNavigation.cxx:849 HistFactoryNavigation.cxx:850 HistFactoryNavigation.cxx:851 HistFactoryNavigation.cxx:852 HistFactoryNavigation.cxx:853 HistFactoryNavigation.cxx:854 HistFactoryNavigation.cxx:855 HistFactoryNavigation.cxx:856 HistFactoryNavigation.cxx:857 HistFactoryNavigation.cxx:858 HistFactoryNavigation.cxx:859 HistFactoryNavigation.cxx:860 HistFactoryNavigation.cxx:861 HistFactoryNavigation.cxx:862 HistFactoryNavigation.cxx:863 HistFactoryNavigation.cxx:864 HistFactoryNavigation.cxx:865 HistFactoryNavigation.cxx:866 HistFactoryNavigation.cxx:867 HistFactoryNavigation.cxx:868 HistFactoryNavigation.cxx:869 HistFactoryNavigation.cxx:870 HistFactoryNavigation.cxx:871 HistFactoryNavigation.cxx:872 HistFactoryNavigation.cxx:873 HistFactoryNavigation.cxx:874 HistFactoryNavigation.cxx:875 HistFactoryNavigation.cxx:876 HistFactoryNavigation.cxx:877 HistFactoryNavigation.cxx:878 HistFactoryNavigation.cxx:879 HistFactoryNavigation.cxx:880 HistFactoryNavigation.cxx:881 HistFactoryNavigation.cxx:882 HistFactoryNavigation.cxx:883 HistFactoryNavigation.cxx:884 HistFactoryNavigation.cxx:885 HistFactoryNavigation.cxx:886 HistFactoryNavigation.cxx:887 HistFactoryNavigation.cxx:888 HistFactoryNavigation.cxx:889 HistFactoryNavigation.cxx:890 HistFactoryNavigation.cxx:891 HistFactoryNavigation.cxx:892 HistFactoryNavigation.cxx:893 HistFactoryNavigation.cxx:894 HistFactoryNavigation.cxx:895 HistFactoryNavigation.cxx:896 HistFactoryNavigation.cxx:897 HistFactoryNavigation.cxx:898 HistFactoryNavigation.cxx:899 HistFactoryNavigation.cxx:900 HistFactoryNavigation.cxx:901 HistFactoryNavigation.cxx:902 HistFactoryNavigation.cxx:903 HistFactoryNavigation.cxx:904 HistFactoryNavigation.cxx:905 HistFactoryNavigation.cxx:906 HistFactoryNavigation.cxx:907 HistFactoryNavigation.cxx:908 HistFactoryNavigation.cxx:909 HistFactoryNavigation.cxx:910 HistFactoryNavigation.cxx:911 HistFactoryNavigation.cxx:912 HistFactoryNavigation.cxx:913 HistFactoryNavigation.cxx:914 HistFactoryNavigation.cxx:915 HistFactoryNavigation.cxx:916 HistFactoryNavigation.cxx:917 HistFactoryNavigation.cxx:918 HistFactoryNavigation.cxx:919 HistFactoryNavigation.cxx:920 HistFactoryNavigation.cxx:921 HistFactoryNavigation.cxx:922 HistFactoryNavigation.cxx:923 HistFactoryNavigation.cxx:924 HistFactoryNavigation.cxx:925 HistFactoryNavigation.cxx:926 HistFactoryNavigation.cxx:927 HistFactoryNavigation.cxx:928 HistFactoryNavigation.cxx:929 HistFactoryNavigation.cxx:930 HistFactoryNavigation.cxx:931 HistFactoryNavigation.cxx:932 HistFactoryNavigation.cxx:933 HistFactoryNavigation.cxx:934 HistFactoryNavigation.cxx:935 HistFactoryNavigation.cxx:936 HistFactoryNavigation.cxx:937 HistFactoryNavigation.cxx:938 HistFactoryNavigation.cxx:939 HistFactoryNavigation.cxx:940 HistFactoryNavigation.cxx:941 HistFactoryNavigation.cxx:942 HistFactoryNavigation.cxx:943 HistFactoryNavigation.cxx:944 HistFactoryNavigation.cxx:945 HistFactoryNavigation.cxx:946 HistFactoryNavigation.cxx:947 HistFactoryNavigation.cxx:948 HistFactoryNavigation.cxx:949 HistFactoryNavigation.cxx:950 HistFactoryNavigation.cxx:951 HistFactoryNavigation.cxx:952 HistFactoryNavigation.cxx:953 HistFactoryNavigation.cxx:954 HistFactoryNavigation.cxx:955 HistFactoryNavigation.cxx:956 HistFactoryNavigation.cxx:957 HistFactoryNavigation.cxx:958 HistFactoryNavigation.cxx:959 HistFactoryNavigation.cxx:960 HistFactoryNavigation.cxx:961 HistFactoryNavigation.cxx:962 HistFactoryNavigation.cxx:963 HistFactoryNavigation.cxx:964 HistFactoryNavigation.cxx:965 HistFactoryNavigation.cxx:966 HistFactoryNavigation.cxx:967 HistFactoryNavigation.cxx:968 HistFactoryNavigation.cxx:969 HistFactoryNavigation.cxx:970 HistFactoryNavigation.cxx:971 HistFactoryNavigation.cxx:972 HistFactoryNavigation.cxx:973 HistFactoryNavigation.cxx:974 HistFactoryNavigation.cxx:975 HistFactoryNavigation.cxx:976 HistFactoryNavigation.cxx:977 HistFactoryNavigation.cxx:978 HistFactoryNavigation.cxx:979 HistFactoryNavigation.cxx:980 HistFactoryNavigation.cxx:981 HistFactoryNavigation.cxx:982 HistFactoryNavigation.cxx:983 HistFactoryNavigation.cxx:984 HistFactoryNavigation.cxx:985 HistFactoryNavigation.cxx:986 HistFactoryNavigation.cxx:987 HistFactoryNavigation.cxx:988 HistFactoryNavigation.cxx:989 HistFactoryNavigation.cxx:990 HistFactoryNavigation.cxx:991 HistFactoryNavigation.cxx:992 HistFactoryNavigation.cxx:993 HistFactoryNavigation.cxx:994 HistFactoryNavigation.cxx:995 HistFactoryNavigation.cxx:996 HistFactoryNavigation.cxx:997 HistFactoryNavigation.cxx:998 HistFactoryNavigation.cxx:999 HistFactoryNavigation.cxx:1000 HistFactoryNavigation.cxx:1001 HistFactoryNavigation.cxx:1002 HistFactoryNavigation.cxx:1003 HistFactoryNavigation.cxx:1004 HistFactoryNavigation.cxx:1005 HistFactoryNavigation.cxx:1006 HistFactoryNavigation.cxx:1007 HistFactoryNavigation.cxx:1008 HistFactoryNavigation.cxx:1009 HistFactoryNavigation.cxx:1010 HistFactoryNavigation.cxx:1011 HistFactoryNavigation.cxx:1012 HistFactoryNavigation.cxx:1013 HistFactoryNavigation.cxx:1014 HistFactoryNavigation.cxx:1015 HistFactoryNavigation.cxx:1016 HistFactoryNavigation.cxx:1017 HistFactoryNavigation.cxx:1018 HistFactoryNavigation.cxx:1019 HistFactoryNavigation.cxx:1020 HistFactoryNavigation.cxx:1021 HistFactoryNavigation.cxx:1022 HistFactoryNavigation.cxx:1023 HistFactoryNavigation.cxx:1024 HistFactoryNavigation.cxx:1025 HistFactoryNavigation.cxx:1026 HistFactoryNavigation.cxx:1027 HistFactoryNavigation.cxx:1028 HistFactoryNavigation.cxx:1029 HistFactoryNavigation.cxx:1030 HistFactoryNavigation.cxx:1031 HistFactoryNavigation.cxx:1032 HistFactoryNavigation.cxx:1033 HistFactoryNavigation.cxx:1034 HistFactoryNavigation.cxx:1035 HistFactoryNavigation.cxx:1036 HistFactoryNavigation.cxx:1037 HistFactoryNavigation.cxx:1038 HistFactoryNavigation.cxx:1039 HistFactoryNavigation.cxx:1040 HistFactoryNavigation.cxx:1041 HistFactoryNavigation.cxx:1042 HistFactoryNavigation.cxx:1043 HistFactoryNavigation.cxx:1044 HistFactoryNavigation.cxx:1045 HistFactoryNavigation.cxx:1046 HistFactoryNavigation.cxx:1047 HistFactoryNavigation.cxx:1048 HistFactoryNavigation.cxx:1049 HistFactoryNavigation.cxx:1050 HistFactoryNavigation.cxx:1051 HistFactoryNavigation.cxx:1052 HistFactoryNavigation.cxx:1053 HistFactoryNavigation.cxx:1054 HistFactoryNavigation.cxx:1055 HistFactoryNavigation.cxx:1056 HistFactoryNavigation.cxx:1057 HistFactoryNavigation.cxx:1058 HistFactoryNavigation.cxx:1059 HistFactoryNavigation.cxx:1060 HistFactoryNavigation.cxx:1061 HistFactoryNavigation.cxx:1062 HistFactoryNavigation.cxx:1063 HistFactoryNavigation.cxx:1064 HistFactoryNavigation.cxx:1065 HistFactoryNavigation.cxx:1066 HistFactoryNavigation.cxx:1067 HistFactoryNavigation.cxx:1068 HistFactoryNavigation.cxx:1069 HistFactoryNavigation.cxx:1070 HistFactoryNavigation.cxx:1071 HistFactoryNavigation.cxx:1072 HistFactoryNavigation.cxx:1073 HistFactoryNavigation.cxx:1074 HistFactoryNavigation.cxx:1075 HistFactoryNavigation.cxx:1076 HistFactoryNavigation.cxx:1077 HistFactoryNavigation.cxx:1078 HistFactoryNavigation.cxx:1079 HistFactoryNavigation.cxx:1080 HistFactoryNavigation.cxx:1081 HistFactoryNavigation.cxx:1082 HistFactoryNavigation.cxx:1083 HistFactoryNavigation.cxx:1084 HistFactoryNavigation.cxx:1085 HistFactoryNavigation.cxx:1086 HistFactoryNavigation.cxx:1087 HistFactoryNavigation.cxx:1088 HistFactoryNavigation.cxx:1089 HistFactoryNavigation.cxx:1090 HistFactoryNavigation.cxx:1091 HistFactoryNavigation.cxx:1092 HistFactoryNavigation.cxx:1093 HistFactoryNavigation.cxx:1094 HistFactoryNavigation.cxx:1095 HistFactoryNavigation.cxx:1096 HistFactoryNavigation.cxx:1097 HistFactoryNavigation.cxx:1098 HistFactoryNavigation.cxx:1099 HistFactoryNavigation.cxx:1100 HistFactoryNavigation.cxx:1101 HistFactoryNavigation.cxx:1102 HistFactoryNavigation.cxx:1103 HistFactoryNavigation.cxx:1104 HistFactoryNavigation.cxx:1105 HistFactoryNavigation.cxx:1106 HistFactoryNavigation.cxx:1107 HistFactoryNavigation.cxx:1108 HistFactoryNavigation.cxx:1109 HistFactoryNavigation.cxx:1110 HistFactoryNavigation.cxx:1111 HistFactoryNavigation.cxx:1112 HistFactoryNavigation.cxx:1113 HistFactoryNavigation.cxx:1114 HistFactoryNavigation.cxx:1115 HistFactoryNavigation.cxx:1116 HistFactoryNavigation.cxx:1117 HistFactoryNavigation.cxx:1118 HistFactoryNavigation.cxx:1119 HistFactoryNavigation.cxx:1120 HistFactoryNavigation.cxx:1121 HistFactoryNavigation.cxx:1122 HistFactoryNavigation.cxx:1123 HistFactoryNavigation.cxx:1124 HistFactoryNavigation.cxx:1125 HistFactoryNavigation.cxx:1126 HistFactoryNavigation.cxx:1127 HistFactoryNavigation.cxx:1128 HistFactoryNavigation.cxx:1129 HistFactoryNavigation.cxx:1130 HistFactoryNavigation.cxx:1131 HistFactoryNavigation.cxx:1132 HistFactoryNavigation.cxx:1133 HistFactoryNavigation.cxx:1134 HistFactoryNavigation.cxx:1135 HistFactoryNavigation.cxx:1136 HistFactoryNavigation.cxx:1137 HistFactoryNavigation.cxx:1138 HistFactoryNavigation.cxx:1139 HistFactoryNavigation.cxx:1140 HistFactoryNavigation.cxx:1141 HistFactoryNavigation.cxx:1142 HistFactoryNavigation.cxx:1143 HistFactoryNavigation.cxx:1144 HistFactoryNavigation.cxx:1145 HistFactoryNavigation.cxx:1146 HistFactoryNavigation.cxx:1147 HistFactoryNavigation.cxx:1148 HistFactoryNavigation.cxx:1149 HistFactoryNavigation.cxx:1150 HistFactoryNavigation.cxx:1151 HistFactoryNavigation.cxx:1152 HistFactoryNavigation.cxx:1153 HistFactoryNavigation.cxx:1154 HistFactoryNavigation.cxx:1155 HistFactoryNavigation.cxx:1156 HistFactoryNavigation.cxx:1157 HistFactoryNavigation.cxx:1158 HistFactoryNavigation.cxx:1159 HistFactoryNavigation.cxx:1160 HistFactoryNavigation.cxx:1161 HistFactoryNavigation.cxx:1162 HistFactoryNavigation.cxx:1163 HistFactoryNavigation.cxx:1164 HistFactoryNavigation.cxx:1165 HistFactoryNavigation.cxx:1166 HistFactoryNavigation.cxx:1167 HistFactoryNavigation.cxx:1168 HistFactoryNavigation.cxx:1169 HistFactoryNavigation.cxx:1170 HistFactoryNavigation.cxx:1171 HistFactoryNavigation.cxx:1172 HistFactoryNavigation.cxx:1173 HistFactoryNavigation.cxx:1174 HistFactoryNavigation.cxx:1175 HistFactoryNavigation.cxx:1176 HistFactoryNavigation.cxx:1177 HistFactoryNavigation.cxx:1178 HistFactoryNavigation.cxx:1179 HistFactoryNavigation.cxx:1180 HistFactoryNavigation.cxx:1181 HistFactoryNavigation.cxx:1182 HistFactoryNavigation.cxx:1183 HistFactoryNavigation.cxx:1184 HistFactoryNavigation.cxx:1185 HistFactoryNavigation.cxx:1186 HistFactoryNavigation.cxx:1187 HistFactoryNavigation.cxx:1188 HistFactoryNavigation.cxx:1189 HistFactoryNavigation.cxx:1190 HistFactoryNavigation.cxx:1191 HistFactoryNavigation.cxx:1192 HistFactoryNavigation.cxx:1193 HistFactoryNavigation.cxx:1194 HistFactoryNavigation.cxx:1195 HistFactoryNavigation.cxx:1196 HistFactoryNavigation.cxx:1197 HistFactoryNavigation.cxx:1198 HistFactoryNavigation.cxx:1199 HistFactoryNavigation.cxx:1200 HistFactoryNavigation.cxx:1201 HistFactoryNavigation.cxx:1202 HistFactoryNavigation.cxx:1203 HistFactoryNavigation.cxx:1204 HistFactoryNavigation.cxx:1205 HistFactoryNavigation.cxx:1206 HistFactoryNavigation.cxx:1207 HistFactoryNavigation.cxx:1208 HistFactoryNavigation.cxx:1209 HistFactoryNavigation.cxx:1210 HistFactoryNavigation.cxx:1211 HistFactoryNavigation.cxx:1212 HistFactoryNavigation.cxx:1213 HistFactoryNavigation.cxx:1214 HistFactoryNavigation.cxx:1215 HistFactoryNavigation.cxx:1216 HistFactoryNavigation.cxx:1217 HistFactoryNavigation.cxx:1218 HistFactoryNavigation.cxx:1219 HistFactoryNavigation.cxx:1220 HistFactoryNavigation.cxx:1221 HistFactoryNavigation.cxx:1222 HistFactoryNavigation.cxx:1223 HistFactoryNavigation.cxx:1224 HistFactoryNavigation.cxx:1225 HistFactoryNavigation.cxx:1226 HistFactoryNavigation.cxx:1227 HistFactoryNavigation.cxx:1228 HistFactoryNavigation.cxx:1229 HistFactoryNavigation.cxx:1230 HistFactoryNavigation.cxx:1231 HistFactoryNavigation.cxx:1232 HistFactoryNavigation.cxx:1233 HistFactoryNavigation.cxx:1234 HistFactoryNavigation.cxx:1235 HistFactoryNavigation.cxx:1236 HistFactoryNavigation.cxx:1237 HistFactoryNavigation.cxx:1238 HistFactoryNavigation.cxx:1239 HistFactoryNavigation.cxx:1240 HistFactoryNavigation.cxx:1241 HistFactoryNavigation.cxx:1242 HistFactoryNavigation.cxx:1243 HistFactoryNavigation.cxx:1244 HistFactoryNavigation.cxx:1245 HistFactoryNavigation.cxx:1246 HistFactoryNavigation.cxx:1247 HistFactoryNavigation.cxx:1248 HistFactoryNavigation.cxx:1249 HistFactoryNavigation.cxx:1250 HistFactoryNavigation.cxx:1251 HistFactoryNavigation.cxx:1252 HistFactoryNavigation.cxx:1253 HistFactoryNavigation.cxx:1254 HistFactoryNavigation.cxx:1255 HistFactoryNavigation.cxx:1256 HistFactoryNavigation.cxx:1257 HistFactoryNavigation.cxx:1258 HistFactoryNavigation.cxx:1259 HistFactoryNavigation.cxx:1260 HistFactoryNavigation.cxx:1261 HistFactoryNavigation.cxx:1262 HistFactoryNavigation.cxx:1263 HistFactoryNavigation.cxx:1264 HistFactoryNavigation.cxx:1265 HistFactoryNavigation.cxx:1266 HistFactoryNavigation.cxx:1267 HistFactoryNavigation.cxx:1268 HistFactoryNavigation.cxx:1269 HistFactoryNavigation.cxx:1270 HistFactoryNavigation.cxx:1271 HistFactoryNavigation.cxx:1272 HistFactoryNavigation.cxx:1273 HistFactoryNavigation.cxx:1274 HistFactoryNavigation.cxx:1275 HistFactoryNavigation.cxx:1276 HistFactoryNavigation.cxx:1277 HistFactoryNavigation.cxx:1278 HistFactoryNavigation.cxx:1279 HistFactoryNavigation.cxx:1280 HistFactoryNavigation.cxx:1281 HistFactoryNavigation.cxx:1282 HistFactoryNavigation.cxx:1283 HistFactoryNavigation.cxx:1284 HistFactoryNavigation.cxx:1285 HistFactoryNavigation.cxx:1286 HistFactoryNavigation.cxx:1287 HistFactoryNavigation.cxx:1288 HistFactoryNavigation.cxx:1289 HistFactoryNavigation.cxx:1290 HistFactoryNavigation.cxx:1291 HistFactoryNavigation.cxx:1292 HistFactoryNavigation.cxx:1293 HistFactoryNavigation.cxx:1294 HistFactoryNavigation.cxx:1295 HistFactoryNavigation.cxx:1296 HistFactoryNavigation.cxx:1297 HistFactoryNavigation.cxx:1298 HistFactoryNavigation.cxx:1299 HistFactoryNavigation.cxx:1300 HistFactoryNavigation.cxx:1301 HistFactoryNavigation.cxx:1302 HistFactoryNavigation.cxx:1303 HistFactoryNavigation.cxx:1304 HistFactoryNavigation.cxx:1305 HistFactoryNavigation.cxx:1306 HistFactoryNavigation.cxx:1307 HistFactoryNavigation.cxx:1308 HistFactoryNavigation.cxx:1309 HistFactoryNavigation.cxx:1310