47 {
48
49
50 using namespace asg::msgSelectorCheck;
52 MSG::Level mylevel=MSG::INFO;
53 setMsgLevel(mylevel);
54
55
56
58
59
60 if( argc < 2 ) {
63 return EXIT_FAILURE;
64 }
65
66
68
69
72 std::unique_ptr< TFile >
ifile( TFile::Open( fileName,
"READ" ) );
74
75
77 if( argc < 4 ) {
79 } else {
80 int argv1 =
atoi(argv[ 3 ]);
84 }
85
86
88
89
92
93 ANA_MSG_INFO(
"Number of events in the file: "<< pers.getEntries());
94
95
96 Long64_t
entries = pers.getEntries();
97 if( argc > 2 ) {
98 const Long64_t
e = atoll( argv[ 2 ] );
101 }
102 }
103
104
106
107
109 ANA_CHECK(electronMediumIsEMSelector.setProperty(
"WorkingPoint",
"MediumElectron"));
110 ANA_CHECK(electronMediumIsEMSelector.setProperty(
"OutputLevel", mylevel));
111 ANA_CHECK(electronMediumIsEMSelector.initialize());
112
114 ANA_CHECK(electronMediumLHSelector.setProperty(
"WorkingPoint",
"MediumLHElectron"));
115 ANA_CHECK(electronMediumLHSelector.setProperty(
"OutputLevel", mylevel));
116 ANA_CHECK(electronMediumLHSelector.initialize());
117
119 ANA_CHECK(electronMediumDNNSelector.setProperty(
"WorkingPoint",
"MediumDNNElectron"));
120 ANA_CHECK(electronMediumDNNSelector.setProperty(
"OutputLevel", mylevel));
121 ANA_CHECK(electronMediumDNNSelector.initialize());
122
123
125
126
127 pers.getEntry( entry );
130
132 ANA_CHECK(pers.retrieve(electrons,
"Electrons"));
133
138 ANA_MSG_INFO(
"Electron LH Medium accept result: " <<
bool(electronMediumLHSelector->accept(el)));
139 ANA_MSG_INFO(
"Electron DNN Medium accept result: " <<
bool(electronMediumDNNSelector->accept(el)));
140 ANA_MSG_INFO(
"Electron Cut Medium accept result: " <<
bool(electronMediumIsEMSelector->accept(el)));
141
142
144 std::bitset<32> decision = electronMediumIsEMSelector->accept(el).getCutResultBitSet();
146 std::bitset<32> isEMdecision = electronMediumIsEMSelector->accept(el).getCutResultInvertedBitSet() ;
148
152
154 ANA_MSG_INFO(
"HadLeakageOnly mask: " << HadLeakageOnlyMask);
155
157 ANA_MSG_INFO(
"Medium Without Had Leakage mask: " << MediumWithouHadLeakageMask);
158
159
160 bool passALLDecisionisem= (isEMdecision&MediumMask)==0;
161 std::bitset<32> passALLDecisionisemBitSet(isEMdecision&MediumMask);
162 ANA_MSG_INFO(
"Electron check all cuts via isem: "<< passALLDecisionisem <<
" ,bitset " << passALLDecisionisemBitSet);
163
164 bool checkOnlyHadLeakageisem= (isEMdecision&HadLeakageOnlyMask)==0;
165 std::bitset<32> checkOnlyHadLeakageisemBitSet(isEMdecision&HadLeakageOnlyMask);
166 ANA_MSG_INFO(
"Electron check Only Had Leakage via isem:: "<< checkOnlyHadLeakageisem <<
" ,bitset " << checkOnlyHadLeakageisemBitSet);
167
168 bool ignoreHadLeakageisem= (isEMdecision&MediumWithouHadLeakageMask)==0;
169 std::bitset<32> ignoreHadLeakageisemBitSet(isEMdecision&MediumWithouHadLeakageMask);
170 ANA_MSG_INFO(
"Electron ignore Had Leakage check all else via isem:: "<< ignoreHadLeakageisem <<
" ,bitset " << ignoreHadLeakageisemBitSet);
171
173
174
175 }
176 }
177 }
178 else {
179
180
182 ANA_CHECK(photonTightIsEMSelector.setProperty(
"WorkingPoint",
"MediumPhoton"));
183 ANA_CHECK(photonTightIsEMSelector.setProperty(
"OutputLevel", mylevel));
184 ANA_CHECK(photonTightIsEMSelector.initialize());
185
187
188
189 pers.getEntry( entry );
192
194 ANA_CHECK(pers.retrieve(photons,
"Photons"));
199 ANA_MSG_INFO(
"Photon Tight accept result: " <<
bool(photonTightIsEMSelector->accept(ph)));
201 }
202 }
203 }
204
206 return 0;
207}
bool isElectron(const T &p)
ReadStats & stats()
Access the object belonging to the current thread.
static IOStats & instance()
Singleton object accessor.
void printSmartSlimmingBranchList(bool autoIncludeLinks=false) const
Print the accessed variables, formatted for smart slimming.
Tool for accessing xAOD files outside of Athena.
@ kClassAccess
Access auxiliary data using the aux containers.
A relatively simple transient store for objects created in analysis.
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
const unsigned int ElectronMediumPP
Medium++ electron selecton.
@ ClusterHadronicLeakage_Electron
cluster leakage into the hadronic calorimeter
StatusCode Init(const char *appname)
Function initialising ROOT/PyROOT for using the ATLAS EDM.
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
Photon_v1 Photon
Definition of the current "egamma version".
Electron_v1 Electron
Definition of the current "egamma version".