 |
ATLAS Offline Software
|
Go to the source code of this file.
|
int | main (int argc, char *argv[]) |
|
◆ main()
int main |
( |
int |
argc, |
|
|
char * |
argv[] |
|
) |
| |
Definition at line 47 of file testEgChargeCorr.cxx.
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",
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);
const float SF[NF]
Cross sections for Fluor.
Class to wrap a set of SystematicVariations.
@ kClassAccess
Access auxiliary data using the aux containers.
StatusCode readFrom(TFile *file)
POOL::TEvent event(POOL::TEvent::kClassAccess)
(Non-const) Iterator class for DataVector/DataList.
std::pair< std::unique_ptr< T >, std::unique_ptr< ShallowAuxContainer > > shallowCopyContainer(const T &cont, [[maybe_unused]] const EventContext &ctx)
Function making a shallow copy of a constant container.
CP::CorrectionCode getEleTruthCharge(const xAOD::Electron &ele, int &truthcharge)
Get the charge of the original electron.
Class describing the basic event information.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
@ Ok
The correction was done successfully.
StatusCode retrieve(const T *&obj)
Error
The different types of error that can be flagged in the L1TopoRDO.
Tool for accessing xAOD files outside of Athena.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.