41 #include "CLHEP/Units/GlobalPhysicalConstants.h"
434 using namespace reco;
437 : beamSpot_(conf.getParameter<
edm::
InputTag>(
"beamSpot")) {
497 ptmax =
pset.getParameter<
double>(
"Ptmax");
498 pmax =
pset.getParameter<
double>(
"Pmax");
558 if (locSC != std::string::npos) {
559 std::cout <<
"Matching objects are SuperClusters " << std::endl;
562 std::cout <<
"Didn't recognize input matching objects!! " << std::endl;
566 hlabel =
"h_" +
type_ +
"Num";
567 htitle =
"# " +
type_ +
"s";
572 histNum_ =
new TH1F(
"h_recEleNum",
"# rec electrons", 20, 0., 20.);
575 hlabel =
"h_" +
type_ +
"_eta";
576 htitle =
type_ +
" #eta";
578 hlabel =
"h_" +
type_ +
"_abseta";
579 htitle =
type_ +
" |#eta|";
581 hlabel =
"h_" +
type_ +
"_P";
582 htitle =
type_ +
" p";
584 hlabel =
"h_" +
type_ +
"_Pt";
585 htitle =
type_ +
" pt";
587 hlabel =
"h_" +
type_ +
"_phi";
588 htitle =
type_ +
" phi";
590 hlabel =
"h_" +
type_ +
"_z";
591 htitle =
type_ +
" z";
596 new TH1F(
"h_ele_mee_all",
"ele pairs invariant mass, all charge combinations",
nbinmee,
meemin,
meemax);
599 new TH1F(
"h_ele_mee_os_ebeb",
"ele pairs invariant mass, opp. sign, EB-EB",
nbinmee,
meemin,
meemax);
602 new TH1F(
"h_ele_mee_os_ebee",
"ele pairs invariant mass, opp. sign, EB-EE",
nbinmee,
meemin,
meemax);
605 new TH1F(
"h_ele_mee_os_eeee",
"ele pairs invariant mass, opp. sign, EE-EE",
nbinmee,
meemin,
meemax);
608 new TH1F(
"h_ele_mee_os_gg",
"ele pairs invariant mass, opp. sign, good-good",
nbinmee,
meemin,
meemax);
611 new TH1F(
"h_ele_mee_os_gb",
"ele pairs invariant mass, opp. sign, good-bad",
nbinmee,
meemin,
meemax);
614 new TH1F(
"h_ele_mee_os_bb",
"ele pairs invariant mass, opp. sign, bad-bad",
nbinmee,
meemin,
meemax);
619 "E2 - E1 vs ele pairs invariant mass, all electrons",
627 "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons",
636 h_ele_charge =
new TH1F(
"h_ele_charge",
"ele charge", 5, -2., 2.);
648 new TH1F(
"h_ele_matchingObjectPt_matched",
"Efficiency vs matching SC E_{T}",
nbinpteff, 5.,
ptmax);
654 new TH1F(
"h_ele_matchingObjectAbsEta_matched",
"Efficiency vs matching SC |#eta|",
nbineta / 2, 0., 2.5);
657 new TH1F(
"h_ele_matchingObjectEta_matched",
"Efficiency vs matching SC #eta",
nbineta,
etamin,
etamax);
660 new TH1F(
"h_ele_matchingObjectPhi_matched",
"Efficiency vs matching SC phi",
nbinphi,
phimin,
phimax);
667 new TH1F(
"h_ele_matchingObjectZ_matched",
"Efficiency vs matching SC z",
nbinxyz, -25, 25);
669 h_ele_vertexTIP =
new TH1F(
"h_ele_vertexTIP",
"ele transverse impact parameter (wrt bs)", 90, 0., 0.15);
671 "ele transverse impact parameter (wrt bs) vs eta",
679 "ele transverse impact parameter (wrt bs) vs phi",
687 "ele transverse impact parameter (wrt bs) vs transverse momentum",
697 "ele trans momentum / matching SC trans energy",
702 "ele momentum / matching SC energy vs eta",
710 "ele momentum / matching SC energy vs phi",
718 "ele momentum / matching SC energy vs eta",
726 "ele momentum / matching SC energy, barrel",
731 "ele momentum / matching SC energy, endcaps",
736 "ele trans momentum / matching SC trans energy, barrel",
741 "ele trans momentum / matching SC trans energy, endcaps",
746 "h_ele_EtaMnEtamatchingObject_matched",
"ele momentum eta - matching SC eta",
nbindeta,
detamin,
detamax);
748 "ele momentum eta - matching SC eta vs eta",
756 "ele momentum eta - matching SC eta vs phi",
764 "ele momentum eta - matching SC eta vs pt",
772 "h_ele_PhiMnPhimatchingObject_matched",
"ele momentum phi - matching SC phi",
nbindphi,
dphimin,
dphimax);
774 "ele momentum phi - matching SC phi",
779 "ele momentum phi - matching SC phi vs eta",
787 "ele momentum phi - matching SC phi vs phi",
795 "ele momentum phi - matching SC phi vs pt",
806 "h_scl_EoEmatchingObject_barrel_matched",
"ele supercluster energy / matching SC energy, barrel", 50, 0.2, 1.2);
808 "h_scl_EoEmatchingObject_endcaps_matched",
"ele supercluster energy / matching SC energy, endcaps", 50, 0.2, 1.2);
810 "ele supercluster energy / matching SC energy, barrel",
815 "ele supercluster energy / matching SC energy, endcaps",
829 histSclSigEtaEta_ =
new TH1F(
"h_scl_sigetaeta",
"ele supercluster sigma eta eta", 100, 0., 0.05);
831 new TH1F(
"h_scl_sigietaieta_barrel",
"ele supercluster sigma ieta ieta, barrel", 100, 0., 0.05);
833 new TH1F(
"h_scl_sigietaieta_endcaps",
"ele supercluster sigma ieta ieta, endcaps", 100, 0., 0.05);
839 new TH1F(
"h_scl_E2x5max_barrel",
"ele supercluster energy in 2x5 max barrel",
nbinp, 0.,
pmax);
841 new TH1F(
"h_scl_E2x5max_endcaps",
"ele supercluster energy in 2x5 max endcaps",
nbinp, 0.,
pmax);
849 new TH2F(
"h_ele_ambiguousTracksVsEta",
"ele # ambiguous tracks vs eta",
nbineta2D,
etamin,
etamax, 5, 0., 5.);
851 new TH2F(
"h_ele_ambiguousTracksVsPhi",
"ele # ambiguous tracks vs phi",
nbinphi2D,
phimin,
phimax, 5, 0., 5.);
853 new TH2F(
"h_ele_ambiguousTracksVsPt",
"ele # ambiguous tracks vs pt",
nbinpt2D, 0.,
ptmax, 5, 0., 5.);
861 h_ele_lostHits =
new TH1F(
"h_ele_lostHits",
"ele track # lost hits", 5, 0., 5.);
868 h_ele_chi2 =
new TH1F(
"h_ele_chi2",
"ele track #chi^{2}", 100, 0., 15.);
872 h_ele_PinMnPout =
new TH1F(
"h_ele_PinMnPout",
"ele track inner p - outer p, mean",
nbinp, 0., 200.);
875 "ele track inner p - outer p vs eta, mode",
883 "ele track inner p - outer p vs phi, mode",
891 "h_ele_PinMnPoutVsPt_mode",
"ele track inner p - outer p vs pt, mode",
nbinpt2D, 0.,
ptmax,
nbinp2D, 0., 100.);
893 "h_ele_PinMnPoutVsE_mode",
"ele track inner p - outer p vs E, mode",
nbinp2D, 0., 200.,
nbinp2D, 0., 100.);
895 "h_ele_PinMnPoutVsChi2_mode",
"ele track inner p - outer p vs track chi2, mode", 50, 0., 20.,
nbinp2D, 0., 100.);
907 new TH2F(
"h_ele_outerPtVsPt_mode",
"ele track outer p_{T} vs pt, mode",
nbinpt2D, 0., 100.,
nbinpt2D, 0.,
ptmax);
915 h_ele_EoPVsE =
new TH2F(
"h_ele_EoPVsE",
"ele E/P_{vertex} vs E", 50, 0.,
pmax, 50, 0., 5.);
921 h_ele_EseedOPVsE =
new TH2F(
"h_ele_EseedOPVsE",
"ele E_{seed}/P_{vertex} vs E", 50, 0.,
pmax, 50, 0., 5.);
938 "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex",
946 "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex",
954 "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex",
964 "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex",
972 "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex",
980 "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex",
988 "ele #eta_{cl} - #eta_{tr}, prop from outermost",
993 "ele #eta_{cl} - #eta_{tr} vs eta, prop from out",
1001 "ele #eta_{cl} - #eta_{tr} vs phi, prop from out",
1009 "ele #eta_{cl} - #eta_{tr} vs pt, prop from out",
1017 "ele #phi_{cl} - #phi_{tr}, prop from outermost",
1022 "ele #phi_{cl} - #phi_{tr} vs eta, prop from out",
1030 "ele #phi_{cl} - #phi_{tr} vs phi, prop from out",
1038 "ele #phi_{cl} - #phi_{tr} vs pt, prop from out",
1046 "ele #eta_{EleCl} - #eta_{tr}, prop from outermost",
1051 "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out",
1059 "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out",
1067 "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out",
1075 "ele #phi_{EleCl} - #phi_{tr}, prop from outermost",
1080 "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out",
1088 "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out",
1096 "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out",
1106 new TH1F(
"h_ele_HoE_fiducial",
"ele hadronic energy / em energy, fiducial region",
nbinhoe,
hoemin,
hoemax);
1114 h_ele_seed_dphi2_ =
new TH1F(
"h_ele_seedDphi2",
"ele seed dphi 2nd layer", 50, -0.003, +0.003);
1116 new TH2F(
"h_ele_seedDphi2VsEta",
"ele seed dphi 2nd layer vs eta",
nbineta2D,
etamin,
etamax, 50, -0.003, +0.003);
1118 new TH2F(
"h_ele_seedDphi2VsPt",
"ele seed dphi 2nd layer vs pt",
nbinpt2D, 0.,
ptmax, 50, -0.003, +0.003);
1119 h_ele_seed_drz2_ =
new TH1F(
"h_ele_seedDrz2",
"ele seed dr/dz 2nd layer", 50, -0.03, +0.03);
1121 new TH2F(
"h_ele_seedDrz2VsEta",
"ele seed dr/dz 2nd layer vs eta",
nbineta2D,
etamin,
etamax, 50, -0.03, +0.03);
1123 new TH2F(
"h_ele_seedDrz2VsPt",
"ele seed dr/dz 2nd layer vs pt",
nbinpt2D, 0.,
ptmax, 50, -0.03, +0.03);
1124 h_ele_seed_subdet2_ =
new TH1F(
"h_ele_seedSubdet2",
"ele seed subdet 2nd layer", 10, 0., 10.);
1127 h_ele_classes =
new TH1F(
"h_ele_classes",
"electron classes", 20, 0.0, 20.);
1134 "ele track inner p vs outer p vs eta, golden, mode",
1142 "ele track inner p vs outer p vs eta, Showering, mode",
1150 "ele track inner p vs outer p vs eta, golden, mean",
1158 "ele track inner p vs outer p vs eta, Showering, mean",
1166 "ele track inner pt vs outer pt vs eta, golden, mode",
1174 "ele track inner pt vs outer pt vs eta, showering, mode",
1182 "ele track inner pt vs outer pt vs eta, golden, mean",
1190 "ele track inner pt vs outer pt vs eta, showering, mean",
1198 "ele supercluster energy over matchingObject energy, golden, barrel",
1203 new TH1F(
"h_scl_EoEmatchingObject golden, endcaps",
1204 "ele supercluster energy over matchingObject energy, golden, endcaps",
1209 new TH1F(
"h_scl_EoEmatchingObject Showering, barrel",
1210 "ele supercluster energy over matchingObject energy, showering, barrel",
1215 new TH1F(
"h_scl_EoEmatchingObject Showering, endcaps",
1216 "ele supercluster energy over matchingObject energy, showering, endcaps",
1222 h_ele_tkSumPt_dr03 =
new TH1F(
"h_ele_tkSumPt_dr03",
"tk isolation sum, dR=0.3", 100, 0.0, 20.);
1225 new TH1F(
"h_ele_hcalDepth1TowerSumEt_dr03",
"hcal depth1 isolation sum, dR=0.3", 100, 0.0, 20.);
1227 new TH1F(
"h_ele_hcalDepth2TowerSumEt_dr03",
"hcal depth2 isolation sum, dR=0.3", 100, 0.0, 20.);
1228 h_ele_tkSumPt_dr04 =
new TH1F(
"h_ele_tkSumPt_dr04",
"trk isolation sum", 100, 0.0, 20.);
1231 new TH1F(
"h_ele_hcalDepth1TowerSumEt_dr04",
"hcal depth1 isolation sum, dR=0.4", 100, 0.0, 20.);
1233 new TH1F(
"h_ele_hcalDepth2TowerSumEt_dr04",
"hcal depth2 isolation sum, dR=0.4", 100, 0.0, 20.);
1236 h_ele_fbrem =
new TH1F(
"h_ele_fbrem",
"ele brem fraction, mode", 100, 0., 1.);
1238 new TProfile(
"h_ele_fbremvsEtamode",
"mean ele brem fraction vs eta, mode",
nbineta2D,
etamin,
etamax, 0., 1.);
1240 new TProfile(
"h_ele_fbremvsEtamean",
"mean ele brem fraction vs eta, mean",
nbineta2D,
etamin,
etamax, 0., 1.);
1243 h_ele_mva =
new TH1F(
"h_ele_mva",
"ele identification mva", 100, -1., 1.);
1244 h_ele_provenance =
new TH1F(
"h_ele_provenance",
"ele provenance", 5, -2., 3.);
1259 h_ele_chi2->GetXaxis()->SetTitle(
"#Chi^{2}");
1267 h_ele_Et->GetXaxis()->SetTitle(
"E_{T} (GeV)");
1268 h_ele_Et->GetYaxis()->SetTitle(
"Events");
1313 h_ele_PinMnPout->GetXaxis()->SetTitle(
"P_{vertex} - P_{out} (GeV/c)");
1325 h_ele_EoP->GetXaxis()->SetTitle(
"E/P_{vertex}");
1326 h_ele_EoP->GetYaxis()->SetTitle(
"Events");
1329 h_ele_EoPout->GetXaxis()->SetTitle(
"E_{seed}/P_{out}");
1360 h_ele_HoE->GetYaxis()->SetTitle(
"Events");
1363 h_ele_fbrem->GetXaxis()->SetTitle(
"P_{in} - P_{out} / P_{in}");
1375 h_ele_mee_os->GetXaxis()->SetTitle(
"m_{e^{+}e^{-}} (GeV/c^{2})");
1393 histNum_->GetXaxis()->SetTitle(
"N_{ele}");
1394 histNum_->GetYaxis()->SetTitle(
"Events");
1401 std::cout <<
"efficiency calculation " << std::endl;
1404 h_ele_etaEff->Reset();
1406 h_ele_etaEff->Print();
1407 h_ele_etaEff->GetXaxis()->SetTitle(
"#eta");
1408 h_ele_etaEff->GetYaxis()->SetTitle(
"Efficiency");
1412 h_ele_zEff->Reset();
1414 h_ele_zEff->Print();
1415 h_ele_zEff->GetXaxis()->SetTitle(
"z (cm)");
1416 h_ele_zEff->GetYaxis()->SetTitle(
"Efficiency");
1420 h_ele_absetaEff->Reset();
1422 h_ele_absetaEff->GetXaxis()->SetTitle(
"|#eta|");
1423 h_ele_absetaEff->GetYaxis()->SetTitle(
"Efficiency");
1427 h_ele_ptEff->Reset();
1429 h_ele_ptEff->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
1430 h_ele_ptEff->GetYaxis()->SetTitle(
"Efficiency");
1434 h_ele_phiEff->Reset();
1436 h_ele_phiEff->GetXaxis()->SetTitle(
"#phi (rad)");
1437 h_ele_phiEff->GetYaxis()->SetTitle(
"Efficiency");
1440 TH1F *h_ele_eta_goldenFrac = (TH1F *)
h_ele_eta_golden->Clone(
"h_ele_eta_goldenFrac");
1441 h_ele_eta_goldenFrac->Reset();
1443 h_ele_eta_goldenFrac->GetXaxis()->SetTitle(
"|#eta|");
1444 h_ele_eta_goldenFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
1445 h_ele_eta_goldenFrac->SetTitle(
"fraction of golden electrons vs eta");
1446 TH1F *h_ele_eta_bbremFrac = (TH1F *)
h_ele_eta_bbrem->Clone(
"h_ele_eta_bbremFrac");
1447 h_ele_eta_bbremFrac->Reset();
1449 h_ele_eta_bbremFrac->GetXaxis()->SetTitle(
"|#eta|");
1450 h_ele_eta_bbremFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
1451 h_ele_eta_bbremFrac->SetTitle(
"fraction of big brem electrons vs eta");
1452 TH1F *h_ele_eta_narrowFrac = (TH1F *)
h_ele_eta_narrow->Clone(
"h_ele_eta_narrowFrac");
1453 h_ele_eta_narrowFrac->Reset();
1455 h_ele_eta_narrowFrac->GetXaxis()->SetTitle(
"|#eta|");
1456 h_ele_eta_narrowFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
1457 h_ele_eta_narrowFrac->SetTitle(
"fraction of narrow electrons vs eta");
1458 TH1F *h_ele_eta_showerFrac = (TH1F *)
h_ele_eta_shower->Clone(
"h_ele_eta_showerFrac");
1459 h_ele_eta_showerFrac->Reset();
1461 h_ele_eta_showerFrac->GetXaxis()->SetTitle(
"|#eta|");
1462 h_ele_eta_showerFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
1463 h_ele_eta_showerFrac->SetTitle(
"fraction of showering electrons vs eta");
1466 TH1F *h_ele_xOverX0VsEta =
new TH1F(
"h_ele_xOverx0VsEta",
"mean X/X_0 vs eta",
nbineta / 2, 0.0, 2.5);
1468 double xOverX0 = 0.;
1471 h_ele_xOverX0VsEta->SetBinContent(ibin, xOverX0);
1476 p_ele_PoPmatchingObjectVsEta_matched->SetTitle(
"mean ele momentum / matching SC energy vs eta");
1477 p_ele_PoPmatchingObjectVsEta_matched->GetXaxis()->SetTitle(
"#eta");
1478 p_ele_PoPmatchingObjectVsEta_matched->GetYaxis()->SetTitle(
"<P/E_{matching SC}>");
1479 p_ele_PoPmatchingObjectVsEta_matched->Write();
1481 p_ele_PoPmatchingObjectVsPhi_matched->SetTitle(
"mean ele momentum / gen momentum vs phi");
1482 p_ele_PoPmatchingObjectVsPhi_matched->GetXaxis()->SetTitle(
"#phi (rad)");
1483 p_ele_PoPmatchingObjectVsPhi_matched->GetYaxis()->SetTitle(
"<P/E_{matching SC}>");
1484 p_ele_PoPmatchingObjectVsPhi_matched->Write();
1486 p_ele_EtaMnEtamatchingObjectVsEta_matched->GetXaxis()->SetTitle(
"#eta");
1487 p_ele_EtaMnEtamatchingObjectVsEta_matched->GetYaxis()->SetTitle(
"<#eta_{rec} - #eta_{matching SC}>");
1488 p_ele_EtaMnEtamatchingObjectVsEta_matched->Write();
1490 p_ele_EtaMnEtamatchingObjectVsPhi_matched->GetXaxis()->SetTitle(
"#phi");
1491 p_ele_EtaMnEtamatchingObjectVsPhi_matched->GetYaxis()->SetTitle(
"<#eta_{rec} - #eta_{matching SC}>");
1492 p_ele_EtaMnEtamatchingObjectVsPhi_matched->Write();
1494 p_ele_PhiMnPhimatchingObjectVsEta_matched->GetXaxis()->SetTitle(
"#eta");
1495 p_ele_PhiMnPhimatchingObjectVsEta_matched->GetYaxis()->SetTitle(
"<#phi_{rec} - #phi_{matching SC}> (rad)");
1496 p_ele_PhiMnPhimatchingObjectVsEta_matched->Write();
1498 p_ele_PhiMnPhimatchingObjectVsPhi_matched->GetXaxis()->SetTitle(
"#phi");
1499 p_ele_PhiMnPhimatchingObjectVsPhi_matched->GetYaxis()->SetTitle(
"<#phi_{rec} - #phi_{matching SC}> (rad)");
1500 p_ele_PhiMnPhimatchingObjectVsPhi_matched->Write();
1502 p_ele_vertexPtVsEta->GetXaxis()->SetTitle(
"#eta");
1503 p_ele_vertexPtVsEta->GetYaxis()->SetTitle(
"<p_{T}> (GeV/c)");
1504 p_ele_vertexPtVsEta->Write();
1506 p_ele_vertexPtVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1507 p_ele_vertexPtVsPhi->GetYaxis()->SetTitle(
"<p_{T}> (GeV/c)");
1508 p_ele_vertexPtVsPhi->Write();
1510 p_ele_EoPVsEta->GetXaxis()->SetTitle(
"#eta");
1511 p_ele_EoPVsEta->GetYaxis()->SetTitle(
"<E/P_{vertex}>");
1512 p_ele_EoPVsEta->Write();
1514 p_ele_EoPVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1515 p_ele_EoPVsPhi->GetYaxis()->SetTitle(
"<E/P_{vertex}>");
1516 p_ele_EoPVsPhi->Write();
1518 p_ele_EoPoutVsEta->GetXaxis()->SetTitle(
"#eta");
1519 p_ele_EoPoutVsEta->GetYaxis()->SetTitle(
"<E_{seed}/P_{out}>");
1520 p_ele_EoPoutVsEta->Write();
1522 p_ele_EoPoutVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1523 p_ele_EoPoutVsPhi->GetYaxis()->SetTitle(
"<E_{seed}/P_{out}>");
1524 p_ele_EoPoutVsPhi->Write();
1526 p_ele_EeleOPoutVsEta->SetTitle(
"mean ele Eele/pout vs eta");
1527 p_ele_EeleOPoutVsEta->GetXaxis()->SetTitle(
"#eta");
1528 p_ele_EeleOPoutVsEta->GetYaxis()->SetTitle(
"<E_{ele}/P_{out}>");
1529 p_ele_EeleOPoutVsEta->Write();
1531 p_ele_EeleOPoutVsPhi->SetTitle(
"mean ele Eele/pout vs phi");
1532 p_ele_EeleOPoutVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1533 p_ele_EeleOPoutVsPhi->GetYaxis()->SetTitle(
"<E_{ele}/P_{out}>");
1534 p_ele_EeleOPoutVsPhi->Write();
1536 p_ele_HoEVsEta->GetXaxis()->SetTitle(
"#eta");
1537 p_ele_HoEVsEta->GetYaxis()->SetTitle(
"<H/E>");
1538 p_ele_HoEVsEta->Write();
1540 p_ele_HoEVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1541 p_ele_HoEVsPhi->GetYaxis()->SetTitle(
"<H/E>");
1542 p_ele_HoEVsPhi->Write();
1544 p_ele_chi2VsEta->GetXaxis()->SetTitle(
"#eta");
1545 p_ele_chi2VsEta->GetYaxis()->SetTitle(
"<#Chi^{2}>");
1546 p_ele_chi2VsEta->Write();
1548 p_ele_chi2VsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1549 p_ele_chi2VsPhi->GetYaxis()->SetTitle(
"<#Chi^{2}>");
1550 p_ele_chi2VsPhi->Write();
1552 p_ele_foundHitsVsEta->GetXaxis()->SetTitle(
"#eta");
1553 p_ele_foundHitsVsEta->GetYaxis()->SetTitle(
"<N_{hits}>");
1554 p_ele_foundHitsVsEta->Write();
1556 p_ele_foundHitsVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1557 p_ele_foundHitsVsPhi->GetYaxis()->SetTitle(
"<N_{hits}>");
1558 p_ele_foundHitsVsPhi->Write();
1560 p_ele_lostHitsVsEta->GetXaxis()->SetTitle(
"#eta");
1561 p_ele_lostHitsVsEta->GetYaxis()->SetTitle(
"<N_{hits}>");
1562 p_ele_lostHitsVsEta->Write();
1564 p_ele_lostHitsVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
1565 p_ele_lostHitsVsPhi->GetYaxis()->SetTitle(
"<N_{hits}>");
1566 p_ele_lostHitsVsPhi->Write();
1568 p_ele_vertexTIPVsEta->SetTitle(
"mean tip (wrt gen vtx) vs eta");
1569 p_ele_vertexTIPVsEta->GetXaxis()->SetTitle(
"#eta");
1570 p_ele_vertexTIPVsEta->GetYaxis()->SetTitle(
"<TIP> (cm)");
1571 p_ele_vertexTIPVsEta->Write();
1573 p_ele_vertexTIPVsPhi->SetTitle(
"mean tip (wrt gen vtx) vs phi");
1574 p_ele_vertexTIPVsPhi->GetXaxis()->SetTitle(
"#phi");
1575 p_ele_vertexTIPVsPhi->GetYaxis()->SetTitle(
"<TIP> (cm)");
1576 p_ele_vertexTIPVsPhi->Write();
1578 p_ele_vertexTIPVsPt->SetTitle(
"mean tip (wrt gen vtx) vs phi");
1579 p_ele_vertexTIPVsPt->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
1580 p_ele_vertexTIPVsPt->GetYaxis()->SetTitle(
"<TIP> (cm)");
1581 p_ele_vertexTIPVsPt->Write();
1762 p_ele_seed_dphi2VsEta_->SetTitle(
"mean ele seed dphi 2nd layer vs eta");
1763 p_ele_seed_dphi2VsEta_->GetXaxis()->SetTitle(
"#eta");
1764 p_ele_seed_dphi2VsEta_->GetYaxis()->SetTitle(
"<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)");
1765 p_ele_seed_dphi2VsEta_->SetMinimum(-0.004);
1766 p_ele_seed_dphi2VsEta_->SetMaximum(0.004);
1767 p_ele_seed_dphi2VsEta_->Write();
1769 p_ele_seed_dphi2VsPt_->SetTitle(
"mean ele seed dphi 2nd layer vs pt");
1770 p_ele_seed_dphi2VsPt_->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
1771 p_ele_seed_dphi2VsPt_->GetYaxis()->SetTitle(
"<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)");
1772 p_ele_seed_dphi2VsPt_->Write();
1773 p_ele_seed_dphi2VsPt_->SetMinimum(-0.004);
1774 p_ele_seed_dphi2VsPt_->SetMaximum(0.004);
1777 p_ele_seed_drz2VsEta_->SetTitle(
"mean ele seed dr(dz) 2nd layer vs eta");
1778 p_ele_seed_drz2VsEta_->GetXaxis()->SetTitle(
"#eta");
1779 p_ele_seed_drz2VsEta_->GetYaxis()->SetTitle(
"<r(z)_{pred} - r(z)_{hit}, 2nd layer> (cm)");
1780 p_ele_seed_drz2VsEta_->SetMinimum(-0.15);
1781 p_ele_seed_drz2VsEta_->SetMaximum(0.15);
1782 p_ele_seed_drz2VsEta_->Write();
1784 p_ele_seed_drz2VsPt_->SetTitle(
"mean ele seed dr(dz) 2nd layer vs pt");
1785 p_ele_seed_drz2VsPt_->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
1786 p_ele_seed_drz2VsPt_->GetYaxis()->SetTitle(
"<r(z)_{pred} - r(z)_{hit}, 2nd layer> (cm)");
1787 p_ele_seed_drz2VsPt_->SetMinimum(-0.15);
1788 p_ele_seed_drz2VsPt_->SetMaximum(0.15);
1789 p_ele_seed_drz2VsPt_->Write();
1815 h_ele_etaEff->Write();
1816 h_ele_zEff->Write();
1817 h_ele_phiEff->Write();
1818 h_ele_absetaEff->Write();
1819 h_ele_ptEff->Write();
1820 h_ele_eta_goldenFrac->Write();
1821 h_ele_eta_bbremFrac->Write();
1822 h_ele_eta_narrowFrac->Write();
1823 h_ele_eta_showerFrac->Write();
1824 h_ele_xOverX0VsEta->Write();
1858 std::cout <<
"analyzing new event " << std::endl;
1865 std::cout <<
"new event passing trigger " << std::endl;
1871 edm::LogInfo(
"") <<
"\n\n =================> Treating event " <<
iEvent.id() <<
" Number of electrons "
1883 histNum_->Fill((*gsfElectrons).size());
1889 if (gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta()) <
minEt_)
1893 if (gsfIter->pt() <
minPt_)
1896 if (gsfIter->isEB() &&
isEE_)
1898 if (gsfIter->isEE() &&
isEB_)
1944 if (gsfIter->mva_e_pi() <
mvaMin_)
1947 double d = (gsfIter->vertex().x() -
bs.position().x()) * (gsfIter->vertex().x() -
bs.position().x()) +
1948 (gsfIter->vertex().y() -
bs.position().y()) * (gsfIter->vertex().y() -
bs.position().y());
1975 h_ele_Et->Fill(gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta()));
1992 if (!gsfIter->ecalDrivenSeed() && gsfIter->trackerDrivenSeed())
1993 sclRef = gsfIter->parentSuperCluster();
1995 double R =
std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z());
1996 double Rt =
std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y());
2004 if (gsfIter->isEB())
2006 if (gsfIter->isEE())
2009 if (gsfIter->isEB())
2011 if (gsfIter->isEE())
2014 if (gsfIter->isEB())
2016 if (gsfIter->isEE())
2019 if (gsfIter->isEB())
2021 if (gsfIter->isEE())
2038 h_ele_chi2->Fill(gsfIter->gsfTrack()->normalizedChi2());
2039 h_ele_chi2VsEta->Fill(gsfIter->eta(), gsfIter->gsfTrack()->normalizedChi2());
2040 h_ele_chi2VsPhi->Fill(gsfIter->phi(), gsfIter->gsfTrack()->normalizedChi2());
2041 h_ele_chi2VsPt->Fill(gsfIter->pt(), gsfIter->gsfTrack()->normalizedChi2());
2045 h_ele_PinMnPout->Fill(gsfIter->gsfTrack()->innerMomentum().R() - gsfIter->gsfTrack()->outerMomentum().R());
2046 h_ele_outerP->Fill(gsfIter->gsfTrack()->outerMomentum().R());
2047 h_ele_outerPt->Fill(gsfIter->gsfTrack()->outerMomentum().Rho());
2050 h_ele_PinMnPout_mode->Fill(gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R());
2052 gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R());
2054 gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R());
2055 h_ele_PinMnPoutVsPt_mode->Fill(gsfIter->pt(), gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R());
2057 gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R());
2060 gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R());
2080 h_ele_EoP->Fill(gsfIter->eSuperClusterOverP());
2081 h_ele_EoPVsEta->Fill(gsfIter->eta(), gsfIter->eSuperClusterOverP());
2082 h_ele_EoPVsPhi->Fill(gsfIter->phi(), gsfIter->eSuperClusterOverP());
2083 h_ele_EoPVsE->Fill(gsfIter->caloEnergy(), gsfIter->eSuperClusterOverP());
2087 h_ele_EseedOPVsE->Fill(gsfIter->caloEnergy(), gsfIter->eSeedClusterOverP());
2091 h_ele_EoPoutVsE->Fill(gsfIter->caloEnergy(), gsfIter->eSeedClusterOverPout());
2120 h_ele_HoE->Fill(gsfIter->hadronicOverEm());
2121 if (!gsfIter->isEBEtaGap() && !gsfIter->isEBPhiGap() && !gsfIter->isEBEEGap() && !gsfIter->isEERingGap() &&
2122 !gsfIter->isEEDeeGap())
2126 h_ele_HoEVsE->Fill(gsfIter->caloEnergy(), gsfIter->hadronicOverEm());
2129 int eleClass = gsfIter->classification();
2130 if (gsfIter->isEE())
2135 if (gsfIter->classification() == GsfElectron::GOLDEN)
2137 if (gsfIter->classification() == GsfElectron::BIGBREM)
2140 if (gsfIter->classification() == GsfElectron::SHOWERING)
2144 double fbrem_mean = 0.;
2146 fbrem_mean = 1. - gsfIter->gsfTrack()->outerMomentum().R() / gsfIter->gsfTrack()->innerMomentum().R();
2147 double fbrem_mode = gsfIter->fbrem();
2153 if (gsfIter->classification() == GsfElectron::GOLDEN)
2155 if (gsfIter->classification() == GsfElectron::SHOWERING)
2158 if (gsfIter->classification() == GsfElectron::GOLDEN)
2160 gsfIter->gsfTrack()->innerMomentum().R());
2162 if (gsfIter->classification() == GsfElectron::SHOWERING)
2164 gsfIter->gsfTrack()->innerMomentum().R());
2165 if (gsfIter->classification() == GsfElectron::GOLDEN)
2167 if (gsfIter->classification() == GsfElectron::SHOWERING)
2170 if (gsfIter->classification() == GsfElectron::GOLDEN)
2172 gsfIter->gsfTrack()->innerMomentum().Rho());
2174 if (gsfIter->classification() == GsfElectron::SHOWERING)
2176 gsfIter->gsfTrack()->innerMomentum().Rho());
2179 if (gsfIter->ecalDrivenSeed())
2181 if (gsfIter->trackerDrivenSeed())
2183 if (gsfIter->trackerDrivenSeed() || gsfIter->ecalDrivenSeed())
2185 if (gsfIter->trackerDrivenSeed() && !gsfIter->ecalDrivenSeed())
2187 if (!gsfIter->trackerDrivenSeed() && gsfIter->ecalDrivenSeed())
2199 float enrj1 = gsfIter->superCluster()->energy();
2201 for (reco::GsfElectronCollection::const_iterator gsfIter2 = gsfIter + 1; gsfIter2 !=
gsfElectrons->end();
2204 float mee2 = p12.Dot(p12);
2205 float enrj2 = gsfIter2->superCluster()->energy();
2208 if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed())
2210 if (gsfIter->charge() * gsfIter2->charge() < 0.) {
2212 if (gsfIter->isEB() && gsfIter2->isEB())
2214 if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB()))
2216 if (gsfIter->isEE() && gsfIter2->isEE())
2218 if ((gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::GOLDEN) ||
2219 (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::BIGBREM) ||
2221 (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::GOLDEN) ||
2222 (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::BIGBREM)
2229 }
else if ((gsfIter->classification() == GsfElectron::SHOWERING &&
2230 gsfIter2->classification() == GsfElectron::SHOWERING) ||
2231 (gsfIter->classification() == GsfElectron::SHOWERING && gsfIter2->isGap()) ||
2232 (gsfIter->isGap() && gsfIter2->classification() == GsfElectron::SHOWERING) ||
2233 (gsfIter->isGap() && gsfIter2->isGap())) {
2243 int matchingObjectNum = 0;
2245 for (reco::SuperClusterCollection::const_iterator moIter = recoClusters->begin(); moIter != recoClusters->end();
2248 matchingObjectNum++;
2267 bool okGsfFound =
false;
2268 double gsfOkRatio = 999999.;
2276 double dphi = gsfIter->
phi() - moIter->phi();
2278 dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
2283 double tmpGsfRatio = gsfIter->p() / moIter->energy();
2285 gsfOkRatio = tmpGsfRatio;
2286 bestGsfElectron = *gsfIter;
2318 if (bestGsfElectron.
isEB())
2320 if (bestGsfElectron.
isEE())
2322 if (bestGsfElectron.
isEB())
2324 if (bestGsfElectron.
isEE())
2328 if (bestGsfElectron.
isEB())
2330 if (bestGsfElectron.
isEE())
2332 if (bestGsfElectron.
isEB())
2334 if (bestGsfElectron.
isEE())
2366 for (
unsigned int i = 0;
i !=
n;
i++) {
2375 for (
unsigned int i = 0;
i !=
n;
i++) {
2383 std::cout <<
"HLT trigger paths requested: index, name and valididty:" << std::endl;
2384 for (
unsigned int i = 0;
i !=
n;
i++) {
2392 unsigned int fired = 0;
2393 for (
unsigned int i = 0;
i !=
n;
i++) {