67int main(
int argc,
char* argv[] ){
81 auto start = std::time(
nullptr);
85 const TString fileName = argv[ 2 ];
87 std::unique_ptr< TFile > ifile( TFile::Open( fileName,
"READ" ) );
88 if( !ifile.get() )
return EXIT_FAILURE;
90 const TString configFile = argv[ 1 ];
95 ANA_CHECK( event.readFrom( ifile.get() ) );
96 ANA_MSG_INFO(
"Number of events in the file" <<
static_cast<int>(event.getEntries()));
102 Long64_t
entries =
event.getEntries();
104 const Long64_t e = atoll( argv[ 3 ] );
109#ifdef XAOD_STANDALONE
110 StatusCode::enableFailure();
113 ANA_MSG_INFO(
"Initialize the standard instance of the tool");
119 ANA_CHECK( IsoSelectionTool.setProperty(
"OutputLevel", MSG::DEBUG) );
122 ANA_MSG_INFO(
"Initialize the low-Pt augmentation (PLV-only)");
124 ANA_CHECK( IsoSelectionTool_lowPt.setProperty(
"OutputLevel", MSG::DEBUG) );
127 std::string m_sgKeyPhotons(
"Photons");
128 std::string m_sgKeyElectrons(
"Electrons");
129 std::string m_sgKeyMuons(
"Muons");
132 for( Long64_t entry(0); entry<
entries; entry++ ) {
134 event.getEntry( entry );
137 ANA_CHECK( event.retrieve(photons,m_sgKeyPhotons) );
140 for (
auto ph : *photons) {
141 if (ph->caloCluster() ==
nullptr)
continue;
142 if (ph->pt() <
PhotonPt || std::abs(ph->caloCluster()->eta()) >
PhotonEta)
continue;
144 if (IsoSelectionTool.
accept( *ph ))
145 ANA_MSG_INFO(Form(
" --> Photon (pt=%.1f, eta=%.3f, phi=%.3f) PASSES Isolation %s",ph->pt(),ph->eta(),ph->phi(),
PhotonIso.c_str()));
147 ANA_MSG_INFO(Form(
" --> Photon (pt=%.1f, eta=%.3f, phi=%.3f) FAILS Isolation %s",ph->pt(),ph->eta(),ph->phi(),
PhotonIso.c_str()));
152 ANA_CHECK( event.retrieve(electrons,m_sgKeyElectrons) );
153 ANA_MSG_INFO(
" Number of pre-selected electrons: " << (
int)electrons->size());
155 for (
auto el : *electrons) {
156 if (el->caloCluster() ==
nullptr)
continue;
160 if (IsoSelectionTool.
accept( *el ))
161 ANA_MSG_INFO(Form(
" --> Electron (pt=%.1f, eta=%.3f, phi=%.3f) PASSES Isolation %s",el->pt(),el->eta(),el->phi(),
ElectronIso.c_str()));
163 ANA_MSG_INFO(Form(
" --> Electron (pt=%.1f, eta=%.3f, phi=%.3f) FAILS Isolation %s",el->pt(),el->eta(),el->phi(),
ElectronIso.c_str()));
168 ANA_CHECK( event.retrieve(muons,m_sgKeyMuons) );
171 for (
auto mu : *muons) {
172 if (mu->pt() <
MuonPt || std::abs(mu->eta()) >
MuonEta)
continue;
175 if (IsoSelectionTool.
accept( *mu ))
176 ANA_MSG_INFO(Form(
" --> Muon (pt=%.1f, eta=%.3f, phi=%.3f) PASSES Isolation %s",mu->pt(),mu->eta(),mu->phi(),
MuonIso.c_str()));
178 ANA_MSG_INFO(Form(
" --> Muon (pt=%.1f, eta=%.3f, phi=%.3f) FAILS Isolation %s",mu->pt(),mu->eta(),mu->phi(),
MuonIso.c_str()));
185 auto end = std::time(
nullptr);