48 std::vector< HistFactory::Measurement > measurement_list;
56 std::cerr <<
"Loading of xml document \"" << input
57 <<
"\" failed" << std::endl;
63 cxcoutIHF <<
"reading input : " << input << endl;
70 cxcoutEHF <<
"Error: Driver DOCTYPE not equal to 'Combination'" << std::endl;
75 std::string OutputFilePrefix;
79 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
83 std::string attrVal = curAttr->
GetValue();
85 if( attrName ==
TString(
"" ) ) {
86 cxcoutEHF <<
" Error: Attribute for 'Combination' with no name found" << std::endl;
90 else if( attrName ==
TString(
"OutputFilePrefix" ) ) {
91 OutputFilePrefix = string(curAttr->
GetValue());
92 cxcoutIHF <<
"output file prefix is : " << OutputFilePrefix << endl;
102 cxcoutEHF <<
" Error: Unknown attribute for 'Combination' encountered: "
103 << attrName << std::endl;
116 std::vector< std::string > xml_channel_files;
120 if( node->
GetText() == NULL ) {
122 <<
" has no text." << std::endl;
125 xml_channel_files.push_back(node->
GetText());
131 if(xml_channel_files.empty()){
132 cerr <<
"no input channels found" << endl;
137 std::ostringstream msg;
138 msg <<
"Found Channels: ";
139 for(
unsigned int i=0; i < xml_channel_files.size(); ++i ) msg <<
" " << xml_channel_files.at(i);
152 std::vector< RooStats::HistFactory::PreprocessFunction > functionObjects;
162 functionObjects.push_back( Func );
167 std::cout << std::endl;
175 cxcoutEHF <<
"Error: Node found in Measurement Driver XML with no name" << std::endl;
183 measurement_list.push_back( measurement );
199 cxcoutEHF <<
"Error: Unknown node found in Measurement Driver XML: "
207 cxcoutIHF <<
"Done Processing Measurements" << std::endl;
209 if( measurement_list.size() == 0 ) {
210 cxcoutEHF <<
"Error: No Measurements found in XML Driver File" << std::endl;
214 std::ostringstream msg;
215 msg <<
"Found Measurements: ";
216 for(
unsigned int i=0; i < measurement_list.size(); ++i ) msg <<
" " << measurement_list.at(i).GetName();
226 for(
unsigned int i = 0; i < measurement_list.size(); ++i) {
227 measurement_list.at(i).SetFunctionObjects( functionObjects );
237 std::vector< HistFactory::Channel > channel_list;
240 for(
unsigned int i = 0; i < xml_channel_files.size(); ++i ) {
241 std::string channel_xml = xml_channel_files.at(i);
242 cxcoutIHF <<
"Parsing Channel: " << channel_xml << std::endl;
248 channel_list.push_back( channel );
252 for(
unsigned int i = 0; i < measurement_list.size(); ++i) {
256 for(
unsigned int j = 0; j < channel_list.size(); ++j ) {
257 measurement.
GetChannels().push_back( channel_list.at(j) );
261 catch(std::exception&
e)
263 std::cout <<
e.what() << std::endl;
267 return measurement_list;
284 cxcoutIHF <<
"Creating new measurement: " << std::endl;
289 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
292 cxcoutEHF <<
"Found XML attribute in Measurement with no name" << std::endl;
314 cout <<
"\n INFO: Mode attribute is deprecated, will ignore\n"<<endl;
321 cxcoutEHF <<
"Found unknown XML attribute in Measurement: " << curAttr->
GetName()
331 while( child != 0 ) {
334 cxcoutEHF <<
"Found XML child node of Measurement with no name" << std::endl;
339 if( child->
GetText() == NULL ) {
341 <<
" has no text." << std::endl;
351 while( ( curParam =
dynamic_cast< TXMLAttr*
>( paramIt() ) ) != 0 ) {
354 cxcoutEHF <<
"Error: Found tag attribute with no name in ParamSetting" << std::endl;
360 if( child->
GetText() == NULL ) {
362 <<
" has no text." << std::endl;
369 double val = atof(curParam->
GetValue());
370 if( child->
GetText() == NULL ) {
372 <<
" has no text." << std::endl;
376 for(
unsigned int i = 0; i < child_nodes.size(); ++i) {
382 cxcoutEHF <<
"Found tag attribute with unknown name in ParamSetting: "
383 << curParam->
GetName() << std::endl;
397 std::string ParamFixString;
402 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
405 cxcoutEHF <<
"Error: Found tag attribute with no name in ConstraintTerm" << std::endl;
415 ParamFixString = curAttr->
GetValue();
421 cxcoutEHF <<
"Found tag attribute with unknown name in ConstraintTerm: "
422 << curAttr->
GetName() << std::endl;
430 if( ParamFixString==
"" ) {
432 <<
" added, but no parameters are set to be fixed" << std::endl;
447 map<string,double> gammaSyst;
448 map<string,double> uniformSyst;
449 map<string,double> logNormSyst;
452 if( child->
GetText() == NULL ) {
454 <<
" has no text." << std::endl;
462 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
465 cxcoutEHF <<
"Error: Found tag attribute with no name in ConstraintTerm" << std::endl;
473 else if( curAttr->
GetName() ==
TString(
"RelativeUncertainty" ) ) {
478 cxcoutEHF <<
"Found tag attribute with unknown name in ConstraintTerm: "
479 << curAttr->
GetName() << std::endl;
489 if( ! (
type==
"Gamma" ||
type==
"Uniform" ||
490 type==
"LogNormal" ||
type==
"NoConstraint") ) {
491 cxcoutEHF <<
"Error: Encountered unknown type for ConstraintTerm: " <<
type << std::endl;
495 if (
type==
"Gamma" && rel!=0) {
496 for (vector<string>::const_iterator it=syst.begin(); it!=syst.end(); ++it) {
502 if (
type==
"Uniform" && rel!=0) {
503 for (vector<string>::const_iterator it=syst.begin(); it!=syst.end(); ++it) {
509 if (
type==
"LogNormal" && rel!=0) {
510 for (vector<string>::const_iterator it=syst.begin(); it!=syst.end(); ++it) {
516 if (
type==
"NoConstraint") {
517 for (vector<string>::const_iterator it=syst.begin(); it!=syst.end(); ++it) {
519 measurement.
GetNoSyst()[(*it).c_str()] = 1.0;
552 cxcoutIHF <<
"Parsing file: " << filen << std::endl;
559 cxcoutEHF <<
"Loading of xml document \"" << filen
560 <<
"\" failed" << std::endl;
570 cxcoutEHF <<
"Error: In parsing a Channel XML, "
571 <<
"Encounterd XML with DOCTYPE: " << rootNode->
GetNodeName()
573 cxcoutEHF <<
" DOCTYPE for channels must be 'Channel' "
574 <<
" Check that your XML is properly written" << std::endl;
592 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
596 std::string attrVal = curAttr->
GetValue();
598 if( attrName ==
TString(
"" ) ) {
599 cxcoutEHF <<
" Error: Attribute for 'Channel' with no name found" << std::endl;
603 else if( attrName ==
TString(
"Name" ) ) {
605 cxcoutIHF <<
" : creating a channel named " << channel.
GetName() << std::endl;
608 else if( attrName ==
TString(
"InputFile" ) ) {
609 cxcoutIHF <<
"Setting InputFile for this channel: " << attrVal << std::endl;
616 cxcoutIHF <<
"Setting HistoPath for this channel: " << attrVal << std::endl;
624 cxcoutEHF <<
"Use of HistoName in Channel is deprecated" << std::endl;
625 cxcoutEHF <<
"This will be ignored" << std::endl;
629 cxcoutEHF <<
" Error: Unknown attribute for 'Channel' encountered: "
630 << attrName << std::endl;
638 if( channel.
GetName() ==
"" ) {
639 cxcoutEHF <<
"Error: Channel created with no name" << std::endl;
659 cxcoutEHF <<
"Error: Encountered node in Channel with no name" << std::endl;
667 cxcoutEHF <<
"Error: You can only rename the datasets of additional data sets. "
668 <<
" Remove the 'Name=" << data.
GetName() <<
"' tag"
669 <<
" from channel: " << channel.
GetName() << std::endl;
691 cxcoutEHF <<
"Error: Encountered node in Channel with unknown name: " << node->
GetNodeName() << std::endl;
699 cxcoutIHF <<
"Created Channel: " << std::endl;
710 cxcoutIHF <<
"Creating Data Element" << std::endl;
722 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
726 std::string attrVal = curAttr->
GetValue();
728 if( attrName ==
TString(
"" ) ) {
729 cxcoutEHF <<
" Error: Attribute for 'Data' with no name found" << std::endl;
733 else if( attrName ==
TString(
"Name" ) ) {
737 else if( attrName ==
TString(
"InputFile" ) ) {
741 else if( attrName ==
TString(
"HistoName" ) ) {
745 else if( attrName ==
TString(
"HistoPath" ) ) {
752 cxcoutEHF <<
" Error: Unknown attribute for 'Data' encountered: " << attrName << std::endl;
760 cxcoutEHF <<
"Error: Data Node has no InputFile" << std::endl;
764 cxcoutEHF <<
"Error: Data Node has no HistoName" << std::endl;
772 << (data.
GetName() !=
"" ?
" Name: " :
"") << data.
GetName() << std::endl;
783 cxcoutIHF <<
"Creating StatErrorConfig Element" << std::endl;
794 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
798 std::string attrVal = curAttr->
GetValue();
800 if( attrName ==
TString(
"RelErrorThreshold" ) ) {
804 if( attrName ==
TString(
"ConstraintType" ) ) {
807 if( attrVal ==
"" ) {
808 cxcoutEHF <<
"Error: Bad Value for StatErrorConfig Constraint Type Found" << std::endl;
812 else if( attrVal==
"Gaussian" || attrVal==
"Gauss" ) {
816 else if( attrVal==
"Poisson" || attrVal==
"Pois" ) {
823 cout <<
"Invalid Stat Constraint Type: " << curAttr->
GetValue() << endl;
829 cxcoutIHF <<
"Created StatErrorConfig Element with"
841 cxcoutIHF <<
"Creating Sample Element" << std::endl;
856 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
860 std::string attrVal = curAttr->
GetValue();
862 if( attrName ==
TString(
"" ) ) {
863 cxcoutEHF <<
" Error: Attribute for 'Sample' with no name found" << std::endl;
867 else if( attrName ==
TString(
"Name" ) ) {
871 else if( attrName ==
TString(
"InputFile" ) ) {
876 else if( attrName ==
TString(
"HistoName" ) ) {
880 else if( attrName ==
TString(
"HistoPath" ) ) {
885 else if( attrName ==
TString(
"NormalizeByTheory" ) ) {
903 cxcoutEHF <<
" Error: Unknown attribute for 'Sample' encountered: " << attrName << std::endl;
910 cxcoutEHF <<
"Error: Sample Node has no Name" << std::endl;
914 cxcoutEHF <<
"Error: Sample Node has no InputFile" << std::endl;
918 cxcoutEHF <<
"Error: Sample Node has no HistoName" << std::endl;
927 while( child != 0 ) {
930 cxcoutEHF <<
"Error: Encountered node in Sample with no name" << std::endl;
947 cxcoutEHF <<
"WARNING: HistoFactor not yet supported" << std::endl;
966 cxcoutEHF <<
"Error: Encountered node in Sample with unknown name: " << child->
GetNodeName() << std::endl;
974 <<
" Name: " << sample.
GetName()
988 cxcoutIHF <<
"Making NormFactor:" << std::endl;
994 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
998 std::string attrVal = curAttr->
GetValue();
1000 if( attrName ==
TString(
"" ) ){
1001 cxcoutEHF <<
"Error: Encountered Element in NormFactor with no name" << std::endl;
1009 norm.
SetVal( atof(attrVal.c_str()) );
1012 norm.
SetLow( atof(attrVal.c_str()) );
1015 norm.
SetHigh( atof(attrVal.c_str()) );
1022 cxcoutEHF <<
"Error: Encountered Element in NormFactor with unknown name: "
1023 << attrName << std::endl;
1030 cxcoutEHF <<
"Error: NormFactor Node has no Name" << std::endl;
1036 <<
" has lower limit >= its upper limit: "
1037 <<
" Lower: " << norm.
GetLow()
1038 <<
" Upper: " << norm.
GetHigh()
1039 <<
". Please Fix" << std::endl;
1044 <<
" has initial value not within its range: "
1045 <<
" Val: " << norm.
GetVal()
1046 <<
" Lower: " << norm.
GetLow()
1047 <<
" Upper: " << norm.
GetHigh()
1048 <<
". Please Fix" << std::endl;
1060 cxcoutIHF <<
"Making HistoFactor" << std::endl;
1070 cxcoutIHF <<
"Made HistoFactor" << std::endl;
1079 cxcoutIHF <<
"Making HistoSys:" << std::endl;
1100 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
1104 std::string attrVal = curAttr->
GetValue();
1106 if( attrName ==
TString(
"" ) ){
1107 cxcoutEHF <<
"Error: Encountered Element in HistoSys with no name" << std::endl;
1136 cxcoutEHF <<
"Error: Encountered Element in HistoSys with unknown name: "
1137 << attrName << std::endl;
1144 if( histoSys.
GetName() ==
"" ) {
1145 cxcoutEHF <<
"Error: HistoSys Node has no Name" << std::endl;
1149 cxcoutEHF <<
"Error: HistoSysSample Node has no InputFileHigh" << std::endl;
1153 cxcoutEHF <<
"Error: HistoSysSample Node has no InputFileLow" << std::endl;
1157 cxcoutEHF <<
"Error: HistoSysSample Node has no HistoNameHigh" << std::endl;
1161 cxcoutEHF <<
"Error: HistoSysSample Node has no HistoNameLow" << std::endl;
1175 cxcoutIHF <<
"Making OverallSys:" << std::endl;
1181 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
1185 std::string attrVal = curAttr->
GetValue();
1187 if( attrName ==
TString(
"" ) ){
1188 cxcoutEHF <<
"Error: Encountered Element in OverallSys with no name" << std::endl;
1192 else if( attrName ==
TString(
"Name" ) ) {
1193 overallSys.
SetName( attrVal );
1195 else if( attrName ==
TString(
"High" ) ) {
1196 overallSys.
SetHigh( atof(attrVal.c_str()) );
1198 else if( attrName ==
TString(
"Low" ) ) {
1199 overallSys.
SetLow( atof(attrVal.c_str()) );
1203 cxcoutEHF <<
"Error: Encountered Element in OverallSys with unknown name: "
1204 << attrName << std::endl;
1210 if( overallSys.
GetName() ==
"" ) {
1211 cxcoutEHF <<
"Error: Encountered OverallSys with no name" << std::endl;
1225 cxcoutIHF <<
"Making ShapeFactor" << std::endl;
1239 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
1243 std::string attrVal = curAttr->
GetValue();
1245 if( attrName ==
TString(
"" ) ){
1246 cxcoutEHF <<
"Error: Encountered Element in ShapeFactor with no name" << std::endl;
1250 else if( attrName ==
TString(
"Name" ) ) {
1251 shapeFactor.
SetName( attrVal );
1253 else if( attrName ==
TString(
"Const" ) ) {
1257 else if( attrName ==
TString(
"HistoName" ) ) {
1261 else if( attrName ==
TString(
"InputFile" ) ) {
1262 ShapeInputFile = attrVal;
1265 else if( attrName ==
TString(
"HistoPath" ) ) {
1266 ShapeInputPath = attrVal;
1270 cxcoutEHF <<
"Error: Encountered Element in ShapeFactor with unknown name: "
1271 << attrName << std::endl;
1277 if( shapeFactor.
GetName() ==
"" ) {
1278 cxcoutEHF <<
"Error: Encountered ShapeFactor with no name" << std::endl;
1287 <<
" is configured to have an initial shape, but "
1288 <<
"its histogram doesn't have a name"
1305 cxcoutIHF <<
"Making ShapeSys" << std::endl;
1319 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
1324 std::string attrVal = curAttr->
GetValue();
1326 if( attrName ==
TString(
"" ) ){
1327 cxcoutEHF <<
"Error: Encountered Element in ShapeSys with no name" << std::endl;
1331 else if( attrName ==
TString(
"Name" ) ) {
1335 else if( attrName ==
TString(
"HistoName" ) ) {
1339 else if( attrName ==
TString(
"HistoPath" ) ) {
1343 else if( attrName ==
TString(
"InputFile" ) ) {
1347 else if( attrName ==
TString(
"ConstraintType" ) ) {
1349 cxcoutEHF <<
"Error: ShapeSys Constraint type is empty" << std::endl;
1352 else if( attrVal==
"Gaussian" || attrVal==
"Gauss" ) {
1355 else if( attrVal==
"Poisson" || attrVal==
"Pois" ) {
1359 cout <<
"Error: Encountered unknown ShapeSys Constraint type: " << attrVal << endl;
1365 cxcoutEHF <<
"Error: Encountered Element in ShapeSys with unknown name: "
1366 << attrName << std::endl;
1373 if( shapeSys.
GetName() ==
"" ) {
1374 cxcoutEHF <<
"Error: Encountered ShapeSys with no Name" << std::endl;
1378 cxcoutEHF <<
"Error: Encountered ShapeSys with no InputFile" << std::endl;
1382 cxcoutEHF <<
"Error: Encountered ShapeSys with no HistoName" << std::endl;
1395 cxcoutIHF <<
"Activating StatError" << std::endl;
1406 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
1410 std::string attrVal = curAttr->
GetValue();
1412 if( attrName ==
TString(
"" ) ){
1413 cxcoutEHF <<
"Error: Encountered Element in ActivateStatError with no name" << std::endl;
1417 else if( attrName ==
TString(
"Activate" ) ) {
1421 else if( attrName ==
TString(
"HistoName" ) ) {
1425 else if( attrName ==
TString(
"HistoPath" ) ) {
1429 else if( attrName ==
TString(
"InputFile" ) ) {
1434 cxcoutEHF <<
"Error: Encountered Element in ActivateStatError with unknown name: "
1435 << attrName << std::endl;
1483 cxcoutIHF <<
"Parsing FunctionConfig" << std::endl;
1489 std::string Name =
"";
1490 std::string Expression =
"";
1491 std::string Dependents =
"";
1494 while( ( curAttr =
dynamic_cast< TXMLAttr*
>( attribIt() ) ) != 0 ) {
1511 cxcoutEHF <<
"Error processing PreprocessFunction: Name attribute is empty" << std::endl;
1514 if( Expression==
"" ){
1515 cxcoutEHF <<
"Error processing PreprocessFunction: Expression attribute is empty" << std::endl;
1518 if( Dependents==
"" ){
1519 cxcoutEHF <<
"Error processing PreprocessFunction: Dependents attribute is empty" << std::endl;
1552 if( attrVal ==
"" ) {
1554 <<
" Expected either 'True' or 'False' but found empty" << std::endl;
1557 else if ( attrVal ==
"True" || attrVal ==
"true" )
return true;
1558 else if ( attrVal ==
"False" || attrVal ==
"false" )
return false;
1561 <<
" Expected either 'True' or 'False' but found: " << attrVal << std::endl;
TODO Here, we are missing some documentation.
void SetName(const std::string &name)
This class encapsulates all information for the statistical interpretation of one experiment.
void SetName(const std::string &Name)
set name of channel
void Print(std::ostream &=std::cout)
void AddAdditionalData(const RooStats::HistFactory::Data &data)
add additional data object
std::string GetInputFile() const
get name of input file
std::string GetHistoPath() const
get path to histograms in input file
void SetData(const RooStats::HistFactory::Data &data)
set data object
void SetInputFile(const std::string &file)
set name of input file containing histograms
void SetStatErrorConfig(double RelErrorThreshold, Constraint::Type ConstraintType)
std::vector< RooStats::HistFactory::Sample > & GetSamples()
get vector of samples for this channel
void SetHistoPath(const std::string &file)
set path for histograms in input file
std::string GetName() const
get name of channel
bool IsAcceptableNode(TXMLNode *functionNode)
std::vector< RooStats::HistFactory::Measurement > GetMeasurementsFromXML(std::string input)
The "main" method.
HistFactory::StatErrorConfig CreateStatErrorConfigElement(TXMLNode *node)
HistFactory::StatError ActivateStatError(TXMLNode *node)
HistFactory::OverallSys MakeOverallSys(TXMLNode *node)
HistFactory::Sample CreateSampleElement(TXMLNode *node)
HistFactory::HistoSys MakeHistoSys(TXMLNode *node)
std::string m_currentInputFile
To facilitate writing xml, when not specified, files and paths default to these cached values.
HistFactory::ShapeFactor MakeShapeFactor(TXMLNode *node)
std::string m_currentChannel
bool CheckTrueFalse(std::string val, std::string Name)
RooStats::HistFactory::Measurement CreateMeasurementFromDriverNode(TXMLNode *node)
HistFactory::PreprocessFunction ParseFunctionConfig(TXMLNode *functionNode)
HistFactory::Data CreateDataElement(TXMLNode *node)
Helpers used to process a channel.
HistFactory::HistoFactor MakeHistoFactor(TXMLNode *node)
std::string m_currentHistoPath
RooStats::HistFactory::Channel ParseChannelXMLFile(std::string filen)
HistFactory::ShapeSys MakeShapeSys(TXMLNode *node)
HistFactory::NormFactor MakeNormFactor(TXMLNode *node)
Helpers used when processing a Sample.
std::string const & GetInputFile() const
void SetInputFile(const std::string &InputFile)
void SetHistoPath(const std::string &HistoPath)
void SetName(const std::string &name)
std::string const & GetHistoName() const
void SetHistoName(const std::string &HistoName)
std::string const & GetHistoPath() const
std::string const & GetName() const
Configuration for an *un*constrained, coherent shape variation of affected samples.
Configuration for a constrained, coherent shape variation of affected samples.
void SetInputFileHigh(const std::string &InputFileHigh)
void SetName(const std::string &Name)
void SetHistoPathHigh(const std::string &HistoPathHigh)
const std::string & GetName() const
void SetInputFileLow(const std::string &InputFileLow)
const std::string & GetHistoNameHigh() const
const std::string & GetHistoNameLow() const
void SetHistoNameHigh(const std::string &HistoNameHigh)
void SetHistoNameLow(const std::string &HistoNameLow)
virtual void Print(std::ostream &=std::cout) const
const std::string & GetInputFileHigh() const
const std::string & GetInputFileLow() const
void SetHistoPathLow(const std::string &HistoPathLow)
The RooStats::HistFactory::Measurement class can be used to construct a model by combining multiple R...
std::map< std::string, double > & GetGammaSyst()
std::map< std::string, double > & GetLogNormSyst()
std::map< std::string, double > & GetNoSyst()
void SetExportOnly(bool ExportOnly)
do not produce any plots or tables, just save the model
std::vector< std::string > & GetPOIList()
get vector of PoI names
void SetLumi(double Lumi)
set integrated luminosity used to normalise histograms (if NormalizeByTheory is true for this sample)
void SetParamValue(const std::string ¶m, double value)
Set a parameter to a specific value (And optionally fix it)
std::map< std::string, double > & GetUniformSyst()
std::vector< std::string > & GetConstantParams()
get vector of all constant parameters
void SetOutputFilePrefix(const std::string &prefix)
set output prefix
void PrintTree(std::ostream &=std::cout)
Print information about measurement object in tree-like structure to given stream.
void SetBinLow(int BinLow)
std::vector< RooStats::HistFactory::Channel > & GetChannels()
void SetBinHigh(int BinHigh)
void SetLumiRelErr(double RelErr)
set relative uncertainty on luminosity
void AddAsimovDataset(RooStats::HistFactory::Asimov dataset)
add an Asimov Dataset
Configuration for an un- constrained overall systematic to scale sample normalisations.
std::string GetName() const
void Print(std::ostream &=std::cout) const
void SetConst(bool Const=true)
void SetHigh(double High)
void SetName(const std::string &Name)
Configuration for a constrained overall systematic to scale sample normalisations.
void SetName(const std::string &Name)
const std::string & GetName() const
void SetHigh(double High)
void Print(std::ostream &=std::cout) const
std::string GetCommand() const
std::vector< RooStats::HistFactory::OverallSys > & GetOverallSysList()
std::string GetHistoName() const
get histogram name
void SetStatError(RooStats::HistFactory::StatError Error)
std::string GetName() const
get name of sample
void SetInputFile(const std::string &InputFile)
set input ROOT file
void SetChannelName(const std::string &ChannelName)
set name of associated channel
void SetHistoName(const std::string &HistoName)
set histogram name
std::string GetHistoPath() const
get histogram path
void SetNormalizeByTheory(bool norm)
defines whether the normalization scale with luminosity
std::vector< RooStats::HistFactory::ShapeFactor > & GetShapeFactorList()
void SetName(const std::string &Name)
set name of sample
void SetHistoPath(const std::string &HistoPath)
set histogram path
std::vector< RooStats::HistFactory::NormFactor > & GetNormFactorList()
std::string GetInputFile() const
get input ROOT file
std::vector< RooStats::HistFactory::HistoSys > & GetHistoSysList()
std::vector< RooStats::HistFactory::ShapeSys > & GetShapeSysList()
*Un*constrained bin-by-bin variation of affected histogram.
void SetInputFile(const std::string &InputFile)
void SetHistoName(const std::string &HistoName)
void Print(std::ostream &=std::cout) const override
void SetConstant(bool constant)
bool HasInitialShape() const
void SetHistoPath(const std::string &HistoPath)
const std::string & GetHistoName() const
Constrained bin-by-bin variation of affected histogram.
std::string GetHistoName() const
void SetInputFile(const std::string &InputFile)
void Print(std::ostream &=std::cout) const override
void SetHistoName(const std::string &HistoName)
void SetConstraintType(Constraint::Type ConstrType)
std::string GetInputFile() const
void SetHistoPath(const std::string &HistoPath)
Configuration to automatically assign nuisance parameters for the statistical error of the Monte Carl...
void SetConstraintType(Constraint::Type ConstrType)
double GetRelErrorThreshold() const
void SetRelErrorThreshold(double Threshold)
Constraint::Type GetConstraintType() const
Statistical error of Monte Carlo predictions.
const std::string & GetHistoPath() const
void Activate(bool IsActive=true)
void SetHistoPath(const std::string &HistoPath)
void SetInputFile(const std::string &InputFile)
const std::string & GetInputFile() const
void SetHistoName(const std::string &HistoName)
const std::string & GetHistoName() const
void SetUseHisto(bool UseHisto=true)
void Print(std::ostream &=std::cout) const override
virtual TXMLDocument * GetXMLDocument() const
Returns the TXMLDocument.
virtual Int_t ParseFile(const char *filename)
Parse the XML file where filename is the XML file name.
virtual void SetName(const char *name)
Set the name of the TNamed.
Mother of all ROOT objects.
virtual const char * GetName() const
Returns name of object.
TXMLAttribute is the attribute of an Element.
const char * GetValue() const
const char * GetName() const
Returns name of object.
TXMLDocument contains a pointer to an xmlDoc structure, after the parser returns a tree built during ...
TXMLNode * GetRootNode() const
Returns the root element node.
TXMLNode contains a pointer to xmlNode, which is a node under the DOM tree.
TList * GetAttributes()
Returns a list of node's attribute if any, returns 0 if no attribute.
const char * GetText() const
Returns the content of a Text node if node is a TextNode, 0 otherwise.
TXMLNode * GetNextNode()
Returns the next sibling XMLNode in the DOM tree, if any return 0 if no next node.
TXMLNode * GetChildren()
Returns the node's child if any, returns 0 if no child.
const char * GetNodeName() const
Returns the node's name.
void AddSubStrings(vector< std::string > &vs, std::string s)
std::vector< std::string > GetChildrenFromString(std::string str)
void AddParamsToAsimov(RooStats::HistFactory::Asimov &asimov, std::string str)
Namespace for the RooStats classes.