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();
402 histogramWeight_ = dqmStore.
book1D(histogramWeightName.data(), histogramWeightName.data(), 1001, -0.005, 10.005);
408 double evtWeightOther = 1.;
409 for ( std::map<std::string, double>::const_iterator evtWeightEntry_other = evtWeightMap_other.begin();
410 evtWeightEntry_other != evtWeightMap_other.end(); ++evtWeightEntry_other ) {
411 if ( evtWeightEntry_other->first !=
evtWeightKey_ ) evtWeightOther *= evtWeightEntry_other->second;
467 double evtWeight_others,
double muonRadCorrWeight,
double muonRadCorrWeightUp,
double muonRadCorrWeightDown)
487 double diMuonMass = (muonPlusP4 + muonMinusP4).mass();
537 if ( genTauDecayMode !=
"" )
dqmDirectory_.append(
"_").append(genTauDecayMode);
543 const int qTnumBins = 34;
544 float qTbinning[qTnumBins + 1] = {
545 0., 2.5, 5., 7.5, 10., 12.5, 15., 17.5, 20., 22.5, 25., 27.5, 30., 35., 40., 45., 50.,
546 60., 70., 80., 90., 100., 110., 120., 130., 140., 150., 160., 170., 180., 200., 220., 240., 260., 300.
551 histogramL1ETMparlZdivQtVsQt_ = bookHistogram2D(dqmStore,
"L1ETMparlZdivQtVsQt",
"L1ETMparlZdivQtVsQt", qTnumBins, qTbinning, 400, -5., +5.);
552 histogramL1ETMparlZvsQt_ = bookHistogram2D(dqmStore,
"L1ETMparlZvsQt",
"L1ETMparlZvsQt", qTnumBins, qTbinning, 400, -500., +500.);
553 histogramL1ETMperpZvsQt_ = bookHistogram2D(dqmStore,
"L1ETMperpZvsQt",
"L1ETMperpZvsQt", qTnumBins, qTbinning, 60, -75., +75.);
555 histogramRecCaloMEtParlZvsQt_ = bookHistogram2D(dqmStore,
"recCaloMEtParlZvsQt",
"recCaloMEtParlZvsQt", qTnumBins, qTbinning, 400, -500., +500.);
556 histogramRecCaloMEtPerpZvsQt_ = bookHistogram2D(dqmStore,
"recCaloMEtPerpZvsQt",
"recCaloMEtPerpZvsQt", qTnumBins, qTbinning, 60, -75., +75.);
573 double qT = genDiTauP4.pt();
575 std::pair<double, double> uT =
compMEtProjU(genDiTauP4, l1MEtP4.px(), l1MEtP4.py(), errorFlag,
false);
577 double uParl = uT.first;
578 double uPerp = uT.second;
584 uT =
compMEtProjU(genDiTauP4, recCaloMEtP4.px(), recCaloMEtP4.py(), errorFlag,
false);
586 double uParl = uT.first;
587 double uPerp = uT.second;
593 uT =
compMEtProjU(genDiTauP4, l1MEtP4.px() - genCaloMEtP4.px(), l1MEtP4.py() - genCaloMEtP4.py(), errorFlag,
false);
595 double uParl = uT.first;
596 double uPerp = uT.second;
602 uT =
compMEtProjU(genDiTauP4, l1MEtP4.px() - recCaloMEtP4.px(), l1MEtP4.py() - recCaloMEtP4.py(), errorFlag,
false);
604 double uParl = uT.first;
605 double uPerp = uT.second;
635 template <
typename T>
653 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
654 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
688 typedef std::vector<T> recLeptonCollection;
693 genLepton != genLeptons->end(); ++genLepton ) {
695 for (
typename recLeptonCollection::const_iterator recLepton = recLeptons->begin();
696 recLepton != recLeptons->end(); ++recLepton ) {
698 double dR =
deltaR(genLepton->p4(), recLepton->p4());
755 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
756 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
836 typedef std::vector<pat::Electron> recLeptonCollection;
840 genLepton != genLeptons->end(); ++genLepton ) {
842 for ( recLeptonCollection::const_iterator recLepton = recLeptons->begin();
843 recLepton != recLeptons->end(); ++recLepton ) {
845 double dR =
deltaR(genLepton->p4(), recLepton->p4());
849 if ( !(theVertex->size() >= 1) )
return;
855 <<
" Failed to access TransientTrackBuilder !!\n";
902 if ( recLepton->superCluster().isNonnull() || recLepton->superCluster().id() != recLepton->parentSuperCluster().id() )
histogramFlags_->
Fill(10, evtWeight);
968 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
969 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
992 typedef std::vector<pat::Tau> recLeptonCollection;
996 genLepton != genLeptons->end(); ++genLepton ) {
999 for ( recLeptonCollection::const_iterator recLepton = recLeptons->begin();
1000 recLepton != recLeptons->end(); ++recLepton ) {
1002 double dR =
deltaR(genLepton->p4(), recLepton->p4());
1018 int recTauDecayMode = recLepton->decayMode();
1053 template <
typename T>
1064 template <
typename T>
1081 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
1082 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
1112 typedef std::vector<T> recLeptonCollection;
1117 genLepton != genLeptons->end(); ++genLepton ) {
1120 for (
typename recLeptonCollection::const_iterator recLepton = recLeptons->begin();
1121 recLepton != recLeptons->end(); ++recLepton ) {
1123 double dR =
deltaR(genLepton->p4(), recLepton->p4());
1124 if ( dR <
dRmatch_ ) isMatched =
true;
1155 template <
typename T>
1163 template <
typename T1,
typename T2>
1180 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
1181 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
1205 typedef std::vector<T1> refLeptonCollection;
1208 typedef std::vector<T2> l1LeptonCollection;
1211 for (
typename refLeptonCollection::const_iterator refLepton = refLeptons->begin();
1212 refLepton != refLeptons->end(); ++refLepton ) {
1215 for (
typename l1LeptonCollection::const_iterator l1Lepton = l1Leptons->begin();
1216 l1Lepton != l1Leptons->end(); ++l1Lepton ) {
1218 double dR =
deltaR(refLepton->p4(), l1Lepton->p4());
1219 if ( dR <
dRmatch_ ) isMatched =
true;
1248 template <
typename T1,
typename T2>
1254 template <
typename T>
1267 else if (
maxJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsGe%i",
minJets_));
1268 else if (
minJets_ < 0 ) dqmDirectory_.append(Form(
"_numJetsLe%i",
maxJets_));
1289 typedef std::vector<T> l1ExtraObjectCollection;
1292 int numL1ExtraObjects = 0;
1293 for (
typename l1ExtraObjectCollection::const_iterator l1ExtraObject = l1ExtraObjects->begin();
1294 l1ExtraObject != l1ExtraObjects->end(); ++l1ExtraObject ) {
1295 if (
cut_ && !(*
cut_)(*l1ExtraObject) )
continue;
1296 ++numL1ExtraObjects;
1315 template <
typename T>
1370 if ( !(genZs->size() >= 1) )
return;
1376 if ( genZp4.pt() > 0. ) {
1377 double qX = genZp4.px();
1378 double qY = genZp4.py();
1379 double qT = TMath::Sqrt(qX*qX + qY*qY);
1380 double dX = recMEtP4.px() - genMEtP4.px();
1381 double dY = recMEtP4.py() - genMEtP4.py();
1382 double dParl = (dX*qX + dY*qY)/qT;
1383 double dPerp = (dX*qY - dY*qX)/qT;
1445 for ( l1extra::L1EtMissParticleCollection::const_iterator l1MEt = l1METs->begin();
1446 l1MEt != l1METs->end(); ++l1MEt ) {
1447 if ( !(l1MEt->bx() == 0) )
continue;
1448 double l1MEt_et = l1METs->front().etMiss();
1449 double l1MEt_pt = l1METs->front().pt();
1476 template <
typename T>
1479 for (
typename std::vector<T*>::iterator
object = collection.begin();
1480 object != collection.end(); ++
object ) {
1485 template <
typename T>
1488 for (
typename std::vector<T*>::iterator
object = collection.begin();
1489 object != collection.end(); ++
object ) {
1490 (*object)->bookHistograms(dqmStore);
1494 template <
typename T>
1497 for (
typename std::vector<T*>::iterator
object = collection.begin();
1498 object != collection.end(); ++
object ) {
1499 (*object)->fillHistograms(numJets, evt, evtWeight);
1502 template <
typename T>
1505 for (
typename std::vector<T*>::iterator
object = collection.begin();
1506 object != collection.end(); ++
object ) {
1507 (*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_
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)
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_