void TTbarDiLeptonAnalyser::eESignalAnalysis(const EventPtr event) { if (topEERefSelection_->passesSelectionUpToStep(event, TTbarEEReferenceSelection::MetCut)) { const JetCollection jets(topEERefSelection_->cleanedJets(event)); const JetCollection bJets(topEERefSelection_->cleanedBJets(event)); unsigned int numberOfBjets(bJets.size()); vector<double> bjetWeights; if (event->isRealData()) { for (unsigned int index = 0; index <= numberOfBjets; ++index) { if (index == numberOfBjets) bjetWeights.push_back(1.); else bjetWeights.push_back(0); } } else bjetWeights = BjetWeights(jets, numberOfBjets); histMan_->setCurrentJetBin(jets.size()); histMan_->setCurrentBJetBin(numberOfBjets); //this is for HT in the MET analyser but needs changing const LeptonPointer signalLepton = topEERefSelection_->signalLepton(event); const ElectronPointer signalElectron(boost::static_pointer_cast<Electron>(signalLepton)); const PhotonCollection photons = topEERefSelection_->signalPhotons(event); //get dilepton collection const ElectronCollection electrons = topEERefSelection_->signalElectrons(event); const MuonCollection muons = topEERefSelection_->signalMuons(event); for (unsigned int weightIndex = 0; weightIndex < bjetWeights.size(); ++weightIndex) { double bjetWeight = bjetWeights.at(weightIndex); histMan_->setCurrentBJetBin(weightIndex); histMan_->setCurrentHistogramFolder(histogramFolder_ + "/EE/Ref selection"); //MET metAnalyserEERefSelection_->setScale(bjetWeight); metAnalyserEERefSelection_->analyse(event, signalLepton); //jets jetAnalyserEERefSelection_->setScale(bjetWeight); jetAnalyserEERefSelection_->analyse(event); //DiElectron diElectronAnalyserEERefSelection_->setScale(bjetWeight); diElectronAnalyserEERefSelection_->analyse(event, electrons); //photons photonAnalyserEERefSelection_->setScale(bjetWeight); photonAnalyserEERefSelection_->analyse(event, photons, jets, electrons, muons); } } }
void TTbarPhotonAnalyser::eMuSignalAnalysis(const EventPtr event) { if (topEMuPhotonSelection_->passesSelectionUpToStep(event, TTbarEMuReferenceSelection::JustOneGoodPhotonPostSelection)) { const JetCollection jets(topEMuPhotonSelection_->cleanedJets(event)); const JetCollection bJets(topEMuPhotonSelection_->cleanedBJets(event)); unsigned int numberOfBjets(bJets.size()); vector<double> bjetWeights; if (event->isRealData()) { for (unsigned int index = 0; index <= numberOfBjets; ++index) { if (index == numberOfBjets) bjetWeights.push_back(1.); else bjetWeights.push_back(0); } } else bjetWeights = BjetWeights(jets, numberOfBjets); histMan_->setCurrentJetBin(jets.size()); histMan_->setCurrentBJetBin(numberOfBjets); const LeptonPointer signalLepton = topEMuPhotonSelection_->signalLepton(event); const ElectronPointer signalElectron(boost::static_pointer_cast<Electron>(signalLepton)); //get dilepton collection const ElectronCollection electrons = topEMuPhotonSelection_->signalElectrons(event); const MuonCollection muons = topEMuPhotonSelection_->signalMuons(event); const PhotonCollection photons = topEMuPhotonSelection_->signalPhotons(event); for (unsigned int weightIndex = 0; weightIndex < bjetWeights.size(); ++weightIndex) { double bjetWeight = bjetWeights.at(weightIndex); histMan_->setCurrentBJetBin(weightIndex); histMan_->setCurrentHistogramFolder(histogramFolder_ + "/EMu/Ref selection"); //met metAnalyserEMuPhotonSelection_->setScale(bjetWeight); metAnalyserEMuPhotonSelection_->analyse(event, signalLepton); //jets jetAnalyserEMuPhotonSelection_->setScale(bjetWeight); jetAnalyserEMuPhotonSelection_->analyse(event); //DiLepton eMuAnalyserEMuPhotonSelection_->setScale(bjetWeight); eMuAnalyserEMuPhotonSelection_->analyse(event, electrons, muons); //Vertices //vertexAnalyserEMuPhotonSelection_->setScale(bjetWeight); //vertexAnalyserEMuPhotonSelection_->analyse(event); //abcdAnalyserEMuPhotonSelection_->setScale(bjetWeight); //abcdAnalyserEMuPhotonSelection_->analyse(event, photons, jets, electrons, muons); //photon photonAnalyserEMuPhotonSelection_->setScale(bjetWeight); photonAnalyserEMuPhotonSelection_->analyse(event, photons, jets, electrons, muons); if(event->getDataType() == DataType::TTGamma || event->getDataType() == DataType::TTJets){ //signal photon ttphotonAnalyserEMuPhotonSelection_->setScale(bjetWeight); ttphotonAnalyserEMuPhotonSelection_->analyse(event, photons, jets, electrons, muons); ttphotonAnalyserEMuPhotonSelection_->analyse_signalPhotons(event, photons, jets, electrons, muons); } //n-EtAndEta photons const PhotonCollection photonsMinusEtAndEta = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesEtAndEta"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinusEtAndEta, jets, electrons, muons, "passesEtAndEta"); //n-passesHOverE photons const PhotonCollection photonsMinusHOverE = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesHOverE"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinusHOverE, jets, electrons, muons, "passesHOverE"); //n-passesShowerShape photons const PhotonCollection photonsMinuspassesShowerShape = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesShowerShape"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesShowerShape, jets, electrons, muons, "passesShowerShape"); //n-passesPFChargedIso photons // const PhotonCollection photonsMinuspassesPFChargedIso = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesPFChargedIso"); // photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesPFChargedIso, jets, electrons, muons, "passesPFChargedIso"); //n-passesPFNeutralIso photons const PhotonCollection photonsMinuspassesPFNeutralIso = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesPFNeutralIso"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesPFNeutralIso, jets, electrons, muons, "passesPFNeutralIso"); //n-passesPFPhotonIso photons const PhotonCollection photonsMinuspassesPFPhotonIso = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesPFPhotonIso"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesPFPhotonIso, jets, electrons, muons, "passesPFPhotonIso"); //n-passesphoSCChIso photons const PhotonCollection photonsMinuspassesphoSCChIso = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesphoSCChIso"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesphoSCChIso, jets, electrons, muons, "passesphoSCChIso"); //n-passesphoSCNuIso photons const PhotonCollection photonsMinuspassesphoSCNuIso = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesphoSCNuIso"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesphoSCNuIso, jets, electrons, muons, "passesphoSCNuIso"); //n-passesphoSCPhIso photons const PhotonCollection photonsMinuspassesphoSCPhIso = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesphoSCPhIso"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesphoSCPhIso, jets, electrons, muons, "passesphoSCPhIso"); //n-passesDeltaRgammaMuons photons const PhotonCollection photonsMinuspassesDeltaRgammaMuons = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesDeltaRgammaMuons"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesDeltaRgammaMuons, jets, electrons, muons, "passesDeltaRgammaMuons"); //n-passesDeltaRgammaElectrons photons const PhotonCollection photonsMinuspassesDeltaRgammaElectrons = topEMuPhotonSelection_->nMinusOnePhotons(event, "passesDeltaRgammaElectrons"); photonAnalyserEMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesDeltaRgammaElectrons, jets, electrons, muons, "passesDeltaRgammaElectrons"); //n-passesDeltaRgammaJets photons const PhotonCollection photonsMinuspassesDeltaRgammaJets = topMuMuPhotonSelection_->nMinusOnePhotons(event, "passesDeltaRgammaJets"); photonAnalyserMuMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesDeltaRgammaJets, jets, electrons, muons, "passesDeltaRgammaJets"); //n-passesDeltaRjetsMuons photons const PhotonCollection photonsMinuspassesDeltaRjetsMuons = topMuMuPhotonSelection_->nMinusOnePhotons(event, "passesDeltaRjetsMuons"); photonAnalyserMuMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesDeltaRjetsMuons, jets, electrons, muons, "passesDeltaRjetsMuons"); //n-passesDeltaRjetsElectrons photons const PhotonCollection photonsMinuspassesDeltaRjetsElectrons = topMuMuPhotonSelection_->nMinusOnePhotons(event, "passesDeltaRjetsElectrons"); photonAnalyserMuMuPhotonSelection_->analyse_NminusOnePhotons(event, photonsMinuspassesDeltaRjetsElectrons, jets, electrons, muons, "passesDeltaRjetsElectrons"); } } }