Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
makeExample.C
Go to the documentation of this file.
1
3{
4
5 TH1F *FlatHist = new TH1F("FlatHist", "FlatHist", 2, 0, 2);
6 FlatHist->SetBinContent(1, 1.0);
7 FlatHist->SetBinContent(2, 1.0);
8
9 TH1F *Signal = new TH1F("Signal", "Signal", 2, 0, 2);
10 Signal->SetBinContent(1, 10);
11 Signal->SetBinContent(2, 80);
12
13 // MC Background
14 TH1F *Background1 = new TH1F("Background1", "Background1", 2, 0, 2);
15 Background1->SetBinContent(1, 20);
16 Background1->SetBinContent(2, 20);
17
18 // This is the "Data-Driven" measurement
19 // that represents Background2
20 // Assume the extrapolation factor is 1.0
21 TH1F *ControlRegion = new TH1F("ControlRegion", "ControlRegion", 2, 0, 2);
22 ControlRegion->SetBinContent(1, 75);
23 ControlRegion->SetBinContent(2, 35);
24
25 TH1F *StatUncert = new TH1F("StatUncert", "StatUncert", 2, 0, 2);
26 StatUncert->SetBinContent(1, .15); // 15% uncertainty
27 StatUncert->SetBinContent(2, .15); // 15% uncertainty
28
29 TH1F *data = new TH1F("data", "data", 2, 0, 2);
30 data->SetBinContent(1, 90);
31 data->SetBinContent(2, 110);
32
33 auto file = std::make_unique<TFile>("dataDriven.root", "RECREATE");
34 for (auto histo : std::initializer_list<TH1 *>{FlatHist, Signal, Background1, ControlRegion, StatUncert, data}) {
35 file->WriteTObject(histo);
36 delete histo;
37 }
38}
39
41{
42
43 TH2F *signal = new TH2F("signal", "signal", 2, 0, 2, 2, 0, 2);
44 signal->SetBinContent(1, 1, 10);
45 signal->SetBinContent(2, 1, 10);
46 signal->SetBinContent(1, 2, 20);
47 signal->SetBinContent(2, 2, 20);
48
49 // Background 1
50 TH2F *background1 = new TH2F("background1", "background1", 2, 0, 2, 2, 0, 2);
51 background1->SetBinContent(1, 1, 100);
52 background1->SetBinContent(2, 1, 100);
53 background1->SetBinContent(1, 2, 10);
54 background1->SetBinContent(2, 2, 10);
55
56 // Background 1 Error
57 TH2F *bkg1ShapeError = new TH2F("bkg1ShapeError", "bkg1ShapeError", 2, 0, 2, 2, 0, 2);
58 bkg1ShapeError->SetBinContent(1, 1, .10); // 10%
59 bkg1ShapeError->SetBinContent(2, 1, .15); // 15%
60 bkg1ShapeError->SetBinContent(1, 2, .10); // 10%
61 bkg1ShapeError->SetBinContent(2, 2, .15); // 15%
62
63 // Background 2
64 TH2F *background2 = new TH2F("background2", "background2", 2, 0, 2, 2, 0, 2);
65 background2->SetBinContent(1, 1, 10);
66 background2->SetBinContent(2, 1, 10);
67 background2->SetBinContent(1, 2, 100);
68 background2->SetBinContent(2, 2, 100);
69
70 // Background 2 Error
71 TH2F *bkg2ShapeError = new TH2F("bkg2ShapeError", "bkg2ShapeError", 2, 0, 2, 2, 0, 2);
72 bkg2ShapeError->SetBinContent(1, 1, .05); // 5%
73 bkg2ShapeError->SetBinContent(2, 1, .20); // 20%
74 bkg2ShapeError->SetBinContent(1, 2, .05); // 5%
75 bkg2ShapeError->SetBinContent(2, 2, .20); // 20%
76
77 TH2F *data = new TH2F("data", "data", 2, 0, 2, 2, 0, 2);
78 data->SetBinContent(1, 1, 122);
79 data->SetBinContent(2, 1, 122);
80 data->SetBinContent(1, 2, 132);
81 data->SetBinContent(2, 2, 132);
82
83 auto file = std::make_unique<TFile>("ShapeSys2D.root", "RECREATE");
85 file->WriteTObject(histo);
86 delete histo;
87 }
88}
89
91{
92
93 TH1F *signal = new TH1F("signal", "signal", 2, 0, 2);
94 signal->SetBinContent(1, 20);
95 signal->SetBinContent(2, 10);
96
97 // Background 1
98 TH1F *background1 = new TH1F("background1", "background1", 2, 0, 2);
99 background1->SetBinContent(1, 100);
100 background1->SetBinContent(2, 0);
101
102 // Background 1 Error
103 TH1F *bkg1ShapeError = new TH1F("bkg1ShapeError", "bkg1ShapeError", 2, 0, 2);
104 bkg1ShapeError->SetBinContent(1, .10); // 10%
105 bkg1ShapeError->SetBinContent(2, .15); // 15%
106
107 // Background 2
108 TH1F *background2 = new TH1F("background2", "background2", 2, 0, 2);
109 background2->SetBinContent(1, 0);
110 background2->SetBinContent(2, 100);
111
112 // Background 2 Error
113 TH1F *bkg2ShapeError = new TH1F("bkg2ShapeError", "bkg2ShapeError", 2, 0, 2);
114 bkg2ShapeError->SetBinContent(1, .05); // 5%
115 bkg2ShapeError->SetBinContent(2, .20); // 20%
116
117 TH1F *data = new TH1F("data", "data", 2, 0, 2);
118 data->SetBinContent(1, 122);
119 data->SetBinContent(2, 112);
120
121 auto file = std::make_unique<TFile>("ShapeSys.root", "RECREATE");
123 file->WriteTObject(histo);
124 delete histo;
125 }
126}
127
129{
130 TH1F *FlatHist = new TH1F("FlatHist", "FlatHist", 2, 0, 2);
131 FlatHist->SetBinContent(1, 1.0);
132 FlatHist->SetBinContent(2, 1.0);
133
134 TH1F *signal = new TH1F("signal", "signal", 2, 0, 2);
135 signal->SetBinContent(1, 20);
136 signal->SetBinContent(2, 10);
137
138 // MC background
139 TH1F *background1 = new TH1F("background1", "background1", 2, 0, 2);
140 background1->SetBinContent(1, 100);
141 background1->SetBinContent(2, 0);
142
143 // A small statistical uncertainty
144 TH1F *bkg1StatUncert = new TH1F("bkg1StatUncert", "bkg1StatUncert", 2, 0, 2);
145 bkg1StatUncert->SetBinContent(1, .05); // 5% uncertainty
146 bkg1StatUncert->SetBinContent(2, .10); // 10% uncertainty
147
148 // MC background
149 TH1F *background2 = new TH1F("background2", "background2", 2, 0, 2);
150 background2->SetBinContent(1, 0);
151 background2->SetBinContent(2, 100);
152
153 TH1F *data = new TH1F("data", "data", 2, 0, 2);
154 data->SetBinContent(1, 122);
155 data->SetBinContent(2, 112);
156
157 auto file = std::make_unique<TFile>("StatError.root", "RECREATE");
158 for (auto histo : {FlatHist, signal, background1, bkg1StatUncert, background2, data}) {
159 file->WriteTObject(histo);
160 delete histo;
161 }
162}
163
165{
166 TH1F *data = new TH1F("data", "data", 2, 1, 2);
167 TH1F *signal = new TH1F("signal", "signal histogram (pb)", 2, 1, 2);
168 TH1F *background1 = new TH1F("background1", "background 1 histogram (pb)", 2, 1, 2);
169 TH1F *background2 = new TH1F("background2", "background 2 histogram (pb)", 2, 1, 2);
170 TH1F *statUncert = new TH1F("background1_statUncert", "statUncert", 2, 1, 2);
171
172 // run with 1 pb
173 data->SetBinContent(1, 122);
174 data->SetBinContent(2, 112);
175
176 signal->SetBinContent(1, 20);
177 signal->SetBinContent(2, 10);
178
179 background1->SetBinContent(1, 100);
180 background2->SetBinContent(2, 100);
181
182 // A small statistical uncertainty
183 statUncert->SetBinContent(1, .05); // 5% uncertainty
184 statUncert->SetBinContent(2, .05); // 5% uncertainty
185
186 auto example = std::make_unique<TFile>("example.root", "RECREATE");
187 for (auto histo : {data, signal, background1, background2, statUncert}) {
188 example->WriteTObject(histo);
189 delete histo;
190 }
191}
192
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
1-D histogram with a float per channel (see TH1 documentation)
Definition TH1.h:878
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content see convention for numbering bins in TH1::GetBin In case the bin number is greater th...
Definition TH1.cxx:9279
2-D histogram with a float per channel (see TH1 documentation)
Definition TH2.h:345
void makeShapeSys2DDataset()
Definition makeExample.C:40
void makeDataDriven()
Definition makeExample.C:2
void makeExample()
void makeShapeSysDataset()
Definition makeExample.C:90
void makeSimpleExample()
void makeStatErrorDataSet()