bool TopPairEMuReferenceSelection::passesZmassVeto(const EventPtr event) const { const ElectronCollection electrons(signalElectrons(event)); const MuonCollection muons(signalMuons(event)); ElectronCollection electronColl; MuonCollection muonColl; double ptMax = 0; int storeIndexA = -1; int storeIndexB = -1; if(electrons.size() >= 1 && muons.size() >= 1){ for (unsigned int indexA = 0; indexA < electrons.size(); ++indexA) { const ElectronPointer electron(electrons.at(indexA)); for (unsigned int indexB = 0; indexB < muons.size(); ++indexB) { const MuonPointer muon(muons.at(indexB)); if((electron->charge() == -muon->charge()) && ((electron->pt()+muon->pt())>ptMax)){ ptMax = electron->pt()+muon->pt(); storeIndexA = indexA; storeIndexB = indexB; } } if(storeIndexA != storeIndexB){ electronColl.push_back(electrons.at(storeIndexA)); muonColl.push_back(muons.at(storeIndexB)); } } } ElectronPointer electron = electronColl.front(); MuonPointer muon = muonColl.front(); double mass = 0; ParticlePointer dilepton; dilepton = ParticlePointer(new Particle(*electron + *muon)); mass = dilepton->mass(); return mass < 76 || mass > 106; }
const LeptonPointer TopPairMuPlusJetsReferenceSelection2011::signalLepton(const EventPtr event) const { if (!hasExactlyOneIsolatedLepton(event)) { cerr << "An error occurred in SignalSelection in event (no = " << 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 MuonCollection allMuons(event->Muons()); MuonCollection goodIsolatedMuons; for (unsigned int index = 0; index < allMuons.size(); ++index) { const MuonPointer muon(allMuons.at(index)); if (isGoodMuon(muon) && isIsolated(muon)) goodIsolatedMuons.push_back(muon); } return goodIsolatedMuons.front(); }