243 const std::unique_ptr<char[]> fname(
245 std::unique_ptr<TFile> rootFile(TFile::Open(fname.get(),
"READ"));
265 auto load = [&rootFile](
auto &ptr,
const std::string & path){
266 ptr.reset(checked_own_cast<
decltype(ptr.get())>(rootFile->Get(path.c_str())));
271 load(
m_aPSNom,
"Scales/es2010/alphaPS_errTot");
272 load(
m_aS12Nom,
"Scales/es2010/alphaS12_errTot");
273 load(
m_zeeNom,
"Scales/es2010/alphaZee_errStat");
274 load(
m_zeeSyst,
"Scales/es2010/alphaZee_errSyst");
275 load(
m_resNom,
"Resolution/es2010/ctZee_errStat");
276 load(
m_resSyst,
"Resolution/es2010/ctZee_errSyst");
286 load(
m_aPSNom,
"Scales/es2011c/alphaPS_errTot");
287 load(
m_aS12Nom,
"Scales/es2011c/alphaS12_errTot");
288 load(
m_zeeNom,
"Scales/es2011c/alphaZee_errStat");
289 load(
m_zeeSyst,
"Scales/es2011c/alphaZee_errSyst");
290 load(
m_resNom,
"Resolution/es2011c/ctZee_errStat");
291 load(
m_resSyst,
"Resolution/es2011c/ctZee_errSyst");
305 load(
m_aPSNom,
"Scales/es2011d/alphaPS_uncor");
306 load(
m_daPSCor,
"Scales/es2011d/dalphaPS_cor");
307 load(
m_aS12Nom,
"Scales/es2011d/alphaS12_uncor");
308 load(
m_daS12Cor,
"Scales/es2011d/dalphaS12_cor");
309 load(
m_trkSyst,
"Scales/es2011d/momentum_errSyst");
313 load(
m_zeeNom,
"Scales/es2011d/alphaZee_errStat");
314 load(
m_zeeSyst,
"Scales/es2011d/alphaZee_errSyst");
315 load(
m_resNom,
"Resolution/es2011d/ctZee_errStat");
316 load(
m_resSyst,
"Resolution/es2011d/ctZee_errSyst");
320 load(
m_zeeNom,
"Scales/es2011dMedium/alphaZee_errStat");
321 load(
m_zeeSyst,
"Scales/es2011dMedium/alphaZee_errSyst");
322 load(
m_zeePhys,
"Scales/es2011dMedium/alphaZee_errPhys");
323 load(
m_resNom,
"Resolution/es2011dMedium/ctZee_errStat");
324 load(
m_resSyst,
"Resolution/es2011dMedium/ctZee_errSyst");
328 load(
m_zeeNom,
"Scales/es2011dTight/alphaZee_errStat");
329 load(
m_zeeSyst,
"Scales/es2011dTight/alphaZee_errSyst");
330 load(
m_zeePhys,
"Scales/es2011dTight/alphaZee_errPhys");
331 load(
m_resNom,
"Resolution/es2011dTight/ctZee_errStat");
332 load(
m_resSyst,
"Resolution/es2011dTight/ctZee_errSyst");
342 load(
m_dX_IPPS_Nom,
"Material/Measured/DXerr_IPPS_NewG_errUncor");
343 load(
m_dX_IPPS_LAr,
"Material/Measured/DXerr_IPPS_NewG_errLAr");
345 load(
m_dX_IPAcc_Nom,
"Material/Measured/DXerr_IPAcc_NewG_errUncor");
346 load(
m_dX_IPAcc_LAr,
"Material/Measured/DXerr_IPAcc_NewG_errLAr");
347 load(
m_dX_IPAcc_G4,
"Material/Measured/DXerr_IPAcc_NewG_errG4");
348 load(
m_dX_IPAcc_GL1,
"Material/Measured/DXerr_IPAcc_NewG_errGL1");
350 load(
m_dX_PSAcc_Nom,
"Material/Measured/DXerr_PSAcc_NewG_errUncor");
351 load(
m_dX_PSAcc_LAr,
"Material/Measured/DXerr_PSAcc_NewG_errLAr");
352 load(
m_dX_PSAcc_G4,
"Material/Measured/DXerr_PSAcc_NewG_errG4");
354 load(
m_convRadius,
"Conversions/es2011d/convRadiusMigrations");
362 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
364 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
366 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
370 "e1hg_systematics_histos.root"));
376 load(
m_aPSNom,
"Scales/es2012a/alphaPS_errTot");
377 load(
m_aS12Nom,
"Scales/es2012a/alphaS12_errTot");
379 load(
m_zeeNom,
"Scales/es2012a/alphaZee_errStat");
380 load(
m_zeeSyst,
"Scales/es2012a/alphaZee_errSyst");
382 load(
m_resNom,
"Resolution/es2012a/ctZee_errStat");
383 load(
m_resSyst,
"Resolution/es2012a/ctZee_errSyst");
396 load(
m_aPSNom,
"Scales/es2012c/alphaPS_uncor");
397 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
398 load(
m_aS12Nom,
"Scales/es2012c/alphaS12_uncor");
399 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
401 load(
m_trkSyst,
"Scales/es2012c/momentum_errSyst");
403 load(
m_zeeNom,
"Scales/es2012c/alphaZee_errStat");
404 load(
m_zeeSyst,
"Scales/es2012c/alphaZee_errSyst");
406 load(
m_resNom,
"Resolution/es2012c/ctZee_errStat");
407 load(
m_resSyst,
"Resolution/es2012c/ctZee_errSyst");
416 load(
m_dX_IPPS_Nom,
"Material/Measured/DXerr_IPPS_NewG_errUncor");
417 load(
m_dX_IPPS_LAr,
"Material/Measured/DXerr_IPPS_NewG_errLAr");
419 load(
m_dX_IPAcc_Nom,
"Material/Measured/DXerr_IPAcc_NewG_errUncor");
420 load(
m_dX_IPAcc_LAr,
"Material/Measured/DXerr_IPAcc_NewG_errLAr");
421 load(
m_dX_IPAcc_G4,
"Material/Measured/DXerr_IPAcc_NewG_errG4");
422 load(
m_dX_IPAcc_GL1,
"Material/Measured/DXerr_IPAcc_NewG_errGL1");
424 load(
m_dX_PSAcc_Nom,
"Material/Measured/DXerr_PSAcc_NewG_errUncor");
425 load(
m_dX_PSAcc_LAr,
"Material/Measured/DXerr_PSAcc_NewG_errLAr");
426 load(
m_dX_PSAcc_G4,
"Material/Measured/DXerr_PSAcc_NewG_errG4");
428 load(
m_convRadius,
"Conversions/es2012c/convRadiusMigrations");
436 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
438 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
440 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
444 "e1hg_systematics_histos.root"));
450 load(
m_aPSNom,
"Scales/es2012c/alphaPS_uncor");
451 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
452 load(
m_aS12Nom,
"Scales/es2012c/alphaS12_uncor");
453 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
455 load(
m_trkSyst,
"Scales/es2012c/momentum_errSyst");
457 load(
m_zeeNom,
"Scales/es2015PRE/alphaZee_errStat");
458 load(
m_zeeSyst,
"Scales/es2012c/alphaZee_errSyst");
460 load(
m_resNom,
"Resolution/es2015PRE/ctZee_errStat");
461 load(
m_resSyst,
"Resolution/es2012c/ctZee_errSyst");
470 load(
m_dX_IPPS_Nom,
"Material/Measured/DXerr_IPPS_NewG_errUncor");
471 load(
m_dX_IPPS_LAr,
"Material/Measured/DXerr_IPPS_NewG_errLAr");
473 load(
m_dX_IPAcc_Nom,
"Material/Measured/DXerr_IPAcc_NewG_errUncor");
474 load(
m_dX_IPAcc_LAr,
"Material/Measured/DXerr_IPAcc_NewG_errLAr");
475 load(
m_dX_IPAcc_G4,
"Material/Measured/DXerr_IPAcc_NewG_errG4");
476 load(
m_dX_IPAcc_GL1,
"Material/Measured/DXerr_IPAcc_NewG_errGL1");
478 load(
m_dX_PSAcc_Nom,
"Material/Measured/DXerr_PSAcc_NewG_errUncor");
479 load(
m_dX_PSAcc_LAr,
"Material/Measured/DXerr_PSAcc_NewG_errLAr");
480 load(
m_dX_PSAcc_G4,
"Material/Measured/DXerr_PSAcc_NewG_errG4");
482 load(
m_convRadius,
"Conversions/es2012c/convRadiusMigrations");
490 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
492 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
494 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
498 "e1hg_systematics_histos.root"));
505 load(
m_aPSNom,
"Scales/es2012c/alphaPS_uncor");
506 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
507 load(
m_aS12Nom,
"Scales/es2012c/alphaS12_uncor");
508 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
510 load(
m_trkSyst,
"Scales/es2012c/momentum_errSyst");
512 load(
m_zeeNom,
"Scales/es2015PRE/alphaZee_errStat");
513 load(
m_zeeSyst,
"Scales/es2015PRE/alphaZee_errSyst");
516 load(
m_resNom,
"Resolution/es2015PRE/ctZee_errStat");
517 load(
m_resSyst,
"Resolution/es2015PRE/ctZee_errSyst");
526 load(
m_dX_IPPS_Nom,
"Material/Measured/DXerr_IPPS_NewG_errUncor");
527 load(
m_dX_IPPS_LAr,
"Material/Measured/DXerr_IPPS_NewG_errLAr");
529 load(
m_dX_IPAcc_Nom,
"Material/Measured/DXerr_IPAcc_NewG_errUncor");
530 load(
m_dX_IPAcc_LAr,
"Material/Measured/DXerr_IPAcc_NewG_errLAr");
531 load(
m_dX_IPAcc_G4,
"Material/Measured/DXerr_IPAcc_NewG_errG4");
532 load(
m_dX_IPAcc_GL1,
"Material/Measured/DXerr_IPAcc_NewG_errGL1");
534 load(
m_dX_PSAcc_Nom,
"Material/Measured/DXerr_PSAcc_NewG_errUncor");
535 load(
m_dX_PSAcc_LAr,
"Material/Measured/DXerr_PSAcc_NewG_errLAr");
536 load(
m_dX_PSAcc_G4,
"Material/Measured/DXerr_PSAcc_NewG_errG4");
538 load(
m_convRadius,
"Conversions/es2012c/convRadiusMigrations");
554 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
556 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
558 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
562 "e1hg_systematics_histos.root"));
569 load(
m_aPSNom,
"Scales/es2012c/alphaPS_uncor");
570 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
571 load(
m_aS12Nom,
"Scales/es2012c/alphaS12_uncor");
572 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
574 load(
m_trkSyst,
"Scales/es2012c/momentum_errSyst");
576 load(
m_zeeNom,
"Scales/es2015PRE/alphaZee_errStat");
577 load(
m_zeeSyst,
"Scales/es2015PRE/alphaZee_errSyst");
580 load(
m_resNom,
"Resolution/es2015PRE/ctZee_errStat");
581 load(
m_resSyst,
"Resolution/es2015PRE_res_improved/ctZee_errSyst");
590 load(
m_dX_IPPS_Nom,
"Material/Measured/DXerr_IPPS_NewG_errUncor");
591 load(
m_dX_IPPS_LAr,
"Material/Measured/DXerr_IPPS_NewG_errLAr");
593 load(
m_dX_IPAcc_Nom,
"Material/Measured/DXerr_IPAcc_NewG_errUncor");
594 load(
m_dX_IPAcc_LAr,
"Material/Measured/DXerr_IPAcc_NewG_errLAr");
595 load(
m_dX_IPAcc_G4,
"Material/Measured/DXerr_IPAcc_NewG_errG4");
596 load(
m_dX_IPAcc_GL1,
"Material/Measured/DXerr_IPAcc_NewG_errGL1");
598 load(
m_dX_PSAcc_Nom,
"Material/Measured/DXerr_PSAcc_NewG_errUncor");
599 load(
m_dX_PSAcc_LAr,
"Material/Measured/DXerr_PSAcc_NewG_errLAr");
600 load(
m_dX_PSAcc_G4,
"Material/Measured/DXerr_PSAcc_NewG_errG4");
602 load(
m_convRadius,
"Conversions/es2012c/convRadiusMigrations");
617 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
619 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
621 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
625 "e1hg_systematics_histos.root"));
631 load(
m_aPSNom,
"Scales/es2012c/alphaPS_uncor");
632 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
633 load(
m_aS12Nom,
"Scales/es2012c/alphaS12_uncor");
634 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
636 load(
m_trkSyst,
"Scales/es2012c/momentum_errSyst");
638 load(
m_zeeNom,
"Scales/es2015Summer/alphaZee_errStat");
639 load(
m_zeeSyst,
"Scales/es2015Summer/alphaZee_errSyst");
642 load(
m_resNom,
"Resolution/es2015Summer/ctZee_errStat");
643 load(
m_resSyst,
"Resolution/es2015Summer/ctZee_errSyst");
652 load(
m_dX_IPPS_Nom,
"Material/Measured/DXerr_IPPS_NewG_errUncor");
653 load(
m_dX_IPPS_LAr,
"Material/Measured/DXerr_IPPS_NewG_errLAr");
655 load(
m_dX_IPAcc_Nom,
"Material/Measured/DXerr_IPAcc_NewG_errUncor");
656 load(
m_dX_IPAcc_LAr,
"Material/Measured/DXerr_IPAcc_NewG_errLAr");
657 load(
m_dX_IPAcc_G4,
"Material/Measured/DXerr_IPAcc_NewG_errG4");
658 load(
m_dX_IPAcc_GL1,
"Material/Measured/DXerr_IPAcc_NewG_errGL1");
660 load(
m_dX_PSAcc_Nom,
"Material/Measured/DXerr_PSAcc_NewG_errUncor");
661 load(
m_dX_PSAcc_LAr,
"Material/Measured/DXerr_PSAcc_NewG_errLAr");
662 load(
m_dX_PSAcc_G4,
"Material/Measured/DXerr_PSAcc_NewG_errG4");
664 load(
m_convRadius,
"Conversions/es2012c/convRadiusMigrations");
680 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
682 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
684 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
688 "e1hg_systematics_histos.root"));
696 load(
m_aPSNom,
"Scales/es2012c/alphaPS_uncor");
697 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
698 load(
m_aS12Nom,
"Scales/es2012c/alphaS12_uncor");
699 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
701 load(
m_trkSyst,
"Scales/es2012c/momentum_errSyst");
703 load(
m_zeeNom,
"Scales/es2015Summer/alphaZee_errStat");
704 load(
m_zeeSyst,
"Scales/es2015Summer/alphaZee_errSyst");
706 load(
m_resNom,
"Resolution/es2015Summer/ctZee_errStat");
707 load(
m_resSyst,
"Resolution/es2015Summer/ctZee_errSyst");
716 load(
m_dX_IPPS_Nom,
"Material/Measured/DXerr_IPPS_NewG_errUncor");
717 load(
m_dX_IPPS_LAr,
"Material/Measured/DXerr_IPPS_NewG_errLAr");
719 load(
m_dX_IPAcc_Nom,
"Material/Measured/DXerr_IPAcc_NewG_errUncor");
720 load(
m_dX_IPAcc_LAr,
"Material/Measured/DXerr_IPAcc_NewG_errLAr");
721 load(
m_dX_IPAcc_G4,
"Material/Measured/DXerr_IPAcc_NewG_errG4");
722 load(
m_dX_IPAcc_GL1,
"Material/Measured/DXerr_IPAcc_NewG_errGL1");
724 load(
m_dX_PSAcc_Nom,
"Material/Measured/DXerr_PSAcc_NewG_errUncor");
725 load(
m_dX_PSAcc_LAr,
"Material/Measured/DXerr_PSAcc_NewG_errLAr");
726 load(
m_dX_PSAcc_G4,
"Material/Measured/DXerr_PSAcc_NewG_errG4");
728 load(
m_convRadius,
"Conversions/es2012c/convRadiusMigrations");
744 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
746 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
748 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
752 "e1hg_systematics_histos.root"));
797 load(
m_aPSNom,
"Scales/es2017_summer_final/alphaPS_uncor");
798 load(
m_daPSb12,
"Scales/es2017_summer_final/dalphaPS_b12");
799 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
800 load(
m_aS12Nom,
"Scales/es2017_summer_final/alphaS12_uncor");
801 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
803 load(
m_aPSNom,
"Scales/es2017_summer_final/alphaPS_uncor");
804 load(
m_daPSb12,
"Scales/es2017_summer_final/dalphaPS_b12");
805 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
806 load(
m_aS12Nom,
"Scales/es2018_R21_v1/alphaS12_uncor");
807 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
809 load(
m_aPSNom,
"Scales/es2023_R22_Run2_v0/alphaPS_uncor");
810 load(
m_aS12Nom,
"Scales/es2023_R22_Run2_v0/alphaS12_uncor");
814 load(
m_aPSNom,
"Scales/es2023_R22_Run2_v0/alphaPS_uncor");
815 load(
m_aS12Nom,
"Scales/es2023_R22_Run2_v1/hE1E2_emu_run2_rel21_v0_fix");
817 load(
m_aPSNom,
"Scales/es2012c/alphaPS_uncor");
818 load(
m_daPSCor,
"Scales/es2012c/dalphaPS_cor");
819 load(
m_aS12Nom,
"Scales/es2012c/alphaS12_uncor");
820 load(
m_daS12Cor,
"Scales/es2012c/dalphaS12_cor");
822 load(
m_trkSyst,
"Scales/es2012c/momentum_errSyst");
825 load(
m_zeeNom,
"Scales/es2017/alphaZee_errStat_period_2016");
829 load(
m_zeeNom,
"Scales/es2017_summer/alphaZee_errStat_period_2016");
832 load(
m_zeeNom,
"Scales/es2017_summer_final/alphaZee_errStat_period_2016");
833 load(
m_zeeNom_data2015,
"Scales/es2017_summer_final/alphaZee_errStat_period_2015");
835 load(
m_zeeNom,
"Scales/es2015_5TeV/alphaZee_errStat_period_2015");
839 load(
m_zeeNom,
"Scales/es2017_R21_v0/alphaZee_errStat_period_2017");
843 load(
m_zeeNom,
"Scales/es2017_R21_v1/alphaZee_errStat_period_2017");
847 rootFile->Get(
"Scales/es2017_R21_v1/alphaFwd_Finalk")));
849 rootFile->Get(
"Scales/es2017_R21_v1/alphaFwd_Finalb")));
851 load(
m_zeeNom,
"Scales/es2017_R21_ofc0_v1/alphaZee_errStat_period_2017");
852 load(
m_zeeNom_data2016,
"Scales/es2017_R21_ofc0_v1/alphaZee_errStat_period_2016");
853 load(
m_zeeNom_data2015,
"Scales/es2017_R21_ofc0_v1/alphaZee_errStat_period_2015");
854 load(
m_zeeNom_data2018,
"Scales/es2017_R21_ofc0_v1/alphaZee_errStat_period_2018");
856 rootFile->Get(
"Scales/es2017_R21_v1/alphaFwd_Finalk")));
858 rootFile->Get(
"Scales/es2017_R21_v1/alphaFwd_Finalb")));
860 load(
m_zeeNom,
"Scales/es2024_Run3_ofc0_v0/alphaZee_errStat");
862 rootFile->Get(
"Scales/es2017_R21_v1/alphaFwd_Finalk")));
864 rootFile->Get(
"Scales/es2017_R21_v1/alphaFwd_Finalb")));
867 load(
m_zeeNom,
"Scales/es2018_R21_v0/alphaZee_errStat_period_2018");
872 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalk")));
874 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalb")));
876 m_zeeNom.reset(checked_own_cast<TH1*>(
877 rootFile->Get(
"Scales/es2018_R21_v1/alphaZee_errStat_period_2018")));
879 rootFile->Get(
"Scales/es2018_R21_v1/alphaZee_errStat_period_2017")));
881 rootFile->Get(
"Scales/es2018_R21_v1/alphaZee_errStat_period_2016")));
883 rootFile->Get(
"Scales/es2018_R21_v1/alphaZee_errStat_period_2015")));
886 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalk")));
888 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalb")));
890 m_zeeNom.reset(checked_own_cast<TH1*>(
891 rootFile->Get(
"Scales/es2022_R22_PRE/alphaZee_errStat_period_2018")));
894 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalk")));
896 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalb")));
898 m_zeeNom.reset(checked_own_cast<TH1*>(rootFile->Get(
899 "Scales/es2023_R22_Run2_v0/alphaZee_errStat_period_2018")));
901 "Scales/es2023_R22_Run2_v0/alphaZee_errStat_period_2017")));
903 "Scales/es2023_R22_Run2_v0/alphaZee_errStat_period_2016")));
905 "Scales/es2023_R22_Run2_v0/alphaZee_errStat_period_2015")));
908 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalk")));
910 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalb")));
913 m_zeeNom.reset(checked_own_cast<TH1*>(rootFile->Get(
914 "Scales/es2023_R22_Run2_v1/alphaZee_errStat_period_2018")));
916 "Scales/es2023_R22_Run2_v1/alphaZee_errStat_period_2017")));
918 "Scales/es2023_R22_Run2_v1/alphaZee_errStat_period_2016")));
920 "Scales/es2023_R22_Run2_v1/alphaZee_errStat_period_2015")));
923 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalk")));
925 rootFile->Get(
"Scales/es2018_R21_v0/alphaFwd_Finalb")));
927 m_zeeNom.reset(checked_own_cast<TH1*>(
928 rootFile->Get(
"Scales/es2024_Run3_v0/alphaZee_errStat_period_2024")));
930 rootFile->Get(
"Scales/es2024_Run3_v0/alphaZee_errStat_period_2023")));
932 rootFile->Get(
"Scales/es2024_Run3_v0/alphaZee_errStat_period_2022")));
934 m_zeeNom.reset(checked_own_cast<TH1*>(
935 rootFile->Get(
"Scales/es2017_R21_PRE/alphaZee_errStat_period_2016")));
938 rootFile->Get(
"Scales/es2017_R21_PRE/alphaZee_errStat_period_2016")));
942 rootFile->Get(
"Scales/es2017/alphaZee_errSyst")));
945 rootFile->Get(
"Scales/es2017_summer_final/alphaZee_errSyst")));
948 rootFile->Get(
"Scales/es2015_5TeV/alphaZee_errSyst")));
951 rootFile->Get(
"Scales/es2017_summer_final/alphaZee_errSyst")));
954 rootFile->Get(
"Scales/es2017_R21_v1/alphaZee_errSyst")));
957 rootFile->Get(
"Scales/es2017_R21_ofc0_v1/alphaZee_errSyst")));
960 rootFile->Get(
"Scales/es2024_Run3_ofc0_v0/alphaZee_errSyst")));
963 rootFile->Get(
"Scales/es2018_R21_v0/alphaZee_errSyst")));
969 rootFile->Get(
"Scales/es2018_R21_v1/alphaZee_errSyst")));
972 rootFile->Get(
"Scales/es2022_R22_PRE/alphaZee_errSyst")));
974 rootFile->Get(
"Scales/es2022_R22_PRE/alphaZee_errOFCSyst")));
977 rootFile->Get(
"Scales/es2017_summer/alphaZee_errSyst")));
982 m_resNom.reset(checked_own_cast<TH1*>(
983 rootFile->Get(
"Resolution/es2017/ctZee_errStat")));
987 m_resNom.reset(checked_own_cast<TH1*>(
988 rootFile->Get(
"Resolution/es2017_summer/ctZee_errStat")));
990 m_resNom.reset(checked_own_cast<TH1*>(
991 rootFile->Get(
"Resolution/es2017_summer_final/ctZee_errStat")));
993 m_resNom.reset(checked_own_cast<TH1*>(
994 rootFile->Get(
"Resolution/es2017_R21_v0/ctZee_errStat")));
996 m_resNom.reset(checked_own_cast<TH1*>(
997 rootFile->Get(
"Resolution/es2017_R21_v1/ctZee_errStat")));
999 m_resNom.reset(checked_own_cast<TH1*>(
1000 rootFile->Get(
"Resolution/es2017_R21_ofc0_v1/ctZee_errStat")));
1003 m_resNom.reset(checked_own_cast<TH1*>(
1004 rootFile->Get(
"Resolution/es2017_R21_ofc0_v1/ctZee_errStat")));
1006 m_resNom.reset(checked_own_cast<TH1*>(
1007 rootFile->Get(
"Resolution/es2018_R21_v0/ctZee_errStat")));
1009 m_resNom.reset(checked_own_cast<TH1*>(
1010 rootFile->Get(
"Resolution/es2018_R21_v1/ctZee_errStat")));
1012 m_resNom.reset(checked_own_cast<TH1*>(
1013 rootFile->Get(
"Resolution/es2022_R22_PRE/ctZee_errStat")));
1015 m_resNom.reset(checked_own_cast<TH1*>(
1016 rootFile->Get(
"Resolution/es2023_R22_Run2_v0/ctZee_errStat")));
1018 m_resNom.reset(checked_own_cast<TH1*>(
1019 rootFile->Get(
"Resolution/es2023_R22_Run2_v1/ctZee_errStat")));
1021 m_resNom.reset(checked_own_cast<TH1*>(
1022 rootFile->Get(
"Resolution/es2024_Run3_v0/ctZee_errStat")));
1024 m_resNom.reset(checked_own_cast<TH1*>(
1025 rootFile->Get(
"Resolution/es2017_R21_PRE/ctZee_errStat")));
1030 rootFile->Get(
"Resolution/es2017/ctZee_errSyst")));
1033 rootFile->Get(
"Resolution/es2017_summer_final/ctZee_errSyst")));
1036 rootFile->Get(
"Resolution/es2015_5TeV/ctZee_errSyst")));
1039 rootFile->Get(
"Resolution/es2017_summer_final/ctZee_errSyst")));
1042 rootFile->Get(
"Resolution/es2017_R21_v1/ctZee_errSyst")));
1045 rootFile->Get(
"Resolution/es2017_R21_ofc0_v1/ctZee_errSyst")));
1049 rootFile->Get(
"Resolution/es2017_R21_ofc0_v1/ctZee_errSyst")));
1052 rootFile->Get(
"Resolution/es2018_R21_v0/ctZee_errSyst")));
1058 rootFile->Get(
"Resolution/es2018_R21_v1/ctZee_errSyst")));
1061 rootFile->Get(
"Resolution/es2022_R22_PRE/ctZee_errSyst")));
1063 rootFile->Get(
"Resolution/es2022_R22_PRE/ctZee_errOFCSyst")));
1066 rootFile->Get(
"Resolution/es2017_summer/ctZee_errSyst")));
1074 checked_own_cast<TH1*>(rootFile->Get(
"Pedestals/es2017/pedestals")));
1077 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigA")));
1080 rootFile->Get(
"Material/Measured/DXerr_IPPS_NewG_errUncor")));
1082 rootFile->Get(
"Material/Measured/DXerr_IPPS_NewG_errLAr")));
1085 rootFile->Get(
"Material/Measured/DXerr_IPAcc_NewG_errUncor")));
1087 rootFile->Get(
"Material/Measured/DXerr_IPAcc_NewG_errLAr")));
1089 rootFile->Get(
"Material/Measured/DXerr_IPAcc_NewG_errG4")));
1091 rootFile->Get(
"Material/Measured/DXerr_IPAcc_NewG_errGL1")));
1094 rootFile->Get(
"Material/Measured/DXerr_PSAcc_NewG_errUncor")));
1096 rootFile->Get(
"Material/Measured/DXerr_PSAcc_NewG_errLAr")));
1098 rootFile->Get(
"Material/Measured/DXerr_PSAcc_NewG_errG4")));
1101 rootFile->Get(
"Conversions/es2012c/convRadiusMigrations")));
1104 rootFile->Get(
"Conversions/es2012c/convFakeRate")));
1106 rootFile->Get(
"Conversions/es2012c/convRecoEfficiency")));
1110 rootFile->Get(
"Conversions/es2023_R22_Run2_v0/convFakeRate")));
1112 rootFile->Get(
"Conversions/es2023_R22_Run2_v0/convRecoEfficiency")));
1115 rootFile->Get(
"Conversions/es2024_Run3_v0/conv_energybias")));
1117 rootFile->Get(
"Conversions/es2024_Run3_v0/unconv_energybias")));
1120 rootFile->Get(
"Conversions/es2017_summer/convFakeRate")));
1122 rootFile->Get(
"Conversions/es2017_summer/convRecoEfficiency")));
1129 "ElectronPhotonFourMomentumCorrection/v8/PP0sys.root");
1131 TFile file_pp0(filename_pp0.c_str());
1132 m_pp0_elec.reset(checked_own_cast<TH2*>(file_pp0.Get(
"elec")));
1133 m_pp0_conv.reset(checked_own_cast<TH2*>(file_pp0.Get(
"conv")));
1134 m_pp0_unconv.reset(checked_own_cast<TH2*>(file_pp0.Get(
"unco")));
1138 "ElectronPhotonFourMomentumCorrection/v8/wstot_related_syst.root");
1140 TFile file_wstot(filename_wstot.c_str());
1142 checked_own_cast<TH1*>(file_wstot.Get(
"A_data")));
1145 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_el_data_p0")));
1147 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_el_data_p1")));
1149 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_uc_data_p0")));
1151 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_uc_data_p1")));
1153 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_c_data_p0")));
1155 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_c_data_p1")));
1157 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_el_mc_p0")));
1159 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_el_mc_p1")));
1161 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_ph_uc_mc_p0")));
1163 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_ph_uc_mc_p1")));
1165 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_ph_c_mc_p0")));
1167 checked_own_cast<TH1*>(file_wstot.Get(
"wstot_pT_ph_c_mc_p1")));
1177 rootFile->Get(
"FastSim/es2017_v1/resol_Af2ToG4_elec_rel21")));
1179 rootFile->Get(
"FastSim/es2017_v1/resol_Af2ToG4_unco_rel21")));
1181 rootFile->Get(
"FastSim/es2017_v1/resol_Af2ToG4_conv_rel21")));
1188 rootFile->Get(
"FastSim/es2023_R22_Run2_v1/resol_AF3ToG4_elec_rel22")));
1190 rootFile->Get(
"FastSim/es2023_R22_Run2_v1/resol_AF3ToG4_unco_rel22")));
1192 rootFile->Get(
"FastSim/es2023_R22_Run2_v1/resol_AF3ToG4_conv_rel22")));
1196 rootFile->Get(
"FastSim/es2024_Run3_v0/resol_AF3ToG4_elec_mc23")));
1198 rootFile->Get(
"FastSim/es2024_Run3_v0/resol_AF3ToG4_unco_mc23")));
1200 rootFile->Get(
"FastSim/es2024_Run3_v0/resol_AF3ToG4_conv_mc23")));
1203 rootFile->Get(
"FastSim/es2024_Run3_v0/adhoc_resol_AF3ToG4_elec_mc23_1p3_1p35")));
1205 rootFile->Get(
"FastSim/es2024_Run3_v0/adhoc_resol_AF3ToG4_elec_mc23_1p3_1p35")));
1207 rootFile->Get(
"FastSim/es2024_Run3_v0/adhoc_resol_AF3ToG4_unconv_mc23_1p3_1p35")));
1211 rootFile->Get(
"FastSim/es2017/el_full_fast_resolution")));
1213 rootFile->Get(
"FastSim/es2017/ph_unconv_full_fast_resolution")));
1215 rootFile->Get(
"FastSim/es2017/ph_conv_full_fast_resolution")));
1222 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
1224 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
1227 std::string gain_tool_run_2_filename;
1228 std::string gain_tool_run3_extra_filename;
1234 "ElectronPhotonFourMomentumCorrection/v11/"
1235 "gain_uncertainty_specialRun.root");
1240 "ElectronPhotonFourMomentumCorrection/v29/"
1241 "gain_uncertainty_specialRun.root");
1244 "ElectronPhotonFourMomentumCorrection/v38/"
1245 "gain_uncertainty_specialRun.root");
1249 "ElectronPhotonFourMomentumCorrection/v14/"
1250 "gain_uncertainty_specialRun.root");
1256 gain_tool_run_2_filename,
true,
"GainUncertainty",
1260 gain_tool_run3_extra_filename,
true,
"GainUncertainty",
1265 std::make_unique<egGain::GainUncertainty>(gain_tool_run_2_filename);
1275 "e1hg_systematics_histos.root"));
1279 "e1hg_systematics_histos.root"));
1288 m_aPSNom.reset(checked_own_cast<TH1*>(
1289 rootFile->Get(
"Scales/es2015_day0/alphaPS_uncor")));
1291 rootFile->Get(
"Scales/es2015_day0/dalphaPS_cor")));
1293 rootFile->Get(
"Scales/es2015_day0/alphaS12_uncor")));
1295 rootFile->Get(
"Scales/es2015_day0/dalphaS12_cor")));
1298 rootFile->Get(
"Scales/es2015_day0/momentum_errSyst")));
1300 m_zeeNom.reset(checked_own_cast<TH1*>(
1301 rootFile->Get(
"Scales/es2015_day0/alphaZee_errStat")));
1303 rootFile->Get(
"Scales/es2015_day0/alphaZee_errSyst")));
1305 m_resNom.reset(checked_own_cast<TH1*>(
1306 rootFile->Get(
"Resolution/es2012c/ctZee_errStat")));
1308 rootFile->Get(
"Resolution/es2012c/ctZee_errSyst")));
1311 rootFile->Get(
"Pedestals/es2012c/pedestals_l0")));
1313 rootFile->Get(
"Pedestals/es2012c/pedestals_l1")));
1315 rootFile->Get(
"Pedestals/es2012c/pedestals_l2")));
1317 rootFile->Get(
"Pedestals/es2012c/pedestals_l3")));
1320 rootFile->Get(
"Material/DX0_ConfigA")));
1323 "Material/Measured/DXerr_IPPS_NewG_errUncor")));
1325 rootFile->Get(
"Material/Measured/DXerr_IPPS_NewG_errLAr")));
1328 "Material/Measured/DXerr_IPAcc_NewG_errUncor")));
1330 "Material/Measured/DXerr_IPAcc_NewG_errLAr")));
1332 rootFile->Get(
"Material/Measured/DXerr_IPAcc_NewG_errG4")));
1334 "Material/Measured/DXerr_IPAcc_NewG_errGL1")));
1337 "Material/Measured/DXerr_PSAcc_NewG_errUncor")));
1339 "Material/Measured/DXerr_PSAcc_NewG_errLAr")));
1341 rootFile->Get(
"Material/Measured/DXerr_PSAcc_NewG_errG4")));
1344 rootFile->Get(
"Conversions/es2012c/convRadiusMigrations")));
1346 rootFile->Get(
"Conversions/es2012c/convFakeRate")));
1348 rootFile->Get(
"Conversions/es2012c/convRecoEfficiency")));
1354 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
1356 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
1358 std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
1362 "e1hg_systematics_histos.root"));
1367 ATH_MSG_FATAL(
"ES model not initialized - Initialization fails");
1370 ATH_MSG_FATAL(
"ES model not recognized - Initialization fails");
1395 rootFile->Get(
"E4Recalibration/v4/electron_eta_axis")));
1397 checked_own_cast<TList*>(rootFile->Get(
"E4Recalibration/v4/electron")));
1400 rootFile->Get(
"E4Recalibration/v4/electron_eta_axis")));
1402 checked_own_cast<TList*>(rootFile->Get(
"E4Recalibration/v4/electron")));
1404 rootFile->Get(
"E4Recalibration/v4/electron_eta_axis")));
1406 checked_own_cast<TList*>(rootFile->Get(
"E4Recalibration/v4/electron")));
1411 rootFile->Get(
"E4Recalibration/es2024_Run3_v0/E4_eta_axis")));
1413 checked_own_cast<TList*>(rootFile->Get(
"E4Recalibration/es2024_Run3_v0/electron_sensitivity")));
1415 rootFile->Get(
"E4Recalibration/es2024_Run3_v0/E4_eta_axis")));
1417 checked_own_cast<TList*>(rootFile->Get(
"E4Recalibration/es2024_Run3_v0/unconv_photon_sensitivity")));
1419 rootFile->Get(
"E4Recalibration/es2024_Run3_v0/E4_eta_axis")));
1421 checked_own_cast<TList*>(rootFile->Get(
"E4Recalibration/es2024_Run3_v0/conv_photon_sensitivity")));
1446 rootFile->Get(
"PSRecalibration/es2015PRE/ElectronAxis")));
1448 rootFile->Get(
"PSRecalibration/es2015PRE/ElectronBiasPS")));
1450 rootFile->Get(
"PSRecalibration/es2015PRE/UnconvertedAxis")));
1452 rootFile->Get(
"PSRecalibration/es2015PRE/UnconvertedBiasPS")));
1454 rootFile->Get(
"PSRecalibration/es2015PRE/ConvertedAxis")));
1456 rootFile->Get(
"PSRecalibration/es2015PRE/ConvertedBiasPS")));
1459 rootFile->Get(
"S1Recalibration/es2015PRE/ElectronAxis")));
1461 rootFile->Get(
"S1Recalibration/es2015PRE/ElectronBiasS1")));
1463 rootFile->Get(
"S1Recalibration/es2015PRE/UnconvertedAxis")));
1465 rootFile->Get(
"S1Recalibration/es2015PRE/UnconvertedBiasS1")));
1467 rootFile->Get(
"S1Recalibration/es2015PRE/ConvertedAxis")));
1469 rootFile->Get(
"S1Recalibration/es2015PRE/ConvertedBiasS1")));
1474 rootFile->Get(
"PSRecalibration/es2023_R22_Run2_v0/ElectronAxis")));
1476 rootFile->Get(
"PSRecalibration/es2023_R22_Run2_v0/ElectronBiasPS")));
1478 rootFile->Get(
"PSRecalibration/es2023_R22_Run2_v0/UnconvertedAxis")));
1480 rootFile->Get(
"PSRecalibration/es2023_R22_Run2_v0/UnconvertedBiasPS")));
1482 rootFile->Get(
"PSRecalibration/es2023_R22_Run2_v0/ConvertedAxis")));
1484 rootFile->Get(
"PSRecalibration/es2023_R22_Run2_v0/ConvertedBiasPS")));
1487 rootFile->Get(
"S2Recalibration/ElectronAxis")));
1489 rootFile->Get(
"S2Recalibration/ElectronBiasS2")));
1491 rootFile->Get(
"S2Recalibration/UnconvertedAxis")));
1493 rootFile->Get(
"S2Recalibration/UnconvertedBiasS2")));
1495 rootFile->Get(
"S2Recalibration/ConvertedAxis")));
1497 rootFile->Get(
"S2Recalibration/ConvertedBiasS2")));
1500 rootFile->Get(
"SaccRecalibration/ElectronAxis")));
1503 rootFile->Get(
"SaccRecalibration/es2024_Run3_v0/ElectronBiasSacc")));
1507 rootFile->Get(
"SaccRecalibration/ElectronBiasSacc")));
1510 rootFile->Get(
"SaccRecalibration/UnconvertedAxis")));
1512 rootFile->Get(
"SaccRecalibration/UnconvertedBiasSacc")));
1514 rootFile->Get(
"SaccRecalibration/ConvertedAxis")));
1516 rootFile->Get(
"SaccRecalibration/ConvertedBiasSacc")));
1520 rootFile->Get(
"PSRecalibration/ElectronAxis")));
1522 rootFile->Get(
"PSRecalibration/ElectronBiasPS")));
1524 rootFile->Get(
"PSRecalibration/UnconvertedAxis")));
1526 rootFile->Get(
"PSRecalibration/UnconvertedBiasPS")));
1528 rootFile->Get(
"PSRecalibration/ConvertedAxis")));
1530 rootFile->Get(
"PSRecalibration/ConvertedBiasPS")));
1533 rootFile->Get(
"S1Recalibration/ElectronAxis")));
1535 rootFile->Get(
"S1Recalibration/ElectronBiasS1")));
1537 rootFile->Get(
"S1Recalibration/UnconvertedAxis")));
1539 rootFile->Get(
"S1Recalibration/UnconvertedBiasS1")));
1541 rootFile->Get(
"S1Recalibration/ConvertedAxis")));
1543 rootFile->Get(
"S1Recalibration/ConvertedBiasS1")));
1550 std::unique_ptr<TH1>(checked_own_cast<TH1*>(
1551 rootFile->Get(
"Material/unconvertedBiasSubtracted_ConfigA"))));
1553 std::unique_ptr<TH1>(checked_own_cast<TH1*>(
1554 rootFile->Get(
"Material/unconvertedBiasSubtracted_ConfigCpDp"))));
1556 std::unique_ptr<TH1>(checked_own_cast<TH1*>(
1557 rootFile->Get(
"Material/unconvertedBiasSubtracted_ConfigEpLp"))));
1559 std::unique_ptr<TH1>(checked_own_cast<TH1*>(
1560 rootFile->Get(
"Material/unconvertedBiasSubtracted_ConfigFpMX"))));
1562 std::unique_ptr<TH1>(checked_own_cast<TH1*>(
1563 rootFile->Get(
"Material/unconvertedBiasSubtracted_ConfigGp"))));
1566 rootFile->Get(
"Material/convertedBiasSubtracted_ConfigA"))));
1568 rootFile->Get(
"Material/convertedBiasSubtracted_ConfigCpDp"))));
1570 rootFile->Get(
"Material/convertedBiasSubtracted_ConfigEpLp"))));
1572 rootFile->Get(
"Material/convertedBiasSubtracted_ConfigFpMX"))));
1574 rootFile->Get(
"Material/convertedBiasSubtracted_ConfigGp"))));
1577 rootFile->Get(
"Material/electronCstTerm_ConfigA"))));
1579 rootFile->Get(
"Material/electronCstTerm_ConfigCpDp"))));
1581 rootFile->Get(
"Material/electronCstTerm_ConfigEpLp"))));
1583 rootFile->Get(
"Material/electronCstTerm_ConfigFpMX"))));
1585 rootFile->Get(
"Material/electronCstTerm_ConfigGp"))));
1598 checked_own_cast<TH1*>(rootFile->Get(
"Material_rel21/DX0_ConfigA"))));
1600 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigCpDp"))));
1602 rootFile->Get(
"Material_rel21/DX0_ConfigEpLp"))));
1604 rootFile->Get(
"Material_rel21/DX0_ConfigFpMX"))));
1606 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigGp"))));
1608 checked_own_cast<TH1*>(rootFile->Get(
"Material_rel21/DX0_ConfigN"))));
1611 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigA"))));
1613 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigCpDp"))));
1615 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigEpLp"))));
1617 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigFpMX"))));
1619 checked_own_cast<TH1*>(rootFile->Get(
"Material/DX0_ConfigGp"))));
1623 checked_own_cast<TAxis*>(rootFile->Get(
"Material/LinearityEtaBins")));
1625 std::unique_ptr<TList>(checked_own_cast<TList*>(
1626 rootFile->Get(
"Material/Linearity_Cluster_ConfigA"))));
1628 std::unique_ptr<TList>(checked_own_cast<TList*>(
1629 rootFile->Get(
"Material/Linearity_Cluster_ConfigCpDp"))));
1631 std::unique_ptr<TList>(checked_own_cast<TList*>(
1632 rootFile->Get(
"Material/Linearity_Cluster_ConfigEpLp"))));
1634 std::unique_ptr<TList>(checked_own_cast<TList*>(
1635 rootFile->Get(
"Material/Linearity_Cluster_ConfigFpMX"))));
1637 std::unique_ptr<TList>(checked_own_cast<TList*>(
1638 rootFile->Get(
"Material/Linearity_Cluster_ConfigGp"))));
1650 rootFile->Get(
"Material_rel21/electronBias_ConfigA")));
1652 rootFile->Get(
"Material_rel21/electronBias_ConfigEpLp")));
1654 rootFile->Get(
"Material_rel21/electronBias_ConfigFpMX")));
1656 rootFile->Get(
"Material_rel21/electronBias_ConfigN")));
1658 rootFile->Get(
"Material_rel21/electronBias_ConfigIBL")));
1660 rootFile->Get(
"Material_rel21/electronBias_ConfigPP0")));
1662 rootFile->Get(
"Material_rel21/unconvertedBias_ConfigA")));
1664 rootFile->Get(
"Material_rel21/unconvertedBias_ConfigEpLp")));
1666 rootFile->Get(
"Material_rel21/unconvertedBias_ConfigFpMX")));
1668 rootFile->Get(
"Material_rel21/unconvertedBias_ConfigN")));
1670 rootFile->Get(
"Material_rel21/unconvertedBias_ConfigIBL")));
1672 rootFile->Get(
"Material_rel21/unconvertedBias_ConfigPP0")));
1674 rootFile->Get(
"Material_rel21/convertedBias_ConfigA")));
1676 rootFile->Get(
"Material_rel21/convertedBias_ConfigEpLp")));
1678 rootFile->Get(
"Material_rel21/convertedBias_ConfigFpMX")));
1680 rootFile->Get(
"Material_rel21/convertedBias_ConfigN")));
1682 rootFile->Get(
"Material_rel21/convertedBias_ConfigIBL")));
1684 rootFile->Get(
"Material_rel21/convertedBias_ConfigPP0")));
1697 rootFile->Get(
"FastSim/es2015/el_scale_full_fast_peak_gaussian")));
1699 "FastSim/es2015/ph_unconv_scale_full_fast_peak_gaussian")));
1701 rootFile->Get(
"FastSim/es2015/ph_conv_scale_full_fast_peak_gaussian")));
1710 rootFile->Get(
"FastSim/es2017/el_scale_full_fast_peak_gaussian")));
1712 "FastSim/es2017/ph_unconv_scale_full_fast_peak_gaussian")));
1714 rootFile->Get(
"FastSim/es2017/ph_conv_scale_full_fast_peak_gaussian")));
1720 rootFile->Get(
"FastSim/es2017_v1/scale_Af2ToG4_elec_rel21")));
1723 rootFile->Get(
"FastSim/es2017_v1/scale_Af2ToG4_unco_rel21")));
1725 rootFile->Get(
"FastSim/es2017_v1/scale_Af2ToG4_conv_rel21")));
1732 rootFile->Get(
"FastSim/es2023_R22_Run2_v1/scale_AF3ToG4_elec_rel22")));
1735 rootFile->Get(
"FastSim/es2023_R22_Run2_v1/scale_AF3ToG4_unco_rel22")));
1737 rootFile->Get(
"FastSim/es2023_R22_Run2_v1/scale_AF3ToG4_conv_rel22")));
1741 rootFile->Get(
"FastSim/es2024_Run3_v0/scale_AF3ToG4_elec_mc23")));
1744 rootFile->Get(
"FastSim/es2024_Run3_v0/scale_AF3ToG4_unco_mc23")));
1746 rootFile->Get(
"FastSim/es2024_Run3_v0/scale_AF3ToG4_conv_mc23")));
1749 rootFile->Get(
"FastSim/es2024_Run3_v0/adhoc_scale_AF3ToG4_elec_mc23_1p3_1p35")));
1751 rootFile->Get(
"FastSim/es2024_Run3_v0/adhoc_scale_AF3ToG4_elec_mc23_1p3_1p35")));
1753 rootFile->Get(
"FastSim/es2024_Run3_v0/adhoc_scale_AF3ToG4_unconv_mc23_1p3_1p35")));
1757 checked_own_cast<TH1*>(rootFile->Get(
"FastSim/hG4OverAF")));
1760 checked_own_cast<TH1*>(rootFile->Get(
"FastSim/hG4OverFS")));
1779 checked_own_cast<TH1*>(rootFile->Get(
"Leakage/LeakageDiffConverted")));
1781 rootFile->Get(
"Leakage/LeakageDiffUnconverted")));
1786 rootFile->Get(
"Leakage/es2017_summer/LeakageDiffConverted")));
1788 rootFile->Get(
"Leakage/es2017_summer/LeakageDiffUnconverted")));
1791 rootFile->Get(
"Leakage/es2023_R22_Run2_v0/LeakageDiffConverted")));
1793 rootFile->Get(
"Leakage/es2023_R22_Run2_v0/LeakageDiffUnconverted")));
1795 rootFile->Get(
"Leakage/es2023_R22_Run2_v0/LeakageDiffElectron")));
1802 ATH_MSG_INFO(
"No leakage systematic uncertainty for ES model "
1808 checked_own_cast<TH1*>(rootFile->Get(
"ZeeEnergyProfiles/p2MC")));
1812 rootFile->Get(
"ZeeMeanET/es2024_Run3_v0/MC_eta_vs_et_profiled")));
1817 rootFile->Get(
"ZeeMeanET/MC_eta_vs_et_profiled")));
4799 int particle_type,
double energy,
double eta,
double etaCalo,
int syst_mask,
4800 double&
resolution,
double& resolution_error,
double& resolution_error_up,
4801 double& resolution_error_down,
int resol_type,
bool fast)
const {
4803 double pileupNoise =
pileUpTerm(energy,
eta, particle_type);
4804 double et = energy / cosh(
eta);
4816 (pileupNoise * pileupNoise) / (
et *
et);
4819 double_t sum_sigma_resolution2 = 0.;
4820 double sum_deltaDown = 0.;
4821 double sum_deltaUp = 0.;
4823 for (
int isys = 0; isys < 11; isys++) {
4825 if (syst_mask & (1 << isys)) {
4828 double sigma2up = 0.;
4829 double sigma2down = 0.;
4833 double d1 = (smearingZ + esmearingZ) * (smearingZ + esmearingZ) -
4834 smearingZ * smearingZ;
4835 double d2 = smearingZ * smearingZ -
4836 (smearingZ - esmearingZ) * (smearingZ - esmearingZ);
4837 double d = 0.5 * (d1 + d2);
4842 std::format(
"sys resolution Zsmearing: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4848 3, 40000. * cosh(
eta),
eta, resol_type);
4849 double deltaSigma2 = (1.1 * resolutionZ) * (1.1 * resolutionZ) -
4850 resolutionZ * resolutionZ;
4851 double resolution1 =
4853 sigma2up = (1.1 * resolution1) * (1.1 * resolution1) -
4854 resolution1 * resolution1 - deltaSigma2;
4855 deltaSigma2 = (0.9 * resolutionZ) * (0.9 * resolutionZ) -
4856 resolutionZ * resolutionZ;
4857 sigma2down = (0.9 * resolution1) * (0.9 * resolution1) -
4858 resolution1 * resolution1 - deltaSigma2;
4859 sigma2 = 0.5 * (sigma2up - sigma2down);
4861 std::format(
"sys resolution intrinsic: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4865 else if (isys == 2) {
4868 sigma2 = sigmaA * sigmaA;
4870 sigma2down = -1. * sigma2;
4872 std::format(
"sys resolution configA ID material: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4877 else if (isys == 3) {
4878 if (std::abs(
eta) < 1.45) {
4881 sigma2 = 0.5 * sigmaM * sigmaM;
4885 sigma2down = -1. * sigma2;
4887 std::format(
"sys resolution presampler-layer1: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4892 else if (isys == 4) {
4893 if (std::abs(
eta) > 1.52 && std::abs(
eta) < 1.82) {
4896 sigma2 = sigmaX * sigmaX;
4900 sigma2down = -1. * sigma2;
4902 std::format(
"sys resolution barrel-endcap gap: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4907 else if (isys == 5) {
4910 sigma2 = 0.5 * sigmaEL * sigmaEL;
4912 sigma2down = -1. * sigma2;
4914 std::format(
"sys resolution cryostat area: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4919 else if (isys == 6) {
4920 double et = energy / cosh(
eta);
4921 double sigmaPileUp = 0.;
4933 sqrt(1.1 * 1.1 - 1.0) *
4935 sigmaPileUp = deltaNoise /
et;
4936 sigmaZ = deltaNoise / 40000.;
4945 double deltaPileupNoise = 100.;
4946 if (std::abs(
eta) >= 1.4 && std::abs(
eta) < 1.8)
4947 deltaPileupNoise = 200.;
4948 double scaleNcells = 1;
4949 if (particle_type == 1 && std::abs(
eta) < 1.4)
4950 scaleNcells = sqrt(3. / 5.);
4952 sigmaPileUp = deltaPileupNoise * scaleNcells /
et;
4954 deltaPileupNoise / (40000.);
4956 sigma2 = sigmaPileUp * sigmaPileUp - sigmaZ * sigmaZ;
4958 sigma2down = -1. * sigma2;
4959 ATH_MSG_DEBUG(std::format(
"sys resolution pileup noise: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4963 else if (isys == 7 && std::abs(
eta) < 1.5 &&
4981 sigma2 = sigmaE * sigmaE;
4983 sigma2down = -1. * sigma2;
4985 std::format(
"sys resolution ibl material: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
4989 else if (isys == 8 && std::abs(
eta) > 1.5 &&
5008 sigma2 = 2.3 * sigmaE * sigmaE;
5010 sigma2down = -1. * sigma2;
5012 std::format(
"sys resolution pp0 material: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
5018 else if (isys == 9 &&
5021 const double ptGeV =
et / 1e3;
5022 bool interpolate_eta =
false;
5023 bool interpolate_pt =
false;
5026 interpolate_pt =
true;
5028 if (particle_type == 0) {
5030 true,
true,
true,
true,
5031 interpolate_eta, interpolate_pt);
5032 if (std::abs(
eta)>=1.3 and std::abs(
eta)<=1.35 and
5036 ptGeV,
true,
true, interpolate_pt), 2);
5038 if (particle_type == 1) {
5040 ptGeV,
true,
true,
true,
true,
5041 interpolate_eta, interpolate_pt);
5042 if (std::abs(
eta)>=1.3 and std::abs(
eta)<=1.35 and
5045 ptGeV,
true,
true, interpolate_pt), 2);
5047 if (particle_type == 2) {
5049 ptGeV,
true,
true,
true,
true,
5050 interpolate_eta, interpolate_pt);
5051 if (std::abs(
eta)>=1.3 and std::abs(
eta)<=1.35 and
5054 ptGeV,
true,
true, interpolate_pt), 2);
5056 sigma2up = -1. * sigma2;
5058 sigma2down = sigma2;
5063 double d1 = (smearingZ + esmearingOFC) * (smearingZ + esmearingOFC) -
5064 smearingZ * smearingZ;
5065 double d2 = smearingZ * smearingZ -
5066 (smearingZ - esmearingOFC) * (smearingZ - esmearingOFC);
5067 double d = 0.5 * (d1 + d2);
5071 ATH_MSG_DEBUG(std::format(
"sys resolution OFC unc.: {:.7f} {:.7f} {:.7f}", sigma2, sigma2up, sigma2down));
5088 if ((resolution2 + sigma2up) > 0.)
5089 rr1 = sqrt(resolution2 + sigma2up);
5091 if ((resolution2 + sigma2down) > 0.)
5092 rr2 = sqrt(resolution2 +
5094 double deltaSigma_sys;
5100 sum_sigma_resolution2 += deltaSigma_sys * deltaSigma_sys;
5102 if ((resolution2 + sigma2up) > 0.)
5103 rr1 = sqrt(resolution2 + sigma2up);
5109 if ((resolution2 + sigma2down) > 0.)
5110 rr2 = sqrt(resolution2 + sigma2down);
5114 ATH_MSG_VERBOSE(
"relative resolution change Down " << deltaSigmaDown);
5116 sum_deltaUp += deltaSigmaUp;
5117 sum_deltaDown += deltaSigmaDown;
5122 resolution_error = sqrt(sum_sigma_resolution2) *
5125 resolution_error_up = sum_deltaUp *
resolution;
5126 resolution_error_down = sum_deltaDown *
resolution;
5130 <<
" Resolution Error (MeV): " << resolution_error <<
" down "
5131 << resolution_error_down <<
" up " << resolution_error_up
5132 <<
" Z smearing " << smearingZ <<
" +- " << esmearingZ
5133 <<
" using mask " << syst_mask);