26 #include <Math/VectorUtil.h>
33 namespace SVfit_namespace
46 if ( mag2 <= 0. )
return p;
47 double mag = TMath::Sqrt(mag2);
53 return (p1.x()*p2.x() + p1.y()*p2.y() + p1.z()*p2.z());
58 double p3_x = p1.y()*p2.z() - p1.z()*p2.y();
59 double p3_y = p1.z()*p2.x() - p1.x()*p2.z();
60 double p3_z = p1.x()*p2.y() - p1.y()*p2.x();
82 srcReplacedMuons_(cfg.getParameter<edm::InputTag>(
"srcReplacedMuons")),
83 srcRecMuons_(cfg.getParameter<edm::InputTag>(
"srcRecMuons")),
84 srcRecTracks_(cfg.getParameter<edm::InputTag>(
"srcRecTracks")),
85 srcCaloTowers_(cfg.getParameter<edm::InputTag>(
"srcCaloTowers")),
86 srcRecPFCandidates_(cfg.getParameter<edm::InputTag>(
"srcRecPFCandidates")),
87 srcRecJets_(cfg.getParameter<edm::InputTag>(
"srcRecJets")),
88 srcTheRecVertex_(cfg.getParameter<edm::InputTag>(
"srcTheRecVertex")),
89 srcRecVertices_(cfg.getParameter<edm::InputTag>(
"srcRecVertices")),
90 srcRecVerticesWithBS_(cfg.getParameter<edm::InputTag>(
"srcRecVerticesWithBS")),
91 srcBeamSpot_(cfg.getParameter<edm::InputTag>(
"srcBeamSpot")),
92 srcGenDiTaus_(cfg.getParameter<edm::InputTag>(
"srcGenDiTaus")),
93 dRminSeparation_(cfg.getParameter<double>(
"dRminSeparation")),
94 srcGenLeg1_(cfg.getParameter<edm::InputTag>(
"srcGenLeg1")),
95 srcRecLeg1_(cfg.getParameter<edm::InputTag>(
"srcRecLeg1")),
96 srcGenLeg2_(cfg.getParameter<edm::InputTag>(
"srcGenLeg2")),
97 srcRecLeg2_(cfg.getParameter<edm::InputTag>(
"srcRecLeg2")),
98 srcGenParticles_(cfg.getParameter<edm::InputTag>(
"srcGenParticles")),
99 srcL1ETM_(cfg.getParameter<edm::InputTag>(
"srcL1ETM")),
100 srcGenCaloMEt_(cfg.getParameter<edm::InputTag>(
"srcGenCaloMEt")),
101 srcGenPFMEt_(cfg.getParameter<edm::InputTag>(
"srcGenPFMEt")),
102 srcRecCaloMEt_(cfg.getParameter<edm::InputTag>(
"srcRecCaloMEt")),
103 srcRecPFMEt_(cfg.getParameter<edm::InputTag>(
"srcRecPFMEt")),
104 srcMuonsBeforeRad_(cfg.getParameter<edm::InputTag>(
"srcMuonsBeforeRad")),
105 srcMuonsAfterRad_(cfg.getParameter<edm::InputTag>(
"srcMuonsAfterRad")),
106 srcMuonRadCorrWeight_(cfg.getParameter<edm::InputTag>(
"srcMuonRadCorrWeight")),
107 srcMuonRadCorrWeightUp_(cfg.getParameter<edm::InputTag>(
"srcMuonRadCorrWeightUp")),
108 srcMuonRadCorrWeightDown_(cfg.getParameter<edm::InputTag>(
"srcMuonRadCorrWeightDown")),
109 srcOtherWeights_(cfg.getParameter<
vInputTag>(
"srcOtherWeights")),
110 srcGenFilterInfo_(cfg.getParameter<edm::InputTag>(
"srcGenFilterInfo")),
111 dqmDirectory_(cfg.getParameter<std::
string>(
"dqmDirectory")),
112 replacedMuonPtThresholdHigh_(cfg.getParameter<double>(
"replacedMuonPtThresholdHigh")),
113 replacedMuonPtThresholdLow_(cfg.getParameter<double>(
"replacedMuonPtThresholdLow"))
115 typedef std::pair<int, int> pint;
116 std::vector<pint> jetBins;
117 jetBins.push_back(pint(-1, -1));
118 jetBins.push_back(pint(0, 0));
119 jetBins.push_back(pint(1, 1));
120 jetBins.push_back(pint(2, 2));
121 jetBins.push_back(pint(3, 1000));
122 for ( std::vector<pint>::const_iterator jetBin = jetBins.begin();
123 jetBin != jetBins.end(); ++jetBin ) {
207 template <
typename T>
211 if ( cfg.
exists(keyword) ) {
213 for ( edm::VParameterSet::const_iterator cfgLeptonDistribution = cfgLeptonDistributions.begin();
214 cfgLeptonDistribution != cfgLeptonDistributions.end(); ++cfgLeptonDistribution ) {
216 std::string cutGen = cfgLeptonDistribution->exists(
"cutGen") ?
217 cfgLeptonDistribution->getParameter<
std::string>(
"cutGen") :
"";
219 std::string cutRec = cfgLeptonDistribution->exists(
"cutRec") ?
220 cfgLeptonDistribution->getParameter<
std::string>(
"cutRec") :
"";
221 double dRmatch = cfgLeptonDistribution->exists(
"dRmatch") ?
222 cfgLeptonDistribution->getParameter<
double>(
"dRmatch") : 0.3;
225 leptonDistributions.push_back(leptonDistribution);
233 if ( cfg.
exists(keyword) ) {
235 for ( edm::VParameterSet::const_iterator cfgLeptonDistribution = cfgLeptonDistributions.begin();
236 cfgLeptonDistribution != cfgLeptonDistributions.end(); ++cfgLeptonDistribution ) {
238 std::string cutGen = cfgLeptonDistribution->exists(
"cutGen") ?
239 cfgLeptonDistribution->getParameter<
std::string>(
"cutGen") :
"";
241 std::string cutRec = cfgLeptonDistribution->exists(
"cutRec") ?
242 cfgLeptonDistribution->getParameter<
std::string>(
"cutRec") :
"";
243 double dRmatch = cfgLeptonDistribution->exists(
"dRmatch") ?
244 cfgLeptonDistribution->getParameter<
double>(
"dRmatch") : 0.3;
247 electronDistributionsExtra.push_back(electronDistribution);
255 if ( cfg.
exists(keyword) ) {
257 for ( edm::VParameterSet::const_iterator cfgLeptonDistribution = cfgLeptonDistributions.begin();
258 cfgLeptonDistribution != cfgLeptonDistributions.end(); ++cfgLeptonDistribution ) {
260 std::string cutGen = cfgLeptonDistribution->exists(
"cutGen") ?
261 cfgLeptonDistribution->getParameter<
std::string>(
"cutGen") :
"";
263 std::string cutRec = cfgLeptonDistribution->exists(
"cutRec") ?
264 cfgLeptonDistribution->getParameter<
std::string>(
"cutRec") :
"";
265 double dRmatch = cfgLeptonDistribution->exists(
"dRmatch") ?
266 cfgLeptonDistribution->getParameter<
double>(
"dRmatch") : 0.3;
269 tauDistributionsExtra.push_back(tauDistribution);
274 template <
typename T>
278 if ( cfg.
exists(keyword) ) {
280 for ( edm::VParameterSet::const_iterator cfgLeptonEfficiency = cfgLeptonEfficiencies.begin();
281 cfgLeptonEfficiency != cfgLeptonEfficiencies.end(); ++cfgLeptonEfficiency ) {
283 std::string cutGen = cfgLeptonEfficiency->exists(
"cutGen") ?
284 cfgLeptonEfficiency->getParameter<
std::string>(
"cutGen") :
"";
286 std::string cutRec = cfgLeptonEfficiency->exists(
"cutRec") ?
287 cfgLeptonEfficiency->getParameter<
std::string>(
"cutRec") :
"";
288 double dRmatch = cfgLeptonEfficiency->exists(
"dRmatch") ?
289 cfgLeptonEfficiency->getParameter<
double>(
"dRmatch") : 0.3;
292 leptonEfficiencies.push_back(leptonEfficiency);
297 template <
typename T1,
typename T2>
301 if ( cfg.
exists(keyword) ) {
303 for ( edm::VParameterSet::const_iterator cfgLeptonL1TriggerEfficiency = cfgLeptonL1TriggerEfficiencies.begin();
304 cfgLeptonL1TriggerEfficiency != cfgLeptonL1TriggerEfficiencies.end(); ++cfgLeptonL1TriggerEfficiency ) {
306 std::string cutRef = cfgLeptonL1TriggerEfficiency->exists(
"cutRef") ?
307 cfgLeptonL1TriggerEfficiency->getParameter<
std::string>(
"cutRef") :
"";
310 double dRmatch = cfgLeptonL1TriggerEfficiency->exists(
"dRmatch") ?
311 cfgLeptonL1TriggerEfficiency->getParameter<
double>(
"dRmatch") : 0.3;
314 leptonL1TriggerEfficiencies.push_back(leptonL1TriggerEfficiency);
319 template <
typename T>
323 if ( cfg.
exists(keyword) ) {
325 for ( edm::VParameterSet::const_iterator cfgL1ExtraObjectDistribution = cfgL1ExtraObjectDistributions.begin();
326 cfgL1ExtraObjectDistribution != cfgL1ExtraObjectDistributions.end(); ++cfgL1ExtraObjectDistribution ) {
329 cfgL1ExtraObjectDistribution->getParameter<
std::string>(
"cut") :
"";
332 l1ExtraObjectDistributions.push_back(l1ExtraObjectDistribution);
340 if ( cfg.
exists(keyword) ) {
342 for ( edm::VParameterSet::const_iterator cfgMEtDistribution = cfgMEtDistributions.begin();
343 cfgMEtDistribution != cfgMEtDistributions.end(); ++cfgMEtDistribution ) {
349 metDistributions.push_back(metDistribution);
357 if ( cfg.
exists(keyword) ) {
359 for ( edm::VParameterSet::const_iterator cfgMEtL1TriggerEfficiency = cfgMEtL1TriggerEfficiencies.begin();
360 cfgMEtL1TriggerEfficiency != cfgMEtL1TriggerEfficiencies.end(); ++cfgMEtL1TriggerEfficiency ) {
363 double cutL1Et = cfgMEtL1TriggerEfficiency->getParameter<
double>(
"cutL1Et");
364 double cutL1Pt = cfgMEtL1TriggerEfficiency->getParameter<
double>(
"cutL1Pt");
367 metL1TriggerEfficiencies.push_back(metL1TriggerEfficiency);
376 <<
"Failed to access dqmStore !!\n";
535 typedef std::pair<int, int> pint;
536 std::vector<pint> jetBins;
537 jetBins.push_back(pint(-1, -1));
538 jetBins.push_back(pint(0, 0));
539 jetBins.push_back(pint(1, 1));
540 jetBins.push_back(pint(2, 2));
541 jetBins.push_back(pint(3, 1000));
542 for ( std::vector<pint>::const_iterator jetBin = jetBins.begin();
543 jetBin != jetBins.end(); ++jetBin ) {
545 if ( !dqmDirectory_beforeRad.EndsWith(
"/") ) dqmDirectory_beforeRad.Append(
"/");
546 dqmDirectory_beforeRad.Append(
"beforeRad");
548 muonRadCorrUncertaintyPlotEntry_beforeRad->
bookHistograms(dqmStore);
551 if ( !dqmDirectory_afterRad.EndsWith(
"/") ) dqmDirectory_afterRad.Append(
"/");
552 dqmDirectory_afterRad.Append(
"afterRad");
554 muonRadCorrUncertaintyPlotEntry_afterRad->
bookHistograms(dqmStore);
557 if ( !dqmDirectory_afterRadAndCorr.EndsWith(
"/") ) dqmDirectory_afterRadAndCorr.Append(
"/");
558 dqmDirectory_afterRadAndCorr.Append(
"afterRadAndCorr");
560 muonRadCorrUncertaintyPlotEntry_afterRadAndCorr->
bookHistograms(dqmStore);
566 std::vector<std::string> genTauDecayModes;
568 genTauDecayModes.push_back(
std::string(
"oneProng0Pi0"));
569 genTauDecayModes.push_back(
std::string(
"oneProng1Pi0"));
570 genTauDecayModes.push_back(
std::string(
"oneProng2Pi0"));
571 genTauDecayModes.push_back(
std::string(
"threeProng0Pi0"));
572 genTauDecayModes.push_back(
std::string(
"threeProng1Pi0"));
573 for ( std::vector<std::string>::const_iterator
genTauDecayMode = genTauDecayModes.begin();
602 void fillVisPtEtaPhiMassDistributions(
const edm::Event& evt,
616 visDecayProduct1 != visDecayProducts1->end(); ++visDecayProduct1 ) {
618 visDecayProduct2 != visDecayProducts2->end(); ++visDecayProduct2 ) {
619 double dR =
deltaR(visDecayProduct1->p4(), visDecayProduct2->p4());
624 histogram_visDiTauPt->
Fill(visDiTauP4.pt(), evtWeight);
625 histogram_visDiTauEta->
Fill(visDiTauP4.eta(), evtWeight);
626 histogram_visDiTauPhi->
Fill(visDiTauP4.phi(), evtWeight);
627 histogram_visDiTauMass->
Fill(visDiTauP4.mass(), evtWeight);
635 double sumPx = visP4.px() + metP4.px();
636 double sumPy = visP4.py() + metP4.py();
637 double sumEt =
TMath::Max(visP4.Et(), visP4.pt()) + TMath::Sqrt(metP4.pt());
638 double mt2 = sumEt*sumEt - (sumPx*sumPx + sumPy*sumPy);
639 if ( mt2 < 0 ) mt2 = 0.;
640 return TMath::Sqrt(mt2);
643 void fillX1andX2Distributions(
const edm::Event& evt,
677 genDiTau != genDiTaus->end(); ++genDiTau ) {
679 if ( !(genDiTau_composite && genDiTau_composite->
numberOfDaughters() == 2) )
continue;
685 if ( !(genLeg1 && genLeg1->
energy() > 0. &&
686 genLeg2 && genLeg2->
energy() > 0.) )
continue;
688 visDecayProduct1 != visDecayProducts1->end(); ++visDecayProduct1 ) {
689 double dR1matchedTo1 =
deltaR(visDecayProduct1->p4(), genLeg1->
p4());
690 double dR1matchedTo2 =
deltaR(visDecayProduct1->p4(), genLeg2->
p4());
692 visDecayProduct2 != visDecayProducts2->end(); ++visDecayProduct2 ) {
693 double dR2matchedTo1 =
deltaR(visDecayProduct2->p4(), genLeg1->
p4());
694 double dR2matchedTo2 =
deltaR(visDecayProduct2->p4(), genLeg2->
p4());
699 bool matched =
false;
700 if ( dR1matchedTo1 < 0.3 && dR2matchedTo1 > 0.5 &&
701 dR2matchedTo2 < 0.3 && dR1matchedTo2 > 0.5 ) {
702 leg1P4 = genLeg1->
p4();
703 X1 = visDecayProduct1->energy()/genLeg1->
energy();
704 leg2P4 = genLeg2->
p4();
705 X2 = visDecayProduct2->energy()/genLeg2->
energy();
707 }
else if ( dR1matchedTo2 < 0.3 && dR2matchedTo2 > 0.5 &&
708 dR2matchedTo1 < 0.3 && dR1matchedTo1 > 0.5 ) {
709 leg1P4 = genLeg2->
p4();
710 X1 = visDecayProduct1->energy()/genLeg2->
energy();
711 leg2P4 = genLeg1->
p4();
712 X2 = visDecayProduct2->energy()/genLeg1->
energy();
717 if ( histogram_tau1Pt && histogram_tau1Eta && histogram_tau1Phi ) {
718 histogram_tau1Pt->
Fill(genLeg1->
pt(), evtWeight);
719 histogram_tau1Eta->
Fill(genLeg1->
eta(), evtWeight);
720 histogram_tau1Phi->
Fill(genLeg1->
phi(), evtWeight);
722 if ( histogram_leg1Pt && histogram_leg1Eta && histogram_leg1Phi ) {
723 histogram_leg1Pt->
Fill(visDecayProduct1->pt(), evtWeight);
724 histogram_leg1Eta->
Fill(visDecayProduct1->eta(), evtWeight);
725 histogram_leg1Phi->
Fill(visDecayProduct1->phi(), evtWeight);
727 histogram_leg1X->
Fill(X1, evtWeight);
728 if ( histogram_leg1XforLeg2X0_00to0_25 && histogram_leg1XforLeg2X0_25to0_50 && histogram_leg1XforLeg2X0_50to0_75 && histogram_leg1XforLeg2X0_75to1_00 ) {
729 if ( X2 < 0.25 ) histogram_leg1XforLeg2X0_00to0_25->
Fill(X1, evtWeight);
730 else if ( X2 < 0.50 ) histogram_leg1XforLeg2X0_25to0_50->
Fill(X1, evtWeight);
731 else if ( X2 < 0.75 ) histogram_leg1XforLeg2X0_50to0_75->
Fill(X1, evtWeight);
732 else histogram_leg1XforLeg2X0_75to1_00->
Fill(X1, evtWeight);
734 if ( histogram_leg1Mt ) histogram_leg1Mt->
Fill(compMt(visDecayProduct1->p4(), metP4), evtWeight);
735 if ( histogram_tau2Pt && histogram_tau2Eta && histogram_tau2Phi ) {
736 histogram_tau2Pt->
Fill(genLeg2->
pt(), evtWeight);
737 histogram_tau2Eta->
Fill(genLeg2->
eta(), evtWeight);
738 histogram_tau2Phi->
Fill(genLeg2->
phi(), evtWeight);
740 if ( histogram_leg2Pt && histogram_leg2Eta && histogram_leg2Phi ) {
741 histogram_leg2Pt->
Fill(visDecayProduct2->pt(), evtWeight);
742 histogram_leg2Eta->
Fill(visDecayProduct2->eta(), evtWeight);
743 histogram_leg2Phi->
Fill(visDecayProduct2->phi(), evtWeight);
745 histogram_leg2X->
Fill(X2, evtWeight);
746 if ( histogram_leg2XforLeg1X0_00to0_25 && histogram_leg2XforLeg1X0_25to0_50 && histogram_leg2XforLeg1X0_50to0_75 && histogram_leg2XforLeg1X0_75to1_00 ) {
747 if ( X1 < 0.25 ) histogram_leg2XforLeg1X0_00to0_25->
Fill(X2, evtWeight);
748 else if ( X1 < 0.50 ) histogram_leg2XforLeg1X0_25to0_50->
Fill(X2, evtWeight);
749 else if ( X1 < 0.75 ) histogram_leg2XforLeg1X0_50to0_75->
Fill(X2, evtWeight);
750 else histogram_leg2XforLeg1X0_75to1_00->
Fill(X2, evtWeight);
751 if ( histogram_leg2Mt ) histogram_leg2Mt->
Fill(compMt(visDecayProduct2->p4(), metP4), evtWeight);
753 histogram_VisDeltaPhiLeg1Leg2->
Fill(
normalizedPhi(visDecayProduct1->phi() - visDecayProduct2->phi()), evtWeight);
768 std::ostringstream retVal;
769 retVal <<
"Run = " << run_number <<
", LS = " << ls_number <<
", Event = " << event_number;
777 std::cout <<
"<MCEmbeddingValidationAnalyzer::analyze>:" << std::endl;
785 for ( std::vector<reco::CandidateBaseRef>::const_iterator replacedMuon = replacedMuons.begin();
786 replacedMuon != replacedMuons.end(); ++replacedMuon ) {
787 if ( (*replacedMuon)->charge() > +0.5 ) replacedMuonPlus = replacedMuon->
get();
788 else if ( (*replacedMuon)->charge() < -0.5 ) replacedMuonMinus = replacedMuon->
get();
792 if ( replacedMuonPlus )
std::cout <<
"replacedMuonPlus: Pt = " << replacedMuonPlus->
pt() <<
", eta = " << replacedMuonPlus->
eta() <<
", phi = " << replacedMuonPlus->
phi() << std::endl;
793 if ( replacedMuonMinus )
std::cout <<
"replacedMuonMinus: Pt = " << replacedMuonMinus->
pt() <<
", eta = " << replacedMuonMinus->
eta() <<
", phi = " << replacedMuonMinus->
phi() << std::endl;
803 genDiTau != genDiTaus->end(); ++genDiTau ) {
805 if ( !(genDiTau_composite && genDiTau_composite->
numberOfDaughters() == 2) )
continue;
807 for (
size_t iDaughter = 0; iDaughter < numDaughters; ++iDaughter ) {
809 if ( daughter->
charge() > +0.5 ) genTauPlus = daughter;
810 else if ( daughter->
charge() < -0.5 ) genTauMinus = daughter;
814 if ( genTauPlus )
std::cout <<
"genTauPlus: Pt = " << genTauPlus->
pt() <<
", eta = " << genTauPlus->
eta() <<
", phi = " << genTauPlus->
phi() << std::endl;
815 if ( genTauMinus )
std::cout <<
"genTauMinus: Pt = " << genTauMinus->
pt() <<
", eta = " << genTauMinus->
eta() <<
", phi = " << genTauMinus->
phi() << std::endl;
818 double dRmin = 1.e+3;
819 if ( replacedMuonPlus && genTauPlus ) {
820 double dR =
deltaR(genTauPlus->
p4(), replacedMuonPlus->
p4());
822 if ( dR < dRmin ) dRmin =
dR;
824 if ( replacedMuonPlus && genTauMinus ) {
825 double dR =
deltaR(genTauMinus->
p4(), replacedMuonPlus->
p4());
827 if ( dR < dRmin ) dRmin =
dR;
829 if ( replacedMuonMinus && genTauPlus ) {
830 double dR =
deltaR(genTauPlus->
p4(), replacedMuonMinus->
p4());
832 if ( dR < dRmin ) dRmin =
dR;
834 if ( replacedMuonMinus && genTauMinus ) {
835 double dR =
deltaR(genTauMinus->
p4(), replacedMuonMinus->
p4());
836 if (
verbosity_ )
std::cout <<
" dR(replacedMuonMinus, genTauMinus) = " << dR << std::endl;
837 if ( dR < dRmin ) dRmin =
dR;
844 double evtWeight = 1.0;
845 std::map<std::string, double> evtWeightMap;
851 evtWeight *= (*weight);
852 evtWeightMap[Form(
"%s_%s", srcWeight->label().data(), srcWeight->instance().data())] = (*weight);
858 if ( genFilterInfo->numEventsTried() > 0 ) {
859 double weight = genFilterInfo->filterEfficiency();
867 if ( evtWeight < 1.e-3 || evtWeight > 1.
e+3 || TMath::IsNaN(evtWeight) )
return;
871 double muonRadCorrWeight = 1.;
872 double muonRadCorrWeightUp = 1.;
873 double muonRadCorrWeightDown = 1.;
877 muonRadCorrWeight = (*muonRadCorrWeight_handle);
878 evtWeightMap[
"muonRadCorrWeight"] = muonRadCorrWeight;
881 muonRadCorrWeightUp = (*muonRadCorrWeightUp_handle);
884 muonRadCorrWeightDown = (*muonRadCorrWeightDown_handle);
890 for ( std::vector<plotEntryTypeEvtWeight*>::iterator evtWeightPlotEntry =
evtWeightPlotEntries_.begin();
892 (*evtWeightPlotEntry)->fillHistograms(evt, evtWeightMap);
898 int numTracksPtGt5 = 0;
899 int numTracksPtGt10 = 0;
900 int numTracksPtGt20 = 0;
901 int numTracksPtGt30 = 0;
902 int numTracksPtGt40 = 0;
903 for ( reco::TrackCollection::const_iterator track = tracks->begin();
904 track != tracks->end(); ++track ) {
905 if ( track->pt() > 5. ) ++numTracksPtGt5;
906 if ( track->pt() > 10. ) ++numTracksPtGt10;
907 if ( track->pt() > 20. ) ++numTracksPtGt20;
908 if ( track->pt() > 30. ) ++numTracksPtGt30;
909 if ( track->pt() > 40. ) ++numTracksPtGt40;
919 int numChargedPFCandsPtGt5 = 0;
920 int numChargedPFCandsPtGt10 = 0;
921 int numChargedPFCandsPtGt20 = 0;
922 int numChargedPFCandsPtGt30 = 0;
923 int numChargedPFCandsPtGt40 = 0;
924 int numNeutralPFCandsPtGt5 = 0;
925 int numNeutralPFCandsPtGt10 = 0;
926 int numNeutralPFCandsPtGt20 = 0;
927 int numNeutralPFCandsPtGt30 = 0;
928 int numNeutralPFCandsPtGt40 = 0;
929 for ( reco::PFCandidateCollection::const_iterator pfCandidate = pfCandidates->begin();
930 pfCandidate != pfCandidates->end(); ++pfCandidate ) {
931 if ( TMath::Abs(pfCandidate->charge()) > 0.5 ) {
932 if ( pfCandidate->pt() > 5. ) ++numChargedPFCandsPtGt5;
933 if ( pfCandidate->pt() > 10. ) ++numChargedPFCandsPtGt10;
934 if ( pfCandidate->pt() > 20. ) ++numChargedPFCandsPtGt20;
935 if ( pfCandidate->pt() > 30. ) ++numChargedPFCandsPtGt30;
936 if ( pfCandidate->pt() > 40. ) ++numChargedPFCandsPtGt40;
938 if ( pfCandidate->pt() > 5. ) ++numNeutralPFCandsPtGt5;
939 if ( pfCandidate->pt() > 10. ) ++numNeutralPFCandsPtGt10;
940 if ( pfCandidate->pt() > 20. ) ++numNeutralPFCandsPtGt20;
941 if ( pfCandidate->pt() > 30. ) ++numNeutralPFCandsPtGt30;
942 if ( pfCandidate->pt() > 40. ) ++numNeutralPFCandsPtGt40;
958 int numJetsRawPtGt20 = 0;
959 int numJetsRawPtGt20AbsEtaLt2_5 = 0;
960 int numJetsRawPtGt20AbsEta2_5to4_5 = 0;
961 int numJetsCorrPtGt20 = 0;
962 int numJetsCorrPtGt20AbsEtaLt2_5 = 0;
963 int numJetsCorrPtGt20AbsEta2_5to4_5 = 0;
964 int numJetsRawPtGt30 = 0;
965 int numJetsRawPtGt30AbsEtaLt2_5 = 0;
966 int numJetsRawPtGt30AbsEta2_5to4_5 = 0;
967 int numJetsCorrPtGt30 = 0;
968 int numJetsCorrPtGt30AbsEtaLt2_5 = 0;
969 int numJetsCorrPtGt30AbsEta2_5to4_5 = 0;
970 for ( pat::JetCollection::const_iterator
jet = jets->begin();
971 jet != jets->end(); ++
jet ) {
974 double rawJetPt = rawJetP4.pt();
975 double rawJetAbsEta = TMath::Abs(rawJetP4.eta());
976 if ( rawJetAbsEta < 4.5 ) {
980 if ( rawJetPt > 20. ) {
983 if ( rawJetAbsEta < 2.5 ) ++numJetsRawPtGt20AbsEtaLt2_5;
984 else if ( rawJetAbsEta < 4.5 ) ++numJetsRawPtGt20AbsEta2_5to4_5;
986 if ( rawJetPt > 30. ) {
989 if ( rawJetAbsEta < 2.5 ) ++numJetsRawPtGt30AbsEtaLt2_5;
990 else if ( rawJetAbsEta < 4.5 ) ++numJetsRawPtGt30AbsEta2_5to4_5;
995 double corrJetPt = corrJetP4.pt();
996 double corrJetAbsEta = TMath::Abs(corrJetP4.eta());
997 if ( corrJetAbsEta < 4.5 ) {
1001 if ( corrJetPt > 20. ) {
1003 ++numJetsCorrPtGt20;
1004 if ( corrJetAbsEta < 2.5 ) ++numJetsCorrPtGt20AbsEtaLt2_5;
1005 else if ( corrJetAbsEta < 4.5 ) ++numJetsCorrPtGt20AbsEta2_5to4_5;
1007 if ( corrJetPt > 30. ) {
1009 ++numJetsCorrPtGt30;
1010 if ( corrJetAbsEta < 2.5 ) ++numJetsCorrPtGt30AbsEtaLt2_5;
1011 else if ( corrJetAbsEta < 4.5 ) ++numJetsCorrPtGt30AbsEta2_5to4_5;
1030 int numGlobalMuons = 0;
1031 int numStandAloneMuons = 0;
1033 for ( reco::MuonCollection::const_iterator
muon = muons->begin();
1035 if (
muon->isGlobalMuon() ) ++numGlobalMuons;
1036 if (
muon->isStandAloneMuon() ) ++numStandAloneMuons;
1037 if (
muon->isPFMuon() ) ++numPFMuons;
1045 if ( theVertex->size() >= 1 ) {
1053 for ( reco::VertexCollection::const_iterator vertex = vertices->begin();
1054 vertex != vertices->end(); ++vertex ) {
1062 for ( reco::VertexCollection::const_iterator vertex = verticesWithBS->begin();
1063 vertex != verticesWithBS->end(); ++vertex ) {
1078 genDiTau != genDiTaus->end(); ++genDiTau ) {
1085 bool passesCutsBeforeRotation =
false;
1088 bool passesCutsAfterRotation =
false;
1090 genDiTau != genDiTaus->end(); ++genDiTau ) {
1092 if ( !(genDiTau_composite && genDiTau_composite->
numberOfDaughters() == 2) )
continue;
1095 if ( !(genTau1 && genTau2) )
continue;
1098 passesCutsAfterRotation =
true;
1103 if ( genTauPlus && genTauMinus ) {
1106 ROOT::Math::Boost boost_to_rf(diTauP4_lab.BoostToCM());
1109 if ( (diTauP4_rf.P()*tauPlusP4_rf.P()) > 0. ) {
1110 double cosGjAngle = (diTauP4_rf.px()*tauPlusP4_rf.px() + diTauP4_rf.py()*tauPlusP4_rf.py() + diTauP4_rf.pz()*tauPlusP4_rf.pz())/(diTauP4_rf.P()*tauPlusP4_rf.P());
1111 double gjAngle = TMath::ACos(cosGjAngle);
1115 if ( replacedMuonPlus && genTauPlus && replacedMuonMinus && genTauMinus ) {
1166 for ( reco::GenParticleCollection::const_iterator genParticle = genParticles->begin();
1167 genParticle != genParticles->end(); ++genParticle ) {
1168 if ( genParticle->status() == 1 ) {
1169 int absPdgId = TMath::Abs(genParticle->pdgId());
1170 if ( absPdgId == 12 || absPdgId == 14 || absPdgId == 16 )
continue;
1171 sumGenParticleP4 += genParticle->p4();
1172 if ( TMath::Abs(genParticle->charge()) > 0.5 ) sumGenParticleP4_charged += genParticle->p4();
1180 double sumEtCaloTowersECAL = 0.;
1182 double sumEtCaloTowersHCAL = 0.;
1184 double sumEtCaloTowersHF = 0.;
1186 double sumEtCaloTowersHO = 0.;
1188 caloTower != caloTowers->end(); ++caloTower ) {
1189 if ( caloTower->energy() != 0. ) {
1190 double emFrac_ecal = caloTower->emEnergy()/caloTower->energy();
1191 double emFrac_hcal = (caloTower->energyInHB() + caloTower->energyInHE())/caloTower->energy();
1192 double emFrac_hf = caloTower->energyInHF()/caloTower->energy();
1193 double emFrac_ho = caloTower->energyInHO()/caloTower->energy();
1194 sumCaloTowerP4_ecal += (emFrac_ecal*caloTower->p4());
1195 sumEtCaloTowersECAL += (emFrac_ecal*caloTower->et());
1196 sumCaloTowerP4_hcal += (emFrac_hcal*caloTower->p4());
1197 sumEtCaloTowersHCAL += (emFrac_hcal*caloTower->et());
1198 sumCaloTowerP4_hf += (emFrac_hf*caloTower->p4());
1199 sumEtCaloTowersHF += (emFrac_hf*caloTower->et());
1200 sumCaloTowerP4_ho += (emFrac_ho*caloTower->p4());
1201 sumEtCaloTowersHO += (emFrac_ho*caloTower->et());
1215 bool genMuonPlus_beforeRad_found =
false;
1217 bool genMuonMinus_beforeRad_found =
false;
1219 bool genMuonPlus_afterRad_found =
false;
1221 bool genMuonMinus_afterRad_found =
false;
1223 findMuons(evt,
srcMuonsBeforeRad_, genMuonPlusP4_beforeRad, genMuonPlus_beforeRad_found, genMuonMinusP4_beforeRad, genMuonMinus_beforeRad_found);
1224 findMuons(evt,
srcMuonsAfterRad_, genMuonPlusP4_afterRad, genMuonPlus_afterRad_found, genMuonMinusP4_afterRad, genMuonMinus_afterRad_found);
1226 bool genMuonPlus_found = (genMuonPlus_beforeRad_found && genMuonPlus_afterRad_found);
1227 bool genMuonMinus_found = (genMuonMinus_beforeRad_found && genMuonMinus_afterRad_found);
1229 if ( genTauPlus && genMuonPlus_found && genTauMinus && genMuonMinus_found ) {
1232 (*muonRadCorrUncertaintyPlotEntry)->fillHistograms(numJetsCorrPtGt30, genMuonPlusP4_beforeRad, genMuonMinusP4_beforeRad, evtWeight, muonRadCorrWeight, muonRadCorrWeightUp, muonRadCorrWeightDown);
1236 (*muonRadCorrUncertaintyPlotEntry)->fillHistograms(numJetsCorrPtGt30, genMuonPlusP4_afterRad, genMuonMinusP4_afterRad, evtWeight, muonRadCorrWeight, muonRadCorrWeightUp, muonRadCorrWeightDown);
1240 (*muonRadCorrUncertaintyPlotEntry)->fillHistograms(numJetsCorrPtGt30, genTauPlus->
p4(), genTauMinus->
p4(), evtWeight, muonRadCorrWeight, muonRadCorrWeightUp, muonRadCorrWeightDown);
1245 <<
" (" << runLumiEventNumbers_to_string(evt) <<
")" << std::endl
1246 <<
" Failed to match muons before and after radiation to embedded tau leptons !!" << std::endl;
1248 if ( genTauPlus )
std::cout <<
"Pt = " << genTauPlus->
pt() <<
", eta = " << genTauPlus->
eta() <<
", phi = " << genTauPlus->
phi() << std::endl;
1250 std::cout <<
"genMuonPlus (before Rad.): ";
1251 if ( genMuonPlus_found )
std::cout <<
"Pt = " << genMuonPlusP4_beforeRad.pt() <<
", eta = " << genMuonPlusP4_beforeRad.eta() <<
", phi = " << genMuonPlusP4_beforeRad.phi() << std::endl;
1254 if ( genTauMinus )
std::cout <<
"Pt = " << genTauMinus->
pt() <<
", eta = " << genTauMinus->
eta() <<
", phi = " << genTauMinus->
phi() << std::endl;
1256 std::cout <<
"genMuonMinus (before Rad.): ";
1257 if ( genMuonMinus_found )
std::cout <<
"Pt = " << genMuonMinusP4_beforeRad.pt() <<
", eta = " << genMuonMinusP4_beforeRad.eta() <<
", phi = " << genMuonMinusP4_beforeRad.phi() << std::endl;
1275 genDiTau != genDiTaus->end(); ++genDiTau ) {
1277 if ( !(genDiTau_composite && genDiTau_composite->
numberOfDaughters() == 2) )
continue;
1284 if ( !(genTau1 && genTau2) )
continue;
1285 std::string genTauDecayMode1 = getGenTauDecayMode(genTau1);
1286 std::string genTauDecayMode2 = getGenTauDecayMode(genTau2);
1288 if ( genTauDecayMode1 ==
"electron" || genTauDecayMode1 ==
"muon" ) genTauDecayMode_ref = genTauDecayMode2;
1289 else if ( genTauDecayMode2 ==
"electron" || genTauDecayMode2 ==
"muon" ) genTauDecayMode_ref = genTauDecayMode1;
1290 for ( std::vector<plotEntryTypeL1ETM*>::iterator l1ETMplotEntry =
l1ETMplotEntries_.begin();
1292 (*l1ETMplotEntry)->fillHistograms(genTauDecayMode_ref, l1MEtP4, genCaloMEtP4, recCaloMEtP4, genDiTau->p4(), muonRadCorrWeight*evtWeight);
1318 std::vector<const reco::Candidate*> replacedMuons;
1319 if ( replacedMuonPlus ) replacedMuons.push_back(replacedMuonPlus);
1320 if ( replacedMuonMinus ) replacedMuons.push_back(replacedMuonMinus);
1321 for ( std::vector<const reco::Candidate*>::const_iterator replacedMuon = replacedMuons.begin();
1322 replacedMuon != replacedMuons.end(); ++replacedMuon ) {
1323 for ( reco::TrackCollection::const_iterator track = tracks->begin();
1324 track != tracks->end(); ++track ) {
1325 if ( track->pt() > 10. ) {
1326 double dR =
deltaR(track->eta(), track->phi(), (*replacedMuon)->eta(), (*replacedMuon)->phi());
1329 <<
" (" << runLumiEventNumbers_to_string(evt) <<
")" << std::endl
1330 <<
" Found track: Pt = " << track->pt() <<
", eta = " << track->eta() <<
", phi = " << track->phi() <<
", charge = " << track->charge() <<
" in direction of"
1331 <<
" a replaced muon: Pt = " << (*replacedMuon)->pt()<<
", eta = " << (*replacedMuon)->eta() <<
", phi = " << (*replacedMuon)->phi() <<
", charge = " << (*replacedMuon)->charge()
1332 <<
" (dR = " << dR <<
"). This may point to a problem in removing all muon signals in the Embedding." << std::endl;
1337 for ( reco::PFCandidateCollection::const_iterator pfCandidate = pfCandidates->begin();
1338 pfCandidate != pfCandidates->end(); ++pfCandidate ) {
1339 if ( pfCandidate->pt() > 10. && TMath::Abs(pfCandidate->charge()) > 0.5 ) {
1340 double dR =
deltaR(pfCandidate->eta(), pfCandidate->phi(), (*replacedMuon)->eta(), (*replacedMuon)->phi());
1343 <<
" (" << runLumiEventNumbers_to_string(evt) <<
")" << std::endl
1344 <<
" Found charged PFCandidate: Pt = " << pfCandidate->pt() <<
", eta = " << pfCandidate->eta() <<
", phi = " << pfCandidate->phi() <<
", charge = " << pfCandidate->charge() <<
" in direction of"
1345 <<
" a replaced muon: Pt = " << (*replacedMuon)->pt()<<
", eta = " << (*replacedMuon)->eta() <<
", phi = " << (*replacedMuon)->phi() <<
", charge = " << (*replacedMuon)->charge()
1346 <<
" (dR = " << dR <<
"). This may point to a problem in removing all muon signals in the Embedding." << std::endl;
1351 for ( reco::MuonCollection::const_iterator
muon = muons->begin();
1353 if (
muon->pt() > 10. ) {
1354 double dR =
deltaR(
muon->eta(),
muon->phi(), (*replacedMuon)->eta(), (*replacedMuon)->phi());
1357 <<
" (" << runLumiEventNumbers_to_string(evt) <<
")" << std::endl
1358 <<
" Found track: Pt = " <<
muon->pt() <<
", eta = " <<
muon->eta() <<
", phi = " <<
muon->phi() <<
", charge = " <<
muon->charge() <<
" in direction of"
1359 <<
" a replaced muon: Pt = " << (*replacedMuon)->pt()<<
", eta = " << (*replacedMuon)->eta() <<
", phi = " << (*replacedMuon)->phi() <<
", charge = " << (*replacedMuon)->charge()
1360 <<
" (dR = " << dR <<
"). This may point to a problem in removing all muon signals in the Embedding." << std::endl;
int muonRadCorrUncertainty_maxWarnings_
T getParameter(std::string const &) const
EventNumber_t event() const
MonitorElement * histogramGenLeg2Pt_
std::string genTauDecayMode(const reco::CompositePtrCandidate &c)
edm::InputTag srcGenPFMEt_
std::vector< metL1TriggerEfficiencyType * > metL1TriggerEfficiencies_
void fillHistograms(std::vector< T * > collection, int numJets, const edm::Event &evt, double evtWeight)
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
MonitorElement * histogramGenLeg1XforGenLeg2X0_75to1_00_
void setupL1ExtraObjectDistribution(int, int, const edm::ParameterSet &, const std::string &, std::vector< l1ExtraObjectDistributionT< T > * > &)
virtual double energy() const =0
energy
std::vector< plotEntryTypeMuonRadCorrUncertainty * > muonRadCorrUncertaintyPlotEntries_afterRad_
MonitorElement * histogramRecCaloMEtECAL_
MonitorElement * histogramRotationAngleMatrix_
MonitorElement * histogramGenTau1Eta_
MonitorElement * histogramGenDiTauPhi_
edm::InputTag srcRecTracks_
MonitorElement * histogramRecCaloMEtHCAL_
std::vector< leptonEfficiencyT< pat::Electron > * > electronEfficiencies_
MonitorElement * histogramGenLeg1XforGenLeg2X0_50to0_75_
edm::InputTag srcRecPFCandidates_
MonitorElement * histogramEventCounter_
void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * histogramGenDiTauEta_
edm::InputTag srcGenFilterInfo_
math::XYZVector Vector
point in the space
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.
edm::InputTag srcGenParticles_
edm::InputTag srcTheRecVertex_
MonitorElement * histogramTheRecVertexX_
double phiLabFromLabMomenta(const reco::Candidate::LorentzVector &motherP4, const reco::Candidate::LorentzVector &visP4)
MonitorElement * histogramGenDiTauDecayAngle_
unsigned int EventNumber_t
MonitorElement * histogramNumJetsCorrPtGt30AbsEta2_5to4_5_
MonitorElement * histogramGenLeg2Mt_
virtual float eta() const =0
momentum pseudorapidity
MonitorElement * histogramGenDeltaPhiLeg1Leg2_
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
#define DEFINE_FWK_MODULE(type)
void bookHistograms(DQMStore &dqmStore)
int muonRadCorrUncertainty_numWarnings_
std::vector< ParameterSet > VParameterSet
std::vector< leptonL1TriggerEfficiencyT1T2< pat::Electron, l1extra::L1EmParticle > * > electronL1TriggerEfficiencies_
double replacedMuonPtThresholdHigh_
MCEmbeddingValidationAnalyzer(const edm::ParameterSet &)
MonitorElement * histogramGenLeg2XforGenLeg1X0_25to0_50_
MonitorElement * histogramNumChargedPFCandsPtGt5_
MonitorElement * histogramTheRecVertexZ_
MonitorElement * histogramNumNeutralPFCandsPtGt30_
edm::InputTag srcGenLeg1_
edm::InputTag srcRecJets_
MonitorElement * histogramGenLeg1Pt_
MonitorElement * histogramPhiRotLegMinus_
MonitorElement * histogramRecLeg1X_
MonitorElement * histogramNumNeutralPFCandsPtGt10_
MonitorElement * histogramGenTau2Pt_
std::vector< CaloTower >::const_iterator const_iterator
bool exists(std::string const ¶meterName) const
checks if a parameter exists
MonitorElement * histogramGenVisDiTauEta_
edm::LuminosityBlockNumber_t luminosityBlock() const
MonitorElement * histogramGenTau1Phi_
MonitorElement * histogramCorrJetPtAbsEta2_5to4_5_
virtual float phi() const =0
momentum azimuthal angle
MonitorElement * histogramRotationLegPlusDeltaR_
void setupMEtL1TriggerEfficiency(int, int, const edm::ParameterSet &, const std::string &, std::vector< metL1TriggerEfficiencyType * > &)
MonitorElement * histogramRecVertexZ_
MonitorElement * histogramGenLeg1Eta_
std::vector< plotEntryTypeL1ETM * > l1ETMplotEntries_
MonitorElement * histogramPhiRotLegPlus_
void bookHistograms(DQMStore &dqmStore)
MonitorElement * histogramGenDiTauMass_
MonitorElement * histogramWarning_recMuonNearReplacedMuon_
MonitorElement * histogramGenLeg2Eta_
MonitorElement * histogramRecLeg2PFMt_
std::vector< tauDistributionExtra * > tauDistributionsExtra_
edm::InputTag srcMuonRadCorrWeightDown_
MonitorElement * histogramRotationLegMinusDeltaR_
MonitorElement * histogramRawJetPtAbsEta2_5to4_5_
unsigned int LuminosityBlockNumber_t
virtual size_type numberOfDaughters() const
number of daughters
MonitorElement * histogramNumChargedPFCandsPtGt10_
MonitorElement * histogramGenLeg1XforGenLeg2X0_25to0_50_
std::vector< plotEntryTypeMuonRadCorrUncertainty * > muonRadCorrUncertaintyPlotEntries_afterRadAndCorr_
std::vector< leptonDistributionT< pat::Electron > * > electronDistributions_
std::vector< PFCandidatePtr > pfCandidates(const PFJet &jet, int particleId, bool sort=true)
double replacedMuonPtThresholdLow_
MonitorElement * histogramNumRecVertices_
edm::InputTag srcRecMuons_
edm::View< reco::Candidate > CandidateView
MonitorElement * histogramGenLeg1XforGenLeg2X0_00to0_25_
std::string dqmDirectory_
MonitorElement * histogramRecVisDiTauPt_
virtual bool hasMasterClone() const =0
MonitorElement * histogramGenVisDiTauPhi_
MonitorElement * histogramCorrJetEtaPtGt20_
MonitorElement * histogramRecLeg1PFMt_
virtual float pt() const =0
transverse momentum
std::vector< edm::InputTag > vInputTag
MonitorElement * histogramNumJetsRawPtGt30AbsEtaLt2_5_
reco::Candidate::Vector compCrossProduct(const reco::Candidate::Vector &p1, const reco::Candidate::Vector &p2)
MonitorElement * histogramBeamSpotY_
edm::InputTag srcRecVertices_
void bookHistograms(std::vector< T * > collection, DQMStore &dqmStore)
MonitorElement * histogramRecVertexWithBSx_
void setupLeptonL1TriggerEfficiency(int, int, const edm::ParameterSet &, const std::string &, std::vector< leptonL1TriggerEfficiencyT1T2< T1, T2 > * > &)
MonitorElement * histogramGenFilterEfficiency_
MonitorElement * histogramRecVertexX_
MonitorElement * histogramRecCaloSumEtHO_
std::vector< leptonEfficiencyT< reco::GsfElectron > * > gsfElectronEfficiencies_
MonitorElement * histogramSumGenParticlePt_charged_
MonitorElement * histogramNumJetsCorrPtGt20_
vInputTag srcOtherWeights_
T mag2() const
The vector magnitude squared. Equivalent to vec.dot(vec)
MonitorElement * histogramGenTau2Phi_
MonitorElement * histogramRecVisDeltaPhiLeg1Leg2_
edm::View< reco::MET > METView
MonitorElement * histogramNumTracksPtGt30_
edm::InputTag srcRecPFMEt_
MonitorElement * histogramRawJetEtaPtGt30_
MonitorElement * histogramNumStandAloneMuons_
reco::Candidate::Vector normalize(const reco::Candidate::Vector &p)
edm::InputTag srcRecLeg1_
math::XYZPoint Point
point in the space
MonitorElement * histogramGenVisDiTauPt_
MonitorElement * histogramNumNeutralPFCandsPtGt5_
MonitorElement * histogramNumChargedPFCandsPtGt40_
MonitorElement * histogramCorrJetPt_
MonitorElement * histogramNumJetsRawPtGt20AbsEtaLt2_5_
virtual int charge() const =0
electric charge
edm::InputTag srcMuonsBeforeRad_
std::vector< leptonEfficiencyT< pat::Muon > * > muonEfficiencies_
MonitorElement * histogramNumJetsCorrPtGt20AbsEta2_5to4_5_
MonitorElement * histogramRawJetPt_
MonitorElement * histogramNumJetsRawPtGt30AbsEta2_5to4_5_
std::string dqmDirectory_full(const std::string &dqmSubDirectory)
edm::InputTag srcCaloTowers_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
MonitorElement * histogramGenTau1Pt_
std::vector< plotEntryTypeEvtWeight * > evtWeightPlotEntries_
MonitorElement * histogramRawJetPtAbsEtaLt2_5_
MonitorElement * histogramWarning_recPFCandNearReplacedMuon_
std::vector< l1ExtraObjectDistributionT< l1extra::L1JetParticle > * > l1CentralJetDistributions_
double compScalarProduct(const reco::Candidate::Vector &p1, const reco::Candidate::Vector &p2)
MonitorElement * histogramRecVisDiTauMass_
double deltaR(double eta1, double eta2, double phi1, double phi2)
edm::InputTag srcGenCaloMEt_
std::vector< plotEntryTypeMuonRadCorrUncertainty * > muonRadCorrUncertaintyPlotEntries_beforeRad_
MonitorElement * histogramRecLeg2X_
MonitorElement * histogramNumChargedPFCandsPtGt30_
MonitorElement * histogramGenVisDiTauMass_
MonitorElement * histogramRecVisDiTauPhi_
MonitorElement * histogramNumJetsCorrPtGt20AbsEtaLt2_5_
MonitorElement * histogramGenCaloMEt_
std::vector< l1ExtraObjectDistributionT< l1extra::L1JetParticle > * > l1TauDistributions_
MonitorElement * histogramGenLeg2Phi_
std::vector< metDistributionType * > metDistributions_
MonitorElement * histogramNumJetsRawPtGt20AbsEta2_5to4_5_
MonitorElement * histogramNumJetsRawPtGt20_
edm::InputTag srcMuonRadCorrWeight_
virtual const Candidate * daughter(size_type) const
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
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.
void cleanCollection(std::vector< T * > collection)
MonitorElement * histogramNumJetsRawPtGt30_
MonitorElement * histogramGenLeg1Phi_
edm::InputTag srcGenLeg2_
MonitorElement * histogramNumTracksPtGt20_
MonitorElement * histogramNumTracksPtGt40_
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 * histogramRecCaloSumEtHCAL_
void setupTauDistributionExtra(int, int, const edm::ParameterSet &, const std::string &, std::vector< tauDistributionExtra * > &)
void setupElectronDistributionExtra(int, int, const edm::ParameterSet &, const std::string &, std::vector< electronDistributionExtra * > &)
T get() const
get a component
MonitorElement * histogramRecVertexWithBSz_
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_
void findMuons(const edm::Event &, const edm::InputTag &, reco::Candidate::LorentzVector &, bool &, reco::Candidate::LorentzVector &, bool &)
MonitorElement * histogramGenLeg2XforGenLeg1X0_75to1_00_
MonitorElement * histogramNumPFMuons_
std::vector< reco::CandidateBaseRef > getSelMuons(const edm::Event &, const edm::InputTag &)
MonitorElement * histogramGenLeg1Mt_
MonitorElement * histogramGenPFMEt_
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 * histogramTheRecVertexY_
edm::InputTag srcRecVerticesWithBS_
MonitorElement * histogramGenLeg2X_
MonitorElement * histogramCorrJetPtAbsEtaLt2_5_
MonitorElement * histogramGenVisDeltaPhiLeg1Leg2_
MonitorElement * histogramGenTau2Eta_
~MCEmbeddingValidationAnalyzer()
math::XYZTLorentzVector LorentzVector
Lorentz vector.
std::vector< leptonEfficiencyT< pat::Tau > * > tauEfficiencies_
edm::InputTag srcMuonsAfterRad_
MonitorElement * histogramRawJetEtaPtGt20_
MonitorElement * histogramGenDiTauPt_
MonitorElement * histogramSumGenParticlePt_
MonitorElement * histogramRecCaloMEtHF_
std::vector< l1ExtraObjectDistributionT< l1extra::L1JetParticle > * > l1ForwardJetDistributions_
void setupLeptonEfficiency(int, int, const edm::ParameterSet &, const std::string &, std::vector< leptonEfficiencyT< T > * > &)
MonitorElement * histogramNumTracksPtGt10_
void setCurrentFolder(const std::string &fullpath)
MonitorElement * histogramNumNeutralPFCandsPtGt40_
MonitorElement * histogramNumJetsCorrPtGt30AbsEtaLt2_5_
MonitorElement * histogramNumChargedPFCandsPtGt20_
edm::InputTag srcRecCaloMEt_
MonitorElement * histogramRecCaloSumEtHF_
MonitorElement * histogramRecCaloMEtHO_
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
virtual const CandidateBaseRef & masterClone() const =0
std::vector< leptonDistributionT< pat::Tau > * > tauDistributions_