// @(#)root/roostats:$Id$
// Author: Kyle Cranmer, George Lewis
/*************************************************************************
* Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
* All rights reserved. *
* *
* For the licensing terms see $ROOTSYS/LICENSE. *
* For the list of contributors see $ROOTSYS/README/CREDITS. *
*************************************************************************/
//_________________________________________________
/*
BEGIN_HTML
END_HTML
*/
//
#include
#include
#include
//void topDriver(string input); // in MakeModelAndMeasurements
//void fastDriver(string input); // in MakeModelAndMeasurementsFast
//#include "RooStats/HistFactory/MakeModelAndMeasurements.h"
#include "RooStats/HistFactory/ConfigParser.h"
#include "RooStats/HistFactory/MakeModelAndMeasurementsFast.h"
//_____________________________batch only_____________________
#ifndef __CINT__
namespace RooStats {
namespace HistFactory {
void fastDriver(std::string input) {
// Create the initial list of measurements and channels
std::vector< HistFactory::Measurement > measurement_list;
// std::vector< HistFactory::Channel > channel_list;
// Fill them using the XML parser
HistFactory::ConfigParser xmlParser;
measurement_list = xmlParser.GetMeasurementsFromXML( input );
// At this point, we have all the information we need
// from the xml files.
// We will make the measurements 1-by-1
for(unsigned int i = 0; i < measurement_list.size(); ++i) {
HistFactory::Measurement measurement = measurement_list.at(i);
measurement.CollectHistograms();
MakeModelAndMeasurementFast( measurement );
}
return;
}
} // namespace RooStats
} // namespace HistFactory
int main(int argc, char** argv) {
if( !(argc > 1) ) {
std::cerr << "need input file" << std::endl;
exit(1);
}
if(argc==2){
std::string input(argv[1]);
try {
RooStats::HistFactory::fastDriver(input);
}
catch(std::string str) {
std::cerr << "hist2workspace - Caught exception: " << str << std::endl ;
exit(1);
}
catch( const std::exception& e ) {
std::cerr << "hist2workspace - Caught Exception: " << e.what() << std::endl;
exit(1);
}
catch(...) {
exit(1);
}
}
if(argc==3){
std::string flag(argv[1]);
std::string input(argv[2]);
if(flag=="-standard_form") {
try {
RooStats::HistFactory::fastDriver(input);
}
catch(std::string str) {
std::cerr << "hist2workspace - Caught exception: " << str << std::endl ;
exit(1);
}
catch( const std::exception& e ) {
std::cerr << "hist2workspace - Caught Exception: " << e.what() << std::endl;
exit(1);
}
catch(...) {
std::cerr << "hist2workspace - Caught Exception" << std::endl;
exit(1);
}
}
else if(flag=="-number_counting_form") {
std::cout << "ERROR: 'number_counting_form' is now depricated." << std::endl;
/*
try {
//topDriver(input);
}
catch (std::string str) {
std::cerr << "caught exception: " << str << std::endl ;
}
catch( const std::exception& e ) {
std::cerr << "Caught Exception: " << e.what() << std::endl;
}
*/
return 255;
}
else {
std::cerr << "Unrecognized flag. " << std::endl;
return 255;
}
}
return 0;
}
#endif