20 fName_ =
pset.getParameter<
string>(
"analyzerName");
21 prescaleFactor_ =
pset.getUntrackedParameter<
int>(
"prescaleFactor", 1);
23 photon_token_ = consumes<vector<reco::Photon> >(
pset.getParameter<
edm::InputTag>(
"phoProducer"));
24 barrelRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit> > >(
26 PhotonIDLoose_token_ = consumes<edm::ValueMap<bool> >(
pset.getParameter<
edm::InputTag>(
"photonIDLoose"));
27 PhotonIDTight_token_ = consumes<edm::ValueMap<bool> >(
pset.getParameter<
edm::InputTag>(
"photonIDTight"));
28 endcapRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit, edm::StrictWeakOrdering<EcalRecHit> > >(
30 triggerEvent_token_ = consumes<trigger::TriggerEvent>(
pset.getParameter<
edm::InputTag>(
"triggerEvent"));
31 offline_pvToken_ = consumes<reco::VertexCollection>(
34 minPhoEtCut_ =
pset.getParameter<
double>(
"minPhoEtCut");
35 photonMaxEta_ =
pset.getParameter<
double>(
"maxPhoEta");
36 invMassEtCut_ =
pset.getParameter<
double>(
"invMassEtCut");
37 cutStep_ =
pset.getParameter<
double>(
"cutStep");
38 numberOfSteps_ =
pset.getParameter<
int>(
"numberOfSteps");
39 useBinning_ =
pset.getParameter<
bool>(
"useBinning");
40 useTriggerFiltering_ =
pset.getParameter<
bool>(
"useTriggerFiltering");
41 minimalSetOfHistos_ =
pset.getParameter<
bool>(
"minimalSetOfHistos");
42 excludeBkgHistos_ =
pset.getParameter<
bool>(
"excludeBkgHistos");
43 standAlone_ =
pset.getParameter<
bool>(
"standAlone");
44 isolationStrength_ =
pset.getParameter<
int>(
"isolationStrength");
45 isHeavyIon_ =
pset.getUntrackedParameter<
bool>(
"isHeavyIon",
false);
47 histo_index_photons_ = 0;
48 histo_index_conversions_ = 0;
49 histo_index_efficiency_ = 0;
50 histo_index_invMass_ = 0;
55 parts_.push_back(
"AllEcal");
56 parts_.push_back(
"Barrel");
57 parts_.push_back(
"Endcaps");
59 types_.push_back(
"All");
60 types_.push_back(
"GoodCandidate");
61 if (!excludeBkgHistos_) {
62 types_.push_back(
"Background");
66 etaBin_ =
pset.getParameter<
int>(
"etaBin");
67 etaMin_ =
pset.getParameter<
double>(
"etaMin");
68 etaMax_ =
pset.getParameter<
double>(
"etaMax");
70 etBin_ =
pset.getParameter<
int>(
"etBin");
71 etMin_ =
pset.getParameter<
double>(
"etMin");
72 etMax_ =
pset.getParameter<
double>(
"etMax");
74 phiBin_ =
pset.getParameter<
int>(
"phiBin");
75 phiMin_ =
pset.getParameter<
double>(
"phiMin");
76 phiMax_ =
pset.getParameter<
double>(
"phiMax");
78 eBin_ =
pset.getParameter<
int>(
"eBin");
79 eMin_ =
pset.getParameter<
double>(
"eMin");
80 eMax_ =
pset.getParameter<
double>(
"eMax");
82 numberBin_ =
pset.getParameter<
int>(
"numberBin");
83 numberMin_ =
pset.getParameter<
double>(
"numberMin");
84 numberMax_ =
pset.getParameter<
double>(
"numberMax");
86 r9Bin_ =
pset.getParameter<
int>(
"r9Bin");
87 r9Min_ =
pset.getParameter<
double>(
"r9Min");
88 r9Max_ =
pset.getParameter<
double>(
"r9Max");
90 sigmaIetaBin_ =
pset.getParameter<
int>(
"sigmaIetaBin");
91 sigmaIetaMin_ =
pset.getParameter<
double>(
"sigmaIetaMin");
92 sigmaIetaMax_ =
pset.getParameter<
double>(
"sigmaIetaMax");
94 sumBin_ =
pset.getParameter<
int>(
"sumBin");
95 sumMin_ =
pset.getParameter<
double>(
"sumMin");
96 sumMax_ =
pset.getParameter<
double>(
"sumMax");
98 hOverEBin_ =
pset.getParameter<
int>(
"hOverEBin");
99 hOverEMin_ =
pset.getParameter<
double>(
"hOverEMin");
100 hOverEMax_ =
pset.getParameter<
double>(
"hOverEMax");
102 eOverPBin_ =
pset.getParameter<
int>(
"eOverPBin");
103 eOverPMin_ =
pset.getParameter<
double>(
"eOverPMin");
104 eOverPMax_ =
pset.getParameter<
double>(
"eOverPMax");
106 dPhiTracksBin_ =
pset.getParameter<
int>(
"dPhiTracksBin");
107 dPhiTracksMin_ =
pset.getParameter<
double>(
"dPhiTracksMin");
108 dPhiTracksMax_ =
pset.getParameter<
double>(
"dPhiTracksMax");
110 dEtaTracksBin_ =
pset.getParameter<
int>(
"dEtaTracksBin");
111 dEtaTracksMin_ =
pset.getParameter<
double>(
"dEtaTracksMin");
112 dEtaTracksMax_ =
pset.getParameter<
double>(
"dEtaTracksMax");
114 chi2Bin_ =
pset.getParameter<
int>(
"chi2Bin");
115 chi2Min_ =
pset.getParameter<
double>(
"chi2Min");
116 chi2Max_ =
pset.getParameter<
double>(
"chi2Max");
118 zBin_ =
pset.getParameter<
int>(
"zBin");
119 zMin_ =
pset.getParameter<
double>(
"zMin");
120 zMax_ =
pset.getParameter<
double>(
"zMax");
122 rBin_ =
pset.getParameter<
int>(
"rBin");
123 rMin_ =
pset.getParameter<
double>(
"rMin");
124 rMax_ =
pset.getParameter<
double>(
"rMax");
126 xBin_ =
pset.getParameter<
int>(
"xBin");
127 xMin_ =
pset.getParameter<
double>(
"xMin");
128 xMax_ =
pset.getParameter<
double>(
"xMax");
130 yBin_ =
pset.getParameter<
int>(
"yBin");
131 yMin_ =
pset.getParameter<
double>(
"yMin");
132 yMax_ =
pset.getParameter<
double>(
"yMax");
134 reducedEtBin_ = etBin_ / 4;
135 reducedEtaBin_ = etaBin_ / 4;
136 reducedR9Bin_ = r9Bin_ / 4;
137 reducedSumBin_ = sumBin_ / 4;
145 bookHistogramsForHistogramCounts(iBooker);
147 bookHistogramsEfficiency(iBooker);
148 bookHistogramsInvMass(iBooker);
149 bookHistogramsPhotons(iBooker);
150 bookHistogramsConversions(iBooker);
152 fillHistogramsForHistogramCounts(iBooker);
158 totalNumberOfHistos_efficiencyFolder = iBooker.
bookInt(
"numberOfHistogramsInEfficiencyFolder");
159 totalNumberOfHistos_invMassFolder = iBooker.
bookInt(
"numberOfHistogramsInInvMassFolder");
160 totalNumberOfHistos_photonsFolder = iBooker.
bookInt(
"numberOfHistogramsInPhotonsFolder");
161 totalNumberOfHistos_conversionsFolder = iBooker.
bookInt(
"numberOfHistogramsInConversionsFolder");
166 totalNumberOfHistos_efficiencyFolder->Fill(histo_index_efficiency_);
167 totalNumberOfHistos_invMassFolder->Fill(histo_index_invMass_);
168 totalNumberOfHistos_photonsFolder->Fill(histo_index_photons_);
169 totalNumberOfHistos_conversionsFolder->Fill(histo_index_conversions_);
177 h_phoEta_Loose_ = iBooker.
book1D(
"phoEtaLoose",
"Loose Photon #eta", etaBin_, etaMin_, etaMax_);
178 h_phoEta_Tight_ = iBooker.
book1D(
"phoEtaTight",
"Tight Photon #eta", etaBin_, etaMin_, etaMax_);
180 h_phoEt_Loose_ = iBooker.
book1D(
"phoEtLoose",
"Loose Photon E_{T}", etBin_, etMin_, etMax_);
181 h_phoEt_Tight_ = iBooker.
book1D(
"phoEtTight",
"Tight Photon E_{T}", etBin_, etMin_, etMax_);
183 h_phoEta_preHLT_ = iBooker.
book1D(
"phoEtaPreHLT",
"Photon #eta: before HLT", etaBin_, etaMin_, etaMax_);
184 h_phoEta_postHLT_ = iBooker.
book1D(
"phoEtaPostHLT",
"Photon #eta: after HLT", etaBin_, etaMin_, etaMax_);
185 h_phoEt_preHLT_ = iBooker.
book1D(
"phoEtPreHLT",
"Photon E_{T}: before HLT", etBin_, etMin_, etMax_);
186 h_phoEt_postHLT_ = iBooker.
book1D(
"phoEtPostHLT",
"Photon E_{T}: after HLT", etBin_, etMin_, etMax_);
188 h_convEta_Loose_ = iBooker.
book1D(
"convEtaLoose",
"Converted Loose Photon #eta", etaBin_, etaMin_, etaMax_);
189 h_convEta_Tight_ = iBooker.
book1D(
"convEtaTight",
"Converted Tight Photon #eta", etaBin_, etaMin_, etaMax_);
190 h_convEt_Loose_ = iBooker.
book1D(
"convEtLoose",
"Converted Loose Photon E_{T}", etBin_, etMin_, etMax_);
191 h_convEt_Tight_ = iBooker.
book1D(
"convEtTight",
"Converted Tight Photon E_{T}", etBin_, etMin_, etMax_);
194 iBooker.
book1D(
"phoEtaVertex",
"Converted Photons before valid vertex cut: #eta", etaBin_, etaMin_, etaMax_);
197 vector<MonitorElement*> temp1DVectorEta;
198 vector<MonitorElement*> temp1DVectorPhi;
199 vector<vector<MonitorElement*> > temp2DVectorPhi;
201 for (
int cut = 0;
cut != numberOfSteps_; ++
cut) {
203 currentFolder_.str(
"");
204 currentFolder_ <<
"Egamma/" + fName_ +
"/" << types_[
type] <<
"Photons/Et above " << (
cut + 1) * cutStep_
205 <<
" GeV/Conversions";
208 temp1DVectorEta.push_back(
209 iBooker.
book1D(
"phoConvEtaForEfficiency",
"Converted Photon #eta;#eta", etaBin_, etaMin_, etaMax_));
211 temp1DVectorPhi.push_back(iBooker.
book1D(
212 "phoConvPhiForEfficiency" + parts_[
part],
"Converted Photon #phi;#phi", phiBin_, phiMin_, phiMax_));
214 temp2DVectorPhi.push_back(temp1DVectorPhi);
215 temp1DVectorPhi.clear();
217 h_phoConvEtaForEfficiency_.push_back(temp1DVectorEta);
218 temp1DVectorEta.clear();
219 h_phoConvPhiForEfficiency_.push_back(temp2DVectorPhi);
220 temp2DVectorPhi.clear();
228 h_invMassAllPhotons_ = bookHisto(iBooker,
229 "invMassAllIsolatedPhotons",
230 "Two photon invariant mass: All isolated photons;M (GeV)",
234 h_invMassPhotonsEBarrel_ = bookHisto(iBooker,
235 "invMassIsoPhotonsEBarrel",
236 "Two photon invariant mass: isolated photons in barrel; M (GeV)",
240 h_invMassPhotonsEEndcap_ = bookHisto(iBooker,
241 "invMassIsoPhotonsEEndcap",
242 "Two photon invariant mass: isolated photons in endcap; M (GeV)",
246 h_invMassPhotonsEEndcapEBarrel_ = bookHisto(iBooker,
247 "invMassIsoPhotonsEEndcapEBarrel",
248 "Two photon invariant mass: isolated photons in endcap-barrel; M (GeV)",
253 h_invMassZeroWithTracks_ = bookHisto(
254 iBooker,
"invMassZeroWithTracks",
"Two photon invariant mass: Neither has tracks;M (GeV)", etBin_, etMin_, etMax_);
255 h_invMassOneWithTracks_ = bookHisto(
256 iBooker,
"invMassOneWithTracks",
"Two photon invariant mass: Only one has tracks;M (GeV)", etBin_, etMin_, etMax_);
257 h_invMassTwoWithTracks_ = bookHisto(
258 iBooker,
"invMassTwoWithTracks",
"Two photon invariant mass: Both have tracks;M (GeV)", etBin_, etMin_, etMax_);
260 h_nRecoVtx_ = bookHisto(iBooker,
"nOfflineVtx",
"# of Offline Vertices", 200, -0.5, 199.5);
268 book3DHistoVector(iBooker, h_phoE_,
"1D",
"phoE",
"Energy;E (GeV)", eBin_, eMin_, eMax_);
269 book3DHistoVector(iBooker, h_phoSigmaEoverE_,
"1D",
"phoSigmaEoverE",
"#sigma_{E}/E; #sigma_{E}/E", 100, 0., 0.08);
270 book3DHistoVector(iBooker,
271 p_phoSigmaEoverEvsNVtx_,
273 "phoSigmaEoverEvsNVtx",
274 "#sigma_{E}/E vs NVtx; N_{vtx}; #sigma_{E}/E",
281 book3DHistoVector(iBooker, h_phoEt_,
"1D",
"phoEt",
"E_{T};E_{T} (GeV)", etBin_, etMin_, etMax_);
285 iBooker, h_nPho_,
"1D",
"nPho",
"Number of Photons per Event;# #gamma", numberBin_, numberMin_, numberMax_);
289 book2DHistoVector(iBooker, h_phoEta_,
"1D",
"phoEta",
"#eta;#eta", etaBin_, etaMin_, etaMax_);
290 book3DHistoVector(iBooker, h_phoPhi_,
"1D",
"phoPhi",
"#phi;#phi", phiBin_, phiMin_, phiMax_);
293 book2DHistoVector(iBooker, h_scEta_,
"1D",
"scEta",
"SuperCluster #eta;#eta", etaBin_, etaMin_, etaMax_);
294 book3DHistoVector(iBooker, h_scPhi_,
"1D",
"scPhi",
"SuperCluster #phi;#phi", phiBin_, phiMin_, phiMax_);
298 book3DHistoVector(iBooker, h_r9_,
"1D",
"r9",
"R9;R9", r9Bin_, r9Min_, r9Max_);
300 book2DHistoVector(iBooker,
304 "R9 vs E_{T};E_{T} (GeV);R9",
312 book2DHistoVector(iBooker,
316 "Avg R9 vs E_{T};E_{T} (GeV);R9",
324 book2DHistoVector(iBooker,
328 "R9 vs #eta;#eta;R9",
336 book2DHistoVector(iBooker,
340 "Avg R9 vs #eta;#eta;R9",
349 book3DHistoVector(iBooker,
353 "#sigma_{i#etai#eta};#sigma_{i#etai#eta}",
358 book2DHistoVector(iBooker,
359 h_sigmaIetaIetaVsEta_,
361 "sigmaIetaIetaVsEta2D",
362 "#sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",
370 book2DHistoVector(iBooker,
371 p_sigmaIetaIetaVsEta_,
373 "sigmaIetaIetaVsEta",
374 "Avg #sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",
384 book2DHistoVector(iBooker,
388 "E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",
396 book2DHistoVector(iBooker,
400 "Avg E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",
408 book2DHistoVector(iBooker,
412 "E1x5 vs #eta;#eta;E1X5 (GeV)",
420 book2DHistoVector(iBooker,
424 "Avg E1x5 vs #eta;#eta;E1X5 (GeV)",
434 book2DHistoVector(iBooker,
438 "E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",
446 book2DHistoVector(iBooker,
450 "Avg E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",
458 book2DHistoVector(iBooker,
462 "E2x5 vs #eta;#eta;E2X5 (GeV)",
470 book2DHistoVector(iBooker,
474 "Avg E2x5 vs #eta;#eta;E2X5 (GeV)",
484 book2DHistoVector(iBooker,
488 "R1x5 vs E_{T};E_{T} (GeV);R1X5",
496 book2DHistoVector(iBooker,
500 "Avg R1x5 vs E_{T};E_{T} (GeV);R1X5",
508 book2DHistoVector(iBooker,
512 "R1x5 vs #eta;#eta;R1X5",
520 book2DHistoVector(iBooker,
524 "Avg R1x5 vs #eta;#eta;R1X5",
534 book2DHistoVector(iBooker,
538 "R2x5 vs E_{T};E_{T} (GeV);R2X5",
546 book2DHistoVector(iBooker,
550 "Avg R2x5 vs E_{T};E_{T} (GeV);R2X5",
558 book2DHistoVector(iBooker,
562 "R2x5 vs #eta;#eta;R2X5",
570 book2DHistoVector(iBooker,
574 "Avg R2x5 vs #eta;#eta;R2X5",
584 book2DHistoVector(iBooker,
585 h_maxEXtalOver3x3VsEt_,
587 "maxEXtalOver3x3VsEt2D",
588 "(Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",
596 book2DHistoVector(iBooker,
597 p_maxEXtalOver3x3VsEt_,
599 "maxEXtalOver3x3VsEt",
600 "Avg (Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",
608 book2DHistoVector(iBooker,
609 h_maxEXtalOver3x3VsEta_,
611 "maxEXtalOver3x3VsEta2D",
612 "(Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",
620 book2DHistoVector(iBooker,
621 p_maxEXtalOver3x3VsEta_,
623 "maxEXtalOver3x3VsEta",
624 "Avg (Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",
634 book2DHistoVector(iBooker,
638 "Number Of Tracks in the Solid Iso Cone;# tracks",
643 book2DHistoVector(iBooker,
644 h_nTrackIsolSolidVsEt_,
646 "nIsoTracksSolidVsEt2D",
647 "Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",
655 book2DHistoVector(iBooker,
656 p_nTrackIsolSolidVsEt_,
658 "nIsoTracksSolidVsEt",
659 "Avg Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",
667 book2DHistoVector(iBooker,
668 h_nTrackIsolSolidVsEta_,
670 "nIsoTracksSolidVsEta2D",
671 "Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",
679 book2DHistoVector(iBooker,
680 p_nTrackIsolSolidVsEta_,
682 "nIsoTracksSolidVsEta",
683 "Avg Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",
692 book2DHistoVector(iBooker,
696 "Number Of Tracks in the Hollow Iso Cone;# tracks",
701 book2DHistoVector(iBooker,
702 h_nTrackIsolHollowVsEt_,
704 "nIsoTracksHollowVsEt2D",
705 "Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",
713 book2DHistoVector(iBooker,
714 p_nTrackIsolHollowVsEt_,
716 "nIsoTracksHollowVsEt",
717 "Avg Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",
725 book2DHistoVector(iBooker,
726 h_nTrackIsolHollowVsEta_,
728 "nIsoTracksHollowVsEta2D",
729 "Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",
737 book2DHistoVector(iBooker,
738 p_nTrackIsolHollowVsEta_,
740 "nIsoTracksHollowVsEta",
741 "Avg Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",
750 book2DHistoVector(iBooker,
754 "Track P_{T} Sum in the Solid Iso Cone;P_{T} (GeV)",
759 book2DHistoVector(iBooker,
760 h_trackPtSumSolidVsEt_,
762 "isoPtSumSolidVsEt2D",
763 "Track P_{T} Sum in the Solid Iso Cone;E_{T} (GeV);P_{T} (GeV)",
771 book2DHistoVector(iBooker,
772 p_trackPtSumSolidVsEt_,
775 "Avg Track P_{T} Sum in the Solid Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",
783 book2DHistoVector(iBooker,
784 h_trackPtSumSolidVsEta_,
786 "isoPtSumSolidVsEta2D",
787 "Track P_{T} Sum in the Solid Iso Cone;#eta;P_{T} (GeV)",
795 book2DHistoVector(iBooker,
796 p_trackPtSumSolidVsEta_,
798 "isoPtSumSolidVsEta",
799 "Avg Track P_{T} Sum in the Solid Iso Cone vs #eta;#eta;P_{T} (GeV)",
808 book2DHistoVector(iBooker,
812 "Track P_{T} Sum in the Hollow Iso Cone;P_{T} (GeV)",
817 book2DHistoVector(iBooker,
818 h_trackPtSumHollowVsEt_,
820 "isoPtSumHollowVsEt2D",
821 "Track P_{T} Sum in the Hollow Iso Cone;E_{T} (GeV);P_{T} (GeV)",
829 book2DHistoVector(iBooker,
830 p_trackPtSumHollowVsEt_,
832 "isoPtSumHollowVsEt",
833 "Avg Track P_{T} Sum in the Hollow Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",
841 book2DHistoVector(iBooker,
842 h_trackPtSumHollowVsEta_,
844 "isoPtSumHollowVsEta2D",
845 "Track P_{T} Sum in the Hollow Iso Cone;#eta;P_{T} (GeV)",
853 book2DHistoVector(iBooker,
854 p_trackPtSumHollowVsEta_,
856 "isoPtSumHollowVsEta",
857 "Avg Track P_{T} Sum in the Hollow Iso Cone vs #eta;#eta;P_{T} (GeV)",
868 iBooker, h_ecalSum_,
"1D",
"ecalSum",
"Ecal Sum in the Iso Cone;E (GeV)", sumBin_, sumMin_, sumMax_);
869 book2DHistoVector(iBooker,
873 "Ecal Sum in the IsoCone for Barrel;E (GeV)",
877 book2DHistoVector(iBooker,
881 "Ecal Sum in the IsoCone for Endcap;E (GeV)",
886 book2DHistoVector(iBooker,
890 "Ecal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",
898 book3DHistoVector(iBooker,
902 "Avg Ecal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",
910 book2DHistoVector(iBooker,
914 "Ecal Sum in the Iso Cone;#eta;E (GeV)",
922 book2DHistoVector(iBooker,
926 "Avg Ecal Sum in the Iso Cone vs #eta;#eta;E (GeV)",
936 iBooker, h_hcalSum_,
"1D",
"hcalSum",
"Hcal Sum in the Iso Cone;E (GeV)", sumBin_, sumMin_, sumMax_);
937 book2DHistoVector(iBooker,
941 "Hcal Sum in the IsoCone for Barrel;E (GeV)",
945 book2DHistoVector(iBooker,
949 "Hcal Sum in the IsoCone for Endcap;E (GeV)",
954 book2DHistoVector(iBooker,
958 "Hcal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",
966 book3DHistoVector(iBooker,
970 "Avg Hcal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",
978 book2DHistoVector(iBooker,
982 "Hcal Sum in the Iso Cone;#eta;E (GeV)",
990 book2DHistoVector(iBooker,
994 "Avg Hcal Sum in the Iso Cone vs #eta;#eta;E (GeV)",
1003 book3DHistoVector(iBooker, h_hOverE_,
"1D",
"hOverE",
"H/E;H/E", hOverEBin_, hOverEMin_, hOverEMax_);
1004 book2DHistoVector(iBooker,
1008 "Avg H/E vs Et;E_{T} (GeV);H/E",
1015 book2DHistoVector(iBooker,
1019 "Avg H/E vs #eta;#eta;H/E",
1026 book3DHistoVector(iBooker, h_h1OverE_,
"1D",
"h1OverE",
"H/E for Depth 1;H/E", hOverEBin_, hOverEMin_, hOverEMax_);
1027 book3DHistoVector(iBooker, h_h2OverE_,
"1D",
"h2OverE",
"H/E for Depth 2;H/E", hOverEBin_, hOverEMin_, hOverEMax_);
1031 iBooker, h_phoIsoBarrel_,
"1D",
"phoIsoBarrel",
"PF photon iso Barrel;E (GeV)", reducedEtBin_, etMin_, 25.);
1033 iBooker, h_phoIsoEndcap_,
"1D",
"phoIsoEndcap",
"PF photon iso Endcap;E (GeV)", reducedEtBin_, etMin_, 25.);
1034 book2DHistoVector(iBooker,
1038 "PF charged Had iso Barrel;E (GeV)",
1042 book2DHistoVector(iBooker,
1046 "PF charged Had iso Endcap;E (GeV)",
1050 book2DHistoVector(iBooker,
1053 "neutralHadIsoBarrel",
1054 "PF neutral Had iso Barrel;E (GeV)",
1058 book2DHistoVector(iBooker,
1061 "neutralHadIsoEndcap",
1062 "PF neutral Had iso Endcap;E (GeV)",
1069 book2DHistoVector(iBooker,
1070 h_phoEt_BadChannels_,
1073 "Fraction Containing Bad Channels: E_{T};E_{T} (GeV)",
1077 book2DHistoVector(iBooker,
1078 h_phoEta_BadChannels_,
1080 "phoEtaBadChannels",
1081 "Fraction Containing Bad Channels: #eta;#eta",
1085 book2DHistoVector(iBooker,
1086 h_phoPhi_BadChannels_,
1088 "phoPhiBadChannels",
1089 "Fraction Containing Bad Channels: #phi;#phi",
1097 iBooker.
setCurrentFolder(
"Egamma/" + fName_ +
"/AllPhotons/Et Above 0 GeV/Conversions");
1100 book3DHistoVector(iBooker, h_phoConvE_,
"1D",
"phoConvE",
"E;E (GeV)", eBin_, eMin_, eMax_);
1101 book3DHistoVector(iBooker, h_phoConvEt_,
"1D",
"phoConvEt",
"E_{T};E_{T} (GeV)", etBin_, etMin_, etMax_);
1104 book2DHistoVector(iBooker, h_phoConvEta_,
"1D",
"phoConvEta",
"#eta;#eta", etaBin_, etaMin_, etaMax_);
1105 book3DHistoVector(iBooker, h_phoConvPhi_,
"1D",
"phoConvPhi",
"#phi;#phi", phiBin_, phiMin_, phiMax_);
1108 book3DHistoVector(iBooker,
1112 "Number Of Conversions per Event ;# conversions",
1118 book3DHistoVector(iBooker, h_phoConvR9_,
"1D",
"phoConvR9",
"R9;R9", r9Bin_, r9Min_, r9Max_);
1121 book3DHistoVector(iBooker, h_eOverPTracks_,
"1D",
"eOverPTracks",
"E/P;E/P", eOverPBin_, eOverPMin_, eOverPMax_);
1122 book3DHistoVector(iBooker, h_pOverETracks_,
"1D",
"pOverETracks",
"P/E;P/E", eOverPBin_, eOverPMin_, eOverPMax_);
1123 book3DHistoVector(iBooker,
1127 "#Delta#phi of Tracks at Vertex;#Delta#phi",
1131 book3DHistoVector(iBooker,
1132 h_dPhiTracksAtEcal_,
1135 "Abs(#Delta#phi) of Tracks at Ecal;#Delta#phi",
1139 book3DHistoVector(iBooker,
1140 h_dEtaTracksAtEcal_,
1143 "#Delta#eta of Tracks at Ecal;#Delta#eta",
1147 book3DHistoVector(iBooker,
1151 "#Deltacot(#theta) of Tracks;#Deltacot(#theta)",
1155 book2DHistoVector(iBooker,
1159 "Avg #Deltacot(#theta) of Tracks vs #eta;#eta;#Deltacot(#theta)",
1166 book2DHistoVector(iBooker,
1170 "Avg Number of Hits per Track vs #eta;#eta;# hits",
1178 iBooker, h_tkChi2_,
"1D",
"tkChi2",
"#chi^{2} of Track Fitting;#chi^{2}", chi2Bin_, chi2Min_, chi2Max_);
1179 book2DHistoVector(iBooker,
1183 "Avg #chi^{2} of Track Fitting vs #eta;#eta;#chi^{2}",
1192 book2DHistoVector(iBooker,
1196 "Vertex Position;Z (cm);R (cm)",
1204 iBooker, h_convVtxZEndcap_,
"1D",
"convVtxZEndcap",
"Vertex Position: #eta > 1.5;Z (cm)", zBin_, zMin_, zMax_);
1205 book2DHistoVector(iBooker, h_convVtxZ_,
"1D",
"convVtxZ",
"Vertex Position;Z (cm)", zBin_, zMin_, zMax_);
1206 book2DHistoVector(iBooker, h_convVtxR_,
"1D",
"convVtxR",
"Vertex Position: #eta < 1;R (cm)", rBin_, rMin_, rMax_);
1207 book2DHistoVector(iBooker,
1211 "Vertex Position: #eta < 1;X (cm);Y (cm)",
1218 book2DHistoVector(iBooker,
1222 "#chi^{2} Probability of Vertex Fitting;#chi^{2}",
1232 int histo_index = 0;
1233 stringstream histo_number_stream;
1236 if (iBooker.
pwd().find(
"InvMass") != string::npos) {
1237 histo_index_invMass_++;
1238 histo_index = histo_index_invMass_;
1240 if (iBooker.
pwd().find(
"Efficiencies") != string::npos) {
1241 histo_index_efficiency_++;
1242 histo_index = histo_index_efficiency_;
1245 histo_number_stream <<
"h_";
1246 if (histo_index < 10)
1247 histo_number_stream <<
"0";
1248 histo_number_stream << histo_index;
1254 vector<vector<MonitorElement*> >& temp2DVector,
1264 int histo_index = 0;
1266 vector<MonitorElement*> temp1DVector;
1269 bool conversionPlot =
false;
1270 if (iBooker.
pwd().find(
"Conversions") != string::npos)
1271 conversionPlot =
true;
1272 bool TwoDPlot =
false;
1273 if (
histoName.find(
"2D") != string::npos)
1276 if (conversionPlot) {
1277 histo_index_conversions_++;
1278 histo_index = histo_index_conversions_;
1280 histo_index_photons_++;
1281 histo_index = histo_index_photons_;
1284 stringstream histo_number_stream;
1285 histo_number_stream <<
"h_";
1286 if (histo_index < 10)
1287 histo_number_stream <<
"0";
1288 histo_number_stream << histo_index <<
"_";
1290 for (
int cut = 0;
cut != numberOfSteps_; ++
cut) {
1292 currentFolder_.str(
"");
1293 currentFolder_ <<
"Egamma/" + fName_ +
"/" << types_[
type] <<
"Photons/Et above " << (
cut + 1) * cutStep_
1296 currentFolder_ <<
"/Conversions";
1302 kind =
" Conversions: ";
1304 kind =
" Photons: ";
1306 if (histoType ==
"1D")
1307 temp1DVector.push_back(
1309 else if (histoType ==
"2D") {
1310 if ((TwoDPlot &&
type == 0) || !TwoDPlot) {
1311 temp1DVector.push_back(iBooker.
book2D(
1314 }
else if (histoType ==
"Profile")
1318 cout <<
"bad histoType\n";
1321 temp2DVector.push_back(temp1DVector);
1322 temp1DVector.clear();
1327 vector<
vector<vector<MonitorElement*> > >& temp3DVector,
1337 int histo_index = 0;
1339 vector<MonitorElement*> temp1DVector;
1340 vector<vector<MonitorElement*> > temp2DVector;
1343 bool conversionPlot =
false;
1344 if (iBooker.
pwd().find(
"Conversions") != string::npos)
1345 conversionPlot =
true;
1347 if (conversionPlot) {
1348 histo_index_conversions_++;
1349 histo_index = histo_index_conversions_;
1351 histo_index_photons_++;
1352 histo_index = histo_index_photons_;
1355 stringstream histo_number_stream;
1356 histo_number_stream <<
"h_";
1357 if (histo_index < 10)
1358 histo_number_stream <<
"0";
1359 histo_number_stream << histo_index <<
"_";
1361 for (
int cut = 0;
cut != numberOfSteps_; ++
cut) {
1364 currentFolder_.str(
"");
1365 currentFolder_ <<
"Egamma/" + fName_ +
"/" << types_[
type] <<
"Photons/Et above " << (
cut + 1) * cutStep_
1368 currentFolder_ <<
"/Conversions";
1373 kind =
" Conversions: ";
1375 kind =
" Photons: ";
1377 if (histoType ==
"1D")
1378 temp1DVector.push_back(iBooker.
book1D(histo_number_stream.str() +
histoName + parts_[
part],
1383 else if (histoType ==
"2D")
1384 temp1DVector.push_back(iBooker.
book2D(histo_number_stream.str() +
histoName + parts_[
part],
1392 else if (histoType ==
"Profile")
1403 cout <<
"bad histoType\n";
1405 temp2DVector.push_back(temp1DVector);
1406 temp1DVector.clear();
1408 temp3DVector.push_back(temp2DVector);
1409 temp2DVector.clear();
1416 using namespace edm;
1418 if (nEvt_ % prescaleFactor_)
1421 LogInfo(fName_) <<
"PhotonAnalyzer Analyzing event number: " <<
e.id() <<
" Global Counter " << nEvt_ <<
"\n";
1424 bool validTriggerEvent =
true;
1427 e.getByToken(triggerEvent_token_, triggerEventHandle);
1428 if (!triggerEventHandle.
isValid()) {
1429 edm::LogInfo(fName_) <<
"Error! Can't get the product: triggerEvent_" << endl;
1430 validTriggerEvent =
false;
1437 e.getByToken(photon_token_, photonHandle);
1438 if (!photonHandle.
isValid()) {
1439 edm::LogInfo(fName_) <<
"Error! Can't get the product: photon_token_" << endl;
1447 e.getByToken(PhotonIDLoose_token_, loosePhotonFlag);
1448 if (!loosePhotonFlag.
isValid()) {
1449 edm::LogInfo(fName_) <<
"Error! Can't get the product: PhotonIDLoose_token_" << endl;
1457 e.getByToken(PhotonIDTight_token_, tightPhotonFlag);
1458 if (!tightPhotonFlag.
isValid()) {
1459 edm::LogInfo(fName_) <<
"Error! Can't get the product: PhotonIDTight_token_" << endl;
1467 e.getByToken(offline_pvToken_, vtxH);
1468 h_nRecoVtx_->Fill(
float(vtxH->size()));
1472 int nPho[100][3][3];
1475 for (
unsigned int type = 0;
type != types_.size(); ++
type) {
1476 for (
unsigned int part = 0;
part != parts_.size(); ++
part) {
1482 int nConv[100][3][3];
1485 for (
unsigned int type = 0;
type != types_.size(); ++
type) {
1486 for (
unsigned int part = 0;
part != parts_.size(); ++
part) {
1498 if (
label.find(
"Photon") != string::npos) {
1499 for (
uint filterKeyIndex = 0; filterKeyIndex <
triggerEvent.filterKeys(filterIndex).size();
1511 if (
i != (
Keys.size() - 1)) {
1525 for (
unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
1531 h_phoEta_preHLT_->Fill(aPho->
eta());
1532 h_phoEt_preHLT_->Fill(aPho->
et());
1538 for (vector<int>::const_iterator objectKey =
Keys.begin(); objectKey !=
Keys.end();
1550 if (useTriggerFiltering_)
1555 h_phoEta_postHLT_->Fill(aPho->
eta());
1556 h_phoEt_postHLT_->Fill(aPho->
et());
1560 bool isLoosePhoton(
false), isTightPhoton(
false);
1562 isLoosePhoton =
true;
1565 bool phoIsInBarrel =
false;
1566 bool phoIsInEndcap =
false;
1568 if (fabs(etaPho) < 1.479)
1569 phoIsInBarrel =
true;
1571 phoIsInEndcap =
true;
1581 bool isIsolated =
false;
1582 if (isolationStrength_ == 0)
1583 isIsolated = isLoosePhoton;
1584 if (isolationStrength_ == 1)
1585 isIsolated = isTightPhoton;
1586 if (isolationStrength_ == 2)
1587 isIsolated = photonSelectionSlimmed(aPho);
1592 if (!excludeBkgHistos_ && !isIsolated)
1596 bool validEcalRecHits =
true;
1599 if (phoIsInBarrel) {
1601 e.getByToken(barrelRecHit_token_, ecalRecHitHandle);
1602 if (!ecalRecHitHandle.
isValid()) {
1603 edm::LogError(fName_) <<
"Error! Can't get the product: barrelRecHit_token_";
1604 validEcalRecHits =
false;
1606 }
else if (phoIsInEndcap) {
1608 e.getByToken(endcapRecHit_token_, ecalRecHitHandle);
1609 if (!ecalRecHitHandle.
isValid()) {
1610 edm::LogError(fName_) <<
"Error! Can't get the product: endcapRecHit_token";
1611 validEcalRecHits =
false;
1614 if (validEcalRecHits)
1615 ecalRecHitCollection = *(ecalRecHitHandle.
product());
1620 if (isLoosePhoton) {
1621 h_phoEta_Loose_->Fill(aPho->
eta());
1622 h_phoEt_Loose_->Fill(aPho->
et());
1624 if (isTightPhoton) {
1625 h_phoEta_Tight_->Fill(aPho->
eta());
1626 h_phoEt_Tight_->Fill(aPho->
et());
1629 for (
int cut = 0;
cut != numberOfSteps_; ++
cut) {
1630 double Et = aPho->
et();
1631 bool passesCuts =
false;
1634 if (useBinning_ && Et > (
cut + 1) * cutStep_ && ((Et < (
cut + 2) * cutStep_) | (
cut == numberOfSteps_ - 1))) {
1636 }
else if (!useBinning_ && Et > (
cut + 1) * cutStep_) {
1740 fill3DHistoVector(h_phoSigmaEoverE_,
1747 fill3DHistoVector(p_phoSigmaEoverEvsNVtx_,
1748 float(vtxH->size()),
1758 fill2DHistoVector(h_phoEta_, aPho->
eta(),
cut,
type);
1768 fill2DHistoVector(h_r9VsEta_, aPho->
eta(), aPho->
r9(),
cut,
type);
1769 fill2DHistoVector(p_r9VsEta_, aPho->
eta(), aPho->
r9(),
cut,
type);
1771 fill2DHistoVector(h_r9VsEt_, aPho->
et(), aPho->
r9(),
cut,
type);
1772 fill2DHistoVector(p_r9VsEt_, aPho->
et(), aPho->
r9(),
cut,
type);
1775 fill2DHistoVector(h_e1x5VsEta_, aPho->
eta(), aPho->
e1x5(),
cut,
type);
1776 fill2DHistoVector(p_e1x5VsEta_, aPho->
eta(), aPho->
e1x5(),
cut,
type);
1778 fill2DHistoVector(h_e1x5VsEt_, aPho->
et(), aPho->
e1x5(),
cut,
type);
1779 fill2DHistoVector(p_e1x5VsEt_, aPho->
et(), aPho->
e1x5(),
cut,
type);
1782 fill2DHistoVector(h_e2x5VsEta_, aPho->
eta(), aPho->
e2x5(),
cut,
type);
1783 fill2DHistoVector(p_e2x5VsEta_, aPho->
eta(), aPho->
e2x5(),
cut,
type);
1785 fill2DHistoVector(h_e2x5VsEt_, aPho->
et(), aPho->
e2x5(),
cut,
type);
1786 fill2DHistoVector(p_e2x5VsEt_, aPho->
et(), aPho->
e2x5(),
cut,
type);
1796 fill2DHistoVector(h_r1x5VsEta_, aPho->
eta(), aPho->
r1x5(),
cut,
type);
1797 fill2DHistoVector(p_r1x5VsEta_, aPho->
eta(), aPho->
r1x5(),
cut,
type);
1799 fill2DHistoVector(h_r1x5VsEt_, aPho->
et(), aPho->
r1x5(),
cut,
type);
1800 fill2DHistoVector(p_r1x5VsEt_, aPho->
et(), aPho->
r1x5(),
cut,
type);
1803 fill2DHistoVector(h_r2x5VsEta_, aPho->
eta(), aPho->
r2x5(),
cut,
type);
1804 fill2DHistoVector(p_r2x5VsEta_, aPho->
eta(), aPho->
r2x5(),
cut,
type);
1806 fill2DHistoVector(h_r2x5VsEt_, aPho->
et(), aPho->
r2x5(),
cut,
type);
1807 fill2DHistoVector(p_r2x5VsEt_, aPho->
et(), aPho->
r2x5(),
cut,
type);
1815 bool atLeastOneDeadChannel =
false;
1819 for (
vector<pair<DetId, float> >::const_iterator rhIt = (*bcIt)->hitsAndFractions().begin();
1820 rhIt != (*bcIt)->hitsAndFractions().end();
1824 it != ecalRecHitCollection.
end();
1826 if (rhIt->first == (*it).id()) {
1827 if ((*it).recoFlag() == 9) {
1828 atLeastOneDeadChannel =
true;
1835 if (atLeastOneDeadChannel) {
1836 fill2DHistoVector(h_phoPhi_BadChannels_, aPho->
phi(),
cut,
type);
1837 fill2DHistoVector(h_phoEta_BadChannels_, aPho->
eta(),
cut,
type);
1838 fill2DHistoVector(h_phoEt_BadChannels_, aPho->
et(),
cut,
type);
1852 for (
unsigned int iConv = 0; iConv <
conversions.size(); iConv++) {
1855 if (aConv->nTracks() < 2)
1860 h_phoEta_Vertex_->Fill(aConv->refittedPairMomentum().eta());
1862 if (!(aConv->conversionVertex().isValid()))
1865 float chi2Prob =
ChiSquaredProbability(aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof());
1867 if (chi2Prob < 0.0005)
1870 fill2DHistoVector(h_vertexChi2Prob_, chi2Prob,
cut,
type);
1873 fill3DHistoVector(h_phoConvEt_, aPho->
et(),
cut,
type,
part);
1874 fill3DHistoVector(h_phoConvR9_, aPho->
r9(),
cut,
type,
part);
1876 if (
cut == 0 && isLoosePhoton) {
1877 h_convEta_Loose_->Fill(aPho->
eta());
1878 h_convEt_Loose_->Fill(aPho->
et());
1880 if (
cut == 0 && isTightPhoton) {
1881 h_convEta_Tight_->Fill(aPho->
eta());
1882 h_convEt_Tight_->Fill(aPho->
et());
1885 fill2DHistoVector(h_phoConvEta_, aConv->refittedPairMomentum().eta(),
cut,
type);
1886 fill3DHistoVector(h_phoConvPhi_, aConv->refittedPairMomentum().phi(),
cut,
type,
part);
1889 fill2DHistoVector(h_phoConvEtaForEfficiency_, aPho->
eta(),
cut,
type);
1890 fill3DHistoVector(h_phoConvPhiForEfficiency_, aPho->
phi(),
cut,
type,
part);
1893 double convR =
sqrt(aConv->conversionVertex().position().perp2());
1894 double scalar = aConv->conversionVertex().position().x() * aConv->refittedPairMomentum().x() +
1895 aConv->conversionVertex().position().y() * aConv->refittedPairMomentum().y();
1899 fill2DHistoVector(h_convVtxRvsZ_,
1900 aConv->conversionVertex().position().z(),
1904 fill2DHistoVector(h_convVtxZ_, aConv->conversionVertex().position().z(),
cut,
type);
1906 if (fabs(aPho->
eta()) > 1.5) {
1907 fill2DHistoVector(h_convVtxZEndcap_, aConv->conversionVertex().position().z(),
cut,
type);
1908 }
else if (fabs(aPho->
eta()) < 1) {
1909 fill2DHistoVector(h_convVtxR_, convR,
cut,
type);
1910 fill2DHistoVector(h_convVtxYvsX_,
1911 aConv->conversionVertex().position().x(),
1912 aConv->conversionVertex().position().y(),
1917 const std::vector<edm::RefToBase<reco::Track> >
tracks = aConv->tracks();
1919 for (
unsigned int i = 0;
i <
tracks.size();
i++) {
1921 fill2DHistoVector(p_tkChi2VsEta_, aPho->
eta(),
tracks[
i]->normalizedChi2(),
cut,
type);
1922 fill2DHistoVector(p_dCotTracksVsEta_, aPho->
eta(), aConv->pairCotThetaSeparation(),
cut,
type);
1928 float DPhiTracksAtVtx = -99;
1929 float dPhiTracksAtEcal = -99;
1930 float dEtaTracksAtEcal = -99;
1932 float phiTk1 = aConv->tracksPin()[0].phi();
1933 float phiTk2 = aConv->tracksPin()[1].phi();
1934 DPhiTracksAtVtx = phiTk1 - phiTk2;
1935 DPhiTracksAtVtx = phiNormalization(DPhiTracksAtVtx);
1937 if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[0].
isNonnull() &&
1938 aConv->bcMatchingWithTracks()[1].
isNonnull()) {
1939 float recoPhi1 = aConv->ecalImpactPosition()[0].phi();
1940 float recoPhi2 = aConv->ecalImpactPosition()[1].phi();
1941 float recoEta1 = aConv->ecalImpactPosition()[0].eta();
1942 float recoEta2 = aConv->ecalImpactPosition()[1].eta();
1944 recoPhi1 = phiNormalization(recoPhi1);
1945 recoPhi2 = phiNormalization(recoPhi2);
1947 dPhiTracksAtEcal = recoPhi1 - recoPhi2;
1948 dPhiTracksAtEcal = phiNormalization(dPhiTracksAtEcal);
1949 dEtaTracksAtEcal = recoEta1 - recoEta2;
1952 fill3DHistoVector(h_dPhiTracksAtVtx_, DPhiTracksAtVtx,
cut,
type,
part);
1953 fill3DHistoVector(h_dPhiTracksAtEcal_, fabs(dPhiTracksAtEcal),
cut,
type,
part);
1954 fill3DHistoVector(h_dEtaTracksAtEcal_, dEtaTracksAtEcal,
cut,
type,
part);
1955 fill3DHistoVector(h_eOverPTracks_, aConv->EoverPrefittedTracks(),
cut,
type,
part);
1956 fill3DHistoVector(h_pOverETracks_, 1. / aConv->EoverPrefittedTracks(),
cut,
type,
part);
1957 fill3DHistoVector(h_dCotTracks_, aConv->pairCotThetaSeparation(),
cut,
type,
part);
1964 if (isIsolated && aPho->
et() >= invMassEtCut_) {
1965 for (
unsigned int iPho2 = iPho + 1; iPho2 < photonHandle->size(); iPho2++) {
1973 bool isTightPhoton2(
false), isLoosePhoton2(
false);
1975 isLoosePhoton2 =
true;
1982 bool isIsolated2 =
false;
1983 if (isolationStrength_ == 0)
1984 isIsolated2 = isLoosePhoton2;
1985 if (isolationStrength_ == 1)
1986 isIsolated2 = isTightPhoton2;
1987 if (isolationStrength_ == 2)
1988 isIsolated2 = photonSelectionSlimmed(aPho2);
1993 if (isIsolated2 && aPho2->
et() >= invMassEtCut_) {
1995 float gamgamMass2 = p12.Dot(p12);
1997 h_invMassAllPhotons_->Fill(
sqrt(gamgamMass2));
1998 if (aPho->
isEB() && aPho2->
isEB()) {
1999 h_invMassPhotonsEBarrel_->Fill(
sqrt(gamgamMass2));
2000 }
else if (aPho->
isEE() && aPho2->
isEE()) {
2001 h_invMassPhotonsEEndcap_->Fill(
sqrt(gamgamMass2));
2003 h_invMassPhotonsEEndcapEBarrel_->Fill(
sqrt(gamgamMass2));
2007 if (!conversions2.
empty() && conversions2[0]->nTracks() >= 2)
2008 h_invMassTwoWithTracks_->Fill(
sqrt(gamgamMass2));
2010 h_invMassOneWithTracks_->Fill(
sqrt(gamgamMass2));
2011 }
else if (!conversions2.
empty() && conversions2[0]->nTracks() >= 2)
2012 h_invMassOneWithTracks_->Fill(
sqrt(gamgamMass2));
2014 h_invMassZeroWithTracks_->Fill(
sqrt(gamgamMass2));
2021 for (
int cut = 0;
cut != numberOfSteps_; ++
cut) {
2034 const float PI = 3.1415927;
2048 vector<vector<MonitorElement*> >& histoVector,
double x,
double y,
int cut,
int type) {
2049 histoVector[
cut][0]->Fill(x, y);
2050 if (histoVector[
cut].
size() > 1)
2051 histoVector[
cut][
type]->Fill(x, y);
2055 histoVector[
cut][0]->Fill(x);
2056 histoVector[
cut][
type]->Fill(x);
2061 histoVector[
cut][0][0]->Fill(x);
2062 histoVector[
cut][0][
part]->Fill(x);
2063 histoVector[
cut][
type][0]->Fill(x);
2069 histoVector[
cut][0][0]->Fill(x, y);
2070 histoVector[
cut][0][
part]->Fill(x, y);
2071 histoVector[
cut][
type][0]->Fill(x, y);
2077 if (pho->
pt() < minPhoEtCut_)
2079 if (fabs(pho->
eta()) > photonMaxEta_)
2087 if (pho->
r9() <= 0.9) {
2093 if (EtCorrHcalIso > 4.0)
2095 if (EtCorrTrkIso > 4.0)
2105 if (EtCorrHcalIso > 50.0)
2107 if (EtCorrTrkIso > 50.0)
2118 if (pho->
pt() < minPhoEtCut_)
2120 if (fabs(pho->
eta()) > photonMaxEta_)