#include "DQM/Physics/src/EwkTauDQM.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ServiceRegistry/interface/Service.h"
#include "DQMServices/Core/interface/DQMStore.h"
#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/Common/interface/View.h"
#include "DataFormats/Common/interface/TriggerResults.h"
#include "FWCore/Common/interface/TriggerNames.h"
#include "DataFormats/EgammaCandidates/interface/GsfElectron.h"
#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h"
#include "DataFormats/TauReco/interface/PFTau.h"
#include "DataFormats/TauReco/interface/PFTauFwd.h"
#include "DataFormats/TauReco/interface/PFTauDiscriminator.h"
#include "DataFormats/METReco/interface/CaloMET.h"
#include "DataFormats/METReco/interface/CaloMETFwd.h"
#include "DataFormats/METReco/interface/PFMET.h"
#include "DataFormats/METReco/interface/PFMETFwd.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/VertexReco/interface/Vertex.h"
#include "DataFormats/VertexReco/interface/VertexFwd.h"
#include "DataFormats/BeamSpot/interface/BeamSpot.h"
#include "TMath.h"
#include <iostream>
#include <iomanip>
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"
Go to the source code of this file.
Functions | |
double | calcDeltaPhi (double phi1, double phi2) |
double | calcMt (double px1, double py1, double px2, double py2) |
double | calcPzeta (const reco::Candidate::LorentzVector &p1, const reco::Candidate::LorentzVector &p2, double pxMEt, double pyMEt) |
std::string | dqmDirectoryName (const std::string &dqmRootDirectory, const std::string &dqmSubDirectory) |
int | getIsoMode (const std::string &isoMode_string, int &error) |
const reco::GsfElectron * | getTheElectron (const reco::GsfElectronCollection &electrons, double electronEtaCut, double electronPtCut) |
const reco::Muon * | getTheMuon (const reco::MuonCollection &muons, double muonEtaCut, double muonPtCut) |
const reco::PFTau * | getTheTauJet (const reco::PFTauCollection &tauJets, double tauJetEtaCut, double tauJetPtCut, int &theTauJetIndex) |
double | getVertexD0 (const reco::Vertex &vertex, const reco::BeamSpot &beamSpot) |
bool | passesElectronId (const reco::GsfElectron &electron) |
bool | passesElectronPreId (const reco::GsfElectron &electron) |
Variables | |
const std::string | dqmSeparator = "/" |
double calcDeltaPhi | ( | double | phi1, |
double | phi2 | ||
) |
Definition at line 972 of file EwkTauDQM.cc.
References Geom::deltaPhi(), and Pi.
Referenced by EwkDQM::analyze(), EwkMuTauHistManager::fillHistograms(), and EwkElecTauHistManager::fillHistograms().
double calcMt | ( | double | px1, |
double | py1, | ||
double | px2, | ||
double | py2 | ||
) |
Definition at line 983 of file EwkTauDQM.cc.
Referenced by EwkMuTauHistManager::fillHistograms(), and EwkElecTauHistManager::fillHistograms().
{ double pt1 = TMath::Sqrt(px1*px1 + py1*py1); double pt2 = TMath::Sqrt(px2*px2 + py2*py2); double p1Dotp2 = px1*px2 + py1*py2; double cosAlpha = p1Dotp2/(pt1*pt2); return TMath::Sqrt(2*pt1*pt2*(1 - cosAlpha)); }
double calcPzeta | ( | const reco::Candidate::LorentzVector & | p1, |
const reco::Candidate::LorentzVector & | p2, | ||
double | pxMEt, | ||
double | pyMEt | ||
) |
Definition at line 994 of file EwkTauDQM.cc.
References funct::cos(), and funct::sin().
{ double cosPhi1 = cos(p1.phi()); double sinPhi1 = sin(p1.phi()); double cosPhi2 = cos(p2.phi()); double sinPhi2 = sin(p2.phi()); double zetaX = cosPhi1 + cosPhi2; double zetaY = sinPhi1 + sinPhi2; double zetaR = TMath::Sqrt(zetaX*zetaX + zetaY*zetaY); if ( zetaR > 0. ) { zetaX /= zetaR; zetaY /= zetaR; } double pxVis = p1.px() + p2.px(); double pyVis = p1.py() + p2.py(); double pZetaVis = pxVis*zetaX + pyVis*zetaY; double px = pxVis + pxMEt; double py = pyVis + pyMEt; double pZeta = px*zetaX + py*zetaY; return pZeta - 1.5*pZetaVis; }
std::string dqmDirectoryName | ( | const std::string & | dqmRootDirectory, |
const std::string & | dqmSubDirectory | ||
) |
Definition at line 10 of file EwkTauDQM.cc.
References TrackerOfflineValidation_Dqm_cff::dirName, dqmRootDirectory, and dqmSeparator.
Referenced by dqmCopyRecursively(), DQMHistPlotter::endJob(), DQMFileLoader::endJob(), DQMHistAdder::endJob(), EwkTauDQM::EwkTauDQM(), and mapSubDirectoryStructure().
{ //--- concatenate names of dqmRootDirectory and dqmSubDirectory; // add "/" separator inbetween if necessary std::string dirName = dqmRootDirectory; if ( dirName != "" && dirName.find_last_of(dqmSeparator) != (dirName.length() - 1) ) dirName.append(dqmSeparator); dirName.append(dqmSubDirectory); return dirName; }
int getIsoMode | ( | const std::string & | isoMode_string, |
int & | error | ||
) |
Definition at line 953 of file EwkTauDQM.cc.
References kAbsoluteIso, kRelativeIso, and kUndefinedIso.
Referenced by EwkElecTauHistManager::EwkElecTauHistManager(), and EwkMuTauHistManager::EwkMuTauHistManager().
{ int isoMode_int; if ( isoMode_string == "absoluteIso" ) { isoMode_int = kAbsoluteIso; } else if ( isoMode_string == "relativeIso" ) { isoMode_int = kRelativeIso; } else { edm::LogError ("getIsoMode") << " Failed to decode isoMode string = " << isoMode_string << " !!"; isoMode_int = kUndefinedIso; error = 1; } return isoMode_int; }
const reco::GsfElectron* getTheElectron | ( | const reco::GsfElectronCollection & | electrons, |
double | electronEtaCut, | ||
double | electronPtCut | ||
) |
Definition at line 1056 of file EwkTauDQM.cc.
References metsig::electron, passesElectronPreId(), and reco::LeafCandidate::pt().
Referenced by EwkElecTauHistManager::fillHistograms().
{ const reco::GsfElectron* theElectron = 0; for ( reco::GsfElectronCollection::const_iterator electron = electrons.begin(); electron != electrons.end(); ++electron ) { if ( TMath::Abs(electron->eta()) < electronEtaCut && electron->pt() > electronPtCut && passesElectronPreId(*electron) ) { if ( theElectron == 0 || electron->pt() > theElectron->pt() ) theElectron = &(*electron); } } return theElectron; }
const reco::Muon* getTheMuon | ( | const reco::MuonCollection & | muons, |
double | muonEtaCut, | ||
double | muonPtCut | ||
) |
Definition at line 1073 of file EwkTauDQM.cc.
References metsig::muon, and reco::LeafCandidate::pt().
Referenced by EwkMuTauHistManager::fillHistograms().
const reco::PFTau* getTheTauJet | ( | const reco::PFTauCollection & | tauJets, |
double | tauJetEtaCut, | ||
double | tauJetPtCut, | ||
int & | theTauJetIndex | ||
) |
Definition at line 1087 of file EwkTauDQM.cc.
References reco::LeafCandidate::eta(), reco::LeafCandidate::pt(), and reco::Candidate::size.
Referenced by EwkMuTauHistManager::fillHistograms(), and EwkElecTauHistManager::fillHistograms().
{ const reco::PFTau* theTauJet = 0; theTauJetIndex = -1; int numTauJets = tauJets.size(); for ( int iTauJet = 0; iTauJet < numTauJets; ++iTauJet ) { const reco::PFTau& tauJet = tauJets.at(iTauJet); if ( fabs(tauJet.eta()) < tauJetEtaCut && tauJet.pt() > tauJetPtCut ) { if ( theTauJet == 0 || tauJet.pt() > theTauJet->pt() ) { theTauJet = &tauJet; theTauJetIndex = iTauJet; } } } return theTauJet; }
double getVertexD0 | ( | const reco::Vertex & | vertex, |
const reco::BeamSpot & | beamSpot | ||
) |
Definition at line 1111 of file EwkTauDQM.cc.
References reco::Vertex::x(), reco::BeamSpot::x0(), reco::Vertex::y(), and reco::BeamSpot::y0().
bool passesElectronId | ( | const reco::GsfElectron & | electron | ) |
Definition at line 1035 of file EwkTauDQM.cc.
References reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx(), reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx(), reco::LeafCandidate::eta(), reco::GsfElectron::hcalOverEcal(), passesElectronPreId(), and reco::GsfElectron::sigmaEtaEta().
Referenced by EwkElecTauHistManager::fillHistograms().
{ if ( passesElectronPreId(electron) && ((TMath::Abs(electron.eta()) > 1.566 && // electron reconstructed in ECAL endcap electron.sigmaEtaEta() < 0.03 && electron.hcalOverEcal() < 0.05 && TMath::Abs(electron.deltaEtaSuperClusterTrackAtVtx()) < 0.009 && TMath::Abs(electron.deltaPhiSuperClusterTrackAtVtx()) < 0.7 ) || (TMath::Abs(electron.eta()) < 1.479 && // electron reconstructed in ECAL barrel electron.sigmaEtaEta() < 0.01 && electron.hcalOverEcal() < 0.12 && TMath::Abs(electron.deltaEtaSuperClusterTrackAtVtx()) < 0.007 && TMath::Abs(electron.deltaPhiSuperClusterTrackAtVtx()) < 0.8)) ) { return true; } else { return false; } }
bool passesElectronPreId | ( | const reco::GsfElectron & | electron | ) |
Definition at line 1023 of file EwkTauDQM.cc.
References reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx(), reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx(), reco::LeafCandidate::eta(), and reco::GsfElectron::sigmaIetaIeta().
Referenced by getTheElectron(), and passesElectronId().
{ if ( (TMath::Abs(electron.eta()) < 1.479 || TMath::Abs(electron.eta()) > 1.566) && // cut ECAL barrel/endcap crack electron.deltaPhiSuperClusterTrackAtVtx() < 0.8 && electron.deltaEtaSuperClusterTrackAtVtx() < 0.01 && electron.sigmaIetaIeta() < 0.03 ) { return true; } else { return false; } }
const std::string dqmSeparator = "/" |
Definition at line 8 of file EwkTauDQM.cc.
Referenced by dqmDirectoryName(), dqmSubDirectoryName_merged(), DQMHistEffProducer::endJob(), and separateHistogramFromDirectoryName().