1 #ifndef TauAnalysis_MCEmbeddingTools_MCEmbeddingValidationAnalyzer_h
2 #define TauAnalysis_MCEmbeddingTools_MCEmbeddingValidationAnalyzer_h
66 int& numElectrons,
int& numElecNeutrinos,
int&
numMuons,
int& numMuNeutrinos,
67 int& numChargedHadrons,
int& numPi0s,
int& numOtherNeutralHadrons,
int& numPhotons)
71 int absPdgId = TMath::Abs(genParticle->
pdgId());
75 if ( absPdgId == 111 ) ++numPi0s;
76 else if ( status == 1 ) {
77 if ( absPdgId == 11 ) ++numElectrons;
78 else if ( absPdgId == 12 ) ++numElecNeutrinos;
79 else if ( absPdgId == 13 ) ++
numMuons;
80 else if ( absPdgId == 14 ) ++numMuNeutrinos;
81 else if ( absPdgId == 15 ) {
83 <<
"Found tau lepton with status code 1 !!";
86 else if ( absPdgId == 16 )
return;
87 else if ( absPdgId == 22 ) ++numPhotons;
88 else if ( charge != 0 ) ++numChargedHadrons;
89 else ++numOtherNeutralHadrons;
92 for (
unsigned iDaughter = 0; iDaughter < numDaughters; ++iDaughter ) {
95 countDecayProducts(daughter,
96 numElectrons, numElecNeutrinos, numMuons, numMuNeutrinos,
97 numChargedHadrons, numPi0s, numOtherNeutralHadrons, numPhotons);
114 int numElectrons = 0;
115 int numElecNeutrinos = 0;
117 int numMuNeutrinos = 0;
118 int numChargedHadrons = 0;
120 int numOtherNeutralHadrons = 0;
123 countDecayProducts(genParticle,
124 numElectrons, numElecNeutrinos, numMuons, numMuNeutrinos,
125 numChargedHadrons, numPi0s, numOtherNeutralHadrons, numPhotons);
127 if ( numElectrons == 1 && numElecNeutrinos == 1 )
return std::string(
"electron");
128 else if ( numMuons == 1 && numMuNeutrinos == 1 )
return std::string(
"muon");
130 switch ( numChargedHadrons ) {
132 if ( numOtherNeutralHadrons != 0 )
return std::string(
"oneProngOther");
144 if ( numOtherNeutralHadrons != 0 )
return std::string(
"threeProngOther");
160 assert(numBinsY >= 1);
161 TArrayF binningY(numBinsY + 1);
162 float dy = (yMax - yMin)/numBinsY;
163 for (
int iBinY = 0; iBinY <= numBinsY; ++iBinY ) {
164 binningY[iBinY] = yMin + iBinY*dy;
166 MonitorElement* histogram = dqmStore.
book2D(name, title, numBinsX, binningX, numBinsY, binningY.GetArray());
172 if ( zP4.pt() == 0. ) {
174 <<
" Failed to compute projection, because Z0 candidate has zero Pt --> returning dummy solution !!";
176 return std::pair<double, double>(0., 0.);
179 double qX = zP4.px();
180 double qY = zP4.py();
181 double qT = TMath::Sqrt(qX*qX + qY*qY);
190 double u1 = (uX*qX + uY*qY)/qT;
191 double u2 = (uX*qY - uY*qX)/qT;
193 return std::pair<double, double>(u1, u2);
212 if ( !dqmDirectory_full.EndsWith(
"/") ) dqmDirectory_full.Append(
"/");
213 dqmDirectory_full.Append(dqmSubDirectory);
214 return dqmDirectory_full.Data();
404 histogramWeight_ = dqmStore.
book1D(histogramWeightName.data(), histogramWeightName.data(), 1001, -0.005, 10.005);
410 double evtWeightOther = 1.;
411 for ( std::map<std::string, double>::const_iterator evtWeightEntry_other = evtWeightMap_other.begin();
412 evtWeightEntry_other != evtWeightMap_other.end(); ++evtWeightEntry_other ) {
413 if ( evtWeightEntry_other->first !=
evtWeightKey_ ) evtWeightOther *= evtWeightEntry_other->second;
469 double evtWeight_others,
double muonRadCorrWeight,
double muonRadCorrWeightUp,
double muonRadCorrWeightDown)
489 double diMuonMass = (muonPlusP4 + muonMinusP4).mass();
539 if ( genTauDecayMode !=
"" )
dqmDirectory_.append(
"_").append(genTauDecayMode);
545 const int qTnumBins = 34;
546 float qTbinning[qTnumBins + 1] = {
547 0., 2.5, 5., 7.5, 10., 12.5, 15., 17.5, 20., 22.5, 25., 27.5, 30., 35., 40., 45., 50.,
548 60., 70., 80., 90., 100., 110., 120., 130., 140., 150., 160., 170., 180., 200., 220., 240., 260., 300.
553 histogramL1ETMparlZdivQtVsQt_ = bookHistogram2D(dqmStore,
"L1ETMparlZdivQtVsQt",
"L1ETMparlZdivQtVsQt", qTnumBins, qTbinning, 400, -5., +5.);
554 histogramL1ETMparlZvsQt_ = bookHistogram2D(dqmStore,
"L1ETMparlZvsQt",
"L1ETMparlZvsQt", qTnumBins, qTbinning, 400, -500., +500.);
555 histogramL1ETMperpZvsQt_ = bookHistogram2D(dqmStore,
"L1ETMperpZvsQt",
"L1ETMperpZvsQt", qTnumBins, qTbinning, 60, -75., +75.);
557 histogramRecCaloMEtParlZvsQt_ = bookHistogram2D(dqmStore,
"recCaloMEtParlZvsQt",
"recCaloMEtParlZvsQt", qTnumBins, qTbinning, 400, -500., +500.);
558 histogramRecCaloMEtPerpZvsQt_ = bookHistogram2D(dqmStore,
"recCaloMEtPerpZvsQt",
"recCaloMEtPerpZvsQt", qTnumBins, qTbinning, 60, -75., +75.);
575 double qT = genDiTauP4.pt();
577 std::pair<double, double> uT =
compMEtProjU(genDiTauP4, l1MEtP4.px(), l1MEtP4.py(), errorFlag,
false);
579 double uParl = uT.first;
580 double uPerp = uT.second;
586 uT =
compMEtProjU(genDiTauP4, recCaloMEtP4.px(), recCaloMEtP4.py(), errorFlag,
false);
588 double uParl = uT.first;
589 double uPerp = uT.second;
595 uT =
compMEtProjU(genDiTauP4, l1MEtP4.px() - genCaloMEtP4.px(), l1MEtP4.py() - genCaloMEtP4.py(), errorFlag,
false);
597 double uParl = uT.first;
598 double uPerp = uT.second;
604 uT =
compMEtProjU(genDiTauP4, l1MEtP4.px() - recCaloMEtP4.px(), l1MEtP4.py() - recCaloMEtP4.py(), errorFlag,
false);
606 double uParl = uT.first;
607 double uPerp = uT.second;
637 template <
typename T>
655 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
656 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
690 typedef std::vector<T> recLeptonCollection;
695 genLepton != genLeptons->end(); ++genLepton ) {
697 for (
typename recLeptonCollection::const_iterator recLepton = recLeptons->begin();
698 recLepton != recLeptons->end(); ++recLepton ) {
700 double dR =
deltaR(genLepton->p4(), recLepton->p4());
761 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
762 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
842 typedef std::vector<pat::Electron> recLeptonCollection;
846 genLepton != genLeptons->end(); ++genLepton ) {
848 for ( recLeptonCollection::const_iterator recLepton = recLeptons->begin();
849 recLepton != recLeptons->end(); ++recLepton ) {
851 double dR =
deltaR(genLepton->p4(), recLepton->p4());
855 if ( !(theVertex->size() >= 1) )
return;
861 <<
" Failed to access TransientTrackBuilder !!\n";
908 if ( recLepton->superCluster().isNonnull() || recLepton->superCluster().id() != recLepton->parentSuperCluster().id() )
histogramFlags_->
Fill(10, evtWeight);
975 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
976 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
999 typedef std::vector<pat::Tau> recLeptonCollection;
1003 genLepton != genLeptons->end(); ++genLepton ) {
1006 for ( recLeptonCollection::const_iterator recLepton = recLeptons->begin();
1007 recLepton != recLeptons->end(); ++recLepton ) {
1009 double dR =
deltaR(genLepton->p4(), recLepton->p4());
1025 int recTauDecayMode = recLepton->decayMode();
1060 template <
typename T>
1071 template <
typename T>
1088 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
1089 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
1119 typedef std::vector<T> recLeptonCollection;
1124 genLepton != genLeptons->end(); ++genLepton ) {
1127 for (
typename recLeptonCollection::const_iterator recLepton = recLeptons->begin();
1128 recLepton != recLeptons->end(); ++recLepton ) {
1130 double dR =
deltaR(genLepton->p4(), recLepton->p4());
1131 if ( dR <
dRmatch_ ) isMatched =
true;
1162 template <
typename T>
1170 template <
typename T1,
typename T2>
1187 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
1188 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
1212 typedef std::vector<T1> refLeptonCollection;
1215 typedef std::vector<T2> l1LeptonCollection;
1218 for (
typename refLeptonCollection::const_iterator refLepton = refLeptons->begin();
1219 refLepton != refLeptons->end(); ++refLepton ) {
1222 for (
typename l1LeptonCollection::const_iterator l1Lepton = l1Leptons->begin();
1223 l1Lepton != l1Leptons->end(); ++l1Lepton ) {
1225 double dR =
deltaR(refLepton->p4(), l1Lepton->p4());
1226 if ( dR <
dRmatch_ ) isMatched =
true;
1255 template <
typename T1,
typename T2>
1261 template <
typename T>
1274 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
1275 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
1296 typedef std::vector<T> l1ExtraObjectCollection;
1299 int numL1ExtraObjects = 0;
1300 for (
typename l1ExtraObjectCollection::const_iterator l1ExtraObject = l1ExtraObjects->begin();
1301 l1ExtraObject != l1ExtraObjects->end(); ++l1ExtraObject ) {
1302 if (
cut_ && !(*
cut_)(*l1ExtraObject) )
continue;
1303 ++numL1ExtraObjects;
1322 template <
typename T>
1377 if ( !(genZs->size() >= 1) )
return;
1383 if ( genZp4.pt() > 0. ) {
1384 double qX = genZp4.px();
1385 double qY = genZp4.py();
1386 double qT = TMath::Sqrt(qX*qX + qY*qY);
1387 double dX = recMEtP4.px() - genMEtP4.px();
1388 double dY = recMEtP4.py() - genMEtP4.py();
1389 double dParl = (dX*qX + dY*qY)/qT;
1390 double dPerp = (dX*qY - dY*qX)/qT;
1452 for ( l1extra::L1EtMissParticleCollection::const_iterator l1MEt = l1METs->begin();
1453 l1MEt != l1METs->end(); ++l1MEt ) {
1454 if ( !(l1MEt->bx() == 0) )
continue;
1455 double l1MEt_et = l1METs->front().etMiss();
1456 double l1MEt_pt = l1METs->front().pt();
1483 template <
typename T>
1486 for (
typename std::vector<T*>::iterator
object = collection.begin();
1487 object != collection.end(); ++
object ) {
1492 template <
typename T>
1495 for (
typename std::vector<T*>::iterator
object = collection.begin();
1496 object != collection.end(); ++
object ) {
1497 (*object)->bookHistograms(dqmStore);
1501 template <
typename T>
1504 for (
typename std::vector<T*>::iterator
object = collection.begin();
1505 object != collection.end(); ++
object ) {
1506 (*object)->fillHistograms(numJets, evt, evtWeight);
1509 template <
typename T>
1512 for (
typename std::vector<T*>::iterator
object = collection.begin();
1513 object != collection.end(); ++
object ) {
1514 (*object)->fillHistograms(numJets, evt, es, evtWeight);
MonitorElement * histogramL1ETMminusRecCaloMEtPerpZvsQt_
StringCutObjectSelector< T > * cutRec_
int muonRadCorrUncertainty_maxWarnings_
void fillHistograms(std::vector< T * > collection, int numJets, const edm::Event &evt, const edm::EventSetup &es, double evtWeight)
MonitorElement * histogramGenLeg2Pt_
std::string genTauDecayMode(const reco::CompositePtrCandidate &c)
MonitorElement * histogramMuonPlusEta_unweighted_
edm::InputTag srcGenPFMEt_
std::vector< metL1TriggerEfficiencyType * > metL1TriggerEfficiencies_
void fillHistograms(std::vector< T * > collection, int numJets, const edm::Event &evt, double evtWeight)
MonitorElement * histogramL1ETMparlZvsQt_
MonitorElement * histogramGenLeptonPhi_
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
MonitorElement * histogramGenLeg1XforGenLeg2X0_75to1_00_
MonitorElement * histogramMuonPlusEta_weightedDown_
void setupL1ExtraObjectDistribution(int, int, const edm::ParameterSet &, const std::string &, std::vector< l1ExtraObjectDistributionT< T > * > &)
std::vector< plotEntryTypeMuonRadCorrUncertainty * > muonRadCorrUncertaintyPlotEntries_afterRad_
MonitorElement * histogramRecCaloMEtECAL_
MonitorElement * histogramRotationAngleMatrix_
MonitorElement * histogramGenTau1Eta_
MonitorElement * histogramRecMinusGenMEtPerpZ_
MonitorElement * histogramGenDiTauPhi_
MonitorElement * histogramDiMuonMass_weightedDown_
edm::InputTag srcRecTracks_
MonitorElement * histogramRecCaloMEtHCAL_
std::vector< leptonEfficiencyT< pat::Electron > * > electronEfficiencies_
std::string genTauDecayMode_
MonitorElement * histogramGenLeg1XforGenLeg2X0_50to0_75_
MonitorElement * histogramMuonMinusPt_weightedUp_
edm::InputTag srcRecPFCandidates_
MonitorElement * histogramNumeratorPt_
MonitorElement * histogramEventCounter_
void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * histogramGenDiTauEta_
edm::InputTag srcGenFilterInfo_
daughters::value_type daughterRef(size_type i) const
reference to daughter at given position
MonitorElement * histogramNumGlobalMuons_
edm::InputTag srcRecLeg2_
edm::InputTag srcReplacedMuons_
MonitorElement * histogramRecVertexY_
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * histogramL1ETMminusRecCaloMEtParlZvsQt_
edm::InputTag srcGenParticles_
std::string dqmDirectory_
edm::InputTag srcTheRecVertex_
MonitorElement * histogramMuonPlusEta_weighted_
MonitorElement * histogramL1ETMminusGenCaloMEtPerpZvsQt_
MonitorElement * histogramTheRecVertexX_
MonitorElement * histogramGenDiTauDecayAngle_
MonitorElement * histogramNumJetsCorrPtGt30AbsEta2_5to4_5_
MonitorElement * histogramGenLeg2Mt_
MonitorElement * histogramGenDeltaPhiLeg1Leg2_
virtual int pdgId() const GCC11_FINAL
PDG identifier.
void bookHistograms(DQMStore &dqmStore)
int muonRadCorrUncertainty_numWarnings_
metDistributionType(int minJets, int maxJets, const edm::InputTag &srcGen, const edm::InputTag &srcRec, const edm::InputTag &srcGenZs, const std::string &dqmDirectory)
std::vector< leptonL1TriggerEfficiencyT1T2< pat::Electron, l1extra::L1EmParticle > * > electronL1TriggerEfficiencies_
double replacedMuonPtThresholdHigh_
MCEmbeddingValidationAnalyzer(const edm::ParameterSet &)
MonitorElement * histogramGenLeg2XforGenLeg1X0_25to0_50_
MonitorElement * histogramDenominatorEta_
MonitorElement * histogramMuonMinusEta_weightedDown_
MonitorElement * histogramNumChargedPFCandsPtGt5_
MonitorElement * histogramTheRecVertexZ_
MonitorElement * histogramNumNeutralPFCandsPtGt30_
edm::InputTag srcGenLeg1_
MonitorElement * histogramNumGenLeptons_
edm::InputTag srcRecJets_
MonitorElement * histogramGenLeg1Pt_
MonitorElement * histogramPhiRotLegMinus_
~plotEntryTypeMuonRadCorrUncertainty()
leptonL1TriggerEfficiencyT1T2(int minJets, int maxJets, const edm::InputTag &srcRef, const std::string &cutRef, const edm::InputTag &srcL1, const std::string &cutL1, double dRmatch, const std::string &dqmDirectory)
MonitorElement * histogramRecLeg1X_
MonitorElement * histogramMuonRadCorrWeight_
MonitorElement * histogramNumNeutralPFCandsPtGt10_
MonitorElement * histogramGenTau2Pt_
MonitorElement * histogramRecMEtPt_
MonitorElement * histogramL1ETM_
MonitorElement * histogramQt_
MonitorElement * histogramGenVisDiTauEta_
void bookHistograms(DQMStore &dqmStore)
void fillHistograms(int numJets, const edm::Event &evt, double evtWeight)
StringCutObjectSelector< reco::Candidate > * cutGen_
MonitorElement * histogramGenTau1Phi_
MonitorElement * histogramCorrJetPtAbsEta2_5to4_5_
MonitorElement * histogramMuonPlusPt_unweighted_
MonitorElement * histogramRotationLegPlusDeltaR_
void setupMEtL1TriggerEfficiency(int, int, const edm::ParameterSet &, const std::string &, std::vector< metL1TriggerEfficiencyType * > &)
MonitorElement * histogramRecLeptonEta_
MonitorElement * histogramRecVertexZ_
std::vector< plotEntryTypeL1ETM * > l1ETMplotEntries_
MonitorElement * histogramGenLeg1Eta_
MonitorElement * histogramPhiRotLegPlus_
void bookHistograms(DQMStore &dqmStore)
MonitorElement * histogramDiMuonMass_weighted_
MonitorElement * histogramGenDiTauMass_
MonitorElement * histogramWarning_recMuonNearReplacedMuon_
void bookHistograms(DQMStore &dqmStore)
MonitorElement * histogramNumeratorEta_
MonitorElement * histogramGenLeg2Eta_
MonitorElement * histogramNumeratorPhi_
MonitorElement * histogramRecLeg2PFMt_
std::vector< tauDistributionExtra * > tauDistributionsExtra_
edm::InputTag srcMuonRadCorrWeightDown_
MonitorElement * histogramRotationLegMinusDeltaR_
MonitorElement * histogramNumeratorPhi_
MonitorElement * histogramRawJetPtAbsEta2_5to4_5_
MonitorElement * histogramDenominatorPt_
MonitorElement * histogramRecMEtPhi_
void fillHistograms(int numJets, const edm::Event &evt, double evtWeight)
MonitorElement * histogramDenominatorPhi_
MonitorElement * histogramNumChargedPFCandsPtGt10_
MonitorElement * histogramGenLeg1XforGenLeg2X0_25to0_50_
std::vector< plotEntryTypeMuonRadCorrUncertainty * > muonRadCorrUncertaintyPlotEntries_afterRadAndCorr_
MonitorElement * histogramL1ETMminusRecCaloMEtParlZdivQtVsQt_
MonitorElement * histogramMuonPlusPt_weighted_
std::vector< leptonDistributionT< pat::Electron > * > electronDistributions_
~leptonL1TriggerEfficiencyT1T2()
StringCutObjectSelector< T2 > * cutL1_
double replacedMuonPtThresholdLow_
MonitorElement * histogramNumRecVertices_
plotEntryTypeL1ETM(const std::string &genTauDecayMode, const std::string &dqmDirectory)
edm::InputTag srcRecMuons_
MonitorElement * histogramRecMinusGenLeptonPt_div_genLeptonPt_
edm::View< reco::Candidate > CandidateView
MonitorElement * histogramGenLeg1XforGenLeg2X0_00to0_25_
MonitorElement * histogramDenominatorPt_
std::string dqmDirectory_
StringCutObjectSelector< T > * cutRec_
MonitorElement * histogramRecVisDiTauPt_
MonitorElement * histogramRecLeptonPt_
MonitorElement * histogramGenVisDiTauPhi_
MonitorElement * histogramCorrJetEtaPtGt20_
MonitorElement * histogramRecLeg1PFMt_
std::vector< edm::InputTag > vInputTag
void fillHistograms(int numJets, const edm::Event &evt, double evtWeight)
MonitorElement * histogramNumRecLeptons_
MonitorElement * histogramNumJetsRawPtGt30AbsEtaLt2_5_
std::string dqmDirectory_
MonitorElement * histogramBeamSpotY_
edm::InputTag srcRecVertices_
MonitorElement * histogramNumeratorPt_
void fillHistograms(int numJets, const edm::Event &evt, double evtWeight)
void bookHistograms(std::vector< T * > collection, DQMStore &dqmStore)
MonitorElement * histogramRecVertexWithBSx_
StringCutObjectSelector< T1 > * cutRef_
void setupLeptonL1TriggerEfficiency(int, int, const edm::ParameterSet &, const std::string &, std::vector< leptonL1TriggerEfficiencyT1T2< T1, T2 > * > &)
MonitorElement * histogramGenFilterEfficiency_
virtual int status() const GCC11_FINAL
status word
MonitorElement * histogramRecVertexX_
std::string dqmDirectory_
MonitorElement * histogramRecCaloSumEtHO_
std::vector< leptonEfficiencyT< reco::GsfElectron > * > gsfElectronEfficiencies_
MonitorElement * histogramSumGenParticlePt_charged_
MonitorElement * histogramMuonMinusEta_unweighted_
MonitorElement * histogramNumJetsCorrPtGt20_
edm::EDGetTokenT< EcalRecHitCollection > eeRHToken_
MonitorElement * histogramGenMEtPhi_
MonitorElement * histogramMuonRadCorrWeightDown_
MonitorElement * histogramRecCaloMEtParlZdivQtVsQt_
vInputTag srcOtherWeights_
virtual size_t numberOfDaughters() const
number of daughters
MonitorElement * histogramGenTau2Phi_
void fillHistograms(const edm::Event &evt, const std::map< std::string, double > &evtWeightMap_other)
MonitorElement * histogramRecVisDeltaPhiLeg1Leg2_
edm::View< reco::MET > METView
MonitorElement * histogramNumTracksPtGt30_
leptonDistributionT(int minJets, int maxJets, const edm::InputTag &srcGen, const std::string &cutGen, const edm::InputTag &srcRec, const std::string &cutRec, double dRmatch, const std::string &dqmDirectory)
edm::InputTag srcRecPFMEt_
MonitorElement * histogramNumRecLeptons_
MonitorElement * histogramDenominatorPhi_
MonitorElement * histogramRawJetEtaPtGt30_
~plotEntryTypeEvtWeight()
void bookHistograms(DQMStore &dqmStore)
MonitorElement * histogramNumStandAloneMuons_
MonitorElement * histogramMuonMinusPt_weightedDown_
edm::InputTag srcRecLeg1_
MonitorElement * histogramRecMinusGenLeptonEta_
bool isMatched(TrackingRecHit const &hit)
MonitorElement * histogramGenVisDiTauPt_
MonitorElement * histogramNumNeutralPFCandsPtGt5_
MonitorElement * histogramNumChargedPFCandsPtGt40_
MonitorElement * histogramCorrJetPt_
MonitorElement * histogramNumJetsRawPtGt20AbsEtaLt2_5_
std::string evtWeightKey_
MonitorElement * histogramL1ETMminusGenCaloMEtParlZdivQtVsQt_
MonitorElement * histogramL1ETM_vs_recCaloMEt_
void fillHistograms(const std::string &genTauDecayMode_ref, const reco::Candidate::LorentzVector &l1MEtP4, const reco::Candidate::LorentzVector &genCaloMEtP4, const reco::Candidate::LorentzVector &recCaloMEtP4, const reco::Candidate::LorentzVector &genDiTauP4, double evtWeight)
MonitorElement * histogramL1ETMminusGenCaloMEtParlZvsQt_
edm::InputTag srcMuonsBeforeRad_
std::vector< leptonEfficiencyT< pat::Muon > * > muonEfficiencies_
MonitorElement * histogramNumJetsCorrPtGt20AbsEta2_5to4_5_
MonitorElement * histogramNumGenLeptons_
MonitorElement * histogramRawJetPt_
MonitorElement * histogramNumeratorPt_
MonitorElement * histogramDiMuonMass_unweighted_
MonitorElement * histogramNumJetsRawPtGt30AbsEta2_5to4_5_
std::string dqmDirectory_full(const std::string &dqmSubDirectory)
edm::InputTag srcCaloTowers_
~metL1TriggerEfficiencyType()
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * histogramGenLeptonEta_
std::vector< plotEntryTypeEvtWeight * > evtWeightPlotEntries_
MonitorElement * histogramGenTau1Pt_
MonitorElement * histogramRawJetPtAbsEtaLt2_5_
MonitorElement * histogramMuonPlusPt_weightedDown_
std::pair< double, double > compMEtProjU(const reco::Candidate::LorentzVector &zP4, double metPx, double metPy, int &errorFlag)
std::string dqmDirectory_
MonitorElement * histogramWarning_recPFCandNearReplacedMuon_
std::vector< l1ExtraObjectDistributionT< l1extra::L1JetParticle > * > l1CentralJetDistributions_
std::string dqmDirectory_
MonitorElement * histogramRecVisDiTauMass_
double deltaR(double eta1, double eta2, double phi1, double phi2)
metL1TriggerEfficiencyType(int minJets, int maxJets, const edm::InputTag &srcRef, const edm::InputTag &srcL1, double cutL1Et, double cutL1Pt, const std::string &dqmDirectory)
MonitorElement * histogramRecMinusGenMEtParlZ_
StringCutObjectSelector< reco::Candidate > * cutGen_
edm::InputTag srcGenCaloMEt_
MonitorElement * histogramWeight_
std::vector< plotEntryTypeMuonRadCorrUncertainty * > muonRadCorrUncertaintyPlotEntries_beforeRad_
MonitorElement * histogramRecLeg2X_
MonitorElement * histogramNumChargedPFCandsPtGt30_
MonitorElement * histogramGenVisDiTauMass_
MonitorElement * histogramRecVisDiTauPhi_
MonitorElement * histogramNumJetsCorrPtGt20AbsEtaLt2_5_
MonitorElement * histogramGenCaloMEt_
MonitorElement * histogramDiMuonMass_weightedUp_
std::vector< l1ExtraObjectDistributionT< l1extra::L1JetParticle > * > l1TauDistributions_
MonitorElement * histogramGenLeg2Phi_
virtual int charge() const GCC11_FINAL
electric charge
MonitorElement * histogramNumeratorEta_
std::vector< metDistributionType * > metDistributions_
MonitorElement * histogramNumJetsRawPtGt20AbsEta2_5to4_5_
leptonEfficiencyT(int minJets, int maxJets, const edm::InputTag &srcGen, const std::string &cutGen, const edm::InputTag &srcRec, const std::string &cutRec, double dRmatch, const std::string &dqmDirectory)
MonitorElement * histogramMuonMinusEta_weighted_
MonitorElement * histogramNumJetsRawPtGt20_
T const * product() const
MonitorElement * histogramRecMinusGenLeptonPhi_
MonitorElement * histogramMuonPlusPt_weightedUp_
edm::InputTag srcMuonRadCorrWeight_
MonitorElement * histogramRecVisDiTauEta_
MonitorElement * histogramRecVertexWithBSy_
void setupLeptonDistribution(int, int, const edm::ParameterSet &, const std::string &, std::vector< leptonDistributionT< T > * > &)
MonitorElement * histogramGenLeg1X_
MonitorElement * histogramGenLeg2XforGenLeg1X0_00to0_25_
MonitorElement * histogramNumJetsCorrPtGt30_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
MonitorElement * histogramL1ETM_vs_genCaloMEt_
MonitorElement * histogramMuonMinusPt_unweighted_
void fillHistograms(int numJets, const reco::Candidate::LorentzVector &muonPlusP4, const reco::Candidate::LorentzVector &muonMinusP4, double evtWeight_others, double muonRadCorrWeight, double muonRadCorrWeightUp, double muonRadCorrWeightDown)
MonitorElement * histogramRecMinusGenLeptonPt_
void cleanCollection(std::vector< T * > collection)
MonitorElement * histogramMuonMinusEta_weightedUp_
MonitorElement * histogramNumJetsRawPtGt30_
plotEntryTypeEvtWeight(const edm::InputTag &srcWeight, const std::string &dqmDirectory)
MonitorElement * histogramGenLeg1Phi_
edm::InputTag srcGenLeg2_
MonitorElement * histogramNumTracksPtGt20_
MonitorElement * histogramNumTracksPtGt40_
MonitorElement * histogramMuonRadCorrWeightUp_
MonitorElement * histogramNumNeutralPFCandsPtGt20_
void setupMEtDistribution(int, int, const edm::ParameterSet &, const std::string &, std::vector< metDistributionType * > &)
edm::InputTag srcGenDiTaus_
MonitorElement * histogramNumRecVerticesWithBS_
std::vector< leptonL1TriggerEfficiencyT1T2< pat::Muon, l1extra::L1MuonParticle > * > muonL1TriggerEfficiencies_
MonitorElement * histogramMuonPlusEta_weightedUp_
MonitorElement * histogramRecCaloSumEtHCAL_
MonitorElement * histogramDenominatorEta_
void setupTauDistributionExtra(int, int, const edm::ParameterSet &, const std::string &, std::vector< tauDistributionExtra * > &)
void fillHistograms(int numJets, const edm::Event &evt, double evtWeight)
edm::EDGetTokenT< EcalRecHitCollection > ebRHToken_
void setupElectronDistributionExtra(int, int, const edm::ParameterSet &, const std::string &, std::vector< electronDistributionExtra * > &)
MonitorElement * histogramL1ETMperpZvsQt_
T get() const
get a component
MonitorElement * histogramRecVertexWithBSz_
MonitorElement * histogramL1ETMparlZdivQtVsQt_
MonitorElement * histogramWarning_recTrackNearReplacedMuon_
std::vector< l1ExtraObjectDistributionT< l1extra::L1EmParticle > * > l1ElectronDistributions_
std::vector< l1ExtraObjectDistributionT< l1extra::L1MuonParticle > * > l1MuonDistributions_
MonitorElement * histogramGenLeg2XforGenLeg1X0_50to0_75_
std::vector< leptonDistributionT< pat::Muon > * > muonDistributions_
edm::InputTag srcMuonRadCorrWeightUp_
MonitorElement * histogramGenLeg2XforGenLeg1X0_75to1_00_
MonitorElement * histogramNumPFMuons_
MonitorElement * histogramGenLeg1Mt_
MonitorElement * histogramGenPFMEt_
MonitorElement * histogramRecLeptonPhi_
MonitorElement * histogramGenMEtPt_
MonitorElement * histogramCorrJetEtaPtGt30_
MonitorElement * histogramNumTracksPtGt5_
MonitorElement * histogramRecCaloSumEtECAL_
void bookHistograms(DQMStore &dqmStore)
edm::InputTag srcBeamSpot_
MonitorElement * histogramBeamSpotX_
std::vector< electronDistributionExtra * > electronDistributionsExtra_
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
MonitorElement * histogramGenLeptonPt_
MonitorElement * histogramRecCaloMEtPerpZvsQt_
void bookHistograms(DQMStore &dqmStore)
MonitorElement * histogramTheRecVertexY_
edm::InputTag srcRecVerticesWithBS_
MonitorElement * histogramGenLeg2X_
MonitorElement * histogramCorrJetPtAbsEtaLt2_5_
MonitorElement * histogramGenVisDeltaPhiLeg1Leg2_
MonitorElement * histogramGenTau2Eta_
~MCEmbeddingValidationAnalyzer()
std::vector< leptonEfficiencyT< pat::Tau > * > tauEfficiencies_
plotEntryTypeMuonRadCorrUncertainty(int minJets, int maxJets, const std::string &dqmDirectory)
edm::InputTag srcMuonsAfterRad_
std::string dqmDirectory_
MonitorElement * histogramRawJetEtaPtGt20_
MonitorElement * histogramGenDiTauPt_
MonitorElement * histogramSumGenParticlePt_
MonitorElement * histogramRecCaloMEtHF_
void bookHistograms(DQMStore &dqmStore)
std::vector< l1ExtraObjectDistributionT< l1extra::L1JetParticle > * > l1ForwardJetDistributions_
std::string dqmDirectory_
void setupLeptonEfficiency(int, int, const edm::ParameterSet &, const std::string &, std::vector< leptonEfficiencyT< T > * > &)
MonitorElement * histogramRecCaloMEtParlZvsQt_
MonitorElement * histogramNumTracksPtGt10_
void setCurrentFolder(const std::string &fullpath)
std::string dqmDirectory_
MonitorElement * histogramNumeratorPhi_
MonitorElement * histogramNumNeutralPFCandsPtGt40_
MonitorElement * histogramNumJetsCorrPtGt30AbsEtaLt2_5_
MonitorElement * histogramNumChargedPFCandsPtGt20_
edm::InputTag srcRecCaloMEt_
MonitorElement * histogramDenominatorPt_
MonitorElement * histogramRecCaloSumEtHF_
MonitorElement * histogramDenominatorPhi_
MonitorElement * histogramRecCaloMEtHO_
MonitorElement * histogramMuonMinusPt_weighted_
std::vector< leptonDistributionT< pat::Tau > * > tauDistributions_