50 using namespace asg::testEgChargeCorr;
60 " Usage: %s [xAOD file name] [Correction File name]",
65 double SF_chargeID = 0;
68 double n_chargeID = 0;
69 double n_chargeMisID = 0;
76 const TString corrFileName =
argv[2];
87 "Number of events in the file: %i",
88 static_cast<int>(
event.getEntries()));
90 std::cout <<
"==" << std::endl;
93 Long64_t
entries =
event.getEntries();
95 const Long64_t
e = atoll(
argv[2]);
103 ANA_CHECK(myEgCorrections.setProperty(
"OutputLevel", mylevel));
108 ANA_CHECK(myEgCorrections.setProperty(
"ForceDataType", 1));
110 ANA_CHECK(myEgCorrections.setProperty(
"DefaultRandomRunNumber",
111 (
unsigned int)311481));
112 ANA_CHECK(myEgCorrections.setProperty(
"UseRandomRunNumber",
false));
118 m_LHToolTight->setProperty(
"primaryVertexContainer",
"PrimaryVertices"));
120 ->setProperty(
"ConfigFile",
121 "ElectronPhotonSelectorTools/offline/mc15_20160512/"
122 "ElectronLikelihoodLooseOfflineConfig2016_CutBL_Smooth.conf")
132 std::cout <<
"==" << std::endl;
141 event.getEntry(
entry);
144 std::cout <<
"=================NEXT EVENT=========================="
155 std::pair<xAOD::ElectronContainer*, xAOD::ShallowAuxContainer*>
167 for (; el_it != el_it_last; ++el_it, ++
i) {
170 if (
el->pt() < 20000)
173 bool LHacc{ m_LHToolTight->
accept(
el) };
174 std::cout <<
"acc: " << LHacc << std::endl;
177 double clusAbsEta = std::abs(
el->caloCluster()->etaBE(2));
178 if ( clusAbsEta > 1.37 && (clusAbsEta < 1.52 || clusAbsEta > 2.47) )
185 if (myEgCorrections.getEfficiencyScaleFactor(*
el,
SF) !=
191 if (myEgCorrections.applyEfficiencyScaleFactor(*
el) !=
197 Info(
APP_NAME,
"===>>> Resulting SF (from get function) %f, (from apply function) %f",
200 SF_chargeID = SF_chargeID +
SF;
202 for (
const auto&
sys : recSysts) {
203 double systematic = 0;
206 ANA_CHECK(myEgCorrections.applySystematicVariation({ sys }));
208 if (myEgCorrections.getEfficiencyScaleFactor(*
el, systematic) ==
211 "%f Result %f Systematic value %f ",
217 ANA_CHECK(myEgCorrections.applySystematicVariation({}));
220 int truthcharge =
false;
222 if (
el->charge() * truthcharge < 0) {
231 Info(
APP_NAME,
"===>>> processed #%d electrons", SF_nevents);
232 Info(
APP_NAME,
"===>>> compared to #%f (from Charge MisId SF)", SF_chargeID);
233 Info(
APP_NAME,
"===>>> compared to #%f and #%f ", n_chargeID, n_chargeMisID);