Logo ROOT   6.18/05
Reference Guide
Sample.h
Go to the documentation of this file.
1// @(#)root/roostats:$Id$
2// Author: George Lewis, Kyle Cranmer
3/*************************************************************************
4 * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers. *
5 * All rights reserved. *
6 * *
7 * For the licensing terms see $ROOTSYS/LICENSE. *
8 * For the list of contributors see $ROOTSYS/README/CREDITS. *
9 *************************************************************************/
10
11#ifndef HISTFACTORY_SAMPLE_H
12#define HISTFACTORY_SAMPLE_H
13
14#include <string>
15#include <fstream>
16#include <vector>
17#include <iostream>
18
19class TH1;
20
23
24namespace RooStats{
25namespace HistFactory {
26
27class Sample {
28
29
30public:
31
32 Sample();
33 Sample(std::string Name);
34 Sample(const Sample& other);
35 Sample& operator=(const Sample& other);
36 /// constructor from name, file and path. Name of the histogram should not include the path
37 Sample(std::string Name, std::string HistoName, std::string InputFile, std::string HistoPath="");
38 ~Sample();
39
40 void Print(std::ostream& = std::cout) const;
41 void PrintXML( std::ofstream& xml );
42 void writeToFile( std::string FileName, std::string DirName );
43
44 const TH1* GetHisto() const;
45 // set histogram for this sample
46 void SetHisto( TH1* histo ) { fhNominal = histo; fHistoName=histo->GetName(); }
47 void SetValue( Double_t Val );
48
49 // Some helper functions
50 // Note that histogram name should not include the path of the histogram in the file.
51 // This has to be given separatly
52
53 void ActivateStatError();
54 void ActivateStatError( std::string HistoName, std::string InputFile, std::string HistoPath="" );
55
56 void AddOverallSys( std::string Name, Double_t Low, Double_t High );
57 void AddOverallSys( const OverallSys& Sys );
58
59 void AddNormFactor( std::string Name, Double_t Val, Double_t Low, Double_t High, bool Const=false );
60 void AddNormFactor( const NormFactor& Factor );
61
62 void AddHistoSys( std::string Name, std::string HistoNameLow, std::string HistoFileLow, std::string HistoPathLow,
63 std::string HistoNameHigh, std::string HistoFileHigh, std::string HistoPathHigh );
64 void AddHistoSys( const HistoSys& Sys );
65
66 void AddHistoFactor( std::string Name, std::string HistoNameLow, std::string HistoFileLow, std::string HistoPathLow,
67 std::string HistoNameHigh, std::string HistoFileHigh, std::string HistoPathHigh );
68 void AddHistoFactor( const HistoFactor& Factor );
69
70 void AddShapeFactor( std::string Name );
71 void AddShapeFactor( const ShapeFactor& Factor );
72
73 void AddShapeSys( std::string Name, Constraint::Type ConstraintType, std::string HistoName, std::string HistoFile, std::string HistoPath="" );
74 void AddShapeSys( const ShapeSys& Sys );
75
76 /// defines whether the normalization scale with luminosity
77 void SetNormalizeByTheory( bool norm ) { fNormalizeByTheory = norm; }
78 /// does the normalization scale with luminosity
80
81
82 /// get name of sample
83 std::string GetName() const { return fName; }
84 /// set name of sample
85 void SetName(const std::string& Name) { fName = Name; }
86
87 /// get input ROOT file
88 std::string GetInputFile() const { return fInputFile; }
89 /// set input ROOT file
90 void SetInputFile(const std::string& InputFile) { fInputFile = InputFile; }
91
92 /// get histogram name
93 std::string GetHistoName() const { return fHistoName; }
94 /// set histogram name
95 void SetHistoName(const std::string& HistoName) { fHistoName = HistoName; }
96
97 /// get histogram path
98 std::string GetHistoPath() const { return fHistoPath; }
99 /// set histogram path
100 void SetHistoPath(const std::string& HistoPath) { fHistoPath = HistoPath; }
101
102 /// get name of associated channel
103 std::string GetChannelName() const { return fChannelName; }
104 /// set name of associated channel
105 void SetChannelName(const std::string& ChannelName) { fChannelName = ChannelName; }
106
107
108
109 std::vector< RooStats::HistFactory::OverallSys >& GetOverallSysList() { return fOverallSysList; }
110 std::vector< RooStats::HistFactory::NormFactor >& GetNormFactorList() { return fNormFactorList; }
111
112 std::vector< RooStats::HistFactory::HistoSys >& GetHistoSysList() { return fHistoSysList; }
113 std::vector< RooStats::HistFactory::HistoFactor >& GetHistoFactorList() { return fHistoFactorList; }
114
115 std::vector< RooStats::HistFactory::ShapeSys >& GetShapeSysList() { return fShapeSysList; }
116 std::vector< RooStats::HistFactory::ShapeFactor >& GetShapeFactorList() { return fShapeFactorList; }
117
120 fStatError = std::move(Error);
121 }
122
123
124protected:
125
126 std::string fName;
127 std::string fInputFile;
128 std::string fHistoName;
129 std::string fHistoPath;
130
131 /// The Name of the parent channel
132 std::string fChannelName;
133
134 //
135 // Systematics
136 //
137
138 std::vector< RooStats::HistFactory::OverallSys > fOverallSysList;
139 std::vector< RooStats::HistFactory::NormFactor > fNormFactorList;
140
141 std::vector< RooStats::HistFactory::HistoSys > fHistoSysList;
142 std::vector< RooStats::HistFactory::HistoFactor > fHistoFactorList;
143
144 std::vector< RooStats::HistFactory::ShapeSys > fShapeSysList;
145 std::vector< RooStats::HistFactory::ShapeFactor > fShapeFactorList;
146
147
148 /// Properties
150
153
154
155 /// The Nominal Shape
158
159};
160
161
162} // namespace HistFactory
163} // namespace RooStats
164
165#endif
double Double_t
Definition: RtypesCore.h:55
void Error(const char *location, const char *msgfmt,...)
Internal class wrapping an histogram and managing its content.
Definition: HistRef.h:25
Configuration for an *un*constrained, coherent shape variation of affected samples.
Definition: Systematics.h:215
Configuration for a constrained, coherent shape variation of affected samples.
Definition: Systematics.h:205
Configuration for an un- constrained overall systematic to scale sample normalisations.
Definition: Systematics.h:77
Configuration for a constrained overall systematic to scale sample normalisations.
Definition: Systematics.h:49
std::vector< RooStats::HistFactory::OverallSys > & GetOverallSysList()
Definition: Sample.h:109
std::vector< RooStats::HistFactory::OverallSys > fOverallSysList
Definition: Sample.h:138
std::string GetHistoName() const
get histogram name
Definition: Sample.h:93
void SetStatError(RooStats::HistFactory::StatError Error)
Definition: Sample.h:119
void AddShapeSys(std::string Name, Constraint::Type ConstraintType, std::string HistoName, std::string HistoFile, std::string HistoPath="")
Definition: Sample.cxx:434
std::string GetName() const
get name of sample
Definition: Sample.h:83
void writeToFile(std::string FileName, std::string DirName)
Definition: Sample.cxx:105
const TH1 * GetHisto() const
Definition: Sample.cxx:99
std::vector< RooStats::HistFactory::HistoFactor > fHistoFactorList
Definition: Sample.h:142
void SetInputFile(const std::string &InputFile)
set input ROOT file
Definition: Sample.h:90
RooStats::HistFactory::StatError fStatError
Properties.
Definition: Sample.h:149
void SetChannelName(const std::string &ChannelName)
set name of associated channel
Definition: Sample.h:105
void SetHistoName(const std::string &HistoName)
set histogram name
Definition: Sample.h:95
std::vector< RooStats::HistFactory::NormFactor > fNormFactorList
Definition: Sample.h:139
std::vector< RooStats::HistFactory::HistoSys > fHistoSysList
Definition: Sample.h:141
std::string fChannelName
The Name of the parent channel.
Definition: Sample.h:132
void SetHisto(TH1 *histo)
Definition: Sample.h:46
void Print(std::ostream &=std::cout) const
Definition: Sample.cxx:164
void AddNormFactor(std::string Name, Double_t Val, Double_t Low, Double_t High, bool Const=false)
Definition: Sample.cxx:354
Sample & operator=(const Sample &other)
Definition: Sample.cxx:51
std::string GetHistoPath() const
get histogram path
Definition: Sample.h:98
std::vector< RooStats::HistFactory::ShapeSys > fShapeSysList
Definition: Sample.h:144
void SetNormalizeByTheory(bool norm)
defines whether the normalization scale with luminosity
Definition: Sample.h:77
void SetValue(Double_t Val)
Definition: Sample.cxx:140
void PrintXML(std::ofstream &xml)
Definition: Sample.cxx:204
void AddOverallSys(std::string Name, Double_t Low, Double_t High)
Definition: Sample.cxx:339
RooStats::HistFactory::StatError & GetStatError()
Definition: Sample.h:118
void AddHistoFactor(std::string Name, std::string HistoNameLow, std::string HistoFileLow, std::string HistoPathLow, std::string HistoNameHigh, std::string HistoFileHigh, std::string HistoPathHigh)
Definition: Sample.cxx:397
std::vector< RooStats::HistFactory::ShapeFactor > & GetShapeFactorList()
Definition: Sample.h:116
void SetName(const std::string &Name)
set name of sample
Definition: Sample.h:85
std::vector< RooStats::HistFactory::HistoFactor > & GetHistoFactorList()
Definition: Sample.h:113
void SetHistoPath(const std::string &HistoPath)
set histogram path
Definition: Sample.h:100
std::string GetChannelName() const
get name of associated channel
Definition: Sample.h:103
std::vector< RooStats::HistFactory::NormFactor > & GetNormFactorList()
Definition: Sample.h:110
std::string GetInputFile() const
get input ROOT file
Definition: Sample.h:88
std::vector< RooStats::HistFactory::HistoSys > & GetHistoSysList()
Definition: Sample.h:112
bool GetNormalizeByTheory() const
does the normalization scale with luminosity
Definition: Sample.h:79
HistRef fhNominal
The Nominal Shape.
Definition: Sample.h:156
void AddShapeFactor(std::string Name)
Definition: Sample.cxx:420
std::vector< RooStats::HistFactory::ShapeFactor > fShapeFactorList
Definition: Sample.h:145
std::vector< RooStats::HistFactory::ShapeSys > & GetShapeSysList()
Definition: Sample.h:115
void AddHistoSys(std::string Name, std::string HistoNameLow, std::string HistoFileLow, std::string HistoPathLow, std::string HistoNameHigh, std::string HistoFileHigh, std::string HistoPathHigh)
Definition: Sample.cxx:373
*Un*constrained bin-by-bin variation of affected histogram.
Definition: Systematics.h:267
Constrained bin-by-bin variation of affected histogram.
Definition: Systematics.h:225
Statistical error of Monte Carlo predictions.
Definition: Systematics.h:321
The TH1 histogram class.
Definition: TH1.h:56
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
Namespace for the RooStats classes.
Definition: Asimov.h:20
const char * Name
Definition: TXMLSetup.cxx:66