@@ -176,14 +176,14 @@ void StandardHistFactoryPlotsWithCategories(const char *infile = "", const char
176
176
RooPlot * frame = obs -> frame ();
177
177
frame -> SetYTitle (var -> GetName ());
178
178
data -> plotOn (frame , MarkerSize (1 ));
179
- var -> setVal ( 0 );
179
+ const double value = var -> getVal ( );
180
180
mc -> GetPdf ()-> plotOn (frame , LineWidth (1. ));
181
- var -> setVal (1 );
181
+ var -> setVal (value + var -> getError () );
182
182
mc -> GetPdf ()-> plotOn (frame , LineColor (kRed ), LineStyle (kDashed ), LineWidth (1 ));
183
- var -> setVal (-1 );
183
+ var -> setVal (value - var -> getError () );
184
184
mc -> GetPdf ()-> plotOn (frame , LineColor (kGreen ), LineStyle (kDashed ), LineWidth (1 ));
185
185
frameList .push_back (frame );
186
- var -> setVal (0 );
186
+ var -> setVal (value );
187
187
}
188
188
189
189
} else {
@@ -223,57 +223,35 @@ void StandardHistFactoryPlotsWithCategories(const char *infile = "", const char
223
223
Double_t normCount =
224
224
data -> sumEntries (Form ("%s==%s::%s" , channelCat -> GetName (), channelCat -> GetName (), catName .c_str ()));
225
225
226
- if (strcmp (var -> GetName (), "Lumi" ) == 0 ) {
227
- cout << "working on lumi" << endl ;
228
- var -> setVal (w -> var ("nominalLumi" )-> getVal ());
229
- var -> Print ();
230
- } else {
231
- var -> setVal (0 );
232
- }
226
+ // remember the nominal value
227
+ const double value = var -> getVal ();
228
+
233
229
// w->allVars().Print("v");
234
230
// mc->GetNuisanceParameters()->Print("v");
235
231
// pdftmp->plotOn(frame,LineWidth(2.));
236
232
// mc->GetPdf()->plotOn(frame,LineWidth(2.),Slice(*channelCat,catName.c_str()),ProjWData(*data));
237
233
// pdftmp->plotOn(frame,LineWidth(2.),Slice(*channelCat,catName.c_str()),ProjWData(*data));
238
234
normCount = pdftmp -> expectedEvents (* obs );
239
- pdftmp -> plotOn (frame , LineWidth (2. ), Normalization (normCount , RooAbsReal ::NumEvent ));
240
-
241
- if (strcmp (var -> GetName (), "Lumi" ) == 0 ) {
242
- cout << "working on lumi" << endl ;
243
- var -> setVal (w -> var ("nominalLumi" )-> getVal () + 0.05 );
244
- var -> Print ();
245
- } else {
246
- var -> setVal (nSigmaToVary );
247
- }
235
+ pdftmp -> plotOn (frame , LineWidth (2. ), Normalization (normCount , RooAbsReal ::NumEvent )); // nominal
236
+
237
+ var -> setVal (value + nSigmaToVary * var -> getError ());
248
238
// pdftmp->plotOn(frame,LineColor(kRed),LineStyle(kDashed),LineWidth(2));
249
239
// mc->GetPdf()->plotOn(frame,LineColor(kRed),LineStyle(kDashed),LineWidth(2.),Slice(*channelCat,catName.c_str()),ProjWData(*data));
250
240
// pdftmp->plotOn(frame,LineColor(kRed),LineStyle(kDashed),LineWidth(2.),Slice(*channelCat,catName.c_str()),ProjWData(*data));
251
241
normCount = pdftmp -> expectedEvents (* obs );
252
242
pdftmp -> plotOn (frame , LineWidth (2. ), LineColor (kRed ), LineStyle (kDashed ),
253
- Normalization (normCount , RooAbsReal ::NumEvent ));
254
-
255
- if (strcmp (var -> GetName (), "Lumi" ) == 0 ) {
256
- cout << "working on lumi" << endl ;
257
- var -> setVal (w -> var ("nominalLumi" )-> getVal () - 0.05 );
258
- var -> Print ();
259
- } else {
260
- var -> setVal (- nSigmaToVary );
261
- }
243
+ Normalization (normCount , RooAbsReal ::NumEvent )); // +n sigma
244
+
245
+ var -> setVal (value - nSigmaToVary * var -> getError ());
262
246
// pdftmp->plotOn(frame,LineColor(kGreen),LineStyle(kDashed),LineWidth(2));
263
247
// mc->GetPdf()->plotOn(frame,LineColor(kGreen),LineStyle(kDashed),LineWidth(2),Slice(*channelCat,catName.c_str()),ProjWData(*data));
264
248
// pdftmp->plotOn(frame,LineColor(kGreen),LineStyle(kDashed),LineWidth(2),Slice(*channelCat,catName.c_str()),ProjWData(*data));
265
249
normCount = pdftmp -> expectedEvents (* obs );
266
250
pdftmp -> plotOn (frame , LineWidth (2. ), LineColor (kGreen ), LineStyle (kDashed ),
267
- Normalization (normCount , RooAbsReal ::NumEvent ));
251
+ Normalization (normCount , RooAbsReal ::NumEvent )); // -n sigma
268
252
269
253
// set them back to normal
270
- if (strcmp (var -> GetName (), "Lumi" ) == 0 ) {
271
- cout << "working on lumi" << endl ;
272
- var -> setVal (w -> var ("nominalLumi" )-> getVal ());
273
- var -> Print ();
274
- } else {
275
- var -> setVal (0 );
276
- }
254
+ var -> setVal (value );
277
255
278
256
frameList .push_back (frame );
279
257
0 commit comments