45 #include "CLHEP/Units/GlobalPhysicalConstants.h"
59 beamSpot_(conf.getParameter<edm::InputTag>(
"beamSpot"))
70 assert (matchingCondition_ ==
"Cone");
118 etamin=pset.getParameter<
double>(
"Etamin");
119 etamax=pset.getParameter<
double>(
"Etamax");
120 phimin=pset.getParameter<
double>(
"Phimin");
121 phimax=pset.getParameter<
double>(
"Phimax");
122 ptmax=pset.getParameter<
double>(
"Ptmax");
123 pmax=pset.getParameter<
double>(
"Pmax");
124 eopmax=pset.getParameter<
double>(
"Eopmax");
125 eopmaxsht=pset.getParameter<
double>(
"Eopmaxsht");
126 detamin=pset.getParameter<
double>(
"Detamin");
127 detamax=pset.getParameter<
double>(
"Detamax");
128 dphimin=pset.getParameter<
double>(
"Dphimin");
129 dphimax=pset.getParameter<
double>(
"Dphimax");
134 fhitsmax=pset.getParameter<
double>(
"Fhitsmax");
135 lhitsmax=pset.getParameter<
double>(
"Lhitsmax");
136 nbineta=pset.getParameter<
int>(
"Nbineta");
137 nbineta2D=pset.getParameter<
int>(
"Nbineta2D");
138 nbinp=pset.getParameter<
int>(
"Nbinp");
139 nbinpt=pset.getParameter<
int>(
"Nbinpt");
140 nbinp2D=pset.getParameter<
int>(
"Nbinp2D");
141 nbinpt2D=pset.getParameter<
int>(
"Nbinpt2D");
142 nbinpteff=pset.getParameter<
int>(
"Nbinpteff");
143 nbinphi=pset.getParameter<
int>(
"Nbinphi");
144 nbinphi2D=pset.getParameter<
int>(
"Nbinphi2D");
145 nbineop=pset.getParameter<
int>(
"Nbineop");
146 nbineop2D=pset.getParameter<
int>(
"Nbineop2D");
147 nbinfhits=pset.getParameter<
int>(
"Nbinfhits");
148 nbinlhits=pset.getParameter<
int>(
"Nbinlhits");
149 nbinxyz=pset.getParameter<
int>(
"Nbinxyz");
150 nbindeta=pset.getParameter<
int>(
"Nbindeta");
151 nbindphi=pset.getParameter<
int>(
"Nbindphi");
156 nbinpoptrue= pset.getParameter<
int>(
"Nbinpoptrue");
157 poptruemin=pset.getParameter<
double>(
"Poptruemin");
158 poptruemax=pset.getParameter<
double>(
"Poptruemax");
159 nbinmee= pset.getParameter<
int>(
"Nbinmee");
160 meemin=pset.getParameter<
double>(
"Meemin");
161 meemax=pset.getParameter<
double>(
"Meemax");
162 nbinhoe= pset.getParameter<
int>(
"Nbinhoe");
163 hoemin=pset.getParameter<
double>(
"Hoemin");
164 hoemax=pset.getParameter<
double>(
"Hoemax");
187 if ( locSC != std::string::npos ) {
188 std::cout <<
"Matching objects are SuperClusters "<< std::endl;
191 std::cout <<
"Didn't recognize input matching objects!! " << std::endl;
195 hlabel=
"h_"+type_+
"Num"; htitle=
"# "+type_+
"s";
200 histNum_=
new TH1F(
"h_recEleNum",
"# rec electrons",20, 0.,20.);
203 hlabel=
"h_"+type_+
"_eta"; htitle=type_+
" #eta";
205 hlabel=
"h_"+type_+
"_abseta"; htitle=type_+
" |#eta|";
207 hlabel=
"h_"+type_+
"_P"; htitle=type_+
" p";
209 hlabel=
"h_"+type_+
"_Pt"; htitle=type_+
" pt";
211 hlabel=
"h_"+type_+
"_phi"; htitle=type_+
" phi";
213 hlabel=
"h_"+type_+
"_z"; htitle=type_+
" z";
237 h_ele_charge =
new TH1F(
"h_ele_charge",
"ele charge", 5,-2.,2.);
262 h_ele_vertexTIP =
new TH1F(
"h_ele_vertexTIP",
"ele transverse impact parameter (wrt bs)", 90,0.,0.15);
298 histSclSigEtaEta_ =
new TH1F(
"h_scl_sigetaeta",
"ele supercluster sigma eta eta",100,0.,0.05);
320 h_ele_lostHits =
new TH1F(
"h_ele_lostHits",
"ele track # lost hits", 5,0.,5.);
324 h_ele_chi2 =
new TH1F(
"h_ele_chi2",
"ele track #chi^{2}", 100,0.,15.);
328 h_ele_PinMnPout =
new TH1F(
"h_ele_PinMnPout",
"ele track inner p - outer p, mean" ,
nbinp,0.,200.);
348 h_ele_EoPVsE =
new TH2F(
"h_ele_EoPVsE",
"ele E/P_{vertex} vs E", 50,0.,
pmax ,50,0.,5.);
352 h_ele_EseedOPVsE =
new TH2F(
"h_ele_EseedOPVsE",
"ele E_{seed}/P_{vertex} vs E", 50,0.,
pmax ,50,0.,5.);
392 h_ele_seed_dphi2_ =
new TH1F(
"h_ele_seedDphi2",
"ele seed dphi 2nd layer", 50,-0.003,+0.003) ;
395 h_ele_seed_drz2_ =
new TH1F(
"h_ele_seedDrz2",
"ele seed dr/dz 2nd layer", 50,-0.03,+0.03) ;
398 h_ele_seed_subdet2_ =
new TH1F(
"h_ele_seedSubdet2",
"ele seed subdet 2nd layer", 10,0.,10.) ;
401 h_ele_classes =
new TH1F(
"h_ele_classes",
"electron classes", 20,0.0,20.);
421 h_ele_tkSumPt_dr03 =
new TH1F(
"h_ele_tkSumPt_dr03",
"tk isolation sum, dR=0.3",100,0.0,20.);
431 h_ele_fbrem =
new TH1F(
"h_ele_fbrem",
"ele brem fraction, mode",100,0.,1.);
436 h_ele_mva =
new TH1F(
"h_ele_mva",
"ele identification mva",100,-1.,1.);
452 h_ele_chi2 -> GetXaxis()-> SetTitle(
"#Chi^{2}");
453 h_ele_chi2 -> GetYaxis()-> SetTitle(
"Events");
456 h_ele_vertexP -> GetXaxis()-> SetTitle(
"p_{vertex} (GeV/c)");
460 h_ele_Et -> GetXaxis()-> SetTitle(
"E_{T} (GeV)");
461 h_ele_Et -> GetYaxis()-> SetTitle(
"Events");
506 h_ele_PinMnPout -> GetXaxis()-> SetTitle(
"P_{vertex} - P_{out} (GeV/c)");
510 h_ele_outerP -> GetXaxis()-> SetTitle(
"P_{out} (GeV/c)");
518 h_ele_EoP -> GetXaxis()-> SetTitle(
"E/P_{vertex}");
519 h_ele_EoP -> GetYaxis()-> SetTitle(
"Events");
520 h_ele_EseedOP -> GetXaxis()-> SetTitle(
"E_{seed}/P_{vertex}");
522 h_ele_EoPout -> GetXaxis()-> SetTitle(
"E_{seed}/P_{out}");
552 h_ele_HoE-> GetXaxis()-> SetTitle(
"H/E") ;
553 h_ele_HoE-> GetYaxis()-> SetTitle(
"Events") ;
556 h_ele_fbrem-> GetXaxis()-> SetTitle(
"P_{in} - P_{out} / P_{in}");
566 h_ele_mee_all-> GetXaxis()-> SetTitle(
"m_{ee} (GeV/c^{2})");
567 h_ele_mee_all-> GetYaxis()-> SetTitle(
"Events");
568 h_ele_mee_os-> GetXaxis()-> SetTitle(
"m_{e^{+}e^{-}} (GeV/c^{2})");
586 histNum_-> GetXaxis()-> SetTitle(
"N_{ele}");
587 histNum_-> GetYaxis()-> SetTitle(
"Events");
597 std::cout <<
"efficiency calculation " << std::endl;
600 h_ele_etaEff->Reset();
602 h_ele_etaEff->Print();
603 h_ele_etaEff->GetXaxis()->SetTitle(
"#eta");
604 h_ele_etaEff->GetYaxis()->SetTitle(
"Efficiency");
611 h_ele_zEff->GetXaxis()->SetTitle(
"z (cm)");
612 h_ele_zEff->GetYaxis()->SetTitle(
"Efficiency");
616 h_ele_absetaEff->Reset();
618 h_ele_absetaEff->GetXaxis()->SetTitle(
"|#eta|");
619 h_ele_absetaEff->GetYaxis()->SetTitle(
"Efficiency");
623 h_ele_ptEff->Reset();
625 h_ele_ptEff->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
626 h_ele_ptEff->GetYaxis()->SetTitle(
"Efficiency");
630 h_ele_phiEff->Reset();
632 h_ele_phiEff->GetXaxis()->SetTitle(
"#phi (rad)");
633 h_ele_phiEff->GetYaxis()->SetTitle(
"Efficiency");
636 TH1F *h_ele_eta_goldenFrac = (TH1F*)
h_ele_eta_golden->Clone(
"h_ele_eta_goldenFrac");
637 h_ele_eta_goldenFrac->Reset();
639 h_ele_eta_goldenFrac->GetXaxis()->SetTitle(
"|#eta|");
640 h_ele_eta_goldenFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
641 h_ele_eta_goldenFrac->SetTitle(
"fraction of golden electrons vs eta");
642 TH1F *h_ele_eta_bbremFrac = (TH1F*)
h_ele_eta_bbrem->Clone(
"h_ele_eta_bbremFrac");
643 h_ele_eta_bbremFrac->Reset();
645 h_ele_eta_bbremFrac->GetXaxis()->SetTitle(
"|#eta|");
646 h_ele_eta_bbremFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
647 h_ele_eta_bbremFrac->SetTitle(
"fraction of big brem electrons vs eta");
648 TH1F *h_ele_eta_narrowFrac = (TH1F*)
h_ele_eta_narrow->Clone(
"h_ele_eta_narrowFrac");
649 h_ele_eta_narrowFrac->Reset();
651 h_ele_eta_narrowFrac->GetXaxis()->SetTitle(
"|#eta|");
652 h_ele_eta_narrowFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
653 h_ele_eta_narrowFrac->SetTitle(
"fraction of narrow electrons vs eta");
654 TH1F *h_ele_eta_showerFrac = (TH1F*)
h_ele_eta_shower->Clone(
"h_ele_eta_showerFrac");
655 h_ele_eta_showerFrac->Reset();
657 h_ele_eta_showerFrac->GetXaxis()->SetTitle(
"|#eta|");
658 h_ele_eta_showerFrac->GetYaxis()->SetTitle(
"Fraction of electrons");
659 h_ele_eta_showerFrac->SetTitle(
"fraction of showering electrons vs eta");
662 TH1F *h_ele_xOverX0VsEta =
new TH1F(
"h_ele_xOverx0VsEta",
"mean X/X_0 vs eta",
nbineta/2,0.0,2.5);
666 h_ele_xOverX0VsEta->SetBinContent(ibin,xOverX0);
671 p_ele_PoPmatchingObjectVsEta_matched->SetTitle(
"mean ele momentum / matching SC energy vs eta");
672 p_ele_PoPmatchingObjectVsEta_matched->GetXaxis()->SetTitle(
"#eta");
673 p_ele_PoPmatchingObjectVsEta_matched->GetYaxis()->SetTitle(
"<P/E_{matching SC}>");
674 p_ele_PoPmatchingObjectVsEta_matched->Write();
676 p_ele_PoPmatchingObjectVsPhi_matched->SetTitle(
"mean ele momentum / gen momentum vs phi");
677 p_ele_PoPmatchingObjectVsPhi_matched->GetXaxis()->SetTitle(
"#phi (rad)");
678 p_ele_PoPmatchingObjectVsPhi_matched->GetYaxis()->SetTitle(
"<P/E_{matching SC}>");
679 p_ele_PoPmatchingObjectVsPhi_matched->Write();
681 p_ele_EtaMnEtamatchingObjectVsEta_matched->GetXaxis()->SetTitle(
"#eta");
682 p_ele_EtaMnEtamatchingObjectVsEta_matched->GetYaxis()->SetTitle(
"<#eta_{rec} - #eta_{matching SC}>");
683 p_ele_EtaMnEtamatchingObjectVsEta_matched->Write();
685 p_ele_EtaMnEtamatchingObjectVsPhi_matched-> GetXaxis()-> SetTitle(
"#phi");
686 p_ele_EtaMnEtamatchingObjectVsPhi_matched-> GetYaxis()-> SetTitle(
"<#eta_{rec} - #eta_{matching SC}>");
687 p_ele_EtaMnEtamatchingObjectVsPhi_matched->Write();
689 p_ele_PhiMnPhimatchingObjectVsEta_matched-> GetXaxis()-> SetTitle(
"#eta");
690 p_ele_PhiMnPhimatchingObjectVsEta_matched-> GetYaxis()-> SetTitle(
"<#phi_{rec} - #phi_{matching SC}> (rad)");
691 p_ele_PhiMnPhimatchingObjectVsEta_matched->Write();
693 p_ele_PhiMnPhimatchingObjectVsPhi_matched-> GetXaxis()-> SetTitle(
"#phi");
694 p_ele_PhiMnPhimatchingObjectVsPhi_matched-> GetYaxis()-> SetTitle(
"<#phi_{rec} - #phi_{matching SC}> (rad)");
695 p_ele_PhiMnPhimatchingObjectVsPhi_matched->Write();
697 p_ele_vertexPtVsEta->GetXaxis()->SetTitle(
"#eta");
698 p_ele_vertexPtVsEta->GetYaxis()->SetTitle(
"<p_{T}> (GeV/c)");
699 p_ele_vertexPtVsEta->Write();
701 p_ele_vertexPtVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
702 p_ele_vertexPtVsPhi->GetYaxis()->SetTitle(
"<p_{T}> (GeV/c)");
703 p_ele_vertexPtVsPhi->Write();
705 p_ele_EoPVsEta->GetXaxis()->SetTitle(
"#eta");
706 p_ele_EoPVsEta->GetYaxis()->SetTitle(
"<E/P_{vertex}>");
707 p_ele_EoPVsEta->Write();
709 p_ele_EoPVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
710 p_ele_EoPVsPhi->GetYaxis()->SetTitle(
"<E/P_{vertex}>");
711 p_ele_EoPVsPhi->Write();
713 p_ele_EoPoutVsEta->GetXaxis()->SetTitle(
"#eta");
714 p_ele_EoPoutVsEta->GetYaxis()->SetTitle(
"<E_{seed}/P_{out}>");
715 p_ele_EoPoutVsEta->Write();
717 p_ele_EoPoutVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
718 p_ele_EoPoutVsPhi->GetYaxis()->SetTitle(
"<E_{seed}/P_{out}>");
719 p_ele_EoPoutVsPhi->Write();
721 p_ele_EeleOPoutVsEta->SetTitle(
"mean ele Eele/pout vs eta");
722 p_ele_EeleOPoutVsEta->GetXaxis()->SetTitle(
"#eta");
723 p_ele_EeleOPoutVsEta->GetYaxis()->SetTitle(
"<E_{ele}/P_{out}>");
724 p_ele_EeleOPoutVsEta->Write();
726 p_ele_EeleOPoutVsPhi->SetTitle(
"mean ele Eele/pout vs phi");
727 p_ele_EeleOPoutVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
728 p_ele_EeleOPoutVsPhi->GetYaxis()->SetTitle(
"<E_{ele}/P_{out}>");
729 p_ele_EeleOPoutVsPhi->Write();
731 p_ele_HoEVsEta->GetXaxis()->SetTitle(
"#eta");
732 p_ele_HoEVsEta->GetYaxis()->SetTitle(
"<H/E>");
733 p_ele_HoEVsEta->Write();
735 p_ele_HoEVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
736 p_ele_HoEVsPhi->GetYaxis()->SetTitle(
"<H/E>");
737 p_ele_HoEVsPhi->Write();
739 p_ele_chi2VsEta->GetXaxis()->SetTitle(
"#eta");
740 p_ele_chi2VsEta->GetYaxis()->SetTitle(
"<#Chi^{2}>");
741 p_ele_chi2VsEta->Write();
743 p_ele_chi2VsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
744 p_ele_chi2VsPhi->GetYaxis()->SetTitle(
"<#Chi^{2}>");
745 p_ele_chi2VsPhi->Write();
747 p_ele_foundHitsVsEta->GetXaxis()->SetTitle(
"#eta");
748 p_ele_foundHitsVsEta->GetYaxis()->SetTitle(
"<N_{hits}>");
749 p_ele_foundHitsVsEta->Write();
751 p_ele_foundHitsVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
752 p_ele_foundHitsVsPhi->GetYaxis()->SetTitle(
"<N_{hits}>");
753 p_ele_foundHitsVsPhi->Write();
755 p_ele_lostHitsVsEta->GetXaxis()->SetTitle(
"#eta");
756 p_ele_lostHitsVsEta->GetYaxis()->SetTitle(
"<N_{hits}>");
757 p_ele_lostHitsVsEta->Write();
759 p_ele_lostHitsVsPhi->GetXaxis()->SetTitle(
"#phi (rad)");
760 p_ele_lostHitsVsPhi->GetYaxis()->SetTitle(
"<N_{hits}>");
761 p_ele_lostHitsVsPhi->Write();
763 p_ele_vertexTIPVsEta->SetTitle(
"mean tip (wrt gen vtx) vs eta");
764 p_ele_vertexTIPVsEta->GetXaxis()->SetTitle(
"#eta");
765 p_ele_vertexTIPVsEta->GetYaxis()->SetTitle(
"<TIP> (cm)");
766 p_ele_vertexTIPVsEta->Write();
768 p_ele_vertexTIPVsPhi->SetTitle(
"mean tip (wrt gen vtx) vs phi");
769 p_ele_vertexTIPVsPhi->GetXaxis()->SetTitle(
"#phi");
770 p_ele_vertexTIPVsPhi->GetYaxis()->SetTitle(
"<TIP> (cm)");
771 p_ele_vertexTIPVsPhi->Write();
773 p_ele_vertexTIPVsPt->SetTitle(
"mean tip (wrt gen vtx) vs phi");
774 p_ele_vertexTIPVsPt->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
775 p_ele_vertexTIPVsPt->GetYaxis()->SetTitle(
"<TIP> (cm)");
776 p_ele_vertexTIPVsPt->Write();
957 p_ele_seed_dphi2VsEta_->SetTitle(
"mean ele seed dphi 2nd layer vs eta");
958 p_ele_seed_dphi2VsEta_->GetXaxis()->SetTitle(
"#eta");
959 p_ele_seed_dphi2VsEta_->GetYaxis()->SetTitle(
"<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)");
960 p_ele_seed_dphi2VsEta_->SetMinimum(-0.004);
961 p_ele_seed_dphi2VsEta_->SetMaximum(0.004);
962 p_ele_seed_dphi2VsEta_->Write();
964 p_ele_seed_dphi2VsPt_->SetTitle(
"mean ele seed dphi 2nd layer vs pt");
965 p_ele_seed_dphi2VsPt_->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
966 p_ele_seed_dphi2VsPt_->GetYaxis()->SetTitle(
"<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)");
967 p_ele_seed_dphi2VsPt_->Write();
968 p_ele_seed_dphi2VsPt_->SetMinimum(-0.004);
969 p_ele_seed_dphi2VsPt_->SetMaximum(0.004);
972 p_ele_seed_drz2VsEta_->SetTitle(
"mean ele seed dr(dz) 2nd layer vs eta");
973 p_ele_seed_drz2VsEta_->GetXaxis()->SetTitle(
"#eta");
974 p_ele_seed_drz2VsEta_->GetYaxis()->SetTitle(
"<r(z)_{pred} - r(z)_{hit}, 2nd layer> (cm)");
975 p_ele_seed_drz2VsEta_->SetMinimum(-0.15);
976 p_ele_seed_drz2VsEta_->SetMaximum(0.15);
977 p_ele_seed_drz2VsEta_->Write();
979 p_ele_seed_drz2VsPt_->SetTitle(
"mean ele seed dr(dz) 2nd layer vs pt");
980 p_ele_seed_drz2VsPt_->GetXaxis()->SetTitle(
"p_{T} (GeV/c)");
981 p_ele_seed_drz2VsPt_->GetYaxis()->SetTitle(
"<r(z)_{pred} - r(z)_{hit}, 2nd layer> (cm)");
982 p_ele_seed_drz2VsPt_->SetMinimum(-0.15);
983 p_ele_seed_drz2VsPt_->SetMaximum(0.15);
984 p_ele_seed_drz2VsPt_->Write();
1010 h_ele_etaEff->Write();
1011 h_ele_zEff->Write();
1012 h_ele_phiEff->Write();
1013 h_ele_absetaEff->Write();
1014 h_ele_ptEff->Write();
1015 h_ele_eta_goldenFrac->Write();
1016 h_ele_eta_bbremFrac->Write();
1017 h_ele_eta_narrowFrac->Write();
1018 h_ele_eta_showerFrac->Write();
1019 h_ele_xOverX0VsEta->Write();
1058 std::cout <<
"analyzing new event " << std::endl;
1064 std::cout <<
"new event passing trigger " << std::endl;
1070 edm::LogInfo(
"")<<
"\n\n =================> Treating event "<<iEvent.
id()<<
" Number of electrons "<<gsfElectrons.
product()->size();
1079 const BeamSpot bs = *recoBeamSpotHandle;
1081 histNum_->Fill((*gsfElectrons).size());
1084 for (reco::GsfElectronCollection::const_iterator gsfIter=gsfElectrons->begin();
1085 gsfIter!=gsfElectrons->end(); gsfIter++){
1088 if (gsfIter->superCluster()->energy()/cosh(gsfIter->superCluster()->eta())<
minEt_)
continue;
1090 if (gsfIter->pt()<
minPt_)
continue;
1092 if (gsfIter->isEB() &&
isEE_)
continue;
1093 if (gsfIter->isEE() &&
isEB_)
continue;
1097 if (gsfIter->trackerDrivenSeed() &&
isEcalDriven_)
continue;
1099 if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() <
eOverPMinBarrel_)
continue;
1100 if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() >
eOverPMaxBarrel_)
continue;
1101 if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() <
eOverPMinEndcaps_)
continue;
1102 if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() >
eOverPMaxEndcaps_)
continue;
1117 if (gsfIter->mva() <
mvaMin_)
continue;
1119 double d = (gsfIter->vertex().x()-bs.
position().x())
1120 *(gsfIter->vertex().x()-bs.
position().x())+
1121 (gsfIter->vertex().y()-bs.
position().y())
1122 *(gsfIter->vertex().y()-bs.
position().y());
1127 if (gsfIter->dr03TkSumPt() >
tkIso03Max_)
continue;
1141 h_ele_Et ->
Fill( gsfIter->superCluster()->energy()/cosh( gsfIter->superCluster()->eta()) );
1158 if (!gsfIter->ecalDrivenSeed()&&gsfIter->trackerDrivenSeed()) sclRef = gsfIter->pflowSuperCluster();
1160 double R=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y() +sclRef->z()*sclRef->z());
1161 double Rt=TMath::Sqrt(sclRef->x()*sclRef->x() + sclRef->y()*sclRef->y());
1202 h_ele_PinMnPout ->
Fill( gsfIter->gsfTrack()->innerMomentum().R() - gsfIter->gsfTrack()->outerMomentum().R() );
1213 h_ele_PinMnPoutVsChi2_mode ->
Fill( gsfIter->gsfTrack()->normalizedChi2(), gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R() );
1236 h_ele_EoPVsE ->
Fill(gsfIter->caloEnergy(), gsfIter->eSuperClusterOverP() );
1274 if (!gsfIter->isEBEtaGap() && !gsfIter->isEBPhiGap()&& !gsfIter->isEBEEGap() &&
1275 !gsfIter->isEERingGap() && !gsfIter->isEEDeeGap())
h_ele_HoE_fiducial ->
Fill(gsfIter->hadronicOverEm());
1281 int eleClass = gsfIter->classification();
1282 if (gsfIter->isEE()) eleClass+=10;
1292 double fbrem_mean=0.;
1294 fbrem_mean = 1. - gsfIter->gsfTrack()->outerMomentum().R()/gsfIter->gsfTrack()->innerMomentum().R();
1295 double fbrem_mode = gsfIter->fbrem();
1301 if (gsfIter->classification() == GsfElectron::GOLDEN)
h_ele_PinVsPoutGolden_mode ->
Fill(gsfIter->trackMomentumOut().R(), gsfIter->trackMomentumAtVtx().R());
1302 if (gsfIter->classification() == GsfElectron::SHOWERING)
1305 if (gsfIter->classification() == GsfElectron::GOLDEN)
h_ele_PinVsPoutGolden_mean ->
Fill(gsfIter->gsfTrack()->outerMomentum().R(), gsfIter->gsfTrack()->innerMomentum().R());
1307 if (gsfIter->classification() == GsfElectron::SHOWERING)
1309 if (gsfIter->classification() == GsfElectron::GOLDEN)
h_ele_PtinVsPtoutGolden_mode ->
Fill(gsfIter->trackMomentumOut().Rho(), gsfIter->trackMomentumAtVtx().Rho());
1310 if (gsfIter->classification() == GsfElectron::SHOWERING)
1313 if (gsfIter->classification() == GsfElectron::GOLDEN)
h_ele_PtinVsPtoutGolden_mean ->
Fill(gsfIter->gsfTrack()->outerMomentum().Rho(), gsfIter->gsfTrack()->innerMomentum().Rho());
1315 if (gsfIter->classification() == GsfElectron::SHOWERING)
1321 if (gsfIter->trackerDrivenSeed()||gsfIter->ecalDrivenSeed())
h_ele_provenance->Fill(0.);
1322 if (gsfIter->trackerDrivenSeed()&&!gsfIter->ecalDrivenSeed())
h_ele_provenance->Fill(-2.);
1323 if (!gsfIter->trackerDrivenSeed()&&gsfIter->ecalDrivenSeed())
h_ele_provenance->Fill(2.);
1334 float enrj1=gsfIter->superCluster()->energy();
1336 for (reco::GsfElectronCollection::const_iterator gsfIter2=gsfIter+1;
1337 gsfIter2!=gsfElectrons->end(); gsfIter2++){
1340 float mee2 = p12.Dot(p12);
1341 float enrj2=gsfIter2->superCluster()->energy();
1345 if (gsfIter->charge()*gsfIter2->charge()<0.) {
1348 if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB()))
h_ele_mee_os_ebee ->
Fill(
sqrt(mee2));
1350 if ((gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::GOLDEN) ||
1351 (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::BIGBREM) ||
1353 (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::GOLDEN) ||
1354 (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::BIGBREM)
1361 (gsfIter->classification()==GsfElectron::SHOWERING && gsfIter2->classification()==GsfElectron::SHOWERING) ||
1362 (gsfIter->classification()==GsfElectron::SHOWERING && gsfIter2->isGap()) ||
1363 (gsfIter->isGap() && gsfIter2->classification()==GsfElectron::SHOWERING) ||
1364 (gsfIter->isGap() && gsfIter2->isGap()))
1375 int matchingObjectNum=0;
1377 for ( reco::SuperClusterCollection::const_iterator moIter=recoClusters->begin();
1378 moIter!=recoClusters->end(); moIter++ ) {
1381 matchingObjectNum++;
1398 bool okGsfFound =
false;
1399 double gsfOkRatio = 999999.;
1403 for (reco::GsfElectronCollection::const_iterator gsfIter=gsfElectrons->begin();
1404 gsfIter!=gsfElectrons->end(); gsfIter++){
1408 double dphi = gsfIter->
phi()-moIter->phi();
1410 dphi = dphi < 0? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
1415 double tmpGsfRatio = gsfIter->p()/moIter->energy();
1417 gsfOkRatio = tmpGsfRatio;
1418 bestGsfElectron=*gsfIter;
1482 if (triggerResults.
isValid()) {
1488 for (
unsigned int i=0;
i<triggerNames.
size();
i++) {
1494 for (
unsigned int i=0;
i!=
n;
i++) {
1500 n=triggerResults->size();
1503 for (
unsigned int i=0;
i!=
n;
i++) {
1511 std::cout <<
"HLT trigger paths requested: index, name and valididty:" << std::endl;
1512 for (
unsigned int i=0;
i!=
n;
i++) {
1516 <<
" " << validity << std::endl;
1522 unsigned int fired=0;
1523 for (
unsigned int i=0;
i!=
n;
i++) {
TH2F * h_ele_dPhiEleClVsEta_propOut
T getParameter(std::string const &) const
TH2F * h_ele_EseedOPVsEta
TH1F * h_ele_PtoPtmatchingObject_endcaps_matched
double ecalIso03MaxBarrel_
TH1F * histSclE2x5max_barrel_
TH2F * h_ele_EtaMnEtamatchingObjectVsEta_matched
virtual edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const
TH2F * h_ele_dPhiClVsEta_propOut
TH2F * h_ele_PinMnPoutVsPt_mode
TH1F * histSclSigIEtaIEta_barrel_
TH2F * h_ele_PtinVsPtoutShowering_mode
TH1F * h_ele_dEtaCl_propOut
TH2F * h_ele_PoPmatchingObjectVsEta_matched
std::vector< unsigned int > HLTPathsByIndex_
TH1F * h_ele_matchingObjectZ_matched
TH1F * h_ele_ambiguousTracks
TH2F * h_ele_dPhiClVsPhi_propOut
TH2F * h_ele_dPhiEleClVsPt_propOut
TH2F * h_ele_EtaMnEtamatchingObjectVsPhi_matched
virtual double p() const GCC11_FINAL
magnitude of momentum vector
TH1F * h_ele_PtoPtmatchingObject_barrel_matched
TH1F * h_ele_matchingObjectAbsEta_matched
TH1F * h_ele_PtoPtmatchingObject_matched
TH2F * h_ele_dEtaClVsEta_propOut
std::string matchingCondition_
double hcalIso03Depth2MaxEndcaps_
TH2F * h_ele_EeleOPoutVsE
double sigIetaIetaMinBarrel_
TH1F * h_matchingObjectAbsEta
TH2F * h_ele_PinMnPoutVsChi2_mode
TH1F * h_ele_tkSumPt_dr04
TH1F * h_ele_EtaMnEtamatchingObject_matched
TH2F * h_ele_outerPtVsPt_mode
TH1F * histSclEoEmatchingObject_barrel_matched
TH2F * h_ele_dEtaEleClVsEta_propOut
TH2F * h_ele_dEtaScVsPhi_propVtx
TH2F * h_ele_ambiguousTracksVsEta
TH2F * h_ele_PhiMnPhimatchingObjectVsPhi_matched
Strings::size_type size() const
TH2F * h_ele_EeleOPoutVsEta
TH1F * h_ele_matchingObjectPt_matched
TH2F * h_ele_seed_drz2VsEta_
TH1F * histSclE1x5_endcaps_
TH2F * h_ele_vertexPtVsPhi
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
virtual double py() const GCC11_FINAL
y coordinate of momentum vector
double maxAbsEtaMatchingObject_
unsigned int nAfterTrigger_
TH1F * histSclEoEmatchingObject_endcaps_new_matched
TH2F * h_ele_foundHitsVsPt
TH1F * h_ele_outerPt_mode
TH2F * h_ele_PinMnPoutVsEta_mode
TH1F * h_ele_PhiMnPhimatchingObject_matched
TH2F * h_ele_outerPtVsPhi_mode
TH1F * h_ele_hcalDepth2TowerSumEt_dr03
virtual ~GsfElectronDataAnalyzer()
TH2F * h_ele_PhiMnPhimatchingObjectVsPt_matched
TH1F * h_ele_ecalRecHitSumEt_dr04
TH2F * h_ele_EeleOPoutVsPhi
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
TH2F * h_ele_vertexTIPVsEta
virtual float phi() const GCC11_FINAL
momentum azimuthal angle
TH1F * h_matchingObjectEta
TH2F * h_ele_dEtaScVsEta_propVtx
TH2F * h_ele_seed_dphi2VsEta_
TH2F * h_ele_outerPtVsEta_mode
double ecalIso03MaxEndcaps_
TH2F * h_ele_PinMnPoutVsPhi_mode
unsigned int triggerIndex(std::string const &name) const
TH1F * histSclEoEmatchingObjectShowering_endcaps
TH1F * histSclEoEmatchingObject_endcaps_matched
double hadronicOverEmMaxEndcaps_
TH2F * h_ele_PtinVsPtoutGolden_mode
TH2F * h_ele_dPhiScVsPhi_propVtx
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
TH2F * h_ele_dEtaClVsPt_propOut
virtual SuperClusterRef superCluster() const
reference to a SuperCluster
TH1F * h_ele_hcalDepth2TowerSumEt_dr04
GsfElectronDataAnalyzer(const edm::ParameterSet &conf)
TH2F * h_ele_ambiguousTracksVsPt
TH2F * h_ele_PinVsPoutGolden_mode
bool trigger(const edm::Event &e)
TH1F * histSclE2x5max_endcaps_
TH2F * h_ele_dEtaEleClVsPhi_propOut
TH1F * h_ele_PoPmatchingObject_matched
TH1F * h_ele_hcalDepth1TowerSumEt_dr04
TH1F * h_ele_tkSumPt_dr03
TH2F * h_ele_dPhiScVsEta_propVtx
TH2F * h_ele_E2mnE1vsMee_all
double hcalIso03Depth1MaxEndcaps_
TProfile * h_ele_fbremVsEta_mean
TH1F * h_ele_PinMnPout_mode
TH2F * h_ele_lostHitsVsEta
TH2F * h_ele_PtinVsPtoutGolden_mean
TH1F * histSclEoEmatchingObjectShowering_barrel
edm::InputTag electronCollection_
edm::InputTag triggerResults_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
TH1F * histSclE1x5_barrel_
TH1F * h_ele_dEtaEleCl_propOut
TH2F * h_ele_vertexTIPVsPhi
TH1F * histSclE5x5_barrel_
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
double hadronicOverEmMaxBarrel_
double deltaR(double eta1, double eta2, double phi1, double phi2)
TH1F * histSclEoEmatchingObjectGolden_endcaps
TH2F * h_ele_dPhiScVsPt_propVtx
TH2F * h_ele_dPhiClVsPt_propOut
TH2F * h_ele_dPhiEleClVsPhi_propOut
TH1F * h_ele_hcalDepth1TowerSumEt_dr03
TH1F * h_ele_dPhiEleCl_propOut
TH1F * h_ele_dPhiCl_propOut
double hcalIso03Depth1MaxBarrel_
TH1F * h_ele_matchingObjectPhi_matched
std::string const & triggerName(unsigned int index) const
TH2F * h_ele_seed_drz2VsPt_
TH2F * h_ele_PinVsPoutGolden_mean
TH2F * h_ele_outerPVsEta_mode
TH2F * h_ele_EtaMnEtamatchingObjectVsPt_matched
TH2F * h_ele_dEtaClVsPhi_propOut
REF castTo() const
cast to a concrete type
double sigIetaIetaMaxBarrel_
TH2F * h_ele_vertexEtaVsPhi
TH2F * h_ele_foundHitsVsPhi
TH1F * h_ele_dEtaSc_propVtx
T const * product() const
TH2F * h_ele_PinVsPoutShowering_mean
TH2F * h_ele_E2mnE1vsMee_egeg_all
TH2F * h_ele_vertexPtVsEta
TH2F * h_ele_PtinVsPtoutShowering_mean
TH2F * h_ele_vertexTIPVsPt
TH1F * h_ele_PoPmatchingObject_barrel_matched
TH1F * h_ele_HoE_fiducial
TH1F * histSclE5x5_endcaps_
TH1F * h_ele_ecalRecHitSumEt_dr03
TH2F * h_ele_dEtaScVsPt_propVtx
TH2F * h_ele_seed_dphi2VsPt_
TH2F * h_ele_PhiMnPhimatchingObjectVsEta_matched
TH2F * h_ele_lostHitsVsPt
TH1F * histSclEoEmatchingObject_barrel_new_matched
TH2F * h_ele_PoPmatchingObjectVsPt_matched
TH2F * h_ele_PinVsPoutShowering_mode
const Point & position() const
position
TH1F * h_ele_PoPmatchingObject_endcaps_matched
TH2F * h_ele_ambiguousTracksVsPhi
TH2F * h_ele_EseedOPVsPhi
double maxPtMatchingObject_
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
double sigIetaIetaMaxEndcaps_
TH2F * h_ele_PinMnPoutVsE_mode
TH1F * h_ele_matchingObjectEta_matched
TProfile * h_ele_fbremVsEta_mode
virtual float pt() const GCC11_FINAL
transverse momentum
TH1F * histSclEoEmatchingObjectGolden_barrel
TH1F * h_matchingObjectNum
edm::InputTag matchingObjectCollection_
double sigIetaIetaMinEndcaps_
std::vector< std::string > HLTPathsByName_
TH2F * h_ele_lostHitsVsPhi
TH1F * histSclSigIEtaIEta_endcaps_
TH1F * h_matchingObjectPhi
Power< A, B >::type pow(const A &a, const B &b)
TH1F * h_ele_dPhiSc_propVtx
TH2F * h_ele_foundHitsVsEta
TH1F * h_ele_seed_subdet2_
TH1F * h_matchingObjectPt
TH2F * h_ele_PoPmatchingObjectVsPhi_matched
TH1F * h_ele_PhiMnPhimatchingObject2_matched
TH2F * h_ele_dEtaEleClVsPt_propOut