void Event::cleanGoodJetsAgainstMostIsolatedElectron() { const ElectronPointer mostIsolatedElectron = MostIsolatedElectron(Event::usePFIsolation); unsigned int initialGoodJets = goodJets.size(); for (unsigned int jetIndex = 0; jetIndex < goodJets.size(); ++jetIndex) { if (goodJets.at(jetIndex)->isWithinDeltaR(0.3, mostIsolatedElectron)) { goodJets.erase(goodJets.begin() + jetIndex); --jetIndex; } } jetCleaningEfficiency = goodJets.size() / initialGoodJets; }
const LeptonPointer QCDPFRelIsoEPlusJetsSelection::signalLepton(const EventPtr event) const { // if (!hasExactlyOneIsolatedLepton(event)) { // cerr << "An error occurred in QCD*Selection in event = " << event->eventnumber(); // cerr << ", run = " << event->runnumber() << ", lumi = " << event->lumiblock() << "!" << endl; // cerr << "File = " << event->file() << endl; // cerr // << "Access exception: No signal lepton could be found. Event doesn't pass 'hasExactlyOneIsolatedLepton' selection" // << endl; // throw "Access exception: No signal lepton could be found. Event doesn't pass 'hasExactlyOneIsolatedLepton' selection"; // } const ElectronCollection allElectrons(event->Electrons()); ElectronCollection goodElectrons; for (unsigned int index = 0; index < allElectrons.size(); ++index) { const ElectronPointer electron(allElectrons.at(index)); if (isGoodElectron(electron)) { goodElectrons.push_back(electron); } } return MostIsolatedElectron(goodElectrons); }
const ElectronPointer Event::MostPFIsolatedElectron(const ElectronCollection& electrons) const { return MostIsolatedElectron(electrons, true); }
const ElectronPointer Event::MostPFIsolatedElectron() const{ return MostIsolatedElectron(true); }
const ElectronPointer Event::MostIsolatedElectron() const{ return MostIsolatedElectron(false); }