CMS 3D CMS Logo

PhotonValidator.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <memory>
3 
4 //
7 //
9 
10 //
14 //
16 //
20 //
25 //
30 //
31 #include "CLHEP/Units/GlobalPhysicalConstants.h"
33 
34 //
54 
55 //
60 
63 //
64 //#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
65 //
66 #include "TFile.h"
67 #include "TH1.h"
68 #include "TH2.h"
69 #include "TTree.h"
70 #include "TVector3.h"
71 #include "TProfile.h"
72 //
81 using namespace std;
82 
84  : magneticFieldToken_{esConsumes<edm::Transition::BeginRun>()},
85  caloGeometryToken_{esConsumes()},
86  transientTrackBuilderToken_{esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))} {
87  fName_ = pset.getParameter<std::string>("analyzerName");
88  verbosity_ = pset.getUntrackedParameter<int>("Verbosity");
89  parameters_ = pset;
90  fastSim_ = pset.getParameter<bool>("fastSim");
91  isRunCentrally_ = pset.getParameter<bool>("isRunCentrally");
92 
93  photonCollectionProducer_ = pset.getParameter<std::string>("phoProducer");
94  photonCollection_ = pset.getParameter<std::string>("photonCollection");
95  photonCollectionToken_ =
96  consumes<reco::PhotonCollection>(edm::InputTag(photonCollectionProducer_, photonCollection_));
97 
98  token_tp_ = consumes<TrackingParticleCollection>(pset.getParameter<edm::InputTag>("label_tp"));
99 
100  barrelEcalHits_ = consumes<EcalRecHitCollection>(pset.getParameter<edm::InputTag>("barrelEcalHits"));
101  endcapEcalHits_ = consumes<EcalRecHitCollection>(pset.getParameter<edm::InputTag>("endcapEcalHits"));
102 
103  conversionOITrackProducer_ = pset.getParameter<std::string>("conversionOITrackProducer");
104  conversionIOTrackProducer_ = pset.getParameter<std::string>("conversionIOTrackProducer");
105  conversionOITrackPr_Token_ = consumes<edm::View<reco::Track> >(edm::InputTag(conversionOITrackProducer_));
106  conversionIOTrackPr_Token_ = consumes<edm::View<reco::Track> >(edm::InputTag(conversionIOTrackProducer_));
107 
108  pfCandidates_ = consumes<reco::PFCandidateCollection>(pset.getParameter<edm::InputTag>("pfCandidates"));
109  valueMapPhoPFCandIso_ = pset.getParameter<std::string>("valueMapPhoToParticleBasedIso");
110  particleBasedIso_token =
111  consumes<edm::ValueMap<std::vector<reco::PFCandidateRef> > >(pset.getUntrackedParameter<edm::InputTag>(
112  "particleBasedIso", edm::InputTag("particleBasedIsolation", valueMapPhoPFCandIso_)));
113 
114  minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut");
115  convTrackMinPtCut_ = pset.getParameter<double>("convTrackMinPtCut");
116  likelihoodCut_ = pset.getParameter<double>("likelihoodCut");
117 
118  trkIsolExtRadius_ = pset.getParameter<double>("trkIsolExtR");
119  trkIsolInnRadius_ = pset.getParameter<double>("trkIsolInnR");
120  trkPtLow_ = pset.getParameter<double>("minTrackPtCut");
121  lip_ = pset.getParameter<double>("lipCut");
122  ecalIsolRadius_ = pset.getParameter<double>("ecalIsolR");
123  bcEtLow_ = pset.getParameter<double>("minBcEtCut");
124  hcalIsolExtRadius_ = pset.getParameter<double>("hcalIsolExtR");
125  hcalIsolInnRadius_ = pset.getParameter<double>("hcalIsolInnR");
126  hcalHitEtLow_ = pset.getParameter<double>("minHcalHitEtCut");
127 
128  numOfTracksInCone_ = pset.getParameter<int>("maxNumOfTracksInCone");
129  trkPtSumCut_ = pset.getParameter<double>("trkPtSumCut");
130  ecalEtSumCut_ = pset.getParameter<double>("ecalEtSumCut");
131  hcalEtSumCut_ = pset.getParameter<double>("hcalEtSumCut");
132  dCotCutOn_ = pset.getParameter<bool>("dCotCutOn");
133  dCotCutValue_ = pset.getParameter<double>("dCotCutValue");
134  dCotHardCutValue_ = pset.getParameter<double>("dCotHardCutValue");
135 
136  offline_pvToken_ = consumes<reco::VertexCollection>(
137  pset.getUntrackedParameter<edm::InputTag>("offlinePV", edm::InputTag("offlinePrimaryVertices")));
138  g4_simTk_Token_ = consumes<edm::SimTrackContainer>(edm::InputTag("g4SimHits"));
139  g4_simVtx_Token_ = consumes<edm::SimVertexContainer>(edm::InputTag("g4SimHits"));
140  famos_simTk_Token_ = consumes<edm::SimTrackContainer>(edm::InputTag("fastSimProducer"));
141  famos_simVtx_Token_ = consumes<edm::SimVertexContainer>(edm::InputTag("fastSimProducer"));
142  hepMC_Token_ = consumes<edm::HepMCProduct>(edm::InputTag("generatorSmeared"));
143  genjets_Token_ = consumes<reco::GenJetCollection>(edm::InputTag("ak4GenJets"));
144 
145  genpartToken_ = consumes<reco::GenParticleCollection>(edm::InputTag("genParticles"));
146 
147  consumes<reco::TrackToTrackingParticleAssociator>(edm::InputTag("trackAssociatorByHitsForPhotonValidation"));
148 
149  nEvt_ = 0;
150  nEntry_ = 0;
151  nRecConv_ = 0;
152  nRecConvAss_ = 0;
153  nRecConvAssWithEcal_ = 0;
154  nInvalidPCA_ = 0;
155 }
156 
158 
160  double resMin = parameters_.getParameter<double>("resMin");
161  double resMax = parameters_.getParameter<double>("resMax");
162  int resBin = parameters_.getParameter<int>("resBin");
163 
164  double eMin = parameters_.getParameter<double>("eMin");
165  double eMax = parameters_.getParameter<double>("eMax");
166  int eBin = parameters_.getParameter<int>("eBin");
167 
168  double etMin = parameters_.getParameter<double>("etMin");
169  double etMax = parameters_.getParameter<double>("etMax");
170  int etBin = parameters_.getParameter<int>("etBin");
171 
172  double etScale = parameters_.getParameter<double>("etScale");
173 
174  double etaMin = parameters_.getParameter<double>("etaMin");
175  double etaMax = parameters_.getParameter<double>("etaMax");
176  int etaBin = parameters_.getParameter<int>("etaBin");
177  int etaBin2 = parameters_.getParameter<int>("etaBin2");
178 
179  double dEtaMin = parameters_.getParameter<double>("dEtaMin");
180  double dEtaMax = parameters_.getParameter<double>("dEtaMax");
181  int dEtaBin = parameters_.getParameter<int>("dEtaBin");
182 
183  double phiMin = parameters_.getParameter<double>("phiMin");
184  double phiMax = parameters_.getParameter<double>("phiMax");
185  int phiBin = parameters_.getParameter<int>("phiBin");
186 
187  double dPhiMin = parameters_.getParameter<double>("dPhiMin");
188  double dPhiMax = parameters_.getParameter<double>("dPhiMax");
189  int dPhiBin = parameters_.getParameter<int>("dPhiBin");
190 
191  double rMin = parameters_.getParameter<double>("rMin");
192  double rMax = parameters_.getParameter<double>("rMax");
193  int rBin = parameters_.getParameter<int>("rBin");
194 
195  double zMin = parameters_.getParameter<double>("zMin");
196  double zMax = parameters_.getParameter<double>("zMax");
197  int zBin = parameters_.getParameter<int>("zBin");
198 
199  double r9Min = parameters_.getParameter<double>("r9Min");
200  double r9Max = parameters_.getParameter<double>("r9Max");
201  int r9Bin = parameters_.getParameter<int>("r9Bin");
202 
203  double dPhiTracksMin = parameters_.getParameter<double>("dPhiTracksMin");
204  double dPhiTracksMax = parameters_.getParameter<double>("dPhiTracksMax");
205  int dPhiTracksBin = parameters_.getParameter<int>("dPhiTracksBin");
206 
207  double dEtaTracksMin = parameters_.getParameter<double>("dEtaTracksMin");
208  double dEtaTracksMax = parameters_.getParameter<double>("dEtaTracksMax");
209  int dEtaTracksBin = parameters_.getParameter<int>("dEtaTracksBin");
210 
211  double dCotTracksMin = parameters_.getParameter<double>("dCotTracksMin");
212  double dCotTracksMax = parameters_.getParameter<double>("dCotTracksMax");
213  int dCotTracksBin = parameters_.getParameter<int>("dCotTracksBin");
214 
215  double povereMin = parameters_.getParameter<double>("povereMin");
216  double povereMax = parameters_.getParameter<double>("povereMax");
217  int povereBin = parameters_.getParameter<int>("povereBin");
218 
219  double eoverpMin = parameters_.getParameter<double>("eoverpMin");
220  double eoverpMax = parameters_.getParameter<double>("eoverpMax");
221  int eoverpBin = parameters_.getParameter<int>("eoverpBin");
222 
223  double chi2Min = parameters_.getParameter<double>("chi2Min");
224  double chi2Max = parameters_.getParameter<double>("chi2Max");
225 
226  int ggMassBin = parameters_.getParameter<int>("ggMassBin");
227  double ggMassMin = parameters_.getParameter<double>("ggMassMin");
228  double ggMassMax = parameters_.getParameter<double>("ggMassMax");
229 
230  double rMinForXray = parameters_.getParameter<double>("rMinForXray");
231  double rMaxForXray = parameters_.getParameter<double>("rMaxForXray");
232  int rBinForXray = parameters_.getParameter<int>("rBinForXray");
233  double zMinForXray = parameters_.getParameter<double>("zMinForXray");
234  double zMaxForXray = parameters_.getParameter<double>("zMaxForXray");
235  int zBinForXray = parameters_.getParameter<int>("zBinForXray");
236  int zBin2ForXray = parameters_.getParameter<int>("zBin2ForXray");
237 
239  // SC from reco photons
240 
241  iBooker.setCurrentFolder("EgammaV/" + fName_ + "/SimulationInfo");
242 
243  // simulation information about all MC photons found
244  std::string histname = "nOfSimPhotons";
245  if (!isRunCentrally_) {
246  h_nSimPho_[0] = iBooker.book1D(histname, "# of Sim photons per event ", 20, -0.5, 19.5);
247  histname = "SimPhoMotherEt";
248  h_SimPhoMotherEt_[0] = iBooker.book1D(histname, "Sim photon Mother tranverse energy spectrum", etBin, etMin, etMax);
249  h_SimPhoMotherEta_[0] = iBooker.book1D("SimPhoMotherEta", " Sim Photon Mother Eta ", etaBin, etaMin, etaMax);
250  histname = "SimPhoMotherEtMatched";
251  h_SimPhoMotherEt_[1] = iBooker.book1D(
252  histname, "Sim photon matched by a reco Photon: Mother tranverse energy spectrum", etBin, etMin, etMax);
253  h_SimPhoMotherEta_[1] = iBooker.book1D(
254  "SimPhoMotherEtaMatched", " Sim Photon matched by a reco Photon: Mother Eta ", etaBin, etaMin, etaMax);
255  }
256 
257  histname = "h_SimPhoEta";
258  h_SimPho_[0] = iBooker.book1D(histname, " All photons simulated #eta", etaBin, etaMin, etaMax);
259  histname = "h_SimPhoPhi";
260  h_SimPho_[1] = iBooker.book1D(histname, " All photons simulated #phi", phiBin, phiMin, phiMax);
261  histname = "h_SimPhoEt";
262  h_SimPho_[2] = iBooker.book1D(histname, " All photons simulated Et", etBin, etMin, etMax);
263  // Numerators
264  histname = "nOfSimPhotonsMatched";
265  h_nSimPho_[1] = iBooker.book1D(histname, "# of Sim photons matched by a reco Photon per event ", 20, -0.5, 19.5);
266  histname = "h_MatchedSimPhoEta";
267  h_MatchedSimPho_[0] = iBooker.book1D(histname, " Matching photons simulated #eta", etaBin, etaMin, etaMax);
268  histname = "h_MatchedSimPhoPhi";
269  h_MatchedSimPho_[1] = iBooker.book1D(histname, " Matching photons simulated #phi", phiBin, phiMin, phiMax);
270  histname = "h_MatchedSimPhoEt";
271  h_MatchedSimPho_[2] = iBooker.book1D(histname, " Matching photons simulated Et", etBin, etMin, etMax);
272  //
273  histname = "h_MatchedSimPhoBadChEta";
274  h_MatchedSimPhoBadCh_[0] = iBooker.book1D(histname, " Matching photons simulated #eta", etaBin, etaMin, etaMax);
275  histname = "h_MatchedSimPhoBadChPhi";
276  h_MatchedSimPhoBadCh_[1] = iBooker.book1D(histname, " Matching photons simulated #phi", phiBin, phiMin, phiMax);
277  histname = "h_MatchedSimPhoBadChEt";
278  h_MatchedSimPhoBadCh_[2] = iBooker.book1D(histname, " Matching photons simulated Et", etBin, etMin, etMax);
279 
281  histname = "nOfSimConversions";
282  if (!isRunCentrally_) {
283  h_nSimConv_[0] = iBooker.book1D(histname, "# of Sim conversions per event ", 20, -0.5, 19.5);
284  histname = "nOfVisSimConversions";
285  h_nSimConv_[1] = iBooker.book1D(histname, "# of Sim conversions per event ", 20, -0.5, 19.5);
286  }
288  histname = "h_AllSimConvEta";
289  h_AllSimConv_[0] = iBooker.book1D(histname, " All conversions: simulated #eta", etaBin2, etaMin, etaMax);
290  histname = "h_AllSimConvPhi";
291  h_AllSimConv_[1] = iBooker.book1D(histname, " All conversions: simulated #phi", phiBin, phiMin, phiMax);
292  histname = "h_AllSimConvR";
293  h_AllSimConv_[2] = iBooker.book1D(histname, " All conversions: simulated R", rBin, rMin, rMax);
294  histname = "h_AllSimConvZ";
295  h_AllSimConv_[3] = iBooker.book1D(histname, " All conversions: simulated Z", zBin, zMin, zMax);
296  histname = "h_AllSimConvEt";
297  h_AllSimConv_[4] = iBooker.book1D(histname, " All conversions: simulated Et", etBin, etMin, etMax);
298  //
299  histname = "h_VisSimConvEta";
300  h_VisSimConv_[0] = iBooker.book1D(histname, " All vis conversions: simulated #eta", etaBin2, etaMin, etaMax);
301  histname = "h_VisSimConvPhi";
302  h_VisSimConv_[1] = iBooker.book1D(histname, " All vis conversions: simulated #phi", phiBin, phiMin, phiMax);
303  histname = "h_VisSimConvR";
304  h_VisSimConv_[2] = iBooker.book1D(histname, " All vis conversions: simulated R", rBin, rMin, rMax);
305  histname = "h_VisSimConvZ";
306  h_VisSimConv_[3] = iBooker.book1D(histname, " All vis conversions: simulated Z", zBin, zMin, zMax);
307  histname = "h_VisSimConvEt";
308  h_VisSimConv_[4] = iBooker.book1D(histname, " All vis conversions: simulated Et", etBin, etMin, etMax);
310  histname = "h_SimConvOneTracksEta";
312  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated #eta", etaBin2, etaMin, etaMax);
313  histname = "h_SimConvOneTracksPhi";
315  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated #phi", phiBin, phiMin, phiMax);
316  histname = "h_SimConvOneTracksR";
318  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated R", rBin, rMin, rMax);
319  histname = "h_SimConvOneTracksZ";
321  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated Z", zBin, zMin, zMax);
322  histname = "h_SimConvOneTracksEt";
324  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated Et", etBin, etMin, etMax);
325  //
326  histname = "h_SimConvTwoMTracksEta";
327  h_SimConvTwoMTracks_[0] = iBooker.book1D(
328  histname, " All vis conversions with 2 reco-matching tracks: simulated #eta", etaBin2, etaMin, etaMax);
329  histname = "h_SimConvTwoMTracksPhi";
330  h_SimConvTwoMTracks_[1] = iBooker.book1D(
331  histname, " All vis conversions with 2 reco-matching tracks: simulated #phi", phiBin, phiMin, phiMax);
332  histname = "h_SimConvTwoMTracksR";
334  iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated R", rBin, rMin, rMax);
335  histname = "h_SimConvTwoMTracksZ";
337  iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated Z", zBin, zMin, zMax);
338  histname = "h_SimConvTwoMTracksEt";
340  iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated Et", etBin, etMin, etMax);
341  //
342  histname = "h_SimConvTwoTracksEta";
344  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated #eta", etaBin2, etaMin, etaMax);
345  histname = "h_SimConvTwoTracksPhi";
347  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated #phi", phiBin, phiMin, phiMax);
348  histname = "h_SimConvTwoTracksR";
350  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated R", rBin, rMin, rMax);
351  histname = "h_SimConvTwoTracksZ";
353  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated Z", zBin, zMin, zMax);
354  histname = "h_SimConvTwoTracksEt";
356  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated Et", etBin, etMin, etMax);
357  //
358  histname = "h_SimConvOneMTracksEta";
359  h_SimConvOneMTracks_[0] = iBooker.book1D(
360  histname, " All vis conversions with 1 reco-matching tracks: simulated #eta", etaBin2, etaMin, etaMax);
361  histname = "h_SimConvOneMTracksPhi";
362  h_SimConvOneMTracks_[1] = iBooker.book1D(
363  histname, " All vis conversions with 1 reco-matching tracks: simulated #phi", phiBin, phiMin, phiMax);
364  histname = "h_SimConvOneMTracksR";
366  iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated R", rBin, rMin, rMax);
367  histname = "h_SimConvOneMTracksZ";
369  iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated Z", zBin, zMin, zMax);
370  histname = "h_SimConvOneMTracksEt";
372  iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated Et", etBin, etMin, etMax);
373  //
374  histname = "h_SimConvTwoMTracksEtaAndVtxPGT0";
376  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #eta", etaBin2, etaMin, etaMax);
377  histname = "h_SimConvTwoMTracksPhiAndVtxPGT0";
379  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #phi", phiBin, phiMin, phiMax);
380  histname = "h_SimConvTwoMTracksRAndVtxPGT0";
382  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated R", rBin, rMin, rMax);
383  histname = "h_SimConvTwoMTracksZAndVtxPGT0";
385  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Z", zBin, zMin, zMax);
386  histname = "h_SimConvTwoMTracksEtAndVtxPGT0";
388  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Et", etBin, etMin, etMax);
389  //
390  histname = "h_SimConvTwoMTracksEtaAndVtxPGT0005";
392  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #eta", etaBin2, etaMin, etaMax);
393  histname = "h_SimConvTwoMTracksPhiAndVtxPGT0005";
395  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #phi", phiBin, phiMin, phiMax);
396  histname = "h_SimConvTwoMTracksRAndVtxPGT0005";
398  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated R", rBin, rMin, rMax);
399  histname = "h_SimConvTwoMTracksZAndVtxPGT0005";
401  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Z", zBin, zMin, zMax);
402  histname = "h_SimConvTwoMTracksEtAndVtxPGT0005";
404  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Et", etBin, etMin, etMax);
405 
406  if (!isRunCentrally_) {
407  h_SimConvEtaPix_[0] = iBooker.book1D("simConvEtaPix", " sim converted Photon Eta: Pix ", etaBin, etaMin, etaMax);
408  h_simTkPt_ = iBooker.book1D("simTkPt", "Sim conversion tracks pt ", etBin * 3, 0., etMax);
409  h_simTkEta_ = iBooker.book1D("simTkEta", "Sim conversion tracks eta ", etaBin, etaMin, etaMax);
410  h_simConvVtxRvsZ_[0] = iBooker.book2D("simConvVtxRvsZAll",
411  " Photon Sim conversion vtx position",
412  zBinForXray,
413  zMinForXray,
414  zMaxForXray,
415  rBinForXray,
416  rMinForXray,
417  rMaxForXray);
418  h_simConvVtxRvsZ_[1] = iBooker.book2D("simConvVtxRvsZBarrel",
419  " Photon Sim conversion vtx position",
420  zBinForXray,
421  zMinForXray,
422  zMaxForXray,
423  rBinForXray,
424  rMinForXray,
425  rMaxForXray);
426  h_simConvVtxRvsZ_[2] = iBooker.book2D("simConvVtxRvsZEndcap",
427  " Photon Sim conversion vtx position",
428  zBin2ForXray,
429  zMinForXray,
430  zMaxForXray,
431  rBinForXray,
432  rMinForXray,
433  rMaxForXray);
434  h_simConvVtxYvsX_ = iBooker.book2D(
435  "simConvVtxYvsXTrkBarrel", " Photon Sim conversion vtx position, (x,y) eta<1 ", 100, -80., 80., 100, -80., 80.);
436  }
437 
439  histname = "h_SimJetEta";
440  h_SimJet_[0] = iBooker.book1D(histname, " Jet bkg simulated #eta", etaBin, etaMin, etaMax);
441  histname = "h_SimJetPhi";
442  h_SimJet_[1] = iBooker.book1D(histname, " Jet bkg simulated #phi", phiBin, phiMin, phiMax);
443  histname = "h_SimJetEt";
444  h_SimJet_[2] = iBooker.book1D(histname, " Jet bkg simulated Et", etBin, etMin, etMax);
445  //
446  histname = "h_MatchedSimJetEta";
447  h_MatchedSimJet_[0] = iBooker.book1D(histname, " Matching jet simulated #eta", etaBin, etaMin, etaMax);
448  histname = "h_MatchedSimJetPhi";
449  h_MatchedSimJet_[1] = iBooker.book1D(histname, " Matching jet simulated #phi", phiBin, phiMin, phiMax);
450  histname = "h_MatchedSimJetEt";
451  h_MatchedSimJet_[2] = iBooker.book1D(histname, " Matching jet simulated Et", etBin, etMin, etMax);
452  //
453  histname = "h_MatchedSimJetBadChEta";
454  h_MatchedSimJetBadCh_[0] = iBooker.book1D(histname, " Matching jet simulated #eta", etaBin, etaMin, etaMax);
455  histname = "h_MatchedSimJetBadChPhi";
456  h_MatchedSimJetBadCh_[1] = iBooker.book1D(histname, " Matching jet simulated #phi", phiBin, phiMin, phiMax);
457  histname = "h_MatchedSimJetBadChEt";
458  h_MatchedSimJetBadCh_[2] = iBooker.book1D(histname, " Matching jet simulated Et", etBin, etMin, etMax);
459 
460  iBooker.setCurrentFolder("EgammaV/" + fName_ + "/Background");
461 
462  histname = "nOfPhotons";
463  h_nPho_ = iBooker.book1D(histname, "# of Reco photons per event ", 20, -0.5, 19.5);
464 
465  h_scBkgEta_ = iBooker.book1D("scBkgEta", " SC Bkg Eta ", etaBin, etaMin, etaMax);
466  h_scBkgPhi_ = iBooker.book1D("scBkgPhi", " SC Bkg Phi ", phiBin, phiMin, phiMax);
467  //
468  h_phoBkgEta_ = iBooker.book1D("phoBkgEta", " Photon Bkg Eta ", etaBin, etaMin, etaMax);
469  h_phoBkgPhi_ = iBooker.book1D("phoBkgPhi", " Photon Bkg Phi ", phiBin, phiMin, phiMax);
470  //
471  h_phoBkgDEta_ = iBooker.book1D("phoBkgDEta", " Photon Eta(rec)-Eta(true) ", dEtaBin, dEtaMin, dEtaMax);
472  h_phoBkgDPhi_ = iBooker.book1D("phoBkgDPhi", " Photon Phi(rec)-Phi(true) ", dPhiBin, dPhiMin, dPhiMax);
473  //
474  histname = "phoBkgE";
475  h_phoBkgE_[0] = iBooker.book1D(histname + "All", " Photon Bkg Energy: All ecal ", eBin, eMin, eMax);
476  h_phoBkgE_[1] = iBooker.book1D(histname + "Barrel", " Photon Bkg Energy: barrel ", eBin, eMin, eMax);
477  h_phoBkgE_[2] = iBooker.book1D(histname + "Endcap", " Photon Bkg Energy: Endcap ", eBin, eMin, eMax);
478  //
479  histname = "phoBkgEt";
480  h_phoBkgEt_[0] = iBooker.book1D(histname + "All", " Photon Bkg Transverse Energy: All ecal ", etBin, etMin, etMax);
481  h_phoBkgEt_[1] = iBooker.book1D(histname + "Barrel", " Photon Bkg Transverse Energy: Barrel ", etBin, etMin, etMax);
482  h_phoBkgEt_[2] = iBooker.book1D(histname + "Endcap", " Photon BkgTransverse Energy: Endcap ", etBin, etMin, etMax);
483 
484  //
485  histname = "scBkgE";
486  h_scBkgE_[0] = iBooker.book1D(histname + "All", " SC bkg Energy: All Ecal ", eBin, eMin, eMax);
487  h_scBkgE_[1] = iBooker.book1D(histname + "Barrel", " SC bkg Energy: Barrel ", eBin, eMin, eMax);
488  h_scBkgE_[2] = iBooker.book1D(histname + "Endcap", " SC bkg Energy: Endcap ", eBin, eMin, eMax);
489  histname = "scBkgEt";
490  h_scBkgEt_[0] = iBooker.book1D(histname + "All", " SC bkg Et: All Ecal ", eBin, eMin, eMax);
491  h_scBkgEt_[1] = iBooker.book1D(histname + "Barrel", " SC bkg Et: Barrel ", eBin, eMin, eMax);
492  h_scBkgEt_[2] = iBooker.book1D(histname + "Endcap", " SC bkg Et: Endcap ", eBin, eMin, eMax);
493  //
494  histname = "r9Bkg";
495  h_r9Bkg_[0] = iBooker.book1D(histname + "All", " r9 bkg: All Ecal", r9Bin, r9Min, r9Max);
496  h_r9Bkg_[1] = iBooker.book1D(histname + "Barrel", " r9 bkg: Barrel ", r9Bin, r9Min, r9Max);
497  h_r9Bkg_[2] = iBooker.book1D(histname + "Endcap", " r9 bkg: Endcap ", r9Bin, r9Min, r9Max);
498  //
499  histname = "R9VsEtaBkg";
500  if (!isRunCentrally_)
502  iBooker.book2D(histname + "All", " Bkg r9 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
503  //
504  histname = "R9VsEtBkg";
505  if (!isRunCentrally_)
506  h2_r9VsEtBkg_ =
507  iBooker.book2D(histname + "All", " Bkg photons r9 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
508  //
509  histname = "r1Bkg";
510  h_r1Bkg_[0] = iBooker.book1D(histname + "All", " Bkg photon e1x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
511  h_r1Bkg_[1] = iBooker.book1D(histname + "Barrel", " Bkg photon e1x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
512  h_r1Bkg_[2] = iBooker.book1D(histname + "Endcap", " Bkg photon e1x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
513  //
514  histname = "R1VsEtaBkg";
515  if (!isRunCentrally_)
516  h2_r1VsEtaBkg_ = iBooker.book2D(
517  histname + "All", " Bkg photons e1x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
518  histname = "pR1VsEtaBkg";
519  if (!isRunCentrally_)
520  p_r1VsEtaBkg_ = iBooker.bookProfile(
521  histname + "All", " Bkg photons e1x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
522  //
523  histname = "R1VsEtBkg";
524  if (!isRunCentrally_)
525  h2_r1VsEtBkg_ =
526  iBooker.book2D(histname + "All", " Bkg photons e1x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
527  histname = "pR1VsEtBkg";
528  if (!isRunCentrally_)
529  p_r1VsEtBkg_ = iBooker.bookProfile(
530  histname + "All", " Bkg photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
531  //
532  histname = "r2Bkg";
533  h_r2Bkg_[0] = iBooker.book1D(histname + "All", " Bkg photon e2x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
534  h_r2Bkg_[1] = iBooker.book1D(histname + "Barrel", " Bkg photon e2x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
535  h_r2Bkg_[2] = iBooker.book1D(histname + "Endcap", " Bkg photon e2x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
536  //
537  histname = "R2VsEtaBkg";
538  if (!isRunCentrally_)
539  h2_r2VsEtaBkg_ = iBooker.book2D(
540  histname + "All", " Bkg photons e2x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
541  histname = "pR2VsEtaBkg";
542  if (!isRunCentrally_)
543  p_r2VsEtaBkg_ = iBooker.bookProfile(
544  histname + "All", " Bkg photons e2x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
545  //
546  histname = "R2VsEtBkg";
547  if (!isRunCentrally_)
548  h2_r2VsEtBkg_ =
549  iBooker.book2D(histname + "All", " Bkg photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
550  histname = "pR2VsEtBkg";
551  if (!isRunCentrally_)
552  p_r2VsEtBkg_ = iBooker.bookProfile(
553  histname + "All", " Bkg photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
554 
555  histname = "sigmaIetaIetaBkg";
556  h_sigmaIetaIetaBkg_[0] = iBooker.book1D(histname + "All", "Bkg sigmaIetaIeta: All Ecal", 100, 0., 0.1);
557  h_sigmaIetaIetaBkg_[1] = iBooker.book1D(histname + "Barrel", "Bkg sigmaIetaIeta: Barrel ", 100, 0., 0.05);
558  h_sigmaIetaIetaBkg_[2] = iBooker.book1D(histname + "Endcap", "Bkg sigmaIetaIeta: Endcap ", 100, 0., 0.1);
559  //
560  histname = "sigmaIetaIetaVsEtaBkg";
561  if (!isRunCentrally_)
563  histname + "All", " Bkg photons sigmaIetaIeta vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
564  histname = "pSigmaIetaIetaVsEtaBkg";
565  if (!isRunCentrally_)
567  histname + "All", " Bkg photons sigmaIetaIeta vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
568  //
569  histname = "sigmaIetaIetaVsEtBkg";
570  if (!isRunCentrally_)
571  h2_sigmaIetaIetaVsEtBkg_[0] = iBooker.book2D(
572  histname + "All", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
573  if (!isRunCentrally_)
574  h2_sigmaIetaIetaVsEtBkg_[1] = iBooker.book2D(
575  histname + "Barrel", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
576  if (!isRunCentrally_)
577  h2_sigmaIetaIetaVsEtBkg_[2] = iBooker.book2D(
578  histname + "Endcap", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
579  //
580  histname = "pSigmaIetaIetaVsEtBkg";
581  if (!isRunCentrally_)
583  histname + "All", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
584  if (!isRunCentrally_)
586  histname + "Barrel", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
587  if (!isRunCentrally_)
589  histname + "Endcap", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
590  //
591  histname = "hOverEBkg";
592  h_hOverEBkg_[0] = iBooker.book1D(histname + "All", "H/E bkg: All Ecal", 100, 0., 1.);
593  h_hOverEBkg_[1] = iBooker.book1D(histname + "Barrel", "H/E bkg: Barrel ", 100, 0., 1.);
594  h_hOverEBkg_[2] = iBooker.book1D(histname + "Endcap", "H/E bkg: Endcap ", 100, 0., 1.);
595  //
596  histname = "pHOverEVsEtaBkg";
597  if (!isRunCentrally_)
599  iBooker.bookProfile(histname + "All", " Bkg H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
600  histname = "pHOverEVsEtBkg";
601  if (!isRunCentrally_)
603  iBooker.bookProfile(histname + "All", " Bkg photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
604  if (!isRunCentrally_) {
605  histname = "hOverEVsEtaBkg";
607  iBooker.book2D(histname + "All", " Bkg H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
608  //
609  histname = "hOverEVsEtBkg";
611  iBooker.book2D(histname + "All", " Bkg photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
612  }
613  //
614  histname = "ecalRecHitSumEtConeDR04Bkg";
616  iBooker.book1D(histname + "All", "bkg ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 50.);
618  iBooker.book1D(histname + "Barrel", "bkg ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 50.);
620  iBooker.book1D(histname + "Endcap", "bkg ecalRecHitSumEtDR04: Endcap ", etBin, etMin, 50.);
621  //
622  if (!isRunCentrally_) {
623  histname = "ecalRecHitSumEtConeDR04VsEtaBkg";
624  h2_ecalRecHitSumEtConeDR04VsEtaBkg_ = iBooker.book2D(histname + "All",
625  " bkg ecalRecHitSumEtDR04 vs #eta: all Ecal ",
626  etaBin2,
627  etaMin,
628  etaMax,
629  etBin,
630  etMin,
631  etMax * etScale);
632  histname = "ecalRecHitSumEtConeDR04VsEtBkg";
633  h2_ecalRecHitSumEtConeDR04VsEtBkg_[0] = iBooker.book2D(histname + "All",
634  " Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
635  etBin,
636  etMin,
637  etMax,
638  etBin,
639  etMin,
640  etMax * etScale);
641  h2_ecalRecHitSumEtConeDR04VsEtBkg_[1] = iBooker.book2D(histname + "Barrel",
642  " Bkg ecalRecHitSumEtDR04 vs Et: Barrel ",
643  etBin,
644  etMin,
645  etMax,
646  etBin,
647  etMin,
648  etMax * etScale);
649  h2_ecalRecHitSumEtConeDR04VsEtBkg_[2] = iBooker.book2D(histname + "Endcap",
650  " Bkg ecalRecHitSumEtDR04 vs Et: Endcap ",
651  etBin,
652  etMin,
653  etMax,
654  etBin,
655  etMin,
656  etMax * etScale);
657  histname = "hcalTowerSumEtConeDR04VsEtaBkg";
658  h2_hcalTowerSumEtConeDR04VsEtaBkg_ = iBooker.book2D(histname + "All",
659  " bkg hcalTowerSumEtDR04 vs #eta: all Ecal ",
660  etaBin2,
661  etaMin,
662  etaMax,
663  etBin,
664  etMin,
665  etMax * etScale);
666  histname = "hcalTowerSumEtConeDR04VsEtBkg";
667  h2_hcalTowerSumEtConeDR04VsEtBkg_[0] = iBooker.book2D(histname + "All",
668  " Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
669  etBin,
670  etMin,
671  etMax,
672  etBin,
673  etMin,
674  etMax * etScale);
675  h2_hcalTowerSumEtConeDR04VsEtBkg_[1] = iBooker.book2D(histname + "Barrel",
676  " Bkg hcalTowerSumEtDR04 vs Et: Barrel ",
677  etBin,
678  etMin,
679  etMax,
680  etBin,
681  etMin,
682  etMax * etScale);
683  h2_hcalTowerSumEtConeDR04VsEtBkg_[2] = iBooker.book2D(histname + "Endcap",
684  " Bkg hcalTowerSumEtDR04 vs Et: Endcap ",
685  etBin,
686  etMin,
687  etMax,
688  etBin,
689  etMin,
690  etMax * etScale);
691  }
692 
693  histname = "pEcalRecHitSumEtConeDR04VsEtaBkg";
694  if (!isRunCentrally_)
695  p_ecalRecHitSumEtConeDR04VsEtaBkg_ = iBooker.bookProfile(histname + "All",
696  "bkg photons ecalRecHitSumEtDR04 vs #eta: all Ecal ",
697  etaBin2,
698  etaMin,
699  etaMax,
700  etBin,
701  etMin,
702  etMax * etScale,
703  "");
704  //
705  histname = "pEcalRecHitSumEtConeDR04VsEtBkg";
706  if (!isRunCentrally_)
707  p_ecalRecHitSumEtConeDR04VsEtBkg_[0] = iBooker.bookProfile(histname + "All",
708  "Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
709  etBin,
710  etMin,
711  etMax,
712  etBin,
713  etMin,
714  etMax * etScale,
715  "");
716  if (!isRunCentrally_)
717  p_ecalRecHitSumEtConeDR04VsEtBkg_[1] = iBooker.bookProfile(histname + "Barrel",
718  "Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
719  etBin,
720  etMin,
721  etMax,
722  etBin,
723  etMin,
724  etMax * etScale,
725  "");
726  if (!isRunCentrally_)
727  p_ecalRecHitSumEtConeDR04VsEtBkg_[2] = iBooker.bookProfile(histname + "Endcap",
728  "Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
729  etBin,
730  etMin,
731  etMax,
732  etBin,
733  etMin,
734  etMax * etScale,
735  "");
736  //
737  histname = "hcalTowerSumEtConeDR04Bkg";
739  iBooker.book1D(histname + "All", "bkg hcalTowerSumEtDR04: All Ecal", etBin, etMin, 20.);
741  iBooker.book1D(histname + "Barrel", "bkg hcalTowerSumEtDR04: Barrel ", etBin, etMin, 20.);
743  iBooker.book1D(histname + "Endcap", "bkg hcalTowerSumEtDR04: Endcap ", etBin, etMin, 20.);
744  //
745  histname = "pHcalTowerSumEtConeDR04VsEtaBkg";
746  if (!isRunCentrally_)
747  p_hcalTowerSumEtConeDR04VsEtaBkg_ = iBooker.bookProfile(histname + "All",
748  "bkg photons hcalTowerSumEtDR04 vs #eta: all Ecal ",
749  etaBin2,
750  etaMin,
751  etaMax,
752  etBin,
753  etMin,
754  etMax * etScale,
755  "");
756  //
757  histname = "pHcalTowerSumEtConeDR04VsEtBkg";
758  if (!isRunCentrally_)
759  p_hcalTowerSumEtConeDR04VsEtBkg_[0] = iBooker.bookProfile(histname + "All",
760  "Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
761  etBin,
762  etMin,
763  etMax,
764  etBin,
765  etMin,
766  etMax * etScale,
767  "");
768  if (!isRunCentrally_)
769  p_hcalTowerSumEtConeDR04VsEtBkg_[1] = iBooker.bookProfile(histname + "Barrel",
770  "Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
771  etBin,
772  etMin,
773  etMax,
774  etBin,
775  etMin,
776  etMax * etScale,
777  "");
778  if (!isRunCentrally_)
779  p_hcalTowerSumEtConeDR04VsEtBkg_[2] = iBooker.bookProfile(histname + "Endcap",
780  "Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
781  etBin,
782  etMin,
783  etMax,
784  etBin,
785  etMin,
786  etMax * etScale,
787  "");
788  //
789  histname = "isoTrkSolidConeDR04Bkg";
791  iBooker.book1D(histname + "All", "isoTrkSolidConeDR04 Bkg: All Ecal", etBin, etMin, etMax * 0.1);
793  iBooker.book1D(histname + "Barrel", "isoTrkSolidConeDR04 Bkg: Barrel ", etBin, etMin, etMax * 0.1);
795  iBooker.book1D(histname + "Endcap", "isoTrkSolidConeDR04 Bkg: Endcap ", etBin, etMin, etMax * 0.1);
796  //
797  histname = "isoTrkSolidConeDR04VsEtaBkg";
798  if (!isRunCentrally_)
799  h2_isoTrkSolidConeDR04VsEtaBkg_ = iBooker.book2D(histname + "All",
800  " Bkg photons isoTrkSolidConeDR04 vs #eta: all Ecal ",
801  etaBin2,
802  etaMin,
803  etaMax,
804  etBin,
805  etMin,
806  etMax * 0.1);
807  histname = "pIsoTrkSolidConeDR04VsEtaBkg";
808  if (!isRunCentrally_)
809  p_isoTrkSolidConeDR04VsEtaBkg_ = iBooker.bookProfile(histname + "All",
810  " Bkg photons isoTrkSolidConeDR04 vs #eta: all Ecal ",
811  etaBin2,
812  etaMin,
813  etaMax,
814  etBin,
815  etMin,
816  etMax * 0.1);
817  //
818  histname = "isoTrkSolidConeDR04VsEtBkg";
819  if (!isRunCentrally_)
820  h2_isoTrkSolidConeDR04VsEtBkg_[0] = iBooker.book2D(histname + "All",
821  " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
822  etBin,
823  etMin,
824  etMax,
825  etBin,
826  etMin,
827  etMax * 0.1);
828  if (!isRunCentrally_)
829  h2_isoTrkSolidConeDR04VsEtBkg_[1] = iBooker.book2D(histname + "Barrel",
830  " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
831  etBin,
832  etMin,
833  etMax,
834  etBin,
835  etMin,
836  etMax * 0.1);
837  if (!isRunCentrally_)
838  h2_isoTrkSolidConeDR04VsEtBkg_[2] = iBooker.book2D(histname + "Endcap",
839  " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
840  etBin,
841  etMin,
842  etMax,
843  etBin,
844  etMin,
845  etMax * 0.1);
846  histname = "pIsoTrkSolidConeDR04VsEtBkg";
847  if (!isRunCentrally_)
848  p_isoTrkSolidConeDR04VsEtBkg_[0] = iBooker.bookProfile(histname + "All",
849  " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
850  etBin,
851  etMin,
852  etMax,
853  etBin,
854  etMin,
855  etMax * 0.1);
856  if (!isRunCentrally_)
857  p_isoTrkSolidConeDR04VsEtBkg_[1] = iBooker.bookProfile(histname + "Barrel",
858  " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
859  etBin,
860  etMin,
861  etMax,
862  etBin,
863  etMin,
864  etMax * 0.1);
865  if (!isRunCentrally_)
866  p_isoTrkSolidConeDR04VsEtBkg_[2] = iBooker.bookProfile(histname + "Endcap",
867  " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
868  etBin,
869  etMin,
870  etMax,
871  etBin,
872  etMin,
873  etMax * 0.1);
874  //
875  histname = "nTrkSolidConeDR04Bkg";
876  h_nTrkSolidConeDR04Bkg_[0] = iBooker.book1D(histname + "All", "Bkg nTrkSolidConeDR04: All Ecal", 20, 0., 20);
877  h_nTrkSolidConeDR04Bkg_[1] = iBooker.book1D(histname + "Barrel", "Bkg nTrkSolidConeDR04: Barrel ", 20, 0., 20);
878  h_nTrkSolidConeDR04Bkg_[2] = iBooker.book1D(histname + "Endcap", "Bkg nTrkSolidConeDR04: Endcap ", 20, 0., 20);
879  //
880  histname = "nTrkSolidConeDR04VsEtaBkg";
881  if (!isRunCentrally_)
883  histname + "All", " Bkg photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
884  histname = "p_nTrkSolidConeDR04VsEtaBkg";
885  if (!isRunCentrally_)
887  histname + "All", " Bkg photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
888  //
889  histname = "nTrkSolidConeDR04VsEtBkg";
890  if (!isRunCentrally_)
892  histname + "All", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
893  if (!isRunCentrally_)
895  histname + "Barrel", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
896  if (!isRunCentrally_)
898  histname + "Endcap", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
899  //
900  histname = "pnTrkSolidConeDR04VsEtBkg";
901  if (!isRunCentrally_)
903  histname + "All", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
904  if (!isRunCentrally_)
906  histname + "Barrel", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
907  if (!isRunCentrally_)
909  histname + "Endcap", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
910  //
911  h_convEtaBkg_ = iBooker.book1D("convEtaBkg", " converted Photon Bkg Eta 2 tracks", etaBin, etaMin, etaMax);
912  h_convPhiBkg_ = iBooker.book1D("convPhiBkg", " converted Photon Bkg Phi ", phiBin, phiMin, phiMax);
913  //
914  histname = "mvaOutBkg";
915  h_mvaOutBkg_[0] = iBooker.book1D(histname + "All", " mvaOut conversions bkg : All Ecal", 100, 0., 1.);
916  h_mvaOutBkg_[1] = iBooker.book1D(histname + "Barrel", " mvaOut conversions bkg: Barrel Ecal", 100, 0., 1.);
917  h_mvaOutBkg_[2] = iBooker.book1D(histname + "Endcap", " mvaOut conversions bkg: Endcap Ecal", 100, 0., 1.);
918 
919  histname = "PoverEtracksBkg";
920  h_PoverETracksBkg_[0] =
921  iBooker.book1D(histname + "All", " bkg photons conversion p/E: all Ecal ", povereBin, povereMin, povereMax);
922  h_PoverETracksBkg_[1] =
923  iBooker.book1D(histname + "Barrel", "bkg photons conversion p/E: Barrel Ecal", povereBin, povereMin, povereMax);
924  h_PoverETracksBkg_[2] =
925  iBooker.book1D(histname + "Endcap", " bkg photons conversion p/E: Endcap Ecal ", povereBin, povereMin, povereMax);
926 
927  histname = "EoverPtracksBkg";
928  h_EoverPTracksBkg_[0] =
929  iBooker.book1D(histname + "All", " bkg photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax);
930  h_EoverPTracksBkg_[1] =
931  iBooker.book1D(histname + "Barrel", "bkg photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
932  h_EoverPTracksBkg_[2] =
933  iBooker.book1D(histname + "Endcap", " bkg photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
934 
935  histname = "hDCotTracksBkg";
936  h_DCotTracksBkg_[0] = iBooker.book1D(histname + "All",
937  " bkg Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",
940  dCotTracksMax);
941  h_DCotTracksBkg_[1] = iBooker.book1D(histname + "Barrel",
942  " bkg Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",
945  dCotTracksMax);
946  h_DCotTracksBkg_[2] = iBooker.book1D(histname + "Endcap",
947  " bkg Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",
950  dCotTracksMax);
951 
952  histname = "hDPhiTracksAtVtxBkg";
954  iBooker.book1D(histname + "All",
955  " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",
958  dPhiTracksMax);
960  iBooker.book1D(histname + "Barrel",
961  " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",
964  dPhiTracksMax);
966  iBooker.book1D(histname + "Endcap",
967  " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",
970  dPhiTracksMax);
971 
972  if (!isRunCentrally_) {
973  h_convVtxRvsZBkg_[0] = iBooker.book2D("convVtxRvsZAllBkg",
974  " Bkg Photon Reco conversion vtx position",
975  zBinForXray,
976  zMinForXray,
977  zMaxForXray,
978  rBinForXray,
979  rMinForXray,
980  rMaxForXray);
981  h_convVtxRvsZBkg_[1] = iBooker.book2D("convVtxRvsZBarrelBkg",
982  " Bkg Photon Reco conversion vtx position",
983  zBinForXray,
984  zMinForXray,
985  zMaxForXray,
986  rBinForXray,
987  rMinForXray,
988  rMaxForXray);
989  h_convVtxYvsXBkg_ = iBooker.book2D("convVtxYvsXTrkBarrelBkg",
990  " Bkg Photon Reco conversion vtx position, (x,y) eta<1 ",
991  100,
992  -80.,
993  80.,
994  100,
995  -80.,
996  80.);
997  }
998 
999  //
1000  iBooker.setCurrentFolder("EgammaV/" + fName_ + "/Photons");
1001 
1002  histname = "nOfflineVtx";
1003  h_nRecoVtx_ = iBooker.book1D(histname, "# of Offline Vertices", 200, -0.5, 199.5);
1004 
1005  h_phoEta_[0] = iBooker.book1D("phoEta", " Photon Eta ", etaBin, etaMin, etaMax);
1006  h_phoPhi_[0] = iBooker.book1D("phoPhi", " Photon Phi ", phiBin, phiMin, phiMax);
1007 
1008  h_phoDEta_[0] = iBooker.book1D("phoDEta", " Photon Eta(rec)-Eta(true) ", dEtaBin, dEtaMin, dEtaMax);
1009  h_phoDPhi_[0] = iBooker.book1D("phoDPhi", " Photon Phi(rec)-Phi(true) ", dPhiBin, dPhiMin, dPhiMax);
1010 
1011  h_scEta_[0] = iBooker.book1D("scEta", " SC Eta ", etaBin, etaMin, etaMax);
1012  h_scPhi_[0] = iBooker.book1D("scPhi", " SC Phi ", phiBin, phiMin, phiMax);
1013 
1014  if (!isRunCentrally_) {
1015  h_scEtaWidth_[0] = iBooker.book1D("scEtaWidth", " SC Eta Width ", 100, 0., 0.1);
1016  h_scPhiWidth_[0] = iBooker.book1D("scPhiWidth", " SC Phi Width ", 100, 0., 1.);
1017  }
1018 
1019  histname = "scE";
1020  h_scE_[0][0] = iBooker.book1D(histname + "All", " SC Energy: All Ecal ", eBin, eMin, eMax);
1021  h_scE_[0][1] = iBooker.book1D(histname + "Barrel", " SC Energy: Barrel ", eBin, eMin, eMax);
1022  h_scE_[0][2] = iBooker.book1D(histname + "Endcap", " SC Energy: Endcap ", eBin, eMin, eMax);
1023 
1024  histname = "psE";
1025  h_psE_ = iBooker.book1D(histname + "Endcap", " ES Energy ", eBin, eMin, 50.);
1026 
1027  histname = "scEt";
1028  h_scEt_[0][0] = iBooker.book1D(histname + "All", " SC Et: All Ecal ", etBin, etMin, etMax);
1029  h_scEt_[0][1] = iBooker.book1D(histname + "Barrel", " SC Et: Barrel", etBin, etMin, etMax);
1030  h_scEt_[0][2] = iBooker.book1D(histname + "Endcap", " SC Et: Endcap", etBin, etMin, etMax);
1031 
1032  histname = "r9";
1033  h_r9_[0][0] = iBooker.book1D(histname + "All", " r9: All Ecal", r9Bin, r9Min, r9Max);
1034  h_r9_[0][1] = iBooker.book1D(histname + "Barrel", " r9: Barrel ", r9Bin, r9Min, r9Max);
1035  h_r9_[0][2] = iBooker.book1D(histname + "Endcap", " r9: Endcap ", r9Bin, r9Min, r9Max);
1036  //
1037 
1038  if (!isRunCentrally_) {
1039  histname = "r9ConvFromMC";
1040  h_r9_[1][0] = iBooker.book1D(histname + "All", " r9: All Ecal", r9Bin, r9Min, r9Max);
1041  h_r9_[1][1] = iBooker.book1D(histname + "Barrel", " r9: Barrel ", r9Bin, r9Min, r9Max);
1042  h_r9_[1][2] = iBooker.book1D(histname + "Endcap", " r9: Endcap ", r9Bin, r9Min, r9Max);
1043  //
1044  histname = "r9ConvFromReco";
1045  h_r9_[2][0] = iBooker.book1D(histname + "All", " r9: All Ecal", r9Bin, r9Min, r9Max);
1046  h_r9_[2][1] = iBooker.book1D(histname + "Barrel", " r9: Barrel ", r9Bin, r9Min, r9Max);
1047  h_r9_[2][2] = iBooker.book1D(histname + "Endcap", " r9: Endcap ", r9Bin, r9Min, r9Max);
1049  histname = "EtR9Less093";
1050  h_EtR9Less093_[0][0] = iBooker.book1D(histname + "All", " r9 < 0.94 or 0.95 : All Ecal", etBin, etMin, etMax);
1051  h_EtR9Less093_[0][1] = iBooker.book1D(histname + "Barrel", " r9 < 0.94 : Barrel ", etBin, etMin, etMax);
1052  h_EtR9Less093_[0][2] = iBooker.book1D(histname + "Endcap", " r9 < 0.95 : Endcap ", etBin, etMin, etMax);
1053  histname = "EtR9Less093Conv";
1054  h_EtR9Less093_[1][0] =
1055  iBooker.book1D(histname + "All", " r9 < 0.94, 0.95 and good conv : All Ecal", etBin, etMin, etMax);
1056  h_EtR9Less093_[1][1] =
1057  iBooker.book1D(histname + "Barrel", " r9 < 0.94 and good conv : Barrel ", etBin, etMin, etMax);
1058  h_EtR9Less093_[1][2] =
1059  iBooker.book1D(histname + "Endcap", " r9 < 0.95 and good conv : Endcap ", etBin, etMin, etMax);
1060  }
1061 
1063  histname = "pR9VsEta";
1064  p_r9VsEta_[0] = iBooker.bookProfile(
1065  histname + "All", " All photons r9 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
1066  p_r9VsEta_[1] = iBooker.bookProfile(
1067  histname + "Unconv", " Unconv photons r9 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
1068  p_r9VsEta_[2] = iBooker.bookProfile(
1069  histname + "Conv", " Conv photons r9 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
1070  //
1071  histname = "R9VsEt";
1072  if (!isRunCentrally_)
1073  h2_r9VsEt_[0] =
1074  iBooker.book2D(histname + "All", " All photons r9 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
1075  if (!isRunCentrally_)
1076  h2_r9VsEt_[1] =
1077  iBooker.book2D(histname + "Unconv", " All photons r9 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
1078  //
1079  histname = "r1";
1080  h_r1_[0][0] = iBooker.book1D(histname + "All", " e1x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
1081  h_r1_[0][1] = iBooker.book1D(histname + "Barrel", " e1x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
1082  h_r1_[0][2] = iBooker.book1D(histname + "Endcap", " e1x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
1083  //
1084  histname = "R1VsEta";
1085  if (!isRunCentrally_)
1086  h2_r1VsEta_[0] = iBooker.book2D(
1087  histname + "All", " All photons e1x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
1088  if (!isRunCentrally_)
1089  h2_r1VsEta_[1] = iBooker.book2D(
1090  histname + "Unconv", " All photons e1x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
1091  //
1092  histname = "R1VsEt";
1093  if (!isRunCentrally_)
1094  h2_r1VsEt_[0] =
1095  iBooker.book2D(histname + "All", " All photons e1x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
1096  if (!isRunCentrally_)
1097  h2_r1VsEt_[1] = iBooker.book2D(
1098  histname + "Unconv", " All photons e1x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
1099  //
1100  histname = "r2";
1101  h_r2_[0][0] = iBooker.book1D(histname + "All", " e2x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
1102  h_r2_[0][1] = iBooker.book1D(histname + "Barrel", " e2x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
1103  h_r2_[0][2] = iBooker.book1D(histname + "Endcap", " e2x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
1104  //
1105  histname = "R2VsEta";
1106  if (!isRunCentrally_)
1107  h2_r2VsEta_[0] = iBooker.book2D(
1108  histname + "All", " All photons e2x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
1109  if (!isRunCentrally_)
1110  h2_r2VsEta_[1] = iBooker.book2D(
1111  histname + "Unconv", " All photons e2x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
1112  //
1113  histname = "R2VsEt";
1114  if (!isRunCentrally_)
1115  h2_r2VsEt_[0] =
1116  iBooker.book2D(histname + "All", " All photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
1117  if (!isRunCentrally_)
1118  h2_r2VsEt_[1] = iBooker.book2D(
1119  histname + "Unconv", " All photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
1120  //
1121  histname = "sigmaIetaIeta";
1122  h_sigmaIetaIeta_[0][0] = iBooker.book1D(histname + "All", "sigmaIetaIeta: All Ecal", 100, 0., 0.1);
1123  h_sigmaIetaIeta_[0][1] = iBooker.book1D(histname + "Barrel", "sigmaIetaIeta: Barrel ", 100, 0., 0.05);
1124  h_sigmaIetaIeta_[0][2] = iBooker.book1D(histname + "Endcap", "sigmaIetaIeta: Endcap ", 100, 0., 0.1);
1125  //
1126  histname = "sigmaIetaIetaVsEta";
1127  if (!isRunCentrally_)
1128  h2_sigmaIetaIetaVsEta_[0] = iBooker.book2D(
1129  histname + "All", " All photons sigmaIetaIeta vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1130  if (!isRunCentrally_)
1131  h2_sigmaIetaIetaVsEta_[1] = iBooker.book2D(
1132  histname + "Unconv", " All photons sigmaIetaIeta vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1133  //
1134  histname = "sigmaIetaIetaVsEt";
1135  if (!isRunCentrally_)
1136  h2_sigmaIetaIetaVsEt_[0] = iBooker.book2D(
1137  histname + "All", " All photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1138  if (!isRunCentrally_)
1139  h2_sigmaIetaIetaVsEt_[1] = iBooker.book2D(
1140  histname + "Unconv", " All photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1141  //
1142  histname = "hOverE";
1143  h_hOverE_[0][0] = iBooker.book1D(histname + "All", "H/E: All Ecal", 100, 0., 0.1);
1144  h_hOverE_[0][1] = iBooker.book1D(histname + "Barrel", "H/E: Barrel ", 100, 0., 0.1);
1145  h_hOverE_[0][2] = iBooker.book1D(histname + "Endcap", "H/E: Endcap ", 100, 0., 0.1);
1146  //
1147  histname = "newhOverE";
1148  h_newhOverE_[0][0] = iBooker.book1D(histname + "All", "new H/E: All Ecal", 100, 0., 0.1);
1149  h_newhOverE_[0][1] = iBooker.book1D(histname + "Barrel", "new H/E: Barrel ", 100, 0., 0.1);
1150  h_newhOverE_[0][2] = iBooker.book1D(histname + "Endcap", "new H/E: Endcap ", 100, 0., 0.1);
1151 
1152  //
1153  if (!isRunCentrally_) {
1154  histname = "hOverEVsEta";
1155  h2_hOverEVsEta_[0] =
1156  iBooker.book2D(histname + "All", " All photons H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1157  h2_hOverEVsEta_[1] = iBooker.book2D(
1158  histname + "Unconv", " All photons H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1159  //
1160  histname = "hOverEVsEt";
1161  h2_hOverEVsEt_[0] =
1162  iBooker.book2D(histname + "All", " All photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1163  h2_hOverEVsEt_[1] =
1164  iBooker.book2D(histname + "Unconv", " All photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1165  //
1166  }
1167  histname = "pHoverEVsEta";
1168  p_hOverEVsEta_[0] = iBooker.bookProfile(
1169  histname + "All", " All photons H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1170  p_hOverEVsEta_[1] = iBooker.bookProfile(
1171  histname + "Unconv", " All photons H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1172  //
1173  histname = "pHoverEVsEt";
1174  p_hOverEVsEt_[0] =
1175  iBooker.bookProfile(histname + "All", " All photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1176  p_hOverEVsEt_[1] =
1177  iBooker.bookProfile(histname + "Unconv", " All photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1178  //
1179  histname = "pnewHoverEVsEta";
1180  p_newhOverEVsEta_[0] = iBooker.bookProfile(
1181  histname + "All", " All photons new H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1182  p_newhOverEVsEta_[1] = iBooker.bookProfile(
1183  histname + "Unconv", " All photons new H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
1184  //
1185  histname = "pnewHoverEVsEt";
1186  p_newhOverEVsEt_[0] =
1187  iBooker.bookProfile(histname + "All", " All photons new H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1188  p_newhOverEVsEt_[1] = iBooker.bookProfile(
1189  histname + "Unconv", " All photons new H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
1190  //
1191  histname = "ecalRecHitSumEtConeDR04";
1193  iBooker.book1D(histname + "All", "ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 20.);
1195  iBooker.book1D(histname + "Barrel", "ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 20.);
1197  iBooker.book1D(histname + "Endcap", "ecalRecHitSumEtDR04: Endcap ", etBin, etMin, 20.);
1198  //
1199 
1200  if (!isRunCentrally_) {
1201  histname = "ecalRecHitSumEtConeDR04VsEta";
1202  h2_ecalRecHitSumEtConeDR04VsEta_[0] = iBooker.book2D(histname + "All",
1203  " All photons ecalRecHitSumEtDR04 vs #eta: all Ecal ",
1204  etaBin2,
1205  etaMin,
1206  etaMax,
1207  etBin,
1208  etMin,
1209  etMax * etScale);
1210  h2_ecalRecHitSumEtConeDR04VsEta_[1] = iBooker.book2D(histname + "Unconv",
1211  " All photons ecalRecHitSumEtDR04 vs #eta: all Ecal ",
1212  etaBin2,
1213  etaMin,
1214  etaMax,
1215  etBin,
1216  etMin,
1217  etMax * etScale);
1218  }
1219  histname = "pEcalRecHitSumEtConeDR04VsEta";
1220  p_ecalRecHitSumEtConeDR04VsEta_[0] = iBooker.bookProfile(histname + "All",
1221  "All photons ecalRecHitSumEtDR04 vs #eta: all Ecal ",
1222  etaBin2,
1223  etaMin,
1224  etaMax,
1225  etBin,
1226  etMin,
1227  etMax * etScale,
1228  "");
1229  p_ecalRecHitSumEtConeDR04VsEta_[1] = iBooker.bookProfile(histname + "Unconv",
1230  "All photons ecalRecHitSumEtDR04 vs #eta: all Ecal ",
1231  etaBin2,
1232  etaMin,
1233  etaMax,
1234  etBin,
1235  etMin,
1236  etMax * etScale,
1237  "");
1238  //
1239  if (!isRunCentrally_) {
1240  histname = "ecalRecHitSumEtConeDR04VsEt";
1241  h2_ecalRecHitSumEtConeDR04VsEt_[0] = iBooker.book2D(histname + "All",
1242  " All photons ecalRecHitSumEtDR04 vs Et: all Ecal ",
1243  etBin,
1244  etMin,
1245  etMax,
1246  etBin,
1247  etMin,
1248  etMax * etScale);
1249  h2_ecalRecHitSumEtConeDR04VsEt_[1] = iBooker.book2D(histname + "Barrel",
1250  " All photons ecalRecHitSumEtDR04 vs Et: Barrel ",
1251  etBin,
1252  etMin,
1253  etMax,
1254  etBin,
1255  etMin,
1256  etMax * etScale);
1257  h2_ecalRecHitSumEtConeDR04VsEt_[2] = iBooker.book2D(histname + "Endcap",
1258  " All photons ecalRecHitSumEtDR04 vs Et: Endcap ",
1259  etBin,
1260  etMin,
1261  etMax,
1262  etBin,
1263  etMin,
1264  etMax * etScale);
1265  }
1266  histname = "pEcalRecHitSumEtConeDR04VsEt";
1267  if (!isRunCentrally_)
1268  p_ecalRecHitSumEtConeDR04VsEt_[0] = iBooker.bookProfile(histname + "All",
1269  "All photons ecalRecHitSumEtDR04 vs Et: all Ecal ",
1270  etBin,
1271  etMin,
1272  etMax,
1273  etBin,
1274  etMin,
1275  etMax * etScale,
1276  "");
1277  p_ecalRecHitSumEtConeDR04VsEt_[1] = iBooker.bookProfile(histname + "Barrel",
1278  "All photons ecalRecHitSumEtDR04 vs Et: all Ecal ",
1279  etBin,
1280  etMin,
1281  etMax,
1282  etBin,
1283  etMin,
1284  etMax * etScale,
1285  "");
1286  p_ecalRecHitSumEtConeDR04VsEt_[2] = iBooker.bookProfile(histname + "Endcap",
1287  "All photons ecalRecHitSumEtDR04 vs Et: all Ecal ",
1288  etBin,
1289  etMin,
1290  etMax,
1291  etBin,
1292  etMin,
1293  etMax * etScale,
1294  "");
1295  //
1296  histname = "hcalTowerSumEtConeDR04";
1298  iBooker.book1D(histname + "All", "hcalTowerSumEtConeDR04: All Ecal", etBin, etMin, 20.);
1300  iBooker.book1D(histname + "Barrel", "hcalTowerSumEtConeDR04: Barrel ", etBin, etMin, 20.);
1302  iBooker.book1D(histname + "Endcap", "hcalTowerSumEtConeDR04: Endcap ", etBin, etMin, 20.);
1303  //
1304  histname = "hcalTowerBcSumEtConeDR04";
1305  if (!isRunCentrally_)
1307  iBooker.book1D(histname + "All", "hcalTowerBcSumEtConeDR04: All Ecal", etBin, etMin, 20.);
1309  iBooker.book1D(histname + "Barrel", "hcalTowerBcSumEtConeDR04: Barrel ", etBin, etMin, 20.);
1311  iBooker.book1D(histname + "Endcap", "hcalTowerBcSumEtConeDR04: Endcap ", etBin, etMin, 20.);
1312 
1313  //
1314  if (!isRunCentrally_) {
1315  histname = "hcalTowerSumEtConeDR04VsEta";
1316  h2_hcalTowerSumEtConeDR04VsEta_[0] = iBooker.book2D(histname + "All",
1317  " All photons hcalTowerSumEtConeDR04 vs #eta: all Ecal ",
1318  etaBin2,
1319  etaMin,
1320  etaMax,
1321  etBin,
1322  etMin,
1323  etMax * 0.1);
1324  h2_hcalTowerSumEtConeDR04VsEta_[1] = iBooker.book2D(histname + "Unconv",
1325  " All photons hcalTowerSumEtConeDR04 vs #eta: all Ecal ",
1326  etaBin2,
1327  etaMin,
1328  etaMax,
1329  etBin,
1330  etMin,
1331  etMax * 0.1);
1332  }
1333  histname = "pHcalTowerSumEtConeDR04VsEta";
1334  p_hcalTowerSumEtConeDR04VsEta_[0] = iBooker.bookProfile(histname + "All",
1335  "All photons hcalTowerSumEtDR04 vs #eta: all Ecal ",
1336  etaBin2,
1337  etaMin,
1338  etaMax,
1339  etBin,
1340  etMin,
1341  etMax * 0.1,
1342  "");
1343  p_hcalTowerSumEtConeDR04VsEta_[1] = iBooker.bookProfile(histname + "Unconv",
1344  "All photons hcalTowerSumEtDR04 vs #eta: all Ecal ",
1345  etaBin2,
1346  etaMin,
1347  etaMax,
1348  etBin,
1349  etMin,
1350  etMax * 0.1,
1351  "");
1352  histname = "pHcalTowerBcSumEtConeDR04VsEta";
1353  p_hcalTowerBcSumEtConeDR04VsEta_[0] = iBooker.bookProfile(histname + "All",
1354  "All photons hcalTowerBcSumEtDR04 vs #eta: all Ecal ",
1355  etaBin2,
1356  etaMin,
1357  etaMax,
1358  etBin,
1359  etMin,
1360  etMax * 0.1,
1361  "");
1362  p_hcalTowerBcSumEtConeDR04VsEta_[1] = iBooker.bookProfile(histname + "Unconv",
1363  "All photons hcalTowerBcSumEtDR04 vs #eta: all Ecal ",
1364  etaBin2,
1365  etaMin,
1366  etaMax,
1367  etBin,
1368  etMin,
1369  etMax * 0.1,
1370  "");
1371  //
1372  if (!isRunCentrally_) {
1373  histname = "hcalTowerSumEtConeDR04VsEt";
1374  h2_hcalTowerSumEtConeDR04VsEt_[0] = iBooker.book2D(histname + "All",
1375  " All photons hcalTowerSumEtConeDR04 vs Et: all Ecal ",
1376  etBin,
1377  etMin,
1378  etMax,
1379  etBin,
1380  etMin,
1381  etMax * 0.1);
1382  h2_hcalTowerSumEtConeDR04VsEt_[1] = iBooker.book2D(histname + "Barrel",
1383  " All photons hcalTowerSumEtConeDR04 vs Et: Barrel ",
1384  etBin,
1385  etMin,
1386  etMax,
1387  etBin,
1388  etMin,
1389  etMax * 0.1);
1390  h2_hcalTowerSumEtConeDR04VsEt_[2] = iBooker.book2D(histname + "Endcap",
1391  " All photons hcalTowerSumEtConeDR04 vs Et: Endcap ",
1392  etBin,
1393  etMin,
1394  etMax,
1395  etBin,
1396  etMin,
1397  etMax * 0.1);
1398  }
1399  histname = "pHcalTowerSumEtConeDR04VsEt";
1400  if (!isRunCentrally_)
1401  p_hcalTowerSumEtConeDR04VsEt_[0] = iBooker.bookProfile(histname + "All",
1402  "All photons hcalTowerSumEtDR04 vs Et: all Ecal ",
1403  etBin,
1404  etMin,
1405  etMax,
1406  etBin,
1407  etMin,
1408  etMax * etScale,
1409  "");
1410  p_hcalTowerSumEtConeDR04VsEt_[1] = iBooker.bookProfile(histname + "Barrel",
1411  "All photons hcalTowerSumEtDR04 vs Et: all Ecal ",
1412  etBin,
1413  etMin,
1414  etMax,
1415  etBin,
1416  etMin,
1417  etMax * etScale,
1418  "");
1419  p_hcalTowerSumEtConeDR04VsEt_[2] = iBooker.bookProfile(histname + "Endcap",
1420  "All photons hcalTowerSumEtDR04 vs Et: all Ecal ",
1421  etBin,
1422  etMin,
1423  etMax,
1424  etBin,
1425  etMin,
1426  etMax * etScale,
1427  "");
1428  //
1429  histname = "pHcalTowerBcSumEtConeDR04VsEt";
1430  if (!isRunCentrally_)
1431  p_hcalTowerBcSumEtConeDR04VsEt_[0] = iBooker.bookProfile(histname + "All",
1432  "All photons hcalTowerBcSumEtDR04 vs Et: all Ecal ",
1433  etBin,
1434  etMin,
1435  etMax,
1436  etBin,
1437  etMin,
1438  etMax * etScale,
1439  "");
1440  p_hcalTowerBcSumEtConeDR04VsEt_[1] = iBooker.bookProfile(histname + "Barrel",
1441  "All photons hcalTowerBcSumEtDR04 vs Et: all Ecal ",
1442  etBin,
1443  etMin,
1444  etMax,
1445  etBin,
1446  etMin,
1447  etMax * etScale,
1448  "");
1449  p_hcalTowerBcSumEtConeDR04VsEt_[2] = iBooker.bookProfile(histname + "Endcap",
1450  "All photons hcalTowerBcSumEtDR04 vs Et: all Ecal ",
1451  etBin,
1452  etMin,
1453  etMax,
1454  etBin,
1455  etMin,
1456  etMax * etScale,
1457  "");
1458 
1459  //
1460  histname = "isoTrkSolidConeDR04";
1461  h_isoTrkSolidConeDR04_[0][0] =
1462  iBooker.book1D(histname + "All", "isoTrkSolidConeDR04: All Ecal", etBin, etMin, etMax * 0.1);
1463  h_isoTrkSolidConeDR04_[0][1] =
1464  iBooker.book1D(histname + "Barrel", "isoTrkSolidConeDR04: Barrel ", etBin, etMin, etMax * 0.1);
1465  h_isoTrkSolidConeDR04_[0][2] =
1466  iBooker.book1D(histname + "Endcap", "isoTrkSolidConeDR04: Endcap ", etBin, etMin, etMax * 0.1);
1467  //
1468 
1469  histname = "isoTrkSolidConeDR04VsEta";
1470  if (!isRunCentrally_)
1471  h2_isoTrkSolidConeDR04VsEta_[0] = iBooker.book2D(histname + "All",
1472  " All photons isoTrkSolidConeDR04 vs #eta: all Ecal ",
1473  etaBin2,
1474  etaMin,
1475  etaMax,
1476  etBin,
1477  etMin,
1478  etMax * 0.1);
1479  if (!isRunCentrally_)
1480  h2_isoTrkSolidConeDR04VsEta_[1] = iBooker.book2D(histname + "Unconv",
1481  " All photons isoTrkSolidConeDR04 vs #eta: all Ecal ",
1482  etaBin2,
1483  etaMin,
1484  etaMax,
1485  etBin,
1486  etMin,
1487  etMax * 0.1);
1488 
1489  //
1490  histname = "isoTrkSolidConeDR04VsEt";
1491  if (!isRunCentrally_)
1492  h2_isoTrkSolidConeDR04VsEt_[0] = iBooker.book2D(histname + "All",
1493  " All photons isoTrkSolidConeDR04 vs Et: all Ecal ",
1494  etBin,
1495  etMin,
1496  etMax,
1497  etBin,
1498  etMin,
1499  etMax * 0.1);
1500  if (!isRunCentrally_)
1501  h2_isoTrkSolidConeDR04VsEt_[1] = iBooker.book2D(histname + "Unconv",
1502  " All photons isoTrkSolidConeDR04 vs Et: all Ecal ",
1503  etBin,
1504  etMin,
1505  etMax,
1506  etBin,
1507  etMin,
1508  etMax * 0.1);
1509  //
1510  histname = "nTrkSolidConeDR04";
1511  h_nTrkSolidConeDR04_[0][0] = iBooker.book1D(histname + "All", "nTrkSolidConeDR04: All Ecal", 20, 0., 20);
1512  h_nTrkSolidConeDR04_[0][1] = iBooker.book1D(histname + "Barrel", "nTrkSolidConeDR04: Barrel ", 20, 0., 20);
1513  h_nTrkSolidConeDR04_[0][2] = iBooker.book1D(histname + "Endcap", "nTrkSolidConeDR04: Endcap ", 20, 0., 20);
1514  //
1515  histname = "nTrkSolidConeDR04VsEta";
1516  if (!isRunCentrally_)
1517  h2_nTrkSolidConeDR04VsEta_[0] = iBooker.book2D(
1518  histname + "All", " All photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
1519  if (!isRunCentrally_)
1520  h2_nTrkSolidConeDR04VsEta_[1] = iBooker.book2D(
1521  histname + "Unconv", " All photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
1522  //
1523  histname = "nTrkSolidConeDR04VsEt";
1524  if (!isRunCentrally_)
1525  h2_nTrkSolidConeDR04VsEt_[0] = iBooker.book2D(
1526  histname + "All", " All photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
1527  if (!isRunCentrally_)
1528  h2_nTrkSolidConeDR04VsEt_[1] = iBooker.book2D(
1529  histname + "Unconv", " All photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
1530  //
1531  histname = "phoE";
1532  h_phoE_[0][0] = iBooker.book1D(histname + "All", " Photon Energy: All ecal ", eBin, eMin, eMax);
1533  h_phoE_[0][1] = iBooker.book1D(histname + "Barrel", " Photon Energy: barrel ", eBin, eMin, eMax);
1534  h_phoE_[0][2] = iBooker.book1D(histname + "Endcap", " Photon Energy: Endcap ", eBin, eMin, eMax);
1535 
1536  histname = "phoEt";
1537  h_phoEt_[0][0] = iBooker.book1D(histname + "All", " Photon Transverse Energy: All ecal ", etBin, etMin, etMax);
1538  h_phoEt_[0][1] = iBooker.book1D(histname + "Barrel", " Photon Transverse Energy: Barrel ", etBin, etMin, etMax);
1539  h_phoEt_[0][2] = iBooker.book1D(histname + "Endcap", " Photon Transverse Energy: Endcap ", etBin, etMin, etMax);
1540 
1541  histname = "eRes";
1542  h_phoERes_[0][0] =
1543  iBooker.book1D(histname + "All", " Photon E/E_{true}: All ecal; E/E_{true} (GeV)", resBin, resMin, resMax);
1544  h_phoERes_[0][1] =
1545  iBooker.book1D(histname + "Barrel", "Photon E/E_{true}: Barrel; E/E_{true} (GeV)", resBin, resMin, resMax);
1546  h_phoERes_[0][2] =
1547  iBooker.book1D(histname + "Endcap", " Photon E/E_{true}: Endcap; E/E_{true} (GeV)", resBin, resMin, resMax);
1548 
1549  h_phoERes_[1][0] = iBooker.book1D(
1550  histname + "unconvAll", " Photon E/E_{true} if r9>0.94, 0.95: All ecal; E/E_{true} (GeV)", resBin, resMin, resMax);
1551  h_phoERes_[1][1] = iBooker.book1D(
1552  histname + "unconvBarrel", " Photon E/E_{true} if r9>0.94: Barrel; E/E_{true} (GeV)", resBin, resMin, resMax);
1553  h_phoERes_[1][2] = iBooker.book1D(
1554  histname + "unconvEndcap", " Photon E/E_{true} if r9>0.95: Endcap; E/E_{true} (GeV)", resBin, resMin, resMax);
1555 
1556  h_phoERes_[2][0] = iBooker.book1D(
1557  histname + "convAll", " Photon E/E_{true} if r9<0.0.94, 0.95: All ecal; E/E_{true} (GeV)", resBin, resMin, resMax);
1558  h_phoERes_[2][1] = iBooker.book1D(
1559  histname + "convBarrel", " Photon E/E_{true} if r9<0.94: Barrel; E/E_{true} (GeV)", resBin, resMin, resMax);
1560  h_phoERes_[2][2] = iBooker.book1D(
1561  histname + "convEndcap", " Photon E/E_{true} if r9<0.95: Endcap; E/E_{true} (GeV)", resBin, resMin, resMax);
1562 
1563  histname = "sigmaEoE";
1564  h_phoSigmaEoE_[0][0] = iBooker.book1D(histname + "All", "#sigma_{E}/E: All ecal; #sigma_{E}/E", 100, 0., 0.08);
1565  h_phoSigmaEoE_[0][1] = iBooker.book1D(histname + "Barrel", "#sigma_{E}/E: Barrel; #sigma_{E}/E", 100, 0., 0.08);
1566  h_phoSigmaEoE_[0][2] = iBooker.book1D(histname + "Endcap", "#sigma_{E}/E: Endcap, #sigma_{E}/E", 100, 0., 0.08);
1567 
1568  h_phoSigmaEoE_[1][0] =
1569  iBooker.book1D(histname + "unconvAll", "#sigma_{E}/E if r9>0.94, 0.95: All ecal; #sigma_{E}/E", 100, 0., 0.08);
1570  h_phoSigmaEoE_[1][1] =
1571  iBooker.book1D(histname + "unconvBarrel", "#sigma_{E}/E if r9>0.94: Barrel; #sigma_{E}/E", 100, 0., 0.08);
1572  h_phoSigmaEoE_[1][2] =
1573  iBooker.book1D(histname + "unconvEndcap", "#sigma_{E}/E r9>0.95: Endcap; #sigma_{E}/E", 100, 0., 0.08);
1574 
1575  h_phoSigmaEoE_[2][0] =
1576  iBooker.book1D(histname + "convAll", "#sigma_{E}/E if r9<0.0.94, 0.95: All ecal, #sigma_{E}/E", 100, 0., 0.08);
1577  h_phoSigmaEoE_[2][1] =
1578  iBooker.book1D(histname + "convBarrel", "#sigma_{E}/E if r9<0.94: Barrel, #sigma_{E}/E", 100, 0., 0.08);
1579  h_phoSigmaEoE_[2][2] =
1580  iBooker.book1D(histname + "convEndcap", "#sigma_{E}/E if r9<0.95: Endcap, #sigma_{E}/E", 100, 0., 0.08);
1581 
1582  histname = "eResVsEta";
1583  if (!isRunCentrally_)
1584  h2_eResVsEta_[0] = iBooker.book2D(
1585  histname + "All", " All photons E/Etrue vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 2.5);
1586  if (!isRunCentrally_)
1587  h2_eResVsEta_[1] = iBooker.book2D(
1588  histname + "Unconv", " Unconv photons E/Etrue vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 2.5);
1589 
1590  histname = "pEResVsEta";
1591  p_eResVsEta_[0] = iBooker.bookProfile(
1592  histname + "All", "All photons E/Etrue vs #eta: all Ecal ", etaBin2, etaMin, etaMax, resBin, resMin, resMax, "");
1593  p_eResVsEta_[1] = iBooker.bookProfile(histname + "Unconv",
1594  "Unconv photons E/Etrue vs #eta: all Ecal",
1595  etaBin2,
1596  etaMin,
1597  etaMax,
1598  resBin,
1599  resMin,
1600  resMax,
1601  "");
1602  p_eResVsEta_[2] = iBooker.bookProfile(
1603  histname + "Conv", "Conv photons E/Etrue vs #eta: all Ecal", etaBin2, etaMin, etaMax, resBin, resMin, resMax, "");
1604 
1605  histname = "pSigmaEoEVsEta";
1606  p_sigmaEoEVsEta_[0] = iBooker.bookProfile(histname + "All",
1607  "All photons: #sigma_{E}/E vs #eta: all Ecal; #eta; #sigma_{E}/E",
1608  etaBin2,
1609  etaMin,
1610  etaMax,
1611  100,
1612  0.,
1613  0.08,
1614  "");
1615  p_sigmaEoEVsEta_[1] = iBooker.bookProfile(histname + "Unconv",
1616  "Unconv photons #sigma_{E}/E vs #eta: all Ecal; #eta; #sigma_{E}/E ",
1617  etaBin2,
1618  etaMin,
1619  etaMax,
1620  100,
1621  0.,
1622  0.08,
1623  "");
1624  p_sigmaEoEVsEta_[2] = iBooker.bookProfile(histname + "Conv",
1625  "Conv photons #sigma_{E}/E vs #eta: all Ecal; #eta; #sigma_{E}/E",
1626  etaBin2,
1627  etaMin,
1628  etaMax,
1629  100,
1630  0.,
1631  0.08,
1632  "");
1633 
1634  histname = "pSigmaEoEVsEt";
1635  p_sigmaEoEVsEt_[1][0] = iBooker.bookProfile(histname + "Barrel",
1636  "All photons #sigma_{E}/E vs E_{T}: Barrel; E_{T} (GeV); #sigma_{E}/E ",
1637  etBin,
1638  etMin,
1639  etMax,
1640  100,
1641  0.,
1642  0.08,
1643  "");
1644  p_sigmaEoEVsEt_[1][1] =
1645  iBooker.bookProfile(histname + "unconvBarrel",
1646  "Unconv photons #sigma_{E}/E vs E_{T}: Barrel; E_{T} (GeV); #sigma_{E}/E ",
1647  etBin,
1648  etMin,
1649  etMax,
1650  100,
1651  0.,
1652  0.08,
1653  "");
1654  p_sigmaEoEVsEt_[1][2] = iBooker.bookProfile(histname + "convBarrel",
1655  "Conv photons #sigma_{E}/E vs E_{T}: Barrel; E_{T} (GeV); #sigma_{E}/E",
1656  etBin,
1657  etMin,
1658  etMax,
1659  100,
1660  0.,
1661  0.08,
1662  "");
1663  p_sigmaEoEVsEt_[2][0] = iBooker.bookProfile(histname + "Endcap",
1664  "All photons #sigma_{E}/E vs E_{T}: Endcap; E_{T} (GeV); #sigma_{E}/E ",
1665  etBin,
1666  etMin,
1667  etMax,
1668  100,
1669  0.,
1670  0.08,
1671  "");
1672  p_sigmaEoEVsEt_[2][1] =
1673  iBooker.bookProfile(histname + "unconvEndcap",
1674  "Unconv photons #sigma_{E}/E vs E_{T}: Endcap; E_{T} (GeV); #sigma_{E}/E ",
1675  etBin,
1676  etMin,
1677  etMax,
1678  100,
1679  0.,
1680  0.08,
1681  "");
1682  p_sigmaEoEVsEt_[2][2] = iBooker.bookProfile(histname + "convEndcap",
1683  "Conv photons #sigma_{E}/E vs E_{T}: Endcap; E_{T} (GeV); #sigma_{E}/E",
1684  etBin,
1685  etMin,
1686  etMax,
1687  100,
1688  0.,
1689  0.08,
1690  "");
1691 
1692  histname = "pSigmaEoEVsNVtx";
1693  p_sigmaEoEVsNVtx_[1][0] = iBooker.bookProfile(histname + "Barrel",
1694  "All photons: #sigma_{E}/E vs N_{vtx}: Barrel; N_{vtx}; #sigma_{E}/E",
1695  200,
1696  -0.5,
1697  199.5,
1698  100,
1699  0.,
1700  0.08,
1701  "");
1702  p_sigmaEoEVsNVtx_[1][1] =
1703  iBooker.bookProfile(histname + "unconvBarrel",
1704  "Unconv photons #sigma_{E}/E vs N_{vtx}: Barrel; N_{vtx}; #sigma_{E}/E ",
1705  200,
1706  -0.5,
1707  199.5,
1708  100,
1709  0.,
1710  0.08,
1711  "");
1712  p_sigmaEoEVsNVtx_[1][2] = iBooker.bookProfile(histname + "convBarrel",
1713  "Conv photons #sigma_{E}/E vs N_{vtx}: Barrel; N_{vtx}; #sigma_{E}/E",
1714  200,
1715  -0.5,
1716  199.5,
1717  100,
1718  0.,
1719  0.08,
1720  "");
1721  p_sigmaEoEVsNVtx_[2][0] = iBooker.bookProfile(histname + "Endcap",
1722  "All photons: #sigma_{E}/E vs N_{vtx}: Endcap; N_{vtx}; #sigma_{E}/E",
1723  200,
1724  -0.5,
1725  199.5,
1726  100,
1727  0.,
1728  0.08,
1729  "");
1730  p_sigmaEoEVsNVtx_[2][1] =
1731  iBooker.bookProfile(histname + "unconvEndcap",
1732  "Unconv photons #sigma_{E}/E vs N_{vtx}: Endcap; N_{vtx}; #sigma_{E}/E ",
1733  200,
1734  -0.5,
1735  199.5,
1736  100,
1737  0.,
1738  0.08,
1739  "");
1740  p_sigmaEoEVsNVtx_[2][2] = iBooker.bookProfile(histname + "convEndcap",
1741  "Conv photons #sigma_{E}/E vs N_{vtx}: Endcap; N_{vtx}; #sigma_{E}/E",
1742  200,
1743  -0.5,
1744  199.5,
1745  100,
1746  0.,
1747  0.08,
1748  "");
1749 
1750  if (!isRunCentrally_) {
1751  histname = "eResVsEt";
1752  h2_eResVsEt_[0][0] = iBooker.book2D(
1753  histname + "All", " All photons E/Etrue vs true Et: all Ecal ", etBin, etMin, etMax, 100, 0.9, 1.1);
1754  h2_eResVsEt_[0][1] = iBooker.book2D(
1755  histname + "unconv", " All photons E/Etrue vs true Et: all Ecal ", etBin, etMin, etMax, 100, 0.9, 1.1);
1756  h2_eResVsEt_[0][2] = iBooker.book2D(
1757  histname + "conv", " All photons E/Etrue vs true Et: all Ecal ", etBin, etMin, etMax, 100, 0.9, 1.1);
1758  h2_eResVsEt_[1][0] = iBooker.book2D(
1759  histname + "Barrel", " All photons E/Etrue vs true Et: Barrel ", etBin, etMin, etMax, 100, 0.9, 1.1);
1760  h2_eResVsEt_[1][1] = iBooker.book2D(
1761  histname + "unconvBarrel", " All photons E/Etrue vs true Et: Barrel ", etBin, etMin, etMax, 100, 0.9, 1.1);
1762  h2_eResVsEt_[1][2] = iBooker.book2D(
1763  histname + "convBarrel", " All photons E/Etrue vs true Et: Barrel ", etBin, etMin, etMax, 100, 0.9, 1.1);
1764  h2_eResVsEt_[2][0] = iBooker.book2D(
1765  histname + "Endcap", " All photons E/Etrue vs true Et: Endcap ", etBin, etMin, etMax, 100, 0.9, 1.1);
1766  h2_eResVsEt_[2][1] = iBooker.book2D(
1767  histname + "unconvEndcap", " All photons E/Etrue vs true Et: Endcap ", etBin, etMin, etMax, 100, 0.9, 1.1);
1768  h2_eResVsEt_[2][2] = iBooker.book2D(
1769  histname + "convEndcap", " All photons E/Etrue vs true Et: Endcap ", etBin, etMin, etMax, 100, 0.9, 1.1);
1770  }
1771 
1772  histname = "pEResVsEt";
1773  p_eResVsEt_[0][0] = iBooker.bookProfile(
1774  histname + "All", "All photons E/Etrue vs Et: all Ecal ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1775  p_eResVsEt_[0][1] = iBooker.bookProfile(
1776  histname + "unconv", "All photons E/Etrue vs Et: all Ecal ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1777  p_eResVsEt_[0][2] = iBooker.bookProfile(
1778  histname + "conv", "All photons E/Etrue vs Et: all Ecal ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1779  p_eResVsEt_[1][0] = iBooker.bookProfile(
1780  histname + "Barrel", "All photons E/Etrue vs Et: Barrel ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1781  p_eResVsEt_[1][1] = iBooker.bookProfile(
1782  histname + "unconvBarrel", "All photons E/Etrue vs Et: Barrel ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1783  p_eResVsEt_[1][2] = iBooker.bookProfile(
1784  histname + "convBarrel", "All photons E/Etrue vs Et: Barrel ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1785  p_eResVsEt_[2][0] = iBooker.bookProfile(
1786  histname + "Endcap", "All photons E/Etrue vs Et: Endcap ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1787  p_eResVsEt_[2][1] = iBooker.bookProfile(
1788  histname + "unconvEndcap", "All photons E/Etrue vs Et: Endcap ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1789  p_eResVsEt_[2][2] = iBooker.bookProfile(
1790  histname + "convEndcap", "All photons E/Etrue vs Et: Endcap ", etBin, etMin, etMax, resBin, resMin, resMax, "");
1791 
1792  histname = "pEResVsNVtx";
1793  p_eResVsNVtx_[1][0] = iBooker.bookProfile(histname + "Barrel",
1794  "All photons E/E_{true} vs N_{vtx}: Barrel; N_{vtx}; E}/E_{true}",
1795  200,
1796  -0.5,
1797  199.5,
1798  resBin,
1799  resMin,
1800  resMax,
1801  "");
1802  p_eResVsNVtx_[1][1] =
1803  iBooker.bookProfile(histname + "unconvBarrel",
1804  "Unconverted photons E/E_{true} vs N_{vtx}: Barrel; N_{vtx}; E}/E_{true} ",
1805  200,
1806  -0.5,
1807  199.5,
1808  resBin,
1809  resMin,
1810  resMax,
1811  "");
1812  p_eResVsNVtx_[1][2] =
1813  iBooker.bookProfile(histname + "convBarrel",
1814  " Converted photons E/E_{true} vs N_{vtx}: Barrel; N_{vtx}; E}/E_{true} ",
1815  200,
1816  -0.5,
1817  199.5,
1818  resBin,
1819  resMin,
1820  resMax,
1821  "");
1822  p_eResVsNVtx_[2][0] = iBooker.bookProfile(histname + "Endcap",
1823  "All photons E/E_{true} vs N_{vtx}: Endcap; N_{vtx}; E}/E_{true} ",
1824  200,
1825  -0.5,
1826  199.5,
1827  resBin,
1828  resMin,
1829  resMax,
1830  "");
1831  p_eResVsNVtx_[2][1] =
1832  iBooker.bookProfile(histname + "unconvEndcap",
1833  "Uncoverted photons E/E_{true} vs N_{vtx}: Endcap; N_{vtx}; E}/E_{true} ",
1834  2080,
1835  -0.5,
1836  199.5,
1837  resBin,
1838  resMin,
1839  resMax,
1840  "");
1841  p_eResVsNVtx_[2][2] = iBooker.bookProfile(histname + "convEndcap",
1842  "Converted photons E/E_{true} vs N_{vtx}: Endcap; N_{vtx}; E}/E_{true} ",
1843  200,
1844  -0.5,
1845  199.5,
1846  resBin,
1847  resMin,
1848  resMax,
1849  "");
1850 
1851  histname = "eResVsR9";
1852  if (!isRunCentrally_)
1853  h2_eResVsR9_[0] = iBooker.book2D(
1854  histname + "All", " All photons E/Etrue vs R9: all Ecal ", r9Bin * 2, r9Min, r9Max, 100, 0., 2.5);
1855  if (!isRunCentrally_)
1856  h2_eResVsR9_[1] = iBooker.book2D(
1857  histname + "Barrel", " All photons E/Etrue vs R9: Barrel ", r9Bin * 2, r9Min, r9Max, 100, 0., 2.5);
1858  if (!isRunCentrally_)
1859  h2_eResVsR9_[2] = iBooker.book2D(
1860  histname + "Endcap", " All photons E/Etrue vs R9: Endcap ", r9Bin * 2, r9Min, r9Max, 100, 0., 2.5);
1861  histname = "pEResVsR9";
1862  if (!isRunCentrally_)
1863  p_eResVsR9_[0] = iBooker.bookProfile(
1864  histname + "All", " All photons E/Etrue vs R9: all Ecal ", r9Bin * 2, r9Min, r9Max, resBin, resMin, resMax, "");
1865  p_eResVsR9_[1] = iBooker.bookProfile(
1866  histname + "Barrel", " All photons E/Etrue vs R9: Barrel ", r9Bin * 2, r9Min, r9Max, resBin, resMin, resMax, "");
1867  p_eResVsR9_[2] = iBooker.bookProfile(
1868  histname + "Endcap", " All photons E/Etrue vs R9: Endcap ", r9Bin * 2, r9Min, r9Max, resBin, resMin, resMax, "");
1869  histname = "sceResVsR9";
1870  if (!isRunCentrally_)
1871  h2_sceResVsR9_[0] = iBooker.book2D(
1872  histname + "All", " All photons scE/Etrue vs R9: all Ecal ", r9Bin * 2, r9Min, r9Max, 100, 0., 2.5);
1873  if (!isRunCentrally_)
1874  h2_sceResVsR9_[1] = iBooker.book2D(
1875  histname + "Barrel", " All photons scE/Etrue vs R9: Barrel ", r9Bin * 2, r9Min, r9Max, 100, 0., 2.5);
1876  if (!isRunCentrally_)
1877  h2_sceResVsR9_[2] = iBooker.book2D(
1878  histname + "Endcap", " All photons scE/Etrue vs R9: Endcap ", r9Bin * 2, r9Min, r9Max, 100, 0., 2.5);
1879  histname = "scpEResVsR9";
1880  if (!isRunCentrally_)
1881  p_sceResVsR9_[0] = iBooker.bookProfile(histname + "All",
1882  " All photons scE/Etrue vs R9: all Ecal ",
1883  r9Bin * 2,
1884  r9Min,
1885  r9Max,
1886  resBin,
1887  resMin,
1888  resMax,
1889  "");
1890  p_sceResVsR9_[1] = iBooker.bookProfile(histname + "Barrel",
1891  " All photons scE/Etrue vs R9: Barrel ",
1892  r9Bin * 2,
1893  r9Min,
1894  r9Max,
1895  resBin,
1896  resMin,
1897  resMax,
1898  "");
1899  p_sceResVsR9_[2] = iBooker.bookProfile(histname + "Endcap",
1900  " All photons scE/Etrue vs R9: Endcap ",
1901  r9Bin * 2,
1902  r9Min,
1903  r9Max,
1904  resBin,
1905  resMin,
1906  resMax,
1907  "");
1908 
1909  // Photon E resolution when using energy values from regressions
1910  histname = "eResRegr1";
1911  h_phoEResRegr1_[0][0] =
1912  iBooker.book1D(histname + "All", " Photon rec/true Energy from Regression1 : All ecal ", resBin, resMin, resMax);
1913  h_phoEResRegr1_[0][1] =
1914  iBooker.book1D(histname + "Barrel", " Photon rec/true Energy from Regression1: Barrel ", resBin, resMin, resMax);
1915  h_phoEResRegr1_[0][2] =
1916  iBooker.book1D(histname + "Endcap", " Photon rec/true Energy from Regression1: Endcap ", resBin, resMin, resMax);
1917 
1918  h_phoEResRegr1_[1][0] = iBooker.book1D(histname + "unconvAll",
1919  " Photon rec/true Energy from Regression1 if r9>0.94, 0.95: All ecal ",
1920  resBin,
1921  resMin,
1922  resMax);
1923  h_phoEResRegr1_[1][1] = iBooker.book1D(
1924  histname + "unconvBarrel", " Photon rec/true Energy from Regression1 if r9>0.94: Barrel ", resBin, resMin, resMax);
1925  h_phoEResRegr1_[1][2] = iBooker.book1D(
1926  histname + "unconvEndcap", " Photon rec/true Energy from Regression1 if r9>0.95: Endcap ", resBin, resMin, resMax);
1927 
1928  h_phoEResRegr1_[2][0] = iBooker.book1D(histname + "convAll",
1929  " Photon rec/true Energy from Regression1if r9<0.0.94, 0.95: All ecal ",
1930  resBin,
1931  resMin,
1932  resMax);
1933  h_phoEResRegr1_[2][1] = iBooker.book1D(
1934  histname + "convBarrel", " Photon rec/true Energy from Regression1 if r9<0.94: Barrel ", resBin, resMin, resMax);
1935  h_phoEResRegr1_[2][2] = iBooker.book1D(
1936  histname + "convEndcap", " Photon rec/true Energy from Regression1 if r9<0.95: Endcap ", resBin, resMin, resMax);
1937 
1938  histname = "eResRegr2";
1939  h_phoEResRegr2_[0][0] =
1940  iBooker.book1D(histname + "All", " Photon rec/true Energy from Regression2 : All ecal ", resBin, resMin, resMax);
1941  h_phoEResRegr2_[0][1] =
1942  iBooker.book1D(histname + "Barrel", " Photon rec/true Energy from Regression2: Barrel ", resBin, resMin, resMax);
1943  h_phoEResRegr2_[0][2] =
1944  iBooker.book1D(histname + "Endcap", " Photon rec/true Energy from Regression2: Endcap ", resBin, resMin, resMax);
1945 
1946  h_phoEResRegr2_[1][0] = iBooker.book1D(histname + "unconvAll",
1947  " Photon rec/true Energy from Regression2 if r9>0.94, 0.95: All ecal ",
1948  resBin,
1949  resMin,
1950  resMax);
1951  h_phoEResRegr2_[1][1] = iBooker.book1D(
1952  histname + "unconvBarrel", " Photon rec/true Energy from Regression2 if r9>0.94: Barrel ", resBin, resMin, resMax);
1953  h_phoEResRegr2_[1][2] = iBooker.book1D(
1954  histname + "unconvEndcap", " Photon rec/true Energy from Regression2 if r9>0.95: Endcap ", resBin, resMin, resMax);
1955 
1956  h_phoEResRegr2_[2][0] = iBooker.book1D(histname + "convAll",
1957  " Photon rec/true Energy from Regression2 if r9<0.0.94, 0.95: All ecal ",
1958  resBin,
1959  resMin,
1960  resMax);
1961  h_phoEResRegr2_[2][1] = iBooker.book1D(
1962  histname + "convBarrel", " Photon rec/true Energy from Regression2 if r9<0.94: Barrel ", resBin, resMin, resMax);
1963  h_phoEResRegr2_[2][2] = iBooker.book1D(
1964  histname + "convEndcap", " Photon rec/true Energy from Regression2 if r9<0.95: Endcap ", resBin, resMin, resMax);
1965  //
1966  histname = "phoPixSeedSize";
1967  h_phoPixSeedSize_[0] = iBooker.book1D(histname + "Barrel", "Pixel seeds size ", 100, 0., 100.);
1968  h_phoPixSeedSize_[1] = iBooker.book1D(histname + "Endcap", "Pixel seeds size ", 100, 0., 100.);
1969 
1970  // Infos from Particle Flow - isolation and ID
1971  histname = "chargedHadIso";
1972  h_chHadIso_[0] = iBooker.book1D(histname + "All", "PF chargedHadIso: All Ecal", etBin, etMin, 20.);
1973  h_chHadIso_[1] = iBooker.book1D(histname + "Barrel", "PF chargedHadIso: Barrel", etBin, etMin, 20.);
1974  h_chHadIso_[2] = iBooker.book1D(histname + "Endcap", "PF chargedHadIso: Endcap", etBin, etMin, 20.);
1975  histname = "neutralHadIso";
1976  h_nHadIso_[0] = iBooker.book1D(histname + "All", "PF neutralHadIso: All Ecal", etBin, etMin, 20.);
1977  h_nHadIso_[1] = iBooker.book1D(histname + "Barrel", "PF neutralHadIso: Barrel", etBin, etMin, 20.);
1978  h_nHadIso_[2] = iBooker.book1D(histname + "Endcap", "PF neutralHadIso: Endcap", etBin, etMin, 20.);
1979  histname = "photonIso";
1980  h_phoIso_[0] = iBooker.book1D(histname + "All", "PF photonIso: All Ecal", etBin, etMin, 20.);
1981  h_phoIso_[1] = iBooker.book1D(histname + "Barrel", "PF photonIso: Barrel", etBin, etMin, 20.);
1982  h_phoIso_[2] = iBooker.book1D(histname + "Endcap", "PF photonIso: Endcap", etBin, etMin, 20.);
1983  histname = "nCluOutMustache";
1985  iBooker.book1D(histname + "All", "PF number of clusters outside Mustache: All Ecal", 50, 0., 50.);
1987  iBooker.book1D(histname + "Barrel", "PF number of clusters outside Mustache: Barrel", 50, 0., 50.);
1989  iBooker.book1D(histname + "Endcap", "PF number of clusters outside Mustache: Endcap", 50, 0., 50.);
1990  histname = "etOutMustache";
1991  h_etOutsideMustache_[0] = iBooker.book1D(histname + "All", "PF et outside Mustache: All Ecal", etBin, etMin, 20.);
1992  h_etOutsideMustache_[1] = iBooker.book1D(histname + "Barrel", "PF et outside Mustache: Barrel", etBin, etMin, 20.);
1993  h_etOutsideMustache_[2] = iBooker.book1D(histname + "Endcap", "PF et outside Mustache: Endcap", etBin, etMin, 20.);
1994  histname = "pfMVA";
1995  h_pfMva_[0] = iBooker.book1D(histname + "All", "PF MVA output: All Ecal", 50, -1., 2.);
1996  h_pfMva_[1] = iBooker.book1D(histname + "Barrel", "PF MVA output: Barrel", 50, -1., 2.);
1997  h_pfMva_[2] = iBooker.book1D(histname + "Endcap", "PF MVA output: Endcap", 50, -1, 2.);
1999  histname = "SumPtOverPhoPt_ChHad_Cleaned";
2001  iBooker.book1D(histname + "All", "Pf Cand SumPt/P_{T}_{#gamma}: Charged Hadrons: All Ecal", etBin, etMin, 2.);
2003  iBooker.book1D(histname + "Barrel", "PF Cand SumPt/P_{T}_{#gamma}: Charged Hadrons: Barrel", etBin, etMin, 2.);
2005  iBooker.book1D(histname + "Endcap", "PF Cand SumPt/P_{T}_{#gamma}: Charged Hadrons: Endcap", etBin, etMin, 2.);
2006  histname = "SumPtOverPhoPt_NeuHad_Cleaned";
2008  iBooker.book1D(histname + "All", "Pf Cand SumPt/P_{T}_{#gamma}: Neutral Hadrons: All Ecal", etBin, etMin, 2.);
2010  iBooker.book1D(histname + "Barrel", "PF Cand SumPt/P_{T}_{#gamma}: Neutral Hadrons: Barrel", etBin, etMin, 2.);
2012  iBooker.book1D(histname + "Endcap", "PF Cand SumPt/P_{T}_{#gamma}: Neutral Hadrons: Endcap", etBin, etMin, 2.);
2013  histname = "SumPtOverPhoPt_Pho_Cleaned";
2015  iBooker.book1D(histname + "All", "Pf Cand SumPt/P_{T}_{#gamma}: Photons: All Ecal", etBin, etMin, 2.);
2017  iBooker.book1D(histname + "Barrel", "PF Cand SumPt/P_{T}_{#gamma}: Photons: Barrel", etBin, etMin, 2.);
2019  iBooker.book1D(histname + "Endcap", "PF Cand SumPt/P_{T}_{#gamma}: Photons: Endcap", etBin, etMin, 2.);
2020 
2021  histname = "dRPhoPFcand_ChHad_Cleaned";
2023  iBooker.book1D(histname + "All", "dR(pho,cand) Charged Hadrons : All Ecal", etBin, etMin, 0.7);
2025  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Charged Hadrons : Barrel", etBin, etMin, 0.7);
2027  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Charged Hadrons : Endcap", etBin, etMin, 0.7);
2028  histname = "dRPhoPFcand_NeuHad_Cleaned";
2030  iBooker.book1D(histname + "All", "dR(pho,cand) Neutral Hadrons : All Ecal", etBin, etMin, 0.7);
2032  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Neutral Hadrons : Barrel", etBin, etMin, 0.7);
2034  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Neutral Hadrons : Endcap", etBin, etMin, 0.7);
2035  histname = "dRPhoPFcand_Pho_Cleaned";
2037  iBooker.book1D(histname + "All", "dR(pho,cand) Photons : All Ecal", etBin, etMin, 0.7);
2039  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Photons : Barrel", etBin, etMin, 0.7);
2041  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Photons : Endcap", etBin, etMin, 0.7);
2042 
2043  //
2044  histname = "SumPtOverPhoPt_ChHad_unCleaned";
2046  iBooker.book1D(histname + "All", "Pf Cand Sum Pt Over photon pt Charged Hadrons : All Ecal", etBin, etMin, 2.);
2048  iBooker.book1D(histname + "Barrel", "PF Cand Sum Pt Over photon pt Charged Hadrons: Barrel", etBin, etMin, 2.);
2050  iBooker.book1D(histname + "Endcap", "PF Cand Sum Pt Over photon pt Charged Hadrons: Endcap", etBin, etMin, 2.);
2051  histname = "SumPtOverPhoPt_NeuHad_unCleaned";
2053  iBooker.book1D(histname + "All", "Pf Cand Sum Pt Over photon pt Neutral Hadrons : All Ecal", etBin, etMin, 2.);
2055  iBooker.book1D(histname + "Barrel", "PF Cand Sum Pt Over photon pt Neutral Hadrons: Barrel", etBin, etMin, 2.);
2057  iBooker.book1D(histname + "Endcap", "PF Cand Sum Pt Over photon pt Neutral Hadrons: Endcap", etBin, etMin, 2.);
2058  histname = "SumPtOverPhoPt_Pho_unCleaned";
2060  iBooker.book1D(histname + "All", "Pf Cand Sum Pt Over photon pt Photons: All Ecal", etBin, etMin, 2.);
2062  iBooker.book1D(histname + "Barrel", "PF Cand Sum Pt Over photon pt Photons: Barrel", etBin, etMin, 2.);
2064  iBooker.book1D(histname + "Endcap", "PF Cand Sum Pt Over photon pt Photons: Endcap", etBin, etMin, 2.);
2065  histname = "dRPhoPFcand_ChHad_unCleaned";
2067  iBooker.book1D(histname + "All", "dR(pho,cand) Charged Hadrons : All Ecal", etBin, etMin, 0.7);
2069  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Charged Hadrons : Barrel", etBin, etMin, 0.7);
2071  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Charged Hadrons : Endcap", etBin, etMin, 0.7);
2072  histname = "dRPhoPFcand_NeuHad_unCleaned";
2074  iBooker.book1D(histname + "All", "dR(pho,cand) Neutral Hadrons : All Ecal", etBin, etMin, 0.7);
2076  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Neutral Hadrons : Barrel", etBin, etMin, 0.7);
2078  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Neutral Hadrons : Endcap", etBin, etMin, 0.7);
2079  histname = "dRPhoPFcand_Pho_unCleaned";
2081  iBooker.book1D(histname + "All", "dR(pho,cand) Photons: All Ecal", etBin, etMin, 0.7);
2083  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Photons: Barrel", etBin, etMin, 0.7);
2085  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Photons: Endcap", etBin, etMin, 0.7);
2086 
2087  // if ( ! isRunCentrally_ ) {
2088  // Photon pair invariant mass
2089  histname = "gamgamMass";
2090  h_gamgamMass_[0][0] =
2091  iBooker.book1D(histname + "All", "2 photons invariant mass: All ecal ", ggMassBin, ggMassMin, ggMassMax);
2092  h_gamgamMass_[0][1] =
2093  iBooker.book1D(histname + "Barrel", "2 photons invariant mass: Barrel ", ggMassBin, ggMassMin, ggMassMax);
2094  h_gamgamMass_[0][2] =
2095  iBooker.book1D(histname + "Endcap", "2 photons invariant mass: Endcap ", ggMassBin, ggMassMin, ggMassMax);
2096  //
2097  histname = "gamgamMassNoConv";
2098  h_gamgamMass_[1][0] = iBooker.book1D(
2099  histname + "All", "2 photons with no conversion invariant mass: All ecal ", ggMassBin, ggMassMin, ggMassMax);
2100  h_gamgamMass_[1][1] = iBooker.book1D(
2101  histname + "Barrel", "2 photons with no conversion invariant mass: Barrel ", ggMassBin, ggMassMin, ggMassMax);
2102  h_gamgamMass_[1][2] = iBooker.book1D(
2103  histname + "Endcap", "2 photons with no conversion invariant mass: Endcap ", ggMassBin, ggMassMin, ggMassMax);
2104  //
2105  histname = "gamgamMassConv";
2106  h_gamgamMass_[2][0] = iBooker.book1D(
2107  histname + "All", "2 photons with conversion invariant mass: All ecal ", ggMassBin, ggMassMin, ggMassMax);
2108  h_gamgamMass_[2][1] = iBooker.book1D(
2109  histname + "Barrel", "2 photons with conversion invariant mass: Barrel ", ggMassBin, ggMassMin, ggMassMax);
2110  h_gamgamMass_[2][2] = iBooker.book1D(
2111  histname + "Endcap", "2 photons with conversion invariant mass: Endcap ", ggMassBin, ggMassMin, ggMassMax);
2112  // with energy regression1
2113  histname = "gamgamMassRegr1";
2114  h_gamgamMassRegr1_[0][0] =
2115  iBooker.book1D(histname + "All", "2 photons invariant mass Regr1 : All ecal ", ggMassBin, ggMassMin, ggMassMax);
2116  h_gamgamMassRegr1_[0][1] =
2117  iBooker.book1D(histname + "Barrel", "2 photons invariant mass Regr1 : Barrel ", ggMassBin, ggMassMin, ggMassMax);
2118  h_gamgamMassRegr1_[0][2] =
2119  iBooker.book1D(histname + "Endcap", "2 photons invariant mass Regr1 : Endcap ", ggMassBin, ggMassMin, ggMassMax);
2120  //
2121  histname = "gamgamMassRegr1NoConv";
2122  h_gamgamMassRegr1_[1][0] = iBooker.book1D(
2123  histname + "All", "2 photons with no conversion invariant mass Regr1: All ecal ", ggMassBin, ggMassMin, ggMassMax);
2124  h_gamgamMassRegr1_[1][1] = iBooker.book1D(histname + "Barrel",
2125  "2 photons with no conversion invariant mass Regr1: Barrel ",
2126  ggMassBin,
2127  ggMassMin,
2128  ggMassMax);
2129  h_gamgamMassRegr1_[1][2] = iBooker.book1D(histname + "Endcap",
2130  "2 photons with no conversion invariant mass Regr1: Endcap ",
2131  ggMassBin,
2132  ggMassMin,
2133  ggMassMax);
2134  //
2135  histname = "gamgamMassRegr1Conv";
2136  h_gamgamMassRegr1_[2][0] = iBooker.book1D(
2137  histname + "All", "2 photons with conversion invariant mass Regr1: All ecal ", ggMassBin, ggMassMin, ggMassMax);
2138  h_gamgamMassRegr1_[2][1] = iBooker.book1D(histname + "Barrel",
2139  "2 photons with conversion invariant mass Regr1: Barrel ",
2140  ggMassBin,
2141  ggMassMin,
2142  ggMassMax);
2143  h_gamgamMassRegr1_[2][2] = iBooker.book1D(histname + "Endcap",
2144  "2 photons with conversion invariant mass Regr1: Endcap ",
2145  ggMassBin,
2146  ggMassMin,
2147  ggMassMax);
2148  // with energy regression2
2149  histname = "gamgamMassRegr2";
2150  h_gamgamMassRegr2_[0][0] =
2151  iBooker.book1D(histname + "All", "2 photons invariant mass Regr2 : All ecal ", ggMassBin, ggMassMin, ggMassMax);
2152  h_gamgamMassRegr2_[0][1] =
2153  iBooker.book1D(histname + "Barrel", "2 photons invariant mass Regr2 : Barrel ", ggMassBin, ggMassMin, ggMassMax);
2154  h_gamgamMassRegr2_[0][2] =
2155  iBooker.book1D(histname + "Endcap", "2 photons invariant mass Regr2 : Endcap ", ggMassBin, ggMassMin, ggMassMax);
2156  //
2157  histname = "gamgamMassRegr2NoConv";
2158  h_gamgamMassRegr2_[1][0] = iBooker.book1D(
2159  histname + "All", "2 photons with no conversion invariant mass Regr2: All ecal ", ggMassBin, ggMassMin, ggMassMax);
2160  h_gamgamMassRegr2_[1][1] = iBooker.book1D(histname + "Barrel",
2161  "2 photons with no conversion invariant mass Regr2: Barrel ",
2162  ggMassBin,
2163  ggMassMin,
2164  ggMassMax);
2165  h_gamgamMassRegr2_[1][2] = iBooker.book1D(histname + "Endcap",
2166  "2 photons with no conversion invariant mass Regr2: Endcap ",
2167  ggMassBin,
2168  ggMassMin,
2169  ggMassMax);
2170  //
2171  histname = "gamgamMassRegr2Conv";
2172  h_gamgamMassRegr2_[2][0] = iBooker.book1D(
2173  histname + "All", "2 photons with conversion invariant mass Regr2: All ecal ", ggMassBin, ggMassMin, ggMassMax);
2174  h_gamgamMassRegr2_[2][1] = iBooker.book1D(histname + "Barrel",
2175  "2 photons with conversion invariant mass Regr2: Barrel ",
2176  ggMassBin,
2177  ggMassMin,
2178  ggMassMax);
2179  h_gamgamMassRegr2_[2][2] = iBooker.book1D(histname + "Endcap",
2180  "2 photons with conversion invariant mass Regr2: Endcap ",
2181  ggMassBin,
2182  ggMassMin,
2183  ggMassMax);
2184 
2185  //}
2186 
2188 
2189  h_scEta_miniAOD_[0] = iBooker.book1D("scEta_miniAOD", " SC Eta ", etaBin, etaMin, etaMax);
2190  h_scPhi_miniAOD_[0] = iBooker.book1D("scPhi_miniAOD", " SC Phi ", phiBin, phiMin, phiMax);
2191  histname = "phoE";
2192  h_phoE_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", " Photon Energy: All ecal ", eBin, eMin, eMax);
2193  h_phoE_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " Photon Energy: barrel ", eBin, eMin, eMax);
2194  h_phoE_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " Photon Energy: Endcap ", eBin, eMin, eMax);
2195 
2196  histname = "phoEt";
2197  h_phoEt_miniAOD_[0][0] =
2198  iBooker.book1D(histname + "All_miniAOD", " Photon Transverse Energy: All ecal ", etBin, etMin, etMax);
2199  h_phoEt_miniAOD_[0][1] =
2200  iBooker.book1D(histname + "Barrel_miniAOD", " Photon Transverse Energy: Barrel ", etBin, etMin, etMax);
2201  h_phoEt_miniAOD_[0][2] =
2202  iBooker.book1D(histname + "Endcap_miniAOD", " Photon Transverse Energy: Endcap ", etBin, etMin, etMax);
2203 
2204  histname = "eRes";
2205  h_phoERes_miniAOD_[0][0] = iBooker.book1D(
2206  histname + "All_miniAOD", " Photon E/E_{true}: All ecal; E/E_{true} (GeV)", resBin, resMin, resMax);
2207  h_phoERes_miniAOD_[0][1] = iBooker.book1D(
2208  histname + "Barrel_miniAOD", "Photon E/E_{true}: Barrel; E/E_{true} (GeV)", resBin, resMin, resMax);
2209  h_phoERes_miniAOD_[0][2] = iBooker.book1D(
2210  histname + "Endcap_miniAOD", " Photon E/E_{true}: Endcap; E/E_{true} (GeV)", resBin, resMin, resMax);
2211 
2212  histname = "sigmaEoE";
2213  h_phoSigmaEoE_miniAOD_[0][0] =
2214  iBooker.book1D(histname + "All_miniAOD", "#sigma_{E}/E: All ecal; #sigma_{E}/E", 100, 0., 0.08);
2215  h_phoSigmaEoE_miniAOD_[0][1] =
2216  iBooker.book1D(histname + "Barrel_miniAOD", "#sigma_{E}/E: Barrel; #sigma_{E}/E", 100, 0., 0.08);
2217  h_phoSigmaEoE_miniAOD_[0][2] =
2218  iBooker.book1D(histname + "Endcap_miniAOD", "#sigma_{E}/E: Endcap, #sigma_{E}/E", 100, 0., 0.08);
2219 
2220  histname = "r9";
2221  h_r9_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", " r9: All Ecal", r9Bin, r9Min, r9Max);
2222  h_r9_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " r9: Barrel ", r9Bin, r9Min, r9Max);
2223  h_r9_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " r9: Endcap ", r9Bin, r9Min, r9Max);
2224  histname = "full5x5_r9";
2225  h_full5x5_r9_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", " r9: All Ecal", r9Bin, r9Min, r9Max);
2226  h_full5x5_r9_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " r9: Barrel ", r9Bin, r9Min, r9Max);
2227  h_full5x5_r9_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " r9: Endcap ", r9Bin, r9Min, r9Max);
2228  histname = "r1";
2229  h_r1_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", " e1x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
2230  h_r1_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " e1x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
2231  h_r1_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " e1x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
2232  histname = "r2";
2233  h_r2_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", " e2x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
2234  h_r2_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", " e2x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
2235  h_r2_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", " e2x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
2236  histname = "hOverE";
2237  h_hOverE_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", "H/E: All Ecal", 100, 0., 0.2);
2238  h_hOverE_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", "H/E: Barrel ", 100, 0., 0.2);
2239  h_hOverE_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", "H/E: Endcap ", 100, 0., 0.2);
2240  //
2241  histname = "newhOverE";
2242  h_newhOverE_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", "new H/E: All Ecal", 100, 0., 0.2);
2243  h_newhOverE_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", "new H/E: Barrel ", 100, 0., 0.2);
2244  h_newhOverE_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", "new H/E: Endcap ", 100, 0., 0.2);
2245  //
2246  histname = "sigmaIetaIeta";
2247  h_sigmaIetaIeta_miniAOD_[0][0] = iBooker.book1D(histname + "All_miniAOD", "sigmaIetaIeta: All Ecal", 100, 0., 0.1);
2248  h_sigmaIetaIeta_miniAOD_[0][1] = iBooker.book1D(histname + "Barrel_miniAOD", "sigmaIetaIeta: Barrel ", 100, 0., 0.05);
2249  h_sigmaIetaIeta_miniAOD_[0][2] = iBooker.book1D(histname + "Endcap_miniAOD", "sigmaIetaIeta: Endcap ", 100, 0., 0.1);
2250  histname = "full5x5_sigmaIetaIeta";
2252  iBooker.book1D(histname + "All_miniAOD", "Full5x5 sigmaIetaIeta: All Ecal", 100, 0., 0.1);
2254  iBooker.book1D(histname + "Barrel_miniAOD", "Full5x5 sigmaIetaIeta: Barrel ", 100, 0., 0.05);
2256  iBooker.book1D(histname + "Endcap_miniAOD", "Full5x5 sigmaIetaIeta: Endcap ", 100, 0., 0.1);
2257  //
2258  histname = "ecalRecHitSumEtConeDR04";
2260  iBooker.book1D(histname + "All_miniAOD", "ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 20.);
2262  iBooker.book1D(histname + "Barrel_miniAOD", "ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 20.);
2264  iBooker.book1D(histname + "Endcap_miniAOD", "ecalRecHitSumEtDR04: Endcap ", etBin, etMin, 20.);
2265  histname = "hcalTowerSumEtConeDR04";
2267  iBooker.book1D(histname + "All_miniAOD", "hcalTowerSumEtConeDR04: All Ecal", etBin, etMin, 20.);
2269  iBooker.book1D(histname + "Barrel_miniAOD", "hcalTowerSumEtConeDR04: Barrel ", etBin, etMin, 20.);
2271  iBooker.book1D(histname + "Endcap_miniAOD", "hcalTowerSumEtConeDR04: Endcap ", etBin, etMin, 20.);
2272  //
2273  histname = "hcalTowerBcSumEtConeDR04";
2275  iBooker.book1D(histname + "All_miniAOD", "hcalTowerBcSumEtConeDR04: All Ecal", etBin, etMin, 20.);
2277  iBooker.book1D(histname + "Barrel_miniAOD", "hcalTowerBcSumEtConeDR04: Barrel ", etBin, etMin, 20.);
2279  iBooker.book1D(histname + "Endcap_miniAOD", "hcalTowerBcSumEtConeDR04: Endcap ", etBin, etMin, 20.);
2280  histname = "isoTrkSolidConeDR04";
2282  iBooker.book1D(histname + "All_miniAOD", "isoTrkSolidConeDR04: All Ecal", etBin, etMin, etMax * 0.1);
2284  iBooker.book1D(histname + "Barrel_miniAOD", "isoTrkSolidConeDR04: Barrel ", etBin, etMin, etMax * 0.1);
2286  iBooker.book1D(histname + "Endcap_miniAOD", "isoTrkSolidConeDR04: Endcap ", etBin, etMin, etMax * 0.1);
2287  histname = "nTrkSolidConeDR04";
2289  iBooker.book1D(histname + "All_miniAOD", "nTrkSolidConeDR04: All Ecal", 20, 0., 20);
2291  iBooker.book1D(histname + "Barrel_miniAOD", "nTrkSolidConeDR04: Barrel ", 20, 0., 20);
2293  iBooker.book1D(histname + "Endcap_miniAOD", "nTrkSolidConeDR04: Endcap ", 20, 0., 20);
2294 
2295  // Infos from Particle Flow - isolation and ID
2296  histname = "chargedHadIso";
2297  h_chHadIso_miniAOD_[0] = iBooker.book1D(histname + "All_miniAOD", "PF chargedHadIso: All Ecal", etBin, etMin, 20.);
2298  h_chHadIso_miniAOD_[1] = iBooker.book1D(histname + "Barrel_miniAOD", "PF chargedHadIso: Barrel", etBin, etMin, 20.);
2299  h_chHadIso_miniAOD_[2] = iBooker.book1D(histname + "Endcap_miniAOD", "PF chargedHadIso: Endcap", etBin, etMin, 20.);
2300  histname = "neutralHadIso";
2301  h_nHadIso_miniAOD_[0] = iBooker.book1D(histname + "All_miniAOD", "PF neutralHadIso: All Ecal", etBin, etMin, 20.);
2302  h_nHadIso_miniAOD_[1] = iBooker.book1D(histname + "Barrel_miniAOD", "PF neutralHadIso: Barrel", etBin, etMin, 20.);
2303  h_nHadIso_miniAOD_[2] = iBooker.book1D(histname + "Endcap_miniAOD", "PF neutralHadIso: Endcap", etBin, etMin, 20.);
2304  histname = "photonIso";
2305  h_phoIso_miniAOD_[0] = iBooker.book1D(histname + "All_miniAOD", "PF photonIso: All Ecal", etBin, etMin, 20.);
2306  h_phoIso_miniAOD_[1] = iBooker.book1D(histname + "Barrel_miniAOD", "PF photonIso: Barrel", etBin, etMin, 20.);
2307  h_phoIso_miniAOD_[2] = iBooker.book1D(histname + "Endcap_miniAOD", "PF photonIso: Endcap", etBin, etMin, 20.);
2308 
2309  iBooker.setCurrentFolder("EgammaV/" + fName_ + "/ConversionInfo");
2310 
2311  histname = "nConv";
2312  h_nConv_[0][0] = iBooker.book1D(histname + "All",
2313  "Number Of two-tracks Conversions per isolated candidates per events: All Ecal ",
2314  10,
2315  -0.5,
2316  9.5);
2317  h_nConv_[0][1] = iBooker.book1D(histname + "Barrel",
2318  "Number Of two-tracks Conversions per isolated candidates per events: Ecal Barrel ",
2319  10,
2320  -0.5,
2321  9.5);
2322  h_nConv_[0][2] = iBooker.book1D(histname + "Endcap",
2323  "Number Of two-tracks Conversions per isolated candidates per events: Ecal Endcap ",
2324  10,
2325  -0.5,
2326  9.5);
2327  h_nConv_[1][0] = iBooker.book1D(histname + "OneLegAll",
2328  "Number Of single leg Conversions per isolated candidates per events: All Ecal ",
2329  10,
2330  -0.5,
2331  9.5);
2332  h_nConv_[1][1] = iBooker.book1D(histname + "OneLegBarrel",
2333  "Number Of single leg Conversions per isolated candidates per events: Ecal Barrel ",
2334  10,
2335  -0.5,
2336  9.5);
2337  h_nConv_[1][2] = iBooker.book1D(histname + "OneLegEndcap",
2338  "Number Of single leg Conversions per isolated candidates per events: Ecal Endcap ",
2339  10,
2340  -0.5,
2341  9.5);
2342 
2343  h_convEta_[0] = iBooker.book1D("convEta1", " converted Photon Eta >1 track", etaBin, etaMin, etaMax);
2344  h_convEta_[1] = iBooker.book1D("convEta2", " converted Photon Eta =2 tracks ", etaBin, etaMin, etaMax);
2345  h_convEta_[2] = iBooker.book1D("convEta2ass", " converted Photon Eta =2 tracks, both ass ", etaBin, etaMin, etaMax);
2346  h_convPhi_[0] = iBooker.book1D("convPhi", " converted Photon Phi ", phiBin, phiMin, phiMax);
2347 
2348  histname = "convERes";
2349  h_convERes_[0][0] =
2350  iBooker.book1D(histname + "All", " Conversion rec/true Energy: All ecal ", resBin, resMin, resMax);
2351  h_convERes_[0][1] =
2352  iBooker.book1D(histname + "Barrel", " Conversion rec/true Energy: Barrel ", resBin, resMin, resMax);
2353  h_convERes_[0][2] =
2354  iBooker.book1D(histname + "Endcap", " Conversion rec/true Energy: Endcap ", resBin, resMin, resMax);
2355 
2356  histname = "p_EResVsR";
2357  p_eResVsR_ = iBooker.bookProfile(
2358  histname + "All", " photons conversion E/Etrue vs R: all Ecal ", rBin, rMin, rMax, 100, 0., 1.5, "");
2359 
2360  histname = "convPtRes";
2361  h_convPtRes_[1][0] =
2362  iBooker.book1D(histname + "All", " Conversion Pt rec/true from tracks : All ecal ", resBin, 0., 1.5);
2363  h_convPtRes_[1][1] =
2364  iBooker.book1D(histname + "Barrel", " Conversion Pt rec/true from tracks: Barrel ", resBin, 0., 1.5);
2365  h_convPtRes_[1][2] =
2366  iBooker.book1D(histname + "Endcap", " Conversion Pt rec/true from tracks: Endcap ", resBin, 0., 1.5);
2367 
2368  if (!isRunCentrally_) {
2369  histname = "r9VsTracks";
2370  h_r9VsNofTracks_[0][0] = iBooker.book2D(
2371  histname + "All", " photons r9 vs nTracks from conversions: All Ecal", r9Bin, r9Min, r9Max, 3, -0.5, 2.5);
2372  h_r9VsNofTracks_[0][1] = iBooker.book2D(
2373  histname + "Barrel", " photons r9 vs nTracks from conversions: Barrel Ecal", r9Bin, r9Min, r9Max, 3, -0.5, 2.5);
2374  h_r9VsNofTracks_[0][2] = iBooker.book2D(
2375  histname + "Endcap", " photons r9 vs nTracks from conversions: Endcap Ecal", r9Bin, r9Min, r9Max, 3, -0.5, 2.5);
2376  }
2377 
2378  histname = "mvaOut";
2379  h_mvaOut_[0] = iBooker.book1D(histname + "All", " mvaOut for all conversions : All Ecal", 100, 0., 1.);
2380  h_mvaOut_[1] = iBooker.book1D(histname + "Barrel", " mvaOut for all conversions : Barrel Ecal", 100, 0., 1.);
2381  h_mvaOut_[2] = iBooker.book1D(histname + "Endcap", " mvaOut for all conversions : Endcap Ecal", 100, 0., 1.);
2382 
2383  histname = "EoverPtracks";
2384  h_EoverPTracks_[0][0] =
2385  iBooker.book1D(histname + "BarrelPix", " photons conversion E/p: barrel pix", eoverpBin, eoverpMin, eoverpMax);
2386  h_EoverPTracks_[0][1] =
2387  iBooker.book1D(histname + "BarrelTib", " photons conversion E/p: barrel tib", eoverpBin, eoverpMin, eoverpMax);
2388  h_EoverPTracks_[0][2] =
2389  iBooker.book1D(histname + "BarrelTob", " photons conversion E/p: barrel tob ", eoverpBin, eoverpMin, eoverpMax);
2390 
2391  h_EoverPTracks_[1][0] = iBooker.book1D(histname + "All", " photons conversion E/p: all Ecal ", 100, 0., 5.);
2392  h_EoverPTracks_[1][1] = iBooker.book1D(histname + "Barrel", " photons conversion E/p: Barrel Ecal", 100, 0., 5.);
2393  h_EoverPTracks_[1][2] = iBooker.book1D(histname + "Endcap", " photons conversion E/p: Endcap Ecal ", 100, 0., 5.);
2394  histname = "EoverP_SL";
2395  h_EoverP_SL_[0] = iBooker.book1D(histname + "All", " photons single leg conversion E/p: all Ecal ", 100, 0., 5.);
2396  h_EoverP_SL_[1] = iBooker.book1D(histname + "Barrel", " photons single leg conversion E/p: Barrel Ecal", 100, 0., 5.);
2397  h_EoverP_SL_[2] =
2398  iBooker.book1D(histname + "Endcap", " photons single leg conversion E/p: Endcap Ecal ", 100, 0., 5.);
2399 
2400  histname = "PoverEtracks";
2401  h_PoverETracks_[1][0] =
2402  iBooker.book1D(histname + "All", " photons conversion p/E: all Ecal ", povereBin, povereMin, povereMax);
2403  h_PoverETracks_[1][1] =
2404  iBooker.book1D(histname + "Barrel", " photons conversion p/E: Barrel Ecal", povereBin, povereMin, povereMax);
2405  h_PoverETracks_[1][2] =
2406  iBooker.book1D(histname + "Endcap", " photons conversion p/E: Endcap Ecal ", povereBin, povereMin, povereMax);
2407 
2408  histname = "pEoverEtrueVsEta";
2409  p_EoverEtrueVsEta_[0] =
2410  iBooker.bookProfile(histname + "All",
2411  " photons conversion with 2 (associated) reco tracks E/Etrue vs #eta: all Ecal ",
2412  etaBin2,
2413  etaMin,
2414  etaMax,
2415  100,
2416  0.,
2417  2.5,
2418  "");
2419 
2420  histname = "pEoverEtrueVsR";
2421  p_EoverEtrueVsR_[0] = iBooker.bookProfile(
2422  histname + "All", " photons conversion E/Etrue vs R: all Ecal ", rBin, rMin, rMax, 100, 0., 2.5, "");
2423 
2424  histname = "pEoverEtrueVsEta";
2425  p_EoverEtrueVsEta_[1] = iBooker.bookProfile(histname + "All2",
2426  " photons conversion 2 reco tracks E/Etrue vs #eta: all Ecal ",
2427  etaBin2,
2428  etaMin,
2429  etaMax,
2430  100,
2431  0.,
2432  2.5,
2433  "");
2434 
2435  histname = "pPoverPtrueVsEta";
2436  p_PoverPtrueVsEta_[0] = iBooker.bookProfile(
2437  histname + "All", " photons conversion P/Ptrue vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 5., "");
2438 
2439  histname = "pEoverPVsEta";
2440  p_EoverPVsEta_[0] = iBooker.bookProfile(
2441  histname + "All", " photons conversion E/P vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 5., "");
2442 
2443  if (!isRunCentrally_) {
2444  histname = "EoverEtrueVsEoverP";
2446  iBooker.book2D(histname + "All", " photons conversion E/Etrue vs E/P: all Ecal ", 100, 0., 5., 100, 0.5, 1.5);
2447  h2_EoverEtrueVsEoverP_[1] = iBooker.book2D(
2448  histname + "Barrel", " photons conversion E/Etrue vs E/: Barrel Ecal", 100, 0., 5., 100, 0.5, 1.5);
2449  h2_EoverEtrueVsEoverP_[2] = iBooker.book2D(
2450  histname + "Endcap", " photons conversion E/Etrue vs E/: Endcap Ecal ", 100, 0., 5., 100, 0.5, 1.5);
2451  histname = "PoverPtrueVsEoverP";
2453  iBooker.book2D(histname + "All", " photons conversion P/Ptrue vs E/P: all Ecal ", 100, 0., 5., 100, 0., 2.5);
2454  h2_PoverPtrueVsEoverP_[1] = iBooker.book2D(
2455  histname + "Barrel", " photons conversion P/Ptrue vs E/: Barrel Ecal", 100, 0., 5., 100, 0., 2.5);
2456  h2_PoverPtrueVsEoverP_[2] = iBooker.book2D(
2457  histname + "Endcap", " photons conversion P/Ptrue vs E/: Endcap Ecal ", 100, 0., 5., 100, 0., 2.5);
2458 
2459  histname = "EoverEtrueVsEta";
2460  h2_EoverEtrueVsEta_[0] =
2461  iBooker.book2D(histname + "All",
2462  " photons conversion with 2 (associated) reco tracks E/Etrue vs #eta: all Ecal ",
2463  etaBin2,
2464  etaMin,
2465  etaMax,
2466  100,
2467  0.,
2468  2.5);
2469 
2470  histname = "EoverEtrueVsEta";
2471  h2_EoverEtrueVsEta_[1] = iBooker.book2D(histname + "All2",
2472  " photons conversion 2 reco tracks E/Etrue vs #eta: all Ecal ",
2473  etaBin2,
2474  etaMin,
2475  etaMax,
2476  100,
2477  0.,
2478  2.5);
2479 
2480  histname = "EoverEtrueVsR";
2481  h2_EoverEtrueVsR_[0] =
2482  iBooker.book2D(histname + "All", " photons conversion E/Etrue vs R: all Ecal ", rBin, rMin, rMax, 100, 0., 2.5);
2483 
2484  histname = "PoverPtrueVsEta";
2485  h2_PoverPtrueVsEta_[0] = iBooker.book2D(
2486  histname + "All", " photons conversion P/Ptrue vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 5.);
2487 
2488  histname = "EoverPVsEta";
2489  h2_EoverPVsEta_[0] = iBooker.book2D(
2490  histname + "All", " photons conversion E/P vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 5.);
2491 
2492  histname = "EoverPVsR";
2493  h2_EoverPVsR_[0] =
2494  iBooker.book2D(histname + "All", " photons conversion E/P vs R: all Ecal ", rBin, rMin, rMax, 100, 0., 5.);
2495 
2496  histname = "etaVsRsim";
2497  h2_etaVsRsim_[0] = iBooker.book2D(histname + "All",
2498  " eta(sim) vs R (sim) for associated conversions: all Ecal ",
2499  etaBin,
2500  etaMin,
2501  etaMax,
2502  rBin,
2503  rMin,
2504  rMax);
2505  histname = "etaVsRreco";
2506  h2_etaVsRreco_[0] = iBooker.book2D(histname + "All",
2507  " eta(reco) vs R (reco) for associated conversions: all Ecal ",
2508  etaBin,
2509  etaMin,
2510  etaMax,
2511  rBin,
2512  rMin,
2513  rMax);
2514  }
2515 
2516  histname = "pEoverPVsR";
2517  p_EoverPVsR_[0] = iBooker.bookProfile(
2518  histname + "All", " photons conversion E/P vs R: all Ecal ", rBin, rMin, rMax, 100, 0., 5., "");
2519 
2520  histname = "hInvMass";
2521  h_invMass_[0][0] = iBooker.book1D(
2522  histname + "All_AllTracks", " Photons:Tracks from conversion: Pair invariant mass: all Ecal ", 100, 0., 1.5);
2523  h_invMass_[0][1] = iBooker.book1D(
2524  histname + "Barrel_AllTracks", " Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ", 100, 0., 1.5);
2525  h_invMass_[0][2] = iBooker.book1D(
2526  histname + "Endcap_AllTracks", " Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ", 100, 0., 1.5);
2527  histname = "hInvMass";
2528  h_invMass_[1][0] = iBooker.book1D(
2529  histname + "All_AssTracks", " Photons:Tracks from conversion: Pair invariant mass: all Ecal ", 100, 0., 1.5);
2530  h_invMass_[1][1] = iBooker.book1D(
2531  histname + "Barrel_AssTracks", " Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ", 100, 0., 1.5);
2532  h_invMass_[1][2] = iBooker.book1D(
2533  histname + "Endcap_AssTracks", " Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ", 100, 0., 1.5);
2534 
2535  histname = "hDPhiTracksAtVtx";
2536  h_DPhiTracksAtVtx_[1][0] = iBooker.book1D(histname + "All",
2537  " Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",
2538  dPhiTracksBin,
2539  dPhiTracksMin,
2540  dPhiTracksMax);
2541  h_DPhiTracksAtVtx_[1][1] =
2542  iBooker.book1D(histname + "Barrel",
2543  " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",
2544  dPhiTracksBin,
2545  dPhiTracksMin,
2546  dPhiTracksMax);
2547  h_DPhiTracksAtVtx_[1][2] =
2548  iBooker.book1D(histname + "Endcap",
2549  " Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",
2550  dPhiTracksBin,
2551  dPhiTracksMin,
2552  dPhiTracksMax);
2553 
2554  if (!isRunCentrally_) {
2555  histname = "hDPhiTracksAtVtxVsEta";
2556  h2_DPhiTracksAtVtxVsEta_ = iBooker.book2D(histname + "All",
2557  " Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta",
2558  etaBin2,
2559  etaMin,
2560  etaMax,
2561  100,
2562  -0.5,
2563  0.5);
2564 
2565  histname = "hDPhiTracksAtVtxVsR";
2566  h2_DPhiTracksAtVtxVsR_ = iBooker.book2D(histname + "All",
2567  " Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R",
2568  rBin,
2569  rMin,
2570  rMax,
2571  100,
2572  -0.5,
2573  0.5);
2574 
2575  histname = "hDCotTracksVsEta";
2576  h2_DCotTracksVsEta_ = iBooker.book2D(histname + "All",
2577  " Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta",
2578  etaBin2,
2579  etaMin,
2580  etaMax,
2581  100,
2582  -0.2,
2583  0.2);
2584 
2585  histname = "hDCotTracksVsR";
2586  h2_DCotTracksVsR_ = iBooker.book2D(histname + "All",
2587  " Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R",
2588  rBin,
2589  rMin,
2590  rMax,
2591  100,
2592  -0.2,
2593  0.2);
2594 
2595  histname = "h2_DPhiTracksAtEcalVsR";
2596  if (fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator")
2597  h2_DPhiTracksAtEcalVsR_ = iBooker.book2D(histname + "All",
2598  " Photons:Tracks from conversions: #delta#phi at Ecal vs R : all Ecal ",
2599  rBin,
2600  rMin,
2601  rMax,
2602  dPhiTracksBin,
2603  0.,
2604  dPhiTracksMax);
2605 
2606  histname = "h2_DPhiTracksAtEcalVsEta";
2607  if (fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator")
2609  iBooker.book2D(histname + "All",
2610  " Photons:Tracks from conversions: #delta#phi at Ecal vs #eta : all Ecal ",
2611  etaBin2,
2612  etaMin,
2613  etaMax,
2614  dPhiTracksBin,
2615  0.,
2616  dPhiTracksMax);
2617  }
2618 
2619  histname = "pDPhiTracksAtVtxVsEta";
2621  iBooker.bookProfile(histname + "All",
2622  " Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta ",
2623  etaBin2,
2624  etaMin,
2625  etaMax,
2626  100,
2627  -0.5,
2628  0.5,
2629  "");
2630 
2631  histname = "pDPhiTracksAtVtxVsR";
2632  p_DPhiTracksAtVtxVsR_ = iBooker.bookProfile(histname + "All",
2633  " Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R ",
2634  rBin,
2635  rMin,
2636  rMax,
2637  100,
2638  -0.5,
2639  0.5,
2640  "");
2641 
2642  histname = "hDCotTracks";
2643  h_DCotTracks_[1][0] = iBooker.book1D(histname + "All",
2644  " Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",
2645  dCotTracksBin,
2646  dCotTracksMin,
2647  dCotTracksMax);
2648  h_DCotTracks_[1][1] = iBooker.book1D(histname + "Barrel",
2649  " Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",
2650  dCotTracksBin,
2651  dCotTracksMin,
2652  dCotTracksMax);
2653  h_DCotTracks_[1][2] = iBooker.book1D(histname + "Endcap",
2654  " Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",
2655  dCotTracksBin,
2656  dCotTracksMin,
2657  dCotTracksMax);
2658 
2659  histname = "pDCotTracksVsEta";
2660  p_DCotTracksVsEta_ = iBooker.bookProfile(histname + "All",
2661  " Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta ",
2662  etaBin2,
2663  etaMin,
2664  etaMax,
2665  100,
2666  -0.2,
2667  0.2,
2668  "");
2669 
2670  histname = "pDCotTracksVsR";
2672  iBooker.bookProfile(histname + "All",
2673  " Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R ",
2674  rBin,
2675  rMin,
2676  rMax,
2677  100,
2678  -0.2,
2679  0.2,
2680  "");
2681 
2682  histname = "hDistMinAppTracks";
2683  h_distMinAppTracks_[1][0] = iBooker.book1D(histname + "All",
2684  " Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",
2685  dEtaTracksBin,
2686  -0.1,
2687  0.6);
2688  h_distMinAppTracks_[1][1] = iBooker.book1D(histname + "Barrel",
2689  " Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",
2690  dEtaTracksBin,
2691  -0.1,
2692  0.6);
2693  h_distMinAppTracks_[1][2] = iBooker.book1D(histname + "Endcap",
2694  " Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",
2695  dEtaTracksBin,
2696  -0.1,
2697  0.6);
2698 
2699  // if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator" ) {
2700  histname = "hDPhiTracksAtEcal";
2701  h_DPhiTracksAtEcal_[1][0] = iBooker.book1D(histname + "All",
2702  " Photons:Tracks from conversions: #delta#phi at Ecal : all Ecal ",
2703  dPhiTracksBin,
2704  0.,
2705  dPhiTracksMax);
2706  h_DPhiTracksAtEcal_[1][1] = iBooker.book1D(histname + "Barrel",
2707  " Photons:Tracks from conversions: #delta#phi at Ecal : Barrel Ecal ",
2708  dPhiTracksBin,
2709  0.,
2710  dPhiTracksMax);
2711  h_DPhiTracksAtEcal_[1][2] = iBooker.book1D(histname + "Endcap",
2712  " Photons:Tracks from conversions: #delta#phi at Ecal : Endcap Ecal ",
2713  dPhiTracksBin,
2714  0.,
2715  dPhiTracksMax);
2716 
2717  histname = "pDPhiTracksAtEcalVsR";
2718  p_DPhiTracksAtEcalVsR_ = iBooker.bookProfile(histname + "All",
2719  " Photons:Tracks from conversions: #delta#phi at Ecal vs R ",
2720  rBin,
2721  rMin,
2722  rMax,
2723  dPhiTracksBin,
2724  0.,
2725  dPhiTracksMax,
2726  "");
2727 
2728  histname = "pDPhiTracksAtEcalVsEta";
2729  p_DPhiTracksAtEcalVsEta_ = iBooker.bookProfile(histname + "All",
2730  " Photons:Tracks from conversions: #delta#phi at Ecal vs #eta ",
2731  etaBin2,
2732  etaMin,
2733  etaMax,
2734  dPhiTracksBin,
2735  0.,
2736  dPhiTracksMax,
2737  "");
2738 
2739  histname = "hDEtaTracksAtEcal";
2740  h_DEtaTracksAtEcal_[1][0] = iBooker.book1D(histname + "All",
2741  " Photons:Tracks from conversions: #delta#eta at Ecal : all Ecal ",
2742  dEtaTracksBin,
2743  dEtaTracksMin,
2744  dEtaTracksMax);
2745  h_DEtaTracksAtEcal_[1][1] = iBooker.book1D(histname + "Barrel",
2746  " Photons:Tracks from conversions: #delta#eta at Ecal : Barrel Ecal ",
2747  dEtaTracksBin,
2748  dEtaTracksMin,
2749  dEtaTracksMax);
2750  h_DEtaTracksAtEcal_[1][2] = iBooker.book1D(histname + "Endcap",
2751  " Photons:Tracks from conversions: #delta#eta at Ecal : Endcap Ecal ",
2752  dEtaTracksBin,
2753  dEtaTracksMin,
2754  dEtaTracksMax);
2755 
2756  // }
2757 
2758  h_convVtxRvsZ_[0] = iBooker.book2D("convVtxRvsZAll",
2759  " Photon Reco conversion vtx position",
2760  zBinForXray,
2761  zMinForXray,
2762  zMaxForXray,
2763  rBinForXray,
2764  rMinForXray,
2765  rMaxForXray);
2766  h_convVtxRvsZ_[1] = iBooker.book2D("convVtxRvsZBarrel",
2767  " Photon Reco conversion vtx position",
2768  zBinForXray,
2769  zMinForXray,
2770  zMaxForXray,
2771  rBinForXray,
2772  rMinForXray,
2773  rMaxForXray);
2774  h_convVtxRvsZ_[2] = iBooker.book2D("convVtxRvsZEndcap",
2775  " Photon Reco conversion vtx position",
2776  zBin2ForXray,
2777  zMinForXray,
2778  zMaxForXray,
2779  rBinForXray,
2780  rMinForXray,
2781  rMaxForXray);
2782  h_convVtxYvsX_ = iBooker.book2D(
2783  "convVtxYvsXTrkBarrel", " Photon Reco conversion vtx position, (x,y) eta<1 ", 100, -80., 80., 100, -80., 80.);
2784  //
2785  h_convSLVtxRvsZ_[0] = iBooker.book2D("convSLVtxRvsZAll",
2786  " Photon Reco single leg conversion innermost hit position",
2787  zBinForXray,
2788  zMinForXray,
2789  zMaxForXray,
2790  rBinForXray,
2791  rMinForXray,
2792  rMaxForXray);
2793  h_convSLVtxRvsZ_[1] = iBooker.book2D("convSLVtxRvsZBarrel",
2794  " Photon Reco single leg conversion innermost hit position",
2795  zBinForXray,
2796  zMinForXray,
2797  zMaxForXray,
2798  rBinForXray,
2799  rMinForXray,
2800  rMaxForXray);
2801  h_convSLVtxRvsZ_[2] = iBooker.book2D("convSLVtxRvsZEndcap",
2802  " Photon Reco single leg conversion innermost hit position",
2803  zBin2ForXray,
2804  zMinForXray,
2805  zMaxForXray,
2806  rBinForXray,
2807  rMinForXray,
2808  rMaxForXray);
2809 
2811  if (!isRunCentrally_) {
2812  h_convVtxRvsZ_zoom_[0] = iBooker.book2D("convVtxRvsZBarrelZoom1",
2813  " Photon Reco conversion vtx position",
2814  zBinForXray,
2815  zMinForXray,
2816  zMaxForXray,
2817  rBinForXray,
2818  -10.,
2819  40.);
2820  h_convVtxRvsZ_zoom_[1] = iBooker.book2D("convVtxRvsZBarrelZoom2",
2821  " Photon Reco conversion vtx position",
2822  zBinForXray,
2823  zMinForXray,
2824  zMaxForXray,
2825  rBinForXray,
2826  -10.,
2827  20.);
2828  h_convVtxYvsX_zoom_[0] = iBooker.book2D("convVtxYvsXTrkBarrelZoom1",
2829  " Photon Reco conversion vtx position, (x,y) eta<1 ",
2830  100,
2831  -40.,
2832  40.,
2833  100,
2834  -40.,
2835  40.);
2836  h_convVtxYvsX_zoom_[1] = iBooker.book2D("convVtxYvsXTrkBarrelZoom2",
2837  " Photon Reco conversion vtx position, (x,y) eta<1 ",
2838  100,
2839  -20.,
2840  20.,
2841  100,
2842  -20.,
2843  20.);
2844  }
2845 
2846  h_convVtxdX_ = iBooker.book1D("convVtxdX", " Photon Reco conversion vtx dX", 100, -20., 20.);
2847  h_convVtxdY_ = iBooker.book1D("convVtxdY", " Photon Reco conversion vtx dY", 100, -20., 20.);
2848  h_convVtxdZ_ = iBooker.book1D("convVtxdZ", " Photon Reco conversion vtx dZ", 100, -20., 20.);
2849  h_convVtxdR_ = iBooker.book1D("convVtxdR", " Photon Reco conversion vtx dR", 100, -20., 20.);
2850 
2852  iBooker.book1D("convVtxdX_barrel", " Photon Reco conversion vtx dX, |eta|<=1.2", 100, -20., 20.);
2854  iBooker.book1D("convVtxdY_barrel", " Photon Reco conversion vtx dY, |eta|<=1.2 ", 100, -20., 20.);
2856  iBooker.book1D("convVtxdZ_barrel", " Photon Reco conversion vtx dZ, |eta|<=1.2,", 100, -20., 20.);
2858  iBooker.book1D("convVtxdR_barrel", " Photon Reco conversion vtx dR, |eta|<=1.2", 100, -20., 20.);
2860  iBooker.book1D("convVtxdX_endcap", " Photon Reco conversion vtx dX, |eta|>1.2", 100, -20., 20.);
2862  iBooker.book1D("convVtxdY_endcap", " Photon Reco conversion vtx dY, |eta|>1.2", 100, -20., 20.);
2864  iBooker.book1D("convVtxdZ_endcap", " Photon Reco conversion vtx dZ, |eta|>1.2", 100, -20., 20.);
2866  iBooker.book1D("convVtxdR_endcap", " Photon Reco conversion vtx dR, |eta|>1.2 ", 100, -20., 20.);
2867 
2868  h_convVtxdPhi_ = iBooker.book1D("convVtxdPhi", " Photon Reco conversion vtx dPhi", 100, -0.005, 0.005);
2869  h_convVtxdEta_ = iBooker.book1D("convVtxdEta", " Photon Reco conversion vtx dEta", 100, -0.5, 0.5);
2870 
2871  if (!isRunCentrally_) {
2873  iBooker.book2D("h2ConvVtxdRVsR", "Photon Reco conversion vtx dR vsR", rBin, rMin, rMax, 100, -20., 20.);
2874  h2_convVtxdRVsEta_ = iBooker.book2D(
2875  "h2ConvVtxdRVsEta", "Photon Reco conversion vtx dR vs Eta", etaBin2, etaMin, etaMax, 100, -20., 20.);
2876  }
2877 
2878  p_convVtxdRVsR_ =
2879  iBooker.bookProfile("pConvVtxdRVsR", "Photon Reco conversion vtx dR vsR", rBin, rMin, rMax, 100, -20., 20., "");
2880  p_convVtxdRVsEta_ = iBooker.bookProfile(
2881  "pConvVtxdRVsEta", "Photon Reco conversion vtx dR vs Eta", etaBin2, etaMin, etaMax, 100, -20., 20., "");
2882  p_convVtxdXVsX_ = iBooker.bookProfile("pConvVtxdXVsX", "Conversion vtx dX vs X", 120, -60, 60, 100, -20., 20., "");
2883  p_convVtxdYVsY_ = iBooker.bookProfile("pConvVtxdYVsY", "Conversion vtx dY vs Y", 120, -60, 60, 100, -20., 20., "");
2884  p_convVtxdZVsZ_ =
2885  iBooker.bookProfile("pConvVtxdZVsZ", "Conversion vtx dZ vs Z", zBin, zMin, zMax, 100, -20., 20., "");
2886 
2887  if (!isRunCentrally_) {
2888  h2_convVtxRrecVsTrue_ = iBooker.book2D(
2889  "h2ConvVtxRrecVsTrue", "Photon Reco conversion vtx R rec vs true", rBin, rMin, rMax, rBin, rMin, rMax);
2890  }
2891 
2892  histname = "vtxChi2";
2893  h_vtxChi2_[0] = iBooker.book1D(histname + "All", "vertex #chi^{2} all", 100, chi2Min, chi2Max);
2894  h_vtxChi2_[1] = iBooker.book1D(histname + "Barrel", "vertex #chi^{2} barrel", 100, chi2Min, chi2Max);
2895  h_vtxChi2_[2] = iBooker.book1D(histname + "Endcap", "vertex #chi^{2} endcap", 100, chi2Min, chi2Max);
2896  histname = "vtxChi2Prob";
2897  h_vtxChi2Prob_[0] = iBooker.book1D(histname + "All", "vertex #chi^{2} all", 100, 0., 1.);
2898  h_vtxChi2Prob_[1] = iBooker.book1D(histname + "Barrel", "vertex #chi^{2} barrel", 100, 0., 1.);
2899  h_vtxChi2Prob_[2] = iBooker.book1D(histname + "Endcap", "vertex #chi^{2} endcap", 100, 0., 1.);
2900 
2901  histname = "zPVFromTracks";
2902  h_zPVFromTracks_[0] = iBooker.book1D(histname + "All", " Photons: PV z from conversion tracks", 100, -30., 30.);
2903  h_zPVFromTracks_[1] = iBooker.book1D(histname + "Barrel", " Photons: PV z from conversion tracks", 100, -30., 30.);
2904  h_zPVFromTracks_[2] = iBooker.book1D(histname + "Endcap", " Photons: PV z from conversion tracks", 100, -30., 30.);
2905  h_zPVFromTracks_[3] = iBooker.book1D(histname + "EndcapP", " Photons: PV z from conversion tracks", 100, -30., 30.);
2906  h_zPVFromTracks_[4] = iBooker.book1D(histname + "EndcapM", " Photons: PV z from conversion tracks", 100, -30., 30.);
2907  histname = "dzPVFromTracks";
2908  h_dzPVFromTracks_[0] =
2909  iBooker.book1D(histname + "All", " Photons: PV Z_rec - Z_true from conversion tracks", 100, -10., 10.);
2910  h_dzPVFromTracks_[1] =
2911  iBooker.book1D(histname + "Barrel", " Photons: PV Z_rec - Z_true from conversion tracks", 100, -10., 10.);
2912  h_dzPVFromTracks_[2] =
2913  iBooker.book1D(histname + "Endcap", " Photons: PV Z_rec - Z_true from conversion tracks", 100, -10., 10.);
2914  h_dzPVFromTracks_[3] =
2915  iBooker.book1D(histname + "EndcapP", " Photons: PV Z_rec - Z_true from conversion tracks", 100, -10., 10.);
2916  h_dzPVFromTracks_[4] =
2917  iBooker.book1D(histname + "EndcapM", " Photons: PV Z_rec - Z_true from conversion tracks", 100, -10., 10.);
2918  p_dzPVVsR_ =
2919  iBooker.bookProfile("pdzPVVsR", "Photon Reco conversions: dz(PV) vs R", rBin, rMin, rMax, 100, -3., 3., "");
2920  p_dzPVVsEta_ = iBooker.bookProfile(
2921  "pdzPVVsEta", "Photon Reco conversions: dz(PV) vs Eta", etaBin, etaMin, etaMax, 100, -3., 3., "");
2922 
2923  if (!isRunCentrally_) {
2924  h2_dzPVVsR_ = iBooker.book2D("h2dzPVVsR", "Photon Reco conversions: dz(PV) vs R", rBin, rMin, rMax, 100, -3., 3.);
2925  }
2926 
2928  if (!isRunCentrally_) {
2929  histname = "nHitsVsEta";
2930  nHitsVsEta_[0] = iBooker.book2D(histname + "AllTracks",
2931  "Photons:Tracks from conversions: # of hits vs #eta all tracks",
2932  etaBin,
2933  etaMin,
2934  etaMax,
2935  25,
2936  0.,
2937  25.);
2938 
2939  histname = "nHitsVsEta";
2940  nHitsVsEta_[1] = iBooker.book2D(histname + "AssTracks",
2941  "Photons:Tracks from conversions: # of hits vs #eta associated tracks",
2942  etaBin,
2943  etaMin,
2944  etaMax,
2945  25,
2946  0.,
2947  25.);
2948 
2949  histname = "nHitsVsR";
2950  nHitsVsR_[0] = iBooker.book2D(histname + "AllTracks",
2951  "Photons:Tracks from conversions: # of hits vs radius all tracks",
2952  rBin,
2953  rMin,
2954  rMax,
2955  25,
2956  0.,
2957  25);
2958 
2959  histname = "nHitsVsR";
2960  nHitsVsR_[1] = iBooker.book2D(histname + "AssTracks",
2961  "Photons:Tracks from conversions: # of hits vs radius associated tracks",
2962  rBin,
2963  rMin,
2964  rMax,
2965  25,
2966  0.,
2967  25);
2968 
2969  histname = "h2Chi2VsEta";
2970  h2_Chi2VsEta_[0] = iBooker.book2D(
2971  histname + "All", " Reco Track #chi^{2} vs #eta: All ", etaBin2, etaMin, etaMax, 100, chi2Min, chi2Max);
2972 
2973  histname = "h2Chi2VsR";
2974  h2_Chi2VsR_[0] =
2975  iBooker.book2D(histname + "All", " Reco Track #chi^{2} vs R: All ", rBin, rMin, rMax, 100, chi2Min, chi2Max);
2976  }
2977 
2978  histname = "h_nHitsVsEta";
2979  p_nHitsVsEta_[0] = iBooker.bookProfile(histname + "AllTracks",
2980  "Photons:Tracks from conversions: # of hits vs #eta all tracks",
2981  etaBin,
2982  etaMin,
2983  etaMax,
2984  25,
2985  -0.5,
2986  24.5,
2987  "");
2988 
2989  histname = "h_nHitsVsEta";
2990  p_nHitsVsEta_[1] = iBooker.bookProfile(histname + "AssTracks",
2991  "Photons:Tracks from conversions: # of hits vs #eta associated tracks",
2992  etaBin,
2993  etaMin,
2994  etaMax,
2995  25,
2996  -0.5,
2997  24.5,
2998  "");
2999 
3000  histname = "p_nHitsVsEtaSL";
3001  p_nHitsVsEtaSL_[0] = iBooker.bookProfile(histname + "AllTracks",
3002  "Photons:Tracks from single leg conversions: # of hits vs #eta all tracks",
3003  etaBin,
3004  etaMin,
3005  etaMax,
3006  25,
3007  -0.5,
3008  24.5,
3009  "");
3010 
3011  histname = "h_nHitsVsR";
3012  p_nHitsVsR_[0] = iBooker.bookProfile(histname + "AllTracks",
3013  "Photons:Tracks from conversions: # of hits vs radius all tracks",
3014  rBin,
3015  rMin,
3016  rMax,
3017  25,
3018  -0.5,
3019  24.5,
3020  "");
3021  histname = "p_nHitsVsRSL";
3022  p_nHitsVsRSL_[0] = iBooker.bookProfile(histname + "AllTracks",
3023  "Photons:Tracks from single leg conversions: # of hits vs radius all tracks",
3024  rBin,
3025  rMin,
3026  rMax,
3027  25,
3028  -0.5,
3029  24.5,
3030  "");
3031 
3032  histname = "tkChi2";
3033  h_tkChi2_[0] = iBooker.book1D(
3034  histname + "AllTracks", "Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max);
3035  histname = "tkChi2SL";
3036  h_tkChi2SL_[0] = iBooker.book1D(histname + "AllTracks",
3037  "Photons:Tracks from single leg conversions: #chi^{2} of associated tracks",
3038  100,
3039  chi2Min,
3040  chi2Max);
3041  histname = "tkChi2Large";
3042  h_tkChi2Large_[0] = iBooker.book1D(
3043  histname + "AllTracks", "Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0);
3044 
3045  histname = "h_nHitsVsR";
3046  p_nHitsVsR_[1] = iBooker.bookProfile(histname + "AssTracks",
3047  "Photons:Tracks from conversions: # of hits vs radius associated tracks",
3048  rBin,
3049  rMin,
3050  rMax,
3051  25,
3052  -0.5,
3053  24.5,
3054  "");
3055 
3056  histname = "tkChi2";
3057  h_tkChi2_[1] = iBooker.book1D(
3058  histname + "AssTracks", "Photons:Tracks from conversions: #chi^{2} of associated tracks", 100, chi2Min, chi2Max);
3059  histname = "tkChi2Large";
3060  h_tkChi2Large_[1] = iBooker.book1D(
3061  histname + "AssTracks", "Photons:Tracks from conversions: #chi^{2} of associated tracks", 1000, 0., 5000.0);
3062 
3063  histname = "pChi2VsEta";
3064  p_Chi2VsEta_[0] = iBooker.bookProfile(
3065  histname + "All", " Reco Track #chi^{2} vs #eta : All ", etaBin2, etaMin, etaMax, 100, chi2Min, chi2Max, "");
3066 
3067  histname = "pChi2VsR";
3068  p_Chi2VsR_[0] = iBooker.bookProfile(
3069  histname + "All", " Reco Track #chi^{2} vas R : All ", rBin, rMin, rMax, 100, chi2Min, chi2Max, "");
3070 
3071  histname = "hTkD0";
3072  h_TkD0_[0] = iBooker.book1D(histname + "All", " Reco Track D0*q: All ", 100, -0.1, 0.6);
3073  h_TkD0_[1] = iBooker.book1D(histname + "Barrel", " Reco Track D0*q: Barrel ", 100, -0.1, 0.6);
3074  h_TkD0_[2] = iBooker.book1D(histname + "Endcap", " Reco Track D0*q: Endcap ", 100, -0.1, 0.6);
3075 
3076  histname = "hTkPtPull";
3077  h_TkPtPull_[0] = iBooker.book1D(histname + "All", " Reco Track Pt pull: All ", 100, -10., 10.);
3078  histname = "hTkPtPull";
3079  h_TkPtPull_[1] = iBooker.book1D(histname + "Barrel", " Reco Track Pt pull: Barrel ", 100, -10., 10.);
3080  histname = "hTkPtPull";
3081  h_TkPtPull_[2] = iBooker.book1D(histname + "Endcap", " Reco Track Pt pull: Endcap ", 100, -10., 10.);
3082 
3083  histname = "pTkPtPullEta";
3084  p_TkPtPull_[0] =
3085  iBooker.bookProfile(histname + "All", " Reco Track Pt pull: All ", etaBin2, etaMin, etaMax, 100, -10., 10., " ");
3086 
3087  if (!isRunCentrally_) {
3088  histname = "h2TkPtPullEta";
3089  h2_TkPtPull_[0] =
3090  iBooker.book2D(histname + "All", " Reco Track Pt pull: All ", etaBin2, etaMin, etaMax, 100, -10., 10.);
3091 
3092  histname = "PtRecVsPtSim";
3093  h2_PtRecVsPtSim_[0] =
3094  iBooker.book2D(histname + "All", "Pt Rec vs Pt sim: All ", etBin, etMin, etMax, etBin, etMin, etMax);
3095  h2_PtRecVsPtSim_[1] =
3096  iBooker.book2D(histname + "Barrel", "Pt Rec vs Pt sim: Barrel ", etBin, etMin, etMax, etBin, etMin, etMax);
3097  h2_PtRecVsPtSim_[2] =
3098  iBooker.book2D(histname + "Endcap", "Pt Rec vs Pt sim: Endcap ", etBin, etMin, etMax, etBin, etMin, etMax);
3099  histname = "PtRecVsPtSimMixProv";
3100  h2_PtRecVsPtSimMixProv_ = iBooker.book2D(
3101  histname + "All", "Pt Rec vs Pt sim All for mix with general tracks ", etBin, etMin, etMax, etBin, etMin, etMax);
3102  }
3103 
3104  // if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator" ) {
3105  histname = "eBcOverTkPout";
3106  hBCEnergyOverTrackPout_[0] = iBooker.book1D(histname + "All", "Matrching BC E/P_out: all Ecal ", 100, 0., 5.);
3107  hBCEnergyOverTrackPout_[1] = iBooker.book1D(histname + "Barrel", "Matrching BC E/P_out: Barrel ", 100, 0., 5.);
3108  hBCEnergyOverTrackPout_[2] = iBooker.book1D(histname + "Endcap", "Matrching BC E/P_out: Endcap ", 100, 0., 5.);
3109  // }
3110 
3112  h_OIinnermostHitR_ = iBooker.book1D("OIinnermostHitR", " R innermost hit for OI tracks ", 50, 0., 25);
3113  h_IOinnermostHitR_ = iBooker.book1D("IOinnermostHitR", " R innermost hit for IO tracks ", 50, 0., 25);
3114 
3116  h_trkProv_[0] = iBooker.book1D("allTrkProv", " Track pair provenance ", 4, 0., 4.);
3117  h_trkProv_[1] = iBooker.book1D("assTrkProv", " Track pair provenance ", 4, 0., 4.);
3118  //
3119  h_trkAlgo_ =
3120  iBooker.book1D("allTrackAlgo", " Track Algo ", reco::TrackBase::algoSize, -0.5, reco::TrackBase::algoSize - 0.5);
3121  h_convAlgo_ = iBooker.book1D("allConvAlgo", " Conv Algo ", 5, -0.5, 4.5);
3122  h_convQuality_ = iBooker.book1D("allConvQuality", "Conv quality ", 11, -0.5, 11.);
3123 
3124  // histos for fake rate
3125  histname = "h_RecoConvTwoTracksEta";
3127  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated #eta", etaBin2, etaMin, etaMax);
3128  histname = "h_RecoConvTwoTracksPhi";
3130  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated #phi", phiBin, phiMin, phiMax);
3131  histname = "h_RecoConvTwoTracksR";
3133  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated R", rBin, rMin, rMax);
3134  histname = "h_RecoConvTwoTracksZ";
3136  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated Z", zBin, zMin, zMax);
3137  histname = "h_RecoConvTwoTracksEt";
3139  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated Et", etBin, etMin, etMax);
3140  //
3141  histname = "h_RecoConvTwoMTracksEta";
3143  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated #eta", etaBin2, etaMin, etaMax);
3144  histname = "h_RecoConvTwoMTracksPhi";
3146  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated #phi", phiBin, phiMin, phiMax);
3147  histname = "h_RecoConvTwoMTracksR";
3149  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated R", rBin, rMin, rMax);
3150  histname = "h_RecoConvTwoMTracksZ";
3152  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated Z", zBin, zMin, zMax);
3153  histname = "h_RecoConvTwoMTracksEt";
3155  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated Et", etBin, etMin, etMax);
3156 }
3157 
3158 void PhotonValidator::dqmBeginRun(edm::Run const& r, edm::EventSetup const& theEventSetup) {
3159  //get magnetic field
3160  edm::LogInfo("ConvertedPhotonProducer") << " get magnetic field"
3161  << "\n";
3162  theMF_ = theEventSetup.getHandle(magneticFieldToken_);
3163 
3164  thePhotonMCTruthFinder_ = std::make_unique<PhotonMCTruthFinder>();
3165 }
3166 
3168 
3170  thePhotonMCTruthFinder_->clear();
3171  using namespace edm;
3172  // const float etaPhiDistance=0.01;
3173  // Fiducial region
3174  // const float TRK_BARL =0.9;
3175  const float BARL = 1.4442; // DAQ TDR p.290
3176  // const float END_LO = 1.566; // unused
3177  const float END_HI = 2.5;
3178  // Electron mass
3179  //const Float_t mElec= 0.000511;
3180 
3182  e.getByLabel("trackAssociatorByHitsForPhotonValidation", theHitsAssociator);
3184 
3185  nEvt_++;
3186  LogInfo("PhotonValidator") << "PhotonValidator Analyzing event number: " << e.id() << " Global Counter " << nEvt_
3187  << "\n";
3188 
3189  // get the geometry from the event setup:
3191 
3193  e.getByToken(offline_pvToken_, vtxH);
3194  h_nRecoVtx_->Fill(float(vtxH->size()));
3195 
3196  // Transform Track into TransientTrack (needed by the Vertex fitter)
3197  auto theTTB = esup.getHandle(transientTrackBuilderToken_);
3198 
3200  Handle<reco::PhotonCollection> photonHandle;
3201  e.getByToken(photonCollectionToken_, photonHandle);
3202  const reco::PhotonCollection photonCollection = *(photonHandle.product());
3203  if (!photonHandle.isValid()) {
3204  edm::LogError("PhotonProducer") << "Error! Can't get the Photon collection " << std::endl;
3205  return;
3206  }
3207 
3208  // Get the PF refined cluster collection
3209  Handle<reco::PFCandidateCollection> pfCandidateHandle;
3210  e.getByToken(pfCandidates_, pfCandidateHandle);
3211  if (!pfCandidateHandle.isValid()) {
3212  edm::LogError("PhotonValidator") << "Error! Can't get the product pfCandidates " << std::endl;
3213  }
3214 
3215  edm::Handle<edm::ValueMap<std::vector<reco::PFCandidateRef> > > phoToParticleBasedIsoMapHandle;
3216  edm::ValueMap<std::vector<reco::PFCandidateRef> > phoToParticleBasedIsoMap;
3217  if (fName_ == "pfPhotonValidator") {
3218  e.getByToken(particleBasedIso_token, phoToParticleBasedIsoMapHandle);
3219  if (!phoToParticleBasedIsoMapHandle.isValid()) {
3220  edm::LogInfo("PhotonValidator") << "Error! Can't get the product: valueMap photons to particle based iso "
3221  << std::endl;
3222  }
3223  phoToParticleBasedIsoMap = *(phoToParticleBasedIsoMapHandle.product());
3224  }
3225 
3226  Handle<edm::View<reco::Track> > outInTrkHandle;
3227  Handle<edm::View<reco::Track> > inOutTrkHandle;
3228  if (!fastSim_) {
3230  e.getByToken(conversionOITrackPr_Token_, outInTrkHandle);
3232  e.getByToken(conversionIOTrackPr_Token_, inOutTrkHandle);
3233 
3234  // Loop over Out In Tracks
3235  for (View<reco::Track>::const_iterator iTk = outInTrkHandle->begin(); iTk != outInTrkHandle->end(); iTk++) {
3236  h_OIinnermostHitR_->Fill(sqrt(iTk->innerPosition().Perp2()));
3237  }
3238 
3239  // Loop over In Out Tracks Barrel
3240  for (View<reco::Track>::const_iterator iTk = inOutTrkHandle->begin(); iTk != inOutTrkHandle->end(); iTk++) {
3241  h_IOinnermostHitR_->Fill(sqrt(iTk->innerPosition().Perp2()));
3242  }
3243 
3244  } // if !fastSim
3245 
3247  //get simtrack info
3248  std::vector<SimTrack> theSimTracks;
3249  std::vector<SimVertex> theSimVertices;
3252 
3253  if (!fastSim_) {
3254  e.getByToken(g4_simTk_Token_, SimTk);
3255  e.getByToken(g4_simVtx_Token_, SimVtx);
3256  } else {
3257  e.getByToken(famos_simTk_Token_, SimTk);
3258  e.getByToken(famos_simVtx_Token_, SimVtx);
3259  }
3260 
3261  theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end());
3262  theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end());
3263  std::vector<PhotonMCTruth> mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices);
3264 
3266  e.getByToken(hepMC_Token_, hepMC);
3267  const HepMC::GenEvent* myGenEvent = hepMC->GetEvent();
3268 
3270  e.getByToken(genpartToken_, genParticles);
3271 
3272  // get generated jets
3273  Handle<reco::GenJetCollection> GenJetsHandle;
3274  e.getByToken(genjets_Token_, GenJetsHandle);
3275  reco::GenJetCollection genJetCollection = *(GenJetsHandle.product());
3276 
3277  // Get electron tracking truth
3278  bool useTP = parameters_.getParameter<bool>("useTP");
3280  edm::Handle<TrackingParticleCollection> ElectronTPHandle;
3281  if (useTP) {
3282  if (!fastSim_) {
3283  e.getByToken(token_tp_, ElectronTPHandle);
3284  trackingParticles = *(ElectronTPHandle.product());
3285  }
3286  }
3287 
3289  std::vector<reco::PhotonCollection::const_iterator> StoRMatchedConvertedPhotons;
3290  reco::SimToRecoCollection OISimToReco;
3291  reco::SimToRecoCollection IOSimToReco;
3292  // Reco to Sim
3293  reco::RecoToSimCollection OIRecoToSim;
3294  reco::RecoToSimCollection IORecoToSim;
3295 
3296  if (useTP) {
3297  if (!fastSim_) {
3298  // Sim to Reco
3299  OISimToReco = trackAssociator->associateSimToReco(outInTrkHandle, ElectronTPHandle);
3300  IOSimToReco = trackAssociator->associateSimToReco(inOutTrkHandle, ElectronTPHandle);
3301  // Reco to Sim
3302  OIRecoToSim = trackAssociator->associateRecoToSim(outInTrkHandle, ElectronTPHandle);
3303  IORecoToSim = trackAssociator->associateRecoToSim(inOutTrkHandle, ElectronTPHandle);
3304  }
3305  }
3306  //
3307  vector<reco::SimToRecoCollection*> StoRCollPtrs;
3308  StoRCollPtrs.push_back(&OISimToReco);
3309  StoRCollPtrs.push_back(&IOSimToReco);
3310  vector<reco::RecoToSimCollection*> RtoSCollPtrs;
3311  RtoSCollPtrs.push_back(&OIRecoToSim);
3312  RtoSCollPtrs.push_back(&IORecoToSim);
3313  //
3314  for (int i = 0; i < 2; i++)
3315  nSimPho_[i] = 0;
3316  for (int i = 0; i < 2; i++)
3317  nSimConv_[i] = 0;
3318 
3319  std::vector<reco::PhotonRef> myPhotons;
3320 
3321  for (unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
3322  reco::PhotonRef phoRef(reco::PhotonRef(photonHandle, iPho));
3323  // for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
3324  if (fabs(phoRef->eta()) > 2.5)
3325  continue;
3326  myPhotons.push_back(phoRef);
3327  }
3328 
3329  std::sort(myPhotons.begin(), myPhotons.end(), sortPhotons());
3330  // if ( ! isRunCentrally_ ) {
3331  if (myPhotons.size() >= 2) {
3332  if (myPhotons[0]->et() > 40 && myPhotons[1]->et() > 25) {
3333  math::XYZTLorentzVector p12 = myPhotons[0]->p4() + myPhotons[1]->p4();
3334  math::XYZTLorentzVector p12_regr1 =
3335  myPhotons[0]->p4(reco::Photon::regression1) + myPhotons[1]->p4(reco::Photon::regression1);
3336  math::XYZTLorentzVector p12_regr2 =
3337  myPhotons[0]->p4(reco::Photon::regression2) + myPhotons[1]->p4(reco::Photon::regression2);
3338  float gamgamMass2 = p12.Dot(p12);
3339  float gamgamMass2_regr1 = p12_regr1.Dot(p12_regr1);
3340  float gamgamMass2_regr2 = p12_regr2.Dot(p12_regr2);
3341 
3343  if (gamgamMass2 > 0) {
3344  // total
3345  h_gamgamMass_[0][0]->Fill(sqrt(gamgamMass2));
3346  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3347  h_gamgamMass_[0][1]->Fill(sqrt(gamgamMass2));
3348  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3349  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3350  h_gamgamMass_[0][2]->Fill(sqrt(gamgamMass2));
3351  // Golden photons
3352  if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3353  h_gamgamMass_[1][0]->Fill(sqrt(gamgamMass2));
3354  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3355  h_gamgamMass_[1][1]->Fill(sqrt(gamgamMass2));
3356  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3357  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3358  h_gamgamMass_[1][2]->Fill(sqrt(gamgamMass2));
3359  }
3360  // both photons converted
3361  if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3362  if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3363  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3364  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3365  float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3366  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3367  if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3368  h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3369  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3370  h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3371  }
3372  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3373  (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3374  h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3375  }
3376  }
3377  }
3378  } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3379  myPhotons[1]->r9() > 0.93) { // one photon converted
3380  if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3381  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3382  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3383  if (chi2Prob1 > 0.0005) {
3384  h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3385  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3386  h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3387  }
3388  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3389  h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3390  }
3391  }
3392  }
3393  } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3394  myPhotons[0]->r9() > 0.93) { // one photon converted
3395  if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3396  float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3397  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3398  if (chi2Prob1 > 0.0005) {
3399  h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3400  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3401  h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3402  }
3403  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3404  h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3405  }
3406  }
3407  }
3408  }
3409  } // gamgamMass2 > 0
3410 
3412  if (gamgamMass2_regr1 > 0) {
3413  // total
3414  h_gamgamMassRegr1_[0][0]->Fill(sqrt(gamgamMass2_regr1));
3415  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3416  h_gamgamMassRegr1_[0][1]->Fill(sqrt(gamgamMass2_regr1));
3417  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3418  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3419  h_gamgamMassRegr1_[0][2]->Fill(sqrt(gamgamMass2_regr1));
3420  // Golden photons
3421  if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3422  h_gamgamMassRegr1_[1][0]->Fill(sqrt(gamgamMass2_regr1));
3423  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3424  h_gamgamMassRegr1_[1][1]->Fill(sqrt(gamgamMass2_regr1));
3425  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3426  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3427  h_gamgamMassRegr1_[1][2]->Fill(sqrt(gamgamMass2_regr1));
3428  }
3429 
3430  // both photons converted
3431  if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3432  if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3433  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3434  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3435  float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3436  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3437  if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3438  h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3439  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3440  h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3441  }
3442  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3443  (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3444  h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3445  }
3446  }
3447  }
3448  } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3449  myPhotons[1]->r9() > 0.93) { // one photon converted
3450  if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3451  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3452  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3453  if (chi2Prob1 > 0.0005) {
3454  h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3455  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3456  h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3457  }
3458  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3459  h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3460  }
3461  }
3462  }
3463  } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3464  myPhotons[0]->r9() > 0.93) { // one photon converted
3465  if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3466  float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3467  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3468  if (chi2Prob1 > 0.0005) {
3469  h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3470  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3471  h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3472  }
3473  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3474  h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3475  }
3476  }
3477  }
3478  }
3479  } // gamgamMass2_regr1 > 0
3480 
3482  if (gamgamMass2_regr2 > 0) {
3483  // total
3484  h_gamgamMassRegr2_[0][0]->Fill(sqrt(gamgamMass2_regr2));
3485  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3486  h_gamgamMassRegr2_[0][1]->Fill(sqrt(gamgamMass2_regr2));
3487  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3488  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3489  h_gamgamMassRegr2_[0][2]->Fill(sqrt(gamgamMass2_regr2));
3490  // Golden photons
3491  if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3492  h_gamgamMassRegr2_[1][0]->Fill(sqrt(gamgamMass2_regr2));
3493  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3494  h_gamgamMassRegr2_[1][1]->Fill(sqrt(gamgamMass2_regr2));
3495  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3496  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3497  h_gamgamMassRegr2_[1][2]->Fill(sqrt(gamgamMass2_regr2));
3498  }
3499 
3500  // both photons converted
3501  if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3502  if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3503  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3504  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3505  float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3506  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3507  if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3508  h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3509  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3510  h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3511  }
3512  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3513  (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3514  h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3515  }
3516  }
3517  }
3518  } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3519  myPhotons[1]->r9() > 0.93) { // one photon converted
3520  if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3521  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3522  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3523  if (chi2Prob1 > 0.0005) {
3524  h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3525  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3526  h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3527  }
3528  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3529  h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3530  }
3531  }
3532  }
3533  } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3534  myPhotons[0]->r9() > 0.93) { // one photon converted
3535  if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3536  float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3537  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3538  if (chi2Prob1 > 0.0005) {
3539  h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3540  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3541  h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3542  }
3543  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3544  h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3545  }
3546  }
3547  }
3548  }
3549  } // gamgamMass2_regr2 > 0
3550  }
3551  }
3552  // }
3553 
3554  for (std::vector<PhotonMCTruth>::const_iterator mcPho = mcPhotons.begin(); mcPho != mcPhotons.end(); mcPho++) {
3555  if ((*mcPho).fourMomentum().et() < minPhoEtCut_)
3556  continue;
3557 
3558  for (HepMC::GenEvent::particle_const_iterator mcIter = myGenEvent->particles_begin();
3559  mcIter != myGenEvent->particles_end();
3560  mcIter++) {
3561  if ((*mcIter)->pdg_id() != 22)
3562  continue;
3563  bool isTheSame = false;
3564  HepMC::GenParticle* mother = nullptr;
3565  if ((*mcIter)->production_vertex()) {
3566  if ((*mcIter)->production_vertex()->particles_begin(HepMC::parents) !=
3567  (*mcIter)->production_vertex()->particles_end(HepMC::parents))
3568  mother = *((*mcIter)->production_vertex()->particles_begin(HepMC::parents));
3569  }
3570 
3571  float mcPhi = (*mcPho).fourMomentum().phi();
3572  mcPhi_ = phiNormalization(mcPhi);
3573  mcEta_ = (*mcPho).fourMomentum().pseudoRapidity();
3574  mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z());
3575  mcConvR_ = (*mcPho).vertex().perp();
3576  mcConvX_ = (*mcPho).vertex().x();
3577  mcConvY_ = (*mcPho).vertex().y();
3578  mcConvZ_ = (*mcPho).vertex().z();
3579  mcConvEta_ = (*mcPho).vertex().eta();
3580  mcConvPhi_ = (*mcPho).vertex().phi();
3581 
3582  if (fabs(mcEta_) > END_HI)
3583  continue;
3584 
3585  if (mother == nullptr || (mother != nullptr && mother->pdg_id() == 22) ||
3586  (mother != nullptr && mother->pdg_id() == 25) || (mother != nullptr && mother->pdg_id() == 35)) {
3587  double dPt = fabs((*mcIter)->momentum().perp() - (*mcPho).fourMomentum().et());
3588  float phiMother = (*mcIter)->momentum().phi();
3589  double dPhi = phiNormalization(phiMother) - mcPhi_;
3590  double dEta = fabs((*mcIter)->momentum().eta() - (*mcPho).fourMomentum().pseudoRapidity());
3591 
3592  if (dEta <= 0.0001 && dPhi <= 0.0001 && dPt <= 0.0001)
3593  isTheSame = true;
3594  }
3595  if (!isTheSame)
3596  continue;
3597 
3598  nSimPho_[0]++;
3599  if (!isRunCentrally_) {
3600  h_SimPhoMotherEt_[0]->Fill((*mcPho).motherMomentum().et());
3601  h_SimPhoMotherEta_[0]->Fill((*mcPho).motherMomentum().pseudoRapidity());
3602  }
3603 
3604  h_SimPho_[0]->Fill(mcEta_);
3605  h_SimPho_[1]->Fill(mcPhi_);
3606  h_SimPho_[2]->Fill((*mcPho).fourMomentum().et());
3607 
3609 
3610  bool goodSimConversion = false;
3611  bool visibleConversion = false;
3612  bool visibleConversionsWithTwoSimTracks = false;
3613  if ((*mcPho).isAConversion() == 1) {
3614  nSimConv_[0]++;
3615  h_AllSimConv_[0]->Fill(mcEta_);
3616  h_AllSimConv_[1]->Fill(mcPhi_);
3619  h_AllSimConv_[4]->Fill((*mcPho).fourMomentum().et());
3620 
3621  if (!isRunCentrally_) {
3622  if (mcConvR_ < 51)
3624  }
3625 
3626  if ((fabs(mcEta_) <= BARL && mcConvR_ < 85) ||
3627  (fabs(mcEta_) > BARL && fabs(mcEta_) <= END_HI && fabs((*mcPho).vertex().z()) < 210))
3628  visibleConversion = true;
3629 
3630  theConvTP_.clear();
3631  for (size_t i = 0; i < trackingParticles.size(); ++i) {
3632  TrackingParticleRef tp(ElectronTPHandle, i);
3633  if (fabs(tp->vx() - (*mcPho).vertex().x()) < 0.001 && fabs(tp->vy() - (*mcPho).vertex().y()) < 0.001 &&
3634  fabs(tp->vz() - (*mcPho).vertex().z()) < 0.001) {
3636  }
3637  }
3638  if (theConvTP_.size() == 2)
3639  visibleConversionsWithTwoSimTracks = true;
3640  goodSimConversion = false;
3641 
3642  if (visibleConversion && visibleConversionsWithTwoSimTracks)
3643  goodSimConversion = true;
3644  if (goodSimConversion) {
3645  nSimConv_[1]++;
3646  h_VisSimConv_[0]->Fill(mcEta_);
3647  h_VisSimConv_[1]->Fill(mcPhi_);
3650  h_VisSimConv_[4]->Fill((*mcPho).fourMomentum().et());
3651 
3652  if (useTP) {
3653  if (!isRunCentrally_) {
3655  iTrk != theConvTP_.end();
3656  ++iTrk) {
3657  h_simTkPt_->Fill((*iTrk)->pt());
3658  h_simTkEta_->Fill((*iTrk)->eta());
3659  }
3660  }
3661  }
3662  }
3663  }
3664 
3665  float minDelta = 10000.;
3666  std::vector<reco::PhotonRef> thePhotons;
3667  int index = 0;
3668  int iMatch = -1;
3669  bool matched = false;
3670 
3671  for (unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
3672  reco::PhotonRef aPho(reco::PhotonRef(photonHandle, iPho));
3673  thePhotons.push_back(aPho);
3674  float phiPho = aPho->phi();
3675  float etaPho = aPho->eta();
3676  float deltaPhi = phiPho - mcPhi_;
3677  float deltaEta = etaPho - mcEta_;
3678  if (deltaPhi > pi)
3679  deltaPhi -= twopi;
3680  if (deltaPhi < -pi)
3681  deltaPhi += twopi;
3682  deltaPhi = pow(deltaPhi, 2);
3683  deltaEta = pow(deltaEta, 2);
3684  float delta = sqrt(deltaPhi + deltaEta);
3685  if (delta < 0.1 && delta < minDelta) {
3686  minDelta = delta;
3687  iMatch = index;
3688  }
3689  index++;
3690  } // end loop over reco photons
3691  if (iMatch > -1)
3692  matched = true;
3693 
3694  if (matched) {
3695  nSimPho_[1]++;
3696  if (!isRunCentrally_) {
3697  h_SimPhoMotherEt_[1]->Fill((*mcPho).motherMomentum().et());
3698  h_SimPhoMotherEta_[1]->Fill((*mcPho).motherMomentum().pseudoRapidity());
3699  }
3702  h_MatchedSimPho_[2]->Fill((*mcPho).fourMomentum().et());
3703  }
3704 
3705  if (!matched)
3706  continue;
3707 
3708  bool phoIsInBarrel = false;
3709  bool phoIsInEndcap = false;
3710  bool phoIsInEndcapP = false;
3711  bool phoIsInEndcapM = false;
3712 
3713  reco::PhotonRef matchingPho = thePhotons[iMatch];
3714 
3715  if (fabs(matchingPho->superCluster()->position().eta()) < 1.479) {
3716  phoIsInBarrel = true;
3717  } else {
3718  phoIsInEndcap = true;
3719  if (matchingPho->superCluster()->position().eta() > 0)
3720  phoIsInEndcapP = true;
3721  if (matchingPho->superCluster()->position().eta() < 0)
3722  phoIsInEndcapM = true;
3723  }
3724 
3725  edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
3726  if (phoIsInBarrel) {
3727  // Get handle to rec hits ecal barrel
3728  e.getByToken(barrelEcalHits_, ecalRecHitHandle);
3729  if (!ecalRecHitHandle.isValid()) {
3730  Labels l;
3732  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
3733  return;
3734  }
3735 
3736  } else if (phoIsInEndcap) {
3737  // Get handle to rec hits ecal encap
3738  e.getByToken(endcapEcalHits_, ecalRecHitHandle);
3739  if (!ecalRecHitHandle.isValid()) {
3740  Labels l;
3742  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
3743  return;
3744  }
3745  }
3746 
3747  int type = 0;
3748  const EcalRecHitCollection ecalRecHitCollection = *(ecalRecHitHandle.product());
3749  float photonE = matchingPho->energy();
3750  float sigmaEoE = matchingPho->getCorrectedEnergyError(matchingPho->getCandidateP4type()) / matchingPho->energy();
3751  //float photonEt= matchingPho->energy()/cosh( matchingPho->eta()) ;
3752  float photonEt = matchingPho->pt();
3753  float photonERegr1 = matchingPho->getCorrectedEnergy(reco::Photon::regression1);
3754  float photonERegr2 = matchingPho->getCorrectedEnergy(reco::Photon::regression2);
3755  float r9 = matchingPho->r9();
3756  // float full5x5_r9 = matchingPho->full5x5_r9();
3757  float r1 = matchingPho->r1x5();
3758  float r2 = matchingPho->r2x5();
3759  float sigmaIetaIeta = matchingPho->sigmaIetaIeta();
3760  //float full5x5_sieie = matchingPho->full5x5_sigmaIetaIeta();
3761  float hOverE = matchingPho->hadronicOverEm();
3762  float newhOverE = matchingPho->hadTowOverEm();
3763  float ecalIso = matchingPho->ecalRecHitSumEtConeDR04();
3764  float hcalIso = matchingPho->hcalTowerSumEtConeDR04();
3765  float newhcalIso = matchingPho->hcalTowerSumEtBcConeDR04();
3766  float trkIso = matchingPho->trkSumPtSolidConeDR04();
3767  float nIsoTrk = matchingPho->nTrkSolidConeDR04();
3768  // PF related quantities
3769  float chargedHadIso = matchingPho->chargedHadronIso();
3770  float neutralHadIso = matchingPho->neutralHadronIso();
3771  float photonIso = matchingPho->photonIso();
3772  float etOutsideMustache = matchingPho->etOutsideMustache();
3773  int nClusterOutsideMustache = matchingPho->nClusterOutsideMustache();
3774  float pfMVA = matchingPho->pfMVA();
3775 
3776  std::vector<std::pair<DetId, float> >::const_iterator rhIt;
3777  bool atLeastOneDeadChannel = false;
3778  for (reco::CaloCluster_iterator bcIt = matchingPho->superCluster()->clustersBegin();
3779  bcIt != matchingPho->superCluster()->clustersEnd();
3780  ++bcIt) {
3781  for (rhIt = (*bcIt)->hitsAndFractions().begin(); rhIt != (*bcIt)->hitsAndFractions().end(); ++rhIt) {
3782  for (EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin(); it != ecalRecHitCollection.end();
3783  ++it) {
3784  if (rhIt->first == (*it).id()) {
3785  if ((*it).recoFlag() == 9) {
3786  atLeastOneDeadChannel = true;
3787  break;
3788  }
3789  }
3790  }
3791  }
3792  }
3793 
3794  if (atLeastOneDeadChannel) {
3797  h_MatchedSimPhoBadCh_[2]->Fill((*mcPho).fourMomentum().et());
3798  }
3799 
3800  if (phoIsInBarrel)
3801  h_phoPixSeedSize_[0]->Fill(matchingPho->electronPixelSeeds().size());
3802  else
3803  h_phoPixSeedSize_[1]->Fill(matchingPho->electronPixelSeeds().size());
3804 
3805  h_scEta_[type]->Fill(matchingPho->superCluster()->eta());
3806  h_scPhi_[type]->Fill(matchingPho->superCluster()->phi());
3807  if (!isRunCentrally_) {
3808  h_scEtaWidth_[type]->Fill(matchingPho->superCluster()->etaWidth());
3809  h_scPhiWidth_[type]->Fill(matchingPho->superCluster()->phiWidth());
3810  }
3811  h_scE_[type][0]->Fill(matchingPho->superCluster()->energy());
3812  h_scEt_[type][0]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
3813  if (phoIsInEndcap)
3814  h_psE_->Fill(matchingPho->superCluster()->preshowerEnergy());
3815  //
3816  h_r9_[type][0]->Fill(r9);
3817  //
3818  h_r1_[type][0]->Fill(r1);
3819  //
3820  h_r2_[type][0]->Fill(r2);
3821  //
3822  h_sigmaIetaIeta_[type][0]->Fill(sigmaIetaIeta);
3823  //
3824  h_hOverE_[type][0]->Fill(hOverE);
3825  p_r9VsEta_[0]->Fill(mcEta_, r9);
3826 
3827  if (!isRunCentrally_) {
3828  h2_r9VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r9);
3829  h2_r1VsEta_[0]->Fill(mcEta_, r1);
3830  h2_r1VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r1);
3831  h2_r2VsEta_[0]->Fill(mcEta_, r2);
3832  h2_r2VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r2);
3833  h2_sigmaIetaIetaVsEta_[0]->Fill(mcEta_, sigmaIetaIeta);
3834  h2_sigmaIetaIetaVsEt_[0]->Fill((*mcPho).fourMomentum().et(), sigmaIetaIeta);
3836  h2_hOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), hOverE);
3837  }
3839  p_hOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), hOverE);
3840  //
3841  h_newhOverE_[type][0]->Fill(newhOverE);
3842  p_newhOverEVsEta_[0]->Fill(mcEta_, newhOverE);
3843  p_newhOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), newhOverE);
3844 
3845  //
3846  h_ecalRecHitSumEtConeDR04_[type][0]->Fill(ecalIso);
3847  if (!isRunCentrally_) {
3849  h2_ecalRecHitSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), ecalIso);
3851  h2_hcalTowerSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), hcalIso);
3852  }
3854  if (!isRunCentrally_)
3855  p_ecalRecHitSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), ecalIso);
3856  //
3857  h_hcalTowerSumEtConeDR04_[type][0]->Fill(hcalIso);
3859  if (!isRunCentrally_)
3860  p_hcalTowerSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), hcalIso);
3861  //
3862  if (!isRunCentrally_)
3863  h_hcalTowerBcSumEtConeDR04_[type][0]->Fill(newhcalIso);
3864  p_hcalTowerBcSumEtConeDR04VsEta_[0]->Fill(mcEta_, newhcalIso);
3865  if (!isRunCentrally_)
3866  p_hcalTowerBcSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
3867  //
3868  h_isoTrkSolidConeDR04_[type][0]->Fill(trkIso);
3869  h_nTrkSolidConeDR04_[type][0]->Fill(nIsoTrk);
3870 
3871  if (!isRunCentrally_) {
3873  h2_isoTrkSolidConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), trkIso);
3874  h2_nTrkSolidConeDR04VsEta_[0]->Fill(mcEta_, nIsoTrk);
3875  h2_nTrkSolidConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), nIsoTrk);
3876  }
3877 
3878  h_chHadIso_[0]->Fill(chargedHadIso);
3879  h_nHadIso_[0]->Fill(neutralHadIso);
3880  h_phoIso_[0]->Fill(photonIso);
3881  h_nCluOutsideMustache_[0]->Fill(float(nClusterOutsideMustache));
3882  h_etOutsideMustache_[0]->Fill(etOutsideMustache);
3883  h_pfMva_[0]->Fill(pfMVA);
3884  //
3885  h_phoEta_[type]->Fill(matchingPho->eta());
3886  h_phoPhi_[type]->Fill(matchingPho->phi());
3887  h_phoDEta_[0]->Fill(matchingPho->eta() - (*mcPho).fourMomentum().eta());
3888  h_phoDPhi_[0]->Fill(matchingPho->phi() - mcPhi_);
3889  h_phoE_[type][0]->Fill(photonE);
3890  h_phoEt_[type][0]->Fill(photonEt);
3891  h_nConv_[0][0]->Fill(float(matchingPho->conversions().size()));
3892  h_nConv_[1][0]->Fill(float(matchingPho->conversionsOneLeg().size()));
3893 
3894  //
3895  h_phoERes_[0][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3896  h_phoSigmaEoE_[0][0]->Fill(sigmaEoE);
3897  h_phoEResRegr1_[0][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3898  h_phoEResRegr2_[0][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3899 
3900  p_eResVsEta_[0]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3901  p_sigmaEoEVsEta_[0]->Fill(mcEta_, sigmaEoE);
3902  p_eResVsEt_[0][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3903 
3904  if (!isRunCentrally_)
3905  h2_eResVsEta_[0]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3906  if (!isRunCentrally_)
3907  h2_eResVsEt_[0][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3908  if (!isRunCentrally_)
3909  h2_eResVsR9_[0]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
3910  if (!isRunCentrally_)
3911  h2_sceResVsR9_[0]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
3912  if (!isRunCentrally_)
3913  p_eResVsR9_[0]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
3914  if (!isRunCentrally_)
3915  p_sceResVsR9_[0]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
3916  //
3917  if ((*mcPho).isAConversion() == 0) {
3918  if (!isRunCentrally_) {
3919  h2_eResVsEta_[1]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3920  h2_r9VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r9);
3921  //
3922  h2_r1VsEta_[1]->Fill(mcEta_, r1);
3923  h2_r1VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r1);
3924  //
3925  h2_r2VsEta_[1]->Fill(mcEta_, r2);
3926  h2_r2VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r2);
3927  //
3928  h2_sigmaIetaIetaVsEta_[1]->Fill(mcEta_, sigmaIetaIeta);
3929  h2_sigmaIetaIetaVsEt_[1]->Fill((*mcPho).fourMomentum().et(), sigmaIetaIeta);
3930  //
3932  h2_hOverEVsEt_[1]->Fill((*mcPho).fourMomentum().et(), hOverE);
3933  }
3934 
3935  if (!isRunCentrally_) {
3939  h2_isoTrkSolidConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), trkIso);
3940  h2_nTrkSolidConeDR04VsEta_[1]->Fill(mcEta_, nIsoTrk);
3941  h2_nTrkSolidConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), nIsoTrk);
3942  }
3944  if (!isRunCentrally_)
3946  }
3947 
3948  if (photonE / (*mcPho).fourMomentum().e() < 0.3 && photonE / (*mcPho).fourMomentum().e() > 0.1) {
3949  }
3950 
3951  if ((r9 > 0.94 && phoIsInBarrel) || (r9 > 0.95 && phoIsInEndcap)) {
3952  h_phoERes_[1][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3953  h_phoSigmaEoE_[1][0]->Fill(sigmaEoE);
3954  h_phoEResRegr1_[1][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3955  h_phoEResRegr2_[1][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3956  if (!isRunCentrally_)
3957  h2_eResVsEt_[0][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3958  p_eResVsEt_[0][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3959  p_eResVsEta_[1]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3960  p_r9VsEta_[1]->Fill(mcEta_, r9);
3961  p_sigmaEoEVsEta_[1]->Fill(mcEta_, sigmaEoE);
3962 
3963  } else if ((r9 <= 0.94 && phoIsInBarrel) || (r9 <= 0.95 && phoIsInEndcap)) {
3964  h_phoERes_[2][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3965  h_phoSigmaEoE_[2][0]->Fill(sigmaEoE);
3966  h_phoEResRegr1_[2][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3967  h_phoEResRegr2_[2][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3968  p_eResVsEt_[0][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3969  p_eResVsEta_[2]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3970  p_r9VsEta_[2]->Fill(mcEta_, r9);
3971  p_sigmaEoEVsEta_[2]->Fill(mcEta_, sigmaEoE);
3972 
3973  if (!isRunCentrally_) {
3974  h2_eResVsEt_[0][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3975  h_EtR9Less093_[0][0]->Fill(photonEt);
3976  }
3977  }
3978 
3979  if (phoIsInBarrel) {
3980  h_scE_[type][1]->Fill(matchingPho->superCluster()->energy());
3981  h_scEt_[type][1]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
3982  h_r9_[type][1]->Fill(r9);
3983  h_r1_[type][1]->Fill(r1);
3984  h_r2_[type][1]->Fill(r2);
3985  h_sigmaIetaIeta_[type][1]->Fill(sigmaIetaIeta);
3986  h_hOverE_[type][1]->Fill(hOverE);
3987  h_newhOverE_[type][1]->Fill(newhOverE);
3988  h_ecalRecHitSumEtConeDR04_[type][1]->Fill(ecalIso);
3989  p_ecalRecHitSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), ecalIso);
3990  h_hcalTowerSumEtConeDR04_[type][1]->Fill(hcalIso);
3991  p_hcalTowerSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), hcalIso);
3992  h_hcalTowerBcSumEtConeDR04_[type][1]->Fill(newhcalIso);
3993  p_hcalTowerBcSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
3994  h_isoTrkSolidConeDR04_[type][1]->Fill(trkIso);
3995  h_nTrkSolidConeDR04_[type][1]->Fill(nIsoTrk);
3996  h_chHadIso_[1]->Fill(chargedHadIso);
3997  h_nHadIso_[1]->Fill(neutralHadIso);
3998  h_phoIso_[1]->Fill(photonIso);
3999  h_nCluOutsideMustache_[1]->Fill(float(nClusterOutsideMustache));
4000  h_etOutsideMustache_[1]->Fill(etOutsideMustache);
4001  h_pfMva_[1]->Fill(pfMVA);
4002  h_phoE_[type][1]->Fill(photonE);
4003  h_phoEt_[type][1]->Fill(photonEt);
4004  h_nConv_[type][1]->Fill(float(matchingPho->conversions().size()));
4005  h_nConv_[1][1]->Fill(float(matchingPho->conversionsOneLeg().size()));
4006  h_phoERes_[0][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4007  h_phoSigmaEoE_[0][1]->Fill(sigmaEoE);
4008  h_phoEResRegr1_[0][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4009  h_phoEResRegr2_[0][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4010  p_eResVsR9_[1]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4011  p_sceResVsR9_[1]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4012  if (!isRunCentrally_) {
4013  h2_eResVsR9_[1]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4014  h2_sceResVsR9_[1]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4015  h2_ecalRecHitSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4016  h2_hcalTowerSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4017  h2_eResVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4018  }
4019  p_eResVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4020  p_eResVsNVtx_[1][0]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4021  p_sigmaEoEVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4022  p_sigmaEoEVsNVtx_[1][0]->Fill(float(vtxH->size()), sigmaEoE);
4023 
4024  if (r9 > 0.94) {
4025  h_phoERes_[1][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4026  h_phoSigmaEoE_[1][1]->Fill(sigmaEoE);
4027  h_phoEResRegr1_[1][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4028  h_phoEResRegr2_[1][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4029  if (!isRunCentrally_)
4030  h2_eResVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4031  p_eResVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4032  p_eResVsNVtx_[1][1]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4033  p_sigmaEoEVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4034  p_sigmaEoEVsNVtx_[1][1]->Fill(float(vtxH->size()), sigmaEoE);
4035  }
4036  if (r9 <= 0.94) {
4037  h_phoERes_[2][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4038  h_phoSigmaEoE_[2][1]->Fill(sigmaEoE);
4039  h_phoEResRegr1_[2][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4040  h_phoEResRegr2_[2][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4041  p_eResVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4042  p_eResVsNVtx_[1][2]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4043  p_sigmaEoEVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4044  p_sigmaEoEVsNVtx_[1][2]->Fill(float(vtxH->size()), sigmaEoE);
4045  if (!isRunCentrally_) {
4046  h2_eResVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4047  h_EtR9Less093_[0][1]->Fill(photonEt);
4048  }
4049  }
4050  }
4051  if (phoIsInEndcap) {
4052  h_scE_[type][2]->Fill(matchingPho->superCluster()->energy());
4053  h_scEt_[type][2]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
4054  h_r9_[type][2]->Fill(r9);
4055  h_r1_[type][2]->Fill(r1);
4056  h_r2_[type][2]->Fill(r2);
4057  h_sigmaIetaIeta_[type][2]->Fill(sigmaIetaIeta);
4058  h_hOverE_[type][2]->Fill(hOverE);
4059  h_newhOverE_[type][2]->Fill(newhOverE);
4060  h_ecalRecHitSumEtConeDR04_[type][2]->Fill(ecalIso);
4061  p_ecalRecHitSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4062  h_hcalTowerSumEtConeDR04_[type][2]->Fill(hcalIso);
4063  p_hcalTowerSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4064  h_hcalTowerBcSumEtConeDR04_[type][2]->Fill(newhcalIso);
4065  p_hcalTowerBcSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
4066  h_isoTrkSolidConeDR04_[type][2]->Fill(trkIso);
4067  h_nTrkSolidConeDR04_[type][2]->Fill(nIsoTrk);
4068  h_chHadIso_[2]->Fill(chargedHadIso);
4069  h_nHadIso_[2]->Fill(neutralHadIso);
4070  h_phoIso_[2]->Fill(photonIso);
4071  h_nCluOutsideMustache_[2]->Fill(float(nClusterOutsideMustache));
4072  h_etOutsideMustache_[2]->Fill(etOutsideMustache);
4073  h_pfMva_[2]->Fill(pfMVA);
4074  h_phoE_[type][2]->Fill(photonE);
4075  h_phoEt_[type][2]->Fill(photonEt);
4076  h_nConv_[type][2]->Fill(float(matchingPho->conversions().size()));
4077  h_nConv_[1][2]->Fill(float(matchingPho->conversionsOneLeg().size()));
4078  h_phoERes_[0][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4079  h_phoSigmaEoE_[0][2]->Fill(sigmaEoE);
4080  h_phoEResRegr1_[0][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4081  h_phoEResRegr2_[0][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4082  p_eResVsR9_[2]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4083  p_sceResVsR9_[2]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4084  if (!isRunCentrally_) {
4085  h2_eResVsR9_[2]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4086  h2_sceResVsR9_[2]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4087  h2_ecalRecHitSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4088  h2_hcalTowerSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4089  h2_eResVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4090  }
4091 
4092  p_eResVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4093  p_eResVsNVtx_[2][0]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4094  p_sigmaEoEVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4095  p_sigmaEoEVsNVtx_[2][0]->Fill(float(vtxH->size()), sigmaEoE);
4096 
4097  if (r9 > 0.95) {
4098  h_phoERes_[1][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4099  h_phoSigmaEoE_[1][2]->Fill(sigmaEoE);
4100  h_phoEResRegr1_[1][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4101  h_phoEResRegr2_[1][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4102  if (!isRunCentrally_)
4103  h2_eResVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4104  p_eResVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4105  p_eResVsNVtx_[2][1]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4106  p_sigmaEoEVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4107  p_sigmaEoEVsNVtx_[2][1]->Fill(float(vtxH->size()), sigmaEoE);
4108  }
4109  if (r9 <= 0.95) {
4110  h_phoERes_[2][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4111  h_phoSigmaEoE_[2][2]->Fill(sigmaEoE);
4112  h_phoEResRegr1_[2][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4113  h_phoEResRegr2_[2][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4114  p_eResVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4115  p_eResVsNVtx_[2][2]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4116  p_sigmaEoEVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4117  p_sigmaEoEVsNVtx_[2][2]->Fill(float(vtxH->size()), sigmaEoE);
4118 
4119  if (!isRunCentrally_) {
4120  h2_eResVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4121  h_EtR9Less093_[0][2]->Fill(photonEt);
4122  }
4123  }
4124  }
4125 
4127  if (fName_ == "pfPhotonValidator") {
4128  float SumPtIsoValCh = 0.;
4129  float SumPtIsoValNh = 0.;
4130  float SumPtIsoValPh = 0.;
4131 
4132  float SumPtIsoValCleanCh = 0.;
4133  float SumPtIsoValCleanNh = 0.;
4134  float SumPtIsoValCleanPh = 0.;
4135 
4136  for (unsigned int lCand = 0; lCand < pfCandidateHandle->size(); lCand++) {
4137  reco::PFCandidateRef pfCandRef(reco::PFCandidateRef(pfCandidateHandle, lCand));
4138  float dR = deltaR(matchingPho->eta(), matchingPho->phi(), pfCandRef->eta(), pfCandRef->phi());
4139  if (dR < 0.4) {
4141  reco::PFCandidate::ParticleType type = pfCandRef->particleId();
4142  if (type == reco::PFCandidate::e)
4143  continue;
4144  if (type == reco::PFCandidate::gamma && pfCandRef->mva_nothing_gamma() > 0.)
4145  continue;
4146 
4147  if (type == reco::PFCandidate::h) {
4148  SumPtIsoValCh += pfCandRef->pt();
4150  if (phoIsInBarrel)
4152  else
4154  }
4155  if (type == reco::PFCandidate::h0) {
4156  SumPtIsoValNh += pfCandRef->pt();
4158  if (phoIsInBarrel)
4160  else
4162  }
4163  if (type == reco::PFCandidate::gamma) {
4164  SumPtIsoValPh += pfCandRef->pt();
4166  if (phoIsInBarrel)
4168  else
4170  }
4172  bool skip = false;
4173  for (std::vector<reco::PFCandidateRef>::const_iterator i = phoToParticleBasedIsoMap[matchingPho].begin();
4174  i != phoToParticleBasedIsoMap[matchingPho].end();
4175  ++i) {
4176  if ((*i) == pfCandRef) {
4177  skip = true;
4178  }
4179  } // loop over the PFCandidates flagged as overlapping with the photon
4180 
4181  if (skip)
4182  continue;
4183  if (type == reco::PFCandidate::h) {
4184  SumPtIsoValCleanCh += pfCandRef->pt();
4186  if (phoIsInBarrel)
4188  else
4190  }
4191  if (type == reco::PFCandidate::h0) {
4192  SumPtIsoValCleanNh += pfCandRef->pt();
4194  if (phoIsInBarrel)
4196  else
4198  }
4199  if (type == reco::PFCandidate::gamma) {
4200  SumPtIsoValCleanPh += pfCandRef->pt();
4202  if (phoIsInBarrel)
4204  else
4206  }
4207 
4208  } // dr=0.4
4209  } // loop over all PF Candidates
4210 
4211  h_SumPtOverPhoPt_ChHad_Cleaned_[0]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4212  h_SumPtOverPhoPt_NeuHad_Cleaned_[0]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4213  h_SumPtOverPhoPt_Pho_Cleaned_[0]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4214  h_SumPtOverPhoPt_ChHad_unCleaned_[0]->Fill(SumPtIsoValCh / matchingPho->pt());
4215  h_SumPtOverPhoPt_NeuHad_unCleaned_[0]->Fill(SumPtIsoValNh / matchingPho->pt());
4216  h_SumPtOverPhoPt_Pho_unCleaned_[0]->Fill(SumPtIsoValPh / matchingPho->pt());
4217  if (phoIsInBarrel) {
4218  h_SumPtOverPhoPt_ChHad_Cleaned_[1]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4219  h_SumPtOverPhoPt_NeuHad_Cleaned_[1]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4220  h_SumPtOverPhoPt_Pho_Cleaned_[1]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4221  h_SumPtOverPhoPt_ChHad_unCleaned_[1]->Fill(SumPtIsoValCh / matchingPho->pt());
4222  h_SumPtOverPhoPt_NeuHad_unCleaned_[1]->Fill(SumPtIsoValNh / matchingPho->pt());
4223  h_SumPtOverPhoPt_Pho_unCleaned_[1]->Fill(SumPtIsoValPh / matchingPho->pt());
4224  } else {
4225  h_SumPtOverPhoPt_ChHad_Cleaned_[2]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4226  h_SumPtOverPhoPt_NeuHad_Cleaned_[2]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4227  h_SumPtOverPhoPt_Pho_Cleaned_[2]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4228  h_SumPtOverPhoPt_ChHad_unCleaned_[2]->Fill(SumPtIsoValCh / matchingPho->pt());
4229  h_SumPtOverPhoPt_NeuHad_unCleaned_[2]->Fill(SumPtIsoValNh / matchingPho->pt());
4230  h_SumPtOverPhoPt_Pho_unCleaned_[2]->Fill(SumPtIsoValPh / matchingPho->pt());
4231  }
4232 
4233  } // only for pfPhotonValidator
4234 
4235  if (!(visibleConversion && visibleConversionsWithTwoSimTracks))
4236  continue;
4237 
4238  if (!isRunCentrally_) {
4239  h_r9_[1][0]->Fill(r9);
4240  if (phoIsInBarrel)
4241  h_r9_[1][1]->Fill(r9);
4242  if (phoIsInEndcap)
4243  h_r9_[1][2]->Fill(r9);
4244 
4246  if (fabs(mcEta_) <= 1.) {
4249  } else
4251  }
4252 
4253  if (!fastSim_) {
4255  reco::ConversionRefVector conversions = matchingPho->conversions();
4256  bool atLeastOneRecoTwoTrackConversion = false;
4257  for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
4258  reco::ConversionRef aConv = conversions[iConv];
4259  double like = aConv->MVAout();
4260  if (like < likelihoodCut_)
4261  continue;
4262 
4263  if (!isRunCentrally_)
4264  h2_EoverEtrueVsEta_[1]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4265  p_EoverEtrueVsEta_[1]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4266 
4267  //std::vector<reco::TrackRef> tracks = aConv->tracks();
4268  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
4269  if (tracks.size() < 2)
4270  continue;
4271  atLeastOneRecoTwoTrackConversion = true;
4272 
4273  h_mvaOut_[0]->Fill(like);
4274 
4275  if (tracks.size() == 2) {
4276  if (sqrt(aConv->tracksPin()[0].Perp2()) < convTrackMinPtCut_ ||
4277  sqrt(aConv->tracksPin()[1].Perp2()) < convTrackMinPtCut_)
4278  continue;
4279  }
4280 
4281  if (dCotCutOn_) {
4282  if ((fabs(mcEta_) > 1.1 && fabs(mcEta_) < 1.4) && fabs(aConv->pairCotThetaSeparation()) > dCotHardCutValue_)
4283  continue;
4284  if (fabs(aConv->pairCotThetaSeparation()) > dCotCutValue_)
4285  continue;
4286  }
4287 
4288  nRecConv_++;
4289 
4290  std::map<const reco::Track*, TrackingParticleRef> myAss;
4291  std::map<const reco::Track*, TrackingParticleRef>::const_iterator itAss;
4292  std::map<reco::TrackRef, TrackingParticleRef>::const_iterator itAssMin;
4293  std::map<reco::TrackRef, TrackingParticleRef>::const_iterator itAssMax;
4294  //
4295 
4296  int nAssT2 = 0;
4297  for (unsigned int i = 0; i < tracks.size(); i++) {
4298  // reco::TrackRef track = tracks[i].castTo<reco::TrackRef>();
4299 
4300  type = 0;
4301  if (!isRunCentrally_)
4302  nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4303  if (!isRunCentrally_)
4304  nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4305  p_nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits() - 0.0001));
4306  p_nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits() - 0.0001));
4308 
4309  const RefToBase<reco::Track>& tfrb = tracks[i];
4311  tc.push_back(tfrb);
4312  // reco::RecoToSimCollection q = trackAssociator->associateRecoToSim(tc,theConvTP_);
4313  reco::SimToRecoCollection q = trackAssociator->associateSimToReco(tc, theConvTP_);
4314  std::vector<std::pair<RefToBase<reco::Track>, double> > trackV;
4315  int tpI = 0;
4316 
4317  if (q.find(theConvTP_[0]) != q.end()) {
4318  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[0]];
4319  } else if (q.find(theConvTP_[1]) != q.end()) {
4320  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[1]];
4321  tpI = 1;
4322  }
4323 
4324  if (trackV.empty())
4325  continue;
4326  edm::RefToBase<reco::Track> tr = trackV.front().first;
4327  myAss.insert(std::make_pair(tr.get(), theConvTP_[tpI]));
4328  nAssT2++;
4329  }
4330 
4331  type = 0;
4332 
4333  // float totP = sqrt(aConv->pairMomentum().Mag2());
4334  float refP = -99999.;
4335  float refPt = -99999.;
4336  if (aConv->conversionVertex().isValid()) {
4337  refP = sqrt(aConv->refittedPairMomentum().Mag2());
4338  refPt = sqrt(aConv->refittedPairMomentum().perp2());
4339  }
4340  float invM = aConv->pairInvariantMass();
4341 
4342  h_invMass_[type][0]->Fill(invM);
4343  if (phoIsInBarrel)
4344  h_invMass_[type][1]->Fill(invM);
4345  if (phoIsInEndcap)
4346  h_invMass_[type][2]->Fill(invM);
4347 
4349  if (tracks.size() == 2) {
4354  h_SimConvTwoTracks_[4]->Fill((*mcPho).fourMomentum().et());
4355 
4356  if (!aConv->caloCluster().empty())
4357  h_convEta_[1]->Fill(aConv->caloCluster()[0]->eta());
4358 
4359  float trkProvenance = 3;
4360  if (tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "outInEcalSeededConv")
4361  trkProvenance = 0;
4362  if (tracks[0]->algoName() == "inOutEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv")
4363  trkProvenance = 1;
4364  if ((tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv") ||
4365  (tracks[1]->algoName() == "outInEcalSeededConv" && tracks[0]->algoName() == "inOutEcalSeededConv"))
4366  trkProvenance = 2;
4367  if (trkProvenance == 3) {
4368  }
4369  h_trkProv_[0]->Fill(trkProvenance);
4370  h_trkAlgo_->Fill(tracks[0]->algo());
4371  h_trkAlgo_->Fill(tracks[1]->algo());
4372  h_convAlgo_->Fill(aConv->algo());
4373 
4375  if (nAssT2 == 2) {
4376  if (!isRunCentrally_) {
4377  h_r9_[2][0]->Fill(r9);
4378  if (phoIsInBarrel)
4379  h_r9_[2][1]->Fill(r9);
4380  if (phoIsInEndcap)
4381  h_r9_[2][2]->Fill(r9);
4382  }
4383 
4384  if (!aConv->caloCluster().empty())
4385  h_convEta_[2]->Fill(aConv->caloCluster()[0]->eta());
4386  nRecConvAss_++;
4387 
4392  h_SimConvTwoMTracks_[4]->Fill((*mcPho).fourMomentum().et());
4393 
4394  if (aConv->conversionVertex().isValid()) {
4395  float chi2Prob =
4396  ChiSquaredProbability(aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof());
4397  if (chi2Prob > 0) {
4402  h_SimConvTwoMTracksAndVtxPGT0_[4]->Fill((*mcPho).fourMomentum().et());
4403  }
4404  if (chi2Prob > 0.0005) {
4409  h_SimConvTwoMTracksAndVtxPGT0005_[4]->Fill((*mcPho).fourMomentum().et());
4410  }
4411 
4412  if (chi2Prob > 0.0005) {
4413  if (!aConv->caloCluster().empty()) {
4414  h_convEta_[0]->Fill(aConv->caloCluster()[0]->eta());
4415  h_convPhi_[0]->Fill(aConv->caloCluster()[0]->phi());
4416  h_convERes_[0][0]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4417  }
4418  if (!isRunCentrally_) {
4419  h_r9VsNofTracks_[0][0]->Fill(r9, aConv->nTracks());
4420  h_EtR9Less093_[1][0]->Fill(photonEt);
4421  if (phoIsInBarrel)
4422  h_EtR9Less093_[1][1]->Fill(photonEt);
4423  if (phoIsInEndcap)
4424  h_EtR9Less093_[1][2]->Fill(photonEt);
4425  }
4426  if (phoIsInBarrel) {
4427  if (!aConv->caloCluster().empty())
4428  h_convERes_[0][1]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4429  if (!isRunCentrally_)
4430  h_r9VsNofTracks_[0][1]->Fill(r9, aConv->nTracks());
4431  h_mvaOut_[1]->Fill(like);
4432  }
4433  if (phoIsInEndcap) {
4434  if (!aConv->caloCluster().empty())
4435  h_convERes_[0][2]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4436  if (!isRunCentrally_)
4437  h_r9VsNofTracks_[0][2]->Fill(r9, aConv->nTracks());
4438  h_mvaOut_[2]->Fill(like);
4439  }
4440  }
4441  }
4442 
4444  type = 1;
4445 
4446  h_trkProv_[1]->Fill(trkProvenance);
4447  h_invMass_[type][0]->Fill(invM);
4448 
4449  float eoverp = -99999.;
4450 
4451  if (aConv->conversionVertex().isValid()) {
4452  eoverp = photonE / sqrt(aConv->refittedPairMomentum().Mag2());
4453  //eoverp= aConv->EoverPrefittedTracks();
4454  h_convPtRes_[type][0]->Fill(refPt / (*mcPho).fourMomentum().et());
4455  h_EoverPTracks_[type][0]->Fill(eoverp);
4456  h_PoverETracks_[type][0]->Fill(1. / eoverp);
4457  if (!isRunCentrally_)
4458  h2_EoverEtrueVsEoverP_[0]->Fill(eoverp,
4459  matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4460  if (!isRunCentrally_)
4461  h2_PoverPtrueVsEoverP_[0]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4462  if (!isRunCentrally_)
4463  h2_EoverPVsEta_[0]->Fill(mcEta_, eoverp);
4464  if (!isRunCentrally_)
4465  h2_EoverPVsR_[0]->Fill(mcConvR_, eoverp);
4466  p_EoverPVsEta_[0]->Fill(mcEta_, eoverp);
4467  p_EoverPVsR_[0]->Fill(mcConvR_, eoverp);
4468  p_eResVsR_->Fill(mcConvR_, photonE / (*mcPho).fourMomentum().e());
4469  if (!isRunCentrally_)
4470  h2_PoverPtrueVsEta_[0]->Fill(mcEta_, refP / (*mcPho).fourMomentum().e());
4471  p_PoverPtrueVsEta_[0]->Fill(mcEta_, refP / (*mcPho).fourMomentum().e());
4472  }
4473 
4474  if (!isRunCentrally_)
4476  matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4477  if (!isRunCentrally_)
4479  matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4480  p_EoverEtrueVsEta_[0]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4481  p_EoverEtrueVsR_[0]->Fill(mcConvR_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4482 
4483  if (!isRunCentrally_)
4485 
4486  // here original tracks and their inner momentum is considered
4487  float dPhiTracksAtVtx = aConv->dPhiTracksAtVtx();
4488  h_DPhiTracksAtVtx_[type][0]->Fill(dPhiTracksAtVtx);
4489  if (!isRunCentrally_)
4490  h2_DPhiTracksAtVtxVsEta_->Fill(mcEta_, dPhiTracksAtVtx);
4491  if (!isRunCentrally_)
4492  h2_DPhiTracksAtVtxVsR_->Fill(mcConvR_, dPhiTracksAtVtx);
4493  p_DPhiTracksAtVtxVsEta_->Fill(mcEta_, dPhiTracksAtVtx);
4494  p_DPhiTracksAtVtxVsR_->Fill(mcConvR_, dPhiTracksAtVtx);
4495 
4496  h_DCotTracks_[type][0]->Fill(aConv->pairCotThetaSeparation());
4497  if (!isRunCentrally_)
4498  h2_DCotTracksVsEta_->Fill(mcEta_, aConv->pairCotThetaSeparation());
4499  if (!isRunCentrally_)
4500  h2_DCotTracksVsR_->Fill(mcConvR_, aConv->pairCotThetaSeparation());
4501  p_DCotTracksVsEta_->Fill(mcEta_, aConv->pairCotThetaSeparation());
4502  p_DCotTracksVsR_->Fill(mcConvR_, aConv->pairCotThetaSeparation());
4503 
4504  if (phoIsInBarrel) {
4505  h_invMass_[type][1]->Fill(invM);
4506  if (aConv->conversionVertex().isValid()) {
4507  h_convPtRes_[type][1]->Fill(refPt / (*mcPho).fourMomentum().et());
4508  h_EoverPTracks_[type][1]->Fill(eoverp);
4509  if (mcConvR_ < 15)
4510  h_EoverPTracks_[0][0]->Fill(eoverp);
4511  if (mcConvR_ > 15 && mcConvR_ < 58)
4512  h_EoverPTracks_[0][1]->Fill(eoverp);
4513  if (mcConvR_ > 58)
4514  h_EoverPTracks_[0][2]->Fill(eoverp);
4515  h_PoverETracks_[type][1]->Fill(1. / eoverp);
4516  if (!isRunCentrally_)
4518  eoverp, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4519  if (!isRunCentrally_)
4520  h2_PoverPtrueVsEoverP_[1]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4521  }
4522  h_DPhiTracksAtVtx_[type][1]->Fill(dPhiTracksAtVtx);
4523  h_DCotTracks_[type][1]->Fill(aConv->pairCotThetaSeparation());
4524  }
4525 
4526  if (phoIsInEndcap) {
4527  h_invMass_[type][2]->Fill(invM);
4528  if (aConv->conversionVertex().isValid()) {
4529  h_convPtRes_[type][2]->Fill(refPt / (*mcPho).fourMomentum().et());
4530  h_EoverPTracks_[type][2]->Fill(eoverp);
4531  h_PoverETracks_[type][2]->Fill(1. / eoverp);
4532  if (!isRunCentrally_)
4534  eoverp, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4535  if (!isRunCentrally_)
4536  h2_PoverPtrueVsEoverP_[2]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4537  }
4538  h_DPhiTracksAtVtx_[type][2]->Fill(dPhiTracksAtVtx);
4539  h_DCotTracks_[type][2]->Fill(aConv->pairCotThetaSeparation());
4540  }
4541 
4542  if (aConv->conversionVertex().isValid()) {
4543  h_convVtxdX_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4544  h_convVtxdY_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4545  h_convVtxdZ_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4546  h_convVtxdR_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4547 
4548  if (fabs(mcConvEta_) <= 1.2) {
4549  h_convVtxdX_barrel_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4550  h_convVtxdY_barrel_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4551  h_convVtxdZ_barrel_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4552  h_convVtxdR_barrel_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4553  } else {
4554  h_convVtxdX_endcap_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4555  h_convVtxdY_endcap_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4556  h_convVtxdZ_endcap_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4557  h_convVtxdR_endcap_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4558  }
4559 
4560  h_convVtxdPhi_->Fill(aConv->conversionVertex().position().phi() - mcConvPhi_);
4561  h_convVtxdEta_->Fill(aConv->conversionVertex().position().eta() - mcConvEta_);
4562  if (!isRunCentrally_)
4563  h2_convVtxdRVsR_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4564  if (!isRunCentrally_)
4565  h2_convVtxdRVsEta_->Fill(mcEta_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4566  p_convVtxdRVsR_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4567  p_convVtxdRVsEta_->Fill(mcEta_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4568  float signX = aConv->refittedPairMomentum().x() / fabs(aConv->refittedPairMomentum().x());
4569  float signY = aConv->refittedPairMomentum().y() / fabs(aConv->refittedPairMomentum().y());
4570  float signZ = aConv->refittedPairMomentum().z() / fabs(aConv->refittedPairMomentum().z());
4571  p_convVtxdXVsX_->Fill(mcConvX_, (aConv->conversionVertex().position().x() - mcConvX_) * signX);
4572  p_convVtxdYVsY_->Fill(mcConvY_, (aConv->conversionVertex().position().y() - mcConvY_) * signY);
4573  p_convVtxdZVsZ_->Fill(mcConvZ_, (aConv->conversionVertex().position().z() - mcConvZ_) * signZ);
4574 
4575  if (!isRunCentrally_)
4576  h2_convVtxRrecVsTrue_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()));
4577 
4578  //float zPV = aConv->zOfPrimaryVertexFromTracks();
4579  float thetaConv = aConv->refittedPairMomentum().Theta();
4580  float thetaSC = matchingPho->superCluster()->position().theta();
4581  float rSC =
4582  sqrt(matchingPho->superCluster()->position().x() * matchingPho->superCluster()->position().x() +
4583  matchingPho->superCluster()->position().y() * matchingPho->superCluster()->position().y());
4584  float zSC = matchingPho->superCluster()->position().z();
4585  float zPV = sqrt(rSC * rSC + zSC * zSC) * sin(thetaConv - thetaSC) / sin(thetaConv);
4586 
4587  h_zPVFromTracks_[0]->Fill(zPV);
4588  h_dzPVFromTracks_[0]->Fill(zPV - (*mcPho).primaryVertex().z());
4589 
4590  if (phoIsInBarrel) {
4591  h_zPVFromTracks_[1]->Fill(zPV);
4592  h_dzPVFromTracks_[1]->Fill(zPV - (*mcPho).primaryVertex().z());
4593  } else if (phoIsInEndcap) {
4594  h_zPVFromTracks_[2]->Fill(zPV);
4595  h_dzPVFromTracks_[2]->Fill(zPV - (*mcPho).primaryVertex().z());
4596  } else if (phoIsInEndcapP) {
4597  h_zPVFromTracks_[3]->Fill(zPV);
4598  h_dzPVFromTracks_[3]->Fill(zPV - (*mcPho).primaryVertex().z());
4599  } else if (phoIsInEndcapM) {
4600  h_zPVFromTracks_[4]->Fill(zPV);
4601  h_dzPVFromTracks_[4]->Fill(zPV - (*mcPho).primaryVertex().z());
4602  }
4603 
4604  p_dzPVVsR_->Fill(mcConvR_, zPV - (*mcPho).primaryVertex().z());
4605  p_dzPVVsEta_->Fill(mcConvEta_, zPV - (*mcPho).primaryVertex().z());
4606  if (!isRunCentrally_)
4607  h2_dzPVVsR_->Fill(mcConvR_, zPV - (*mcPho).primaryVertex().z());
4608  }
4609 
4610  float dPhiTracksAtEcal = -99;
4611  float dEtaTracksAtEcal = -99;
4612  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[0].isNonnull() &&
4613  aConv->bcMatchingWithTracks()[1].isNonnull()) {
4615  float recoPhi1 = aConv->ecalImpactPosition()[0].phi();
4616  float recoPhi2 = aConv->ecalImpactPosition()[1].phi();
4617  float recoEta1 = aConv->ecalImpactPosition()[0].eta();
4618  float recoEta2 = aConv->ecalImpactPosition()[1].eta();
4619  // unused float bcPhi1 = aConv->bcMatchingWithTracks()[0]->phi();
4620  // unused float bcPhi2 = aConv->bcMatchingWithTracks()[1]->phi();
4621  // unused float bcEta1 = aConv->bcMatchingWithTracks()[0]->eta();
4622  // unused float bcEta2 = aConv->bcMatchingWithTracks()[1]->eta();
4623  recoPhi1 = phiNormalization(recoPhi1);
4624  recoPhi2 = phiNormalization(recoPhi2);
4625  dPhiTracksAtEcal = recoPhi1 - recoPhi2;
4626  dPhiTracksAtEcal = phiNormalization(dPhiTracksAtEcal);
4627  dEtaTracksAtEcal = recoEta1 - recoEta2;
4628 
4629  h_DPhiTracksAtEcal_[type][0]->Fill(fabs(dPhiTracksAtEcal));
4630  if (!isRunCentrally_)
4631  h2_DPhiTracksAtEcalVsR_->Fill(mcConvR_, fabs(dPhiTracksAtEcal));
4632  if (!isRunCentrally_)
4633  h2_DPhiTracksAtEcalVsEta_->Fill(mcEta_, fabs(dPhiTracksAtEcal));
4634  p_DPhiTracksAtEcalVsR_->Fill(mcConvR_, fabs(dPhiTracksAtEcal));
4635  p_DPhiTracksAtEcalVsEta_->Fill(mcEta_, fabs(dPhiTracksAtEcal));
4636 
4637  h_DEtaTracksAtEcal_[type][0]->Fill(dEtaTracksAtEcal);
4638 
4639  if (phoIsInBarrel) {
4640  h_DPhiTracksAtEcal_[type][1]->Fill(fabs(dPhiTracksAtEcal));
4641  h_DEtaTracksAtEcal_[type][1]->Fill(dEtaTracksAtEcal);
4642  }
4643  if (phoIsInEndcap) {
4644  h_DPhiTracksAtEcal_[type][2]->Fill(fabs(dPhiTracksAtEcal));
4645  h_DEtaTracksAtEcal_[type][2]->Fill(dEtaTracksAtEcal);
4646  }
4647  }
4649  for (unsigned int i = 0; i < tracks.size(); i++) {
4650  const RefToBase<reco::Track>& tfrb(tracks[i]);
4651  itAss = myAss.find(tfrb.get());
4652  if (itAss == myAss.end())
4653  continue;
4654 
4655  float trkProvenance = 3;
4656  if (tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "outInEcalSeededConv")
4657  trkProvenance = 0;
4658  if (tracks[0]->algoName() == "inOutEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv")
4659  trkProvenance = 1;
4660  if ((tracks[0]->algoName() == "outInEcalSeededConv" &&
4661  tracks[1]->algoName() == "inOutEcalSeededConv") ||
4662  (tracks[1]->algoName() == "outInEcalSeededConv" && tracks[0]->algoName() == "inOutEcalSeededConv"))
4663  trkProvenance = 2;
4664 
4665  if (!isRunCentrally_)
4667  if (!isRunCentrally_)
4669  p_nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4670  p_nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4673  if (!isRunCentrally_)
4675  if (!isRunCentrally_)
4679 
4680  float simPt = sqrt(((*itAss).second)->momentum().perp2());
4681  // float recPt = sqrt( aConv->tracks()[i]->innerMomentum().Perp2() ) ;
4682  float refPt = -9999.;
4683  float px = 0, py = 0;
4684 
4685  if (aConv->conversionVertex().isValid()) {
4686  reco::Track refTrack = aConv->conversionVertex().refittedTracks()[i];
4687  px = refTrack.momentum().x();
4688  py = refTrack.momentum().y();
4689  refPt = sqrt(px * px + py * py);
4690 
4691  float ptres = refPt - simPt;
4692  // float pterror = aConv->tracks()[i]->ptError();
4693  float pterror = aConv->conversionVertex().refittedTracks()[i].ptError();
4694  if (!isRunCentrally_) {
4695  h2_PtRecVsPtSim_[0]->Fill(simPt, refPt);
4696  if (trkProvenance == 3)
4697  h2_PtRecVsPtSimMixProv_->Fill(simPt, refPt);
4698  }
4699 
4700  h_TkPtPull_[0]->Fill(ptres / pterror);
4701  if (!isRunCentrally_)
4702  h2_TkPtPull_[0]->Fill(mcEta_, ptres / pterror);
4703 
4704  h_TkD0_[0]->Fill(tracks[i]->d0() * tracks[i]->charge());
4705 
4706  // if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator" )
4707  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[i].isNonnull())
4708  hBCEnergyOverTrackPout_[0]->Fill(aConv->bcMatchingWithTracks()[i]->energy() /
4709  sqrt(aConv->tracks()[i]->outerMomentum().Mag2()));
4710 
4711  if (phoIsInBarrel) {
4712  h_TkD0_[1]->Fill(tracks[i]->d0() * tracks[i]->charge());
4713  h_TkPtPull_[1]->Fill(ptres / pterror);
4714  if (!isRunCentrally_)
4715  h2_PtRecVsPtSim_[1]->Fill(simPt, refPt);
4716  //if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator")
4717  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[i].isNonnull())
4718  hBCEnergyOverTrackPout_[1]->Fill(aConv->bcMatchingWithTracks()[i]->energy() /
4719  sqrt(aConv->tracks()[i]->outerMomentum().Mag2()));
4720  }
4721  if (phoIsInEndcap) {
4722  h_TkD0_[2]->Fill(tracks[i]->d0() * tracks[i]->charge());
4723  h_TkPtPull_[2]->Fill(ptres / pterror);
4724  if (!isRunCentrally_)
4725  h2_PtRecVsPtSim_[2]->Fill(simPt, refPt);
4726  // if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator")
4727  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[i].isNonnull())
4728  hBCEnergyOverTrackPout_[2]->Fill(aConv->bcMatchingWithTracks()[i]->energy() /
4729  sqrt(aConv->tracks()[i]->outerMomentum().Mag2()));
4730  }
4731  }
4732 
4733  } // end loop over track
4734  } // end analysis of two associated tracks
4735  } // end analysis of two tracks
4736 
4737  } // loop over conversions
4738 
4740 
4741  reco::ConversionRefVector conversionsOneLeg = matchingPho->conversionsOneLeg();
4742  if (!atLeastOneRecoTwoTrackConversion) {
4743  for (unsigned int iConv = 0; iConv < conversionsOneLeg.size(); iConv++) {
4744  reco::ConversionRef aConv = conversionsOneLeg[iConv];
4745  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
4746 
4747  h_trkAlgo_->Fill(tracks[0]->algo());
4748  h_convAlgo_->Fill(aConv->algo());
4749 
4750  int nAssT = 0;
4751  std::map<const reco::Track*, TrackingParticleRef> myAss;
4752  for (unsigned int i = 0; i < tracks.size(); i++) {
4753  p_nHitsVsEtaSL_[0]->Fill(mcEta_, float(tracks[0]->numberOfValidHits() - 0.0001));
4754  p_nHitsVsRSL_[0]->Fill(mcConvR_, float(tracks[0]->numberOfValidHits() - 0.0001));
4756 
4757  float eoverp = photonE / tracks[0]->p();
4758  h_EoverP_SL_[0]->Fill(eoverp);
4759  if (phoIsInBarrel) {
4760  h_EoverP_SL_[1]->Fill(eoverp);
4761  } else {
4762  h_EoverP_SL_[2]->Fill(eoverp);
4763  }
4764  h_convSLVtxRvsZ_[0]->Fill(tracks[0]->innerPosition().z(), sqrt(tracks[0]->innerPosition().Perp2()));
4765  if (fabs(mcEta_) <= 1.) {
4766  h_convSLVtxRvsZ_[1]->Fill(tracks[0]->innerPosition().z(), sqrt(tracks[0]->innerPosition().Perp2()));
4767  } else {
4768  h_convSLVtxRvsZ_[2]->Fill(tracks[0]->innerPosition().z(), sqrt(tracks[0]->innerPosition().Perp2()));
4769  }
4770 
4771  const RefToBase<reco::Track>& tfrb = tracks[i];
4773  tc.push_back(tfrb);
4774  reco::SimToRecoCollection q = trackAssociator->associateSimToReco(tc, theConvTP_);
4775  std::vector<std::pair<RefToBase<reco::Track>, double> > trackV;
4776  int tpI = 0;
4777 
4778  if (q.find(theConvTP_[0]) != q.end()) {
4779  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[0]];
4780  } else if (q.find(theConvTP_[1]) != q.end()) {
4781  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[1]];
4782  tpI = 1;
4783  }
4784 
4785  if (trackV.empty())
4786  continue;
4787  edm::RefToBase<reco::Track> tr = trackV.front().first;
4788  myAss.insert(std::make_pair(tr.get(), theConvTP_[tpI]));
4789  nAssT++;
4790  }
4791 
4792  if (nAssT > 0) {
4797  h_SimConvOneMTracks_[4]->Fill((*mcPho).fourMomentum().et());
4798  }
4799  } // End loop over single leg conversions
4800  }
4801 
4802  } // if !fastSim
4803  } // End loop over generated particles
4804  } // End loop over simulated Photons
4805 
4806  if (!isRunCentrally_) {
4807  h_nSimPho_[0]->Fill(float(nSimPho_[0]));
4808  h_nSimPho_[1]->Fill(float(nSimPho_[1]));
4809  h_nSimConv_[0]->Fill(float(nSimConv_[0]));
4810  h_nSimConv_[1]->Fill(float(nSimConv_[1]));
4811  }
4812 
4813  if (!fastSim_) {
4815  for (reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end();
4816  iPho++) {
4817  reco::Photon aPho = reco::Photon(*iPho);
4818  // float et= aPho.superCluster()->energy()/cosh( aPho.superCluster()->eta()) ;
4820  for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
4821  reco::ConversionRef aConv = conversions[iConv];
4822  double like = aConv->MVAout();
4823  if (like < likelihoodCut_)
4824  continue;
4825  //std::vector<reco::TrackRef> tracks = aConv->tracks();
4826  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
4827  if (tracks.size() < 2)
4828  continue;
4829 
4830  RefToBase<reco::Track> tk1 = aConv->tracks().front();
4831  RefToBase<reco::Track> tk2 = aConv->tracks().back();
4833  tc1.push_back(tk1);
4834  tc2.push_back(tk2);
4835 
4836  bool phoIsInBarrel = false;
4837  bool phoIsInEndcap = false;
4838  if (fabs(aPho.superCluster()->position().eta()) < 1.479) {
4839  phoIsInBarrel = true;
4840  } else {
4841  phoIsInEndcap = true;
4842  }
4843 
4844  if (dCotCutOn_) {
4845  if ((fabs(mcEta_) > 1.1 && fabs(mcEta_) < 1.4) && fabs(aConv->pairCotThetaSeparation()) > dCotHardCutValue_)
4846  continue;
4847  if (fabs(aConv->pairCotThetaSeparation()) > dCotCutValue_)
4848  continue;
4849  }
4850 
4851  h_RecoConvTwoTracks_[0]->Fill(aPho.eta());
4852  h_RecoConvTwoTracks_[1]->Fill(aPho.phi());
4853  if (aConv->conversionVertex().isValid())
4854  h_RecoConvTwoTracks_[2]->Fill(aConv->conversionVertex().position().perp2());
4855  h_RecoConvTwoTracks_[3]->Fill(aConv->conversionVertex().position().z());
4856  h_RecoConvTwoTracks_[4]->Fill(aPho.et());
4857 
4858  int nAssT2 = 0;
4859  for (std::vector<PhotonMCTruth>::const_iterator mcPho = mcPhotons.begin(); mcPho != mcPhotons.end(); mcPho++) {
4860  // mcConvPt_= (*mcPho).fourMomentum().et();
4861  float mcPhi = (*mcPho).fourMomentum().phi();
4862  //simPV_Z = (*mcPho).primaryVertex().z();
4863  mcPhi_ = phiNormalization(mcPhi);
4864  mcEta_ = (*mcPho).fourMomentum().pseudoRapidity();
4865  mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z());
4866  //mcConvR_= (*mcPho).vertex().perp();
4867  //mcConvX_= (*mcPho).vertex().x();
4868  //mcConvY_= (*mcPho).vertex().y();
4869  //mcConvZ_= (*mcPho).vertex().z();
4870  //mcConvEta_= (*mcPho).vertex().eta();
4871  //mcConvPhi_= (*mcPho).vertex().phi();
4872  if (fabs(mcEta_) > END_HI)
4873  continue;
4874  // if (mcConvPt_<minPhoPtForPurity) continue;
4875  //if (fabs(mcEta_)>maxPhoEtaForPurity) continue;
4876  //if (fabs(mcConvZ_)>maxPhoZForPurity) continue;
4877  //if (mcConvR_>maxPhoRForEffic) continue;
4878 
4879  if ((*mcPho).isAConversion() != 1)
4880  continue;
4881  if (!((fabs(mcEta_) <= BARL && mcConvR_ < 85) ||
4882  (fabs(mcEta_) > BARL && fabs(mcEta_) <= END_HI && fabs((*mcPho).vertex().z()) < 210)))
4883  continue;
4884 
4885  theConvTP_.clear();
4886  for (size_t i = 0; i < trackingParticles.size(); ++i) {
4887  TrackingParticleRef tp(ElectronTPHandle, i);
4888  if (fabs(tp->vx() - (*mcPho).vertex().x()) < 0.0001 && fabs(tp->vy() - (*mcPho).vertex().y()) < 0.0001 &&
4889  fabs(tp->vz() - (*mcPho).vertex().z()) < 0.0001) {
4891  }
4892  }
4893 
4894  if (theConvTP_.size() < 2)
4895  continue;
4896 
4897  reco::RecoToSimCollection const& p1 = trackAssociator->associateRecoToSim(tc1, theConvTP_);
4898  reco::RecoToSimCollection const& p2 = trackAssociator->associateRecoToSim(tc2, theConvTP_);
4899  std::vector<std::pair<RefToBase<reco::Track>, double> > trackV1, trackV2;
4900 
4901  auto itP1 = p1.find(tk1);
4902  auto itP2 = p2.find(tk2);
4903  bool good = (itP1 != p1.end()) and (not itP1->val.empty()) and (itP2 != p2.end()) and (not itP2->val.empty());
4904  if (not good) {
4905  itP1 = p1.find(tk2);
4906  itP2 = p2.find(tk1);
4907  good = (itP1 != p1.end()) and (not itP1->val.empty()) and (itP2 != p2.end()) and (not itP2->val.empty());
4908  }
4909  if (good) {
4910  std::vector<std::pair<TrackingParticleRef, double> > const& tp1 = itP1->val;
4911  std::vector<std::pair<TrackingParticleRef, double> > const& tp2 = itP2->val;
4912 
4913  TrackingParticleRef tpr1 = tp1.front().first;
4914  TrackingParticleRef tpr2 = tp2.front().first;
4915 
4916  if (abs(tpr1->pdgId()) == 11 && abs(tpr2->pdgId()) == 11) {
4917  if ((tpr1->parentVertex()->sourceTracks_end() - tpr1->parentVertex()->sourceTracks_begin() == 1) &&
4918  (tpr2->parentVertex()->sourceTracks_end() - tpr2->parentVertex()->sourceTracks_begin() == 1)) {
4919  if (tpr1->parentVertex().key() == tpr2->parentVertex().key() &&
4920  ((*tpr1->parentVertex()->sourceTracks_begin())->pdgId() == 22)) {
4921  nAssT2 = 2;
4922  break;
4923  }
4924  }
4925  }
4926  }
4927 
4928  } // end loop over simulated photons
4929 
4930  if (nAssT2 == 2) {
4931  h_RecoConvTwoMTracks_[0]->Fill(aPho.eta());
4932  h_RecoConvTwoMTracks_[1]->Fill(aPho.phi());
4933  if (aConv->conversionVertex().isValid())
4934  h_RecoConvTwoMTracks_[2]->Fill(aConv->conversionVertex().position().perp2());
4935  h_RecoConvTwoMTracks_[3]->Fill(aConv->conversionVertex().position().z());
4936  h_RecoConvTwoMTracks_[4]->Fill(aPho.et());
4937  }
4938 
4940  if (aConv->conversionVertex().isValid()) {
4941  float chi2Prob = ChiSquaredProbability(aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof());
4942  double convR = sqrt(aConv->conversionVertex().position().perp2());
4943  double scalar = aConv->conversionVertex().position().x() * aConv->pairMomentum().x() +
4944  aConv->conversionVertex().position().y() * aConv->pairMomentum().y();
4945 
4946  if (scalar < 0)
4947  convR = -sqrt(aConv->conversionVertex().position().perp2());
4948  h_convVtxRvsZ_[0]->Fill(fabs(aConv->conversionVertex().position().z()),
4949  sqrt(aConv->conversionVertex().position().perp2()));
4950 
4951  if (!aConv->caloCluster().empty()) {
4952  if (!isRunCentrally_)
4953  h2_etaVsRreco_[0]->Fill(aConv->caloCluster()[0]->eta(),
4954  sqrt(aConv->conversionVertex().position().perp2()));
4955  if (fabs(aConv->caloCluster()[0]->eta()) <= 1.) {
4956  h_convVtxYvsX_->Fill(aConv->conversionVertex().position().y(), aConv->conversionVertex().position().x());
4957  h_convVtxRvsZ_[1]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4958 
4959  if (!isRunCentrally_) {
4960  h_convVtxYvsX_zoom_[0]->Fill(aConv->conversionVertex().position().y(),
4961  aConv->conversionVertex().position().x());
4962  h_convVtxYvsX_zoom_[1]->Fill(aConv->conversionVertex().position().y(),
4963  aConv->conversionVertex().position().x());
4964  h_convVtxRvsZ_zoom_[0]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4965  h_convVtxRvsZ_zoom_[1]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4966  }
4967  }
4968  if (fabs(aConv->caloCluster()[0]->eta()) > 1.)
4969  h_convVtxRvsZ_[2]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4970  }
4971 
4972  h_vtxChi2Prob_[0]->Fill(chi2Prob);
4973  h_vtxChi2_[0]->Fill(aConv->conversionVertex().normalizedChi2());
4974  if (phoIsInBarrel) {
4975  h_vtxChi2Prob_[1]->Fill(chi2Prob);
4976  h_vtxChi2_[1]->Fill(aConv->conversionVertex().normalizedChi2());
4977  }
4978  if (phoIsInEndcap) {
4979  h_vtxChi2Prob_[2]->Fill(chi2Prob);
4980  h_vtxChi2_[2]->Fill(aConv->conversionVertex().normalizedChi2());
4981  }
4982 
4983  } // end conversion vertex valid
4984  } // end loop over reco conversions
4985  } // end loop on all reco photons
4986  } // if !fastSim
4987 
4989  float nPho = 0;
4990  for (reco::GenJetCollection::const_iterator genJetIter = genJetCollection.begin();
4991  genJetIter != genJetCollection.end();
4992  ++genJetIter) {
4993  if (genJetIter->pt() < minPhoEtCut_)
4994  continue;
4995  if (fabs(genJetIter->eta()) > 2.5)
4996  continue;
4997 
4998  float mcJetPhi = genJetIter->phi();
4999  mcJetPhi_ = phiNormalization(mcJetPhi);
5000  mcJetEta_ = genJetIter->eta();
5001  float mcJetPt = genJetIter->pt();
5002 
5003  h_SimJet_[0]->Fill(mcJetEta_);
5004  h_SimJet_[1]->Fill(mcJetPhi_);
5005  h_SimJet_[2]->Fill(mcJetPt);
5006 
5007  std::vector<reco::Photon> thePhotons;
5008  bool matched = false;
5009 
5010  reco::Photon matchingPho;
5011  for (reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end();
5012  iPho++) {
5013  reco::Photon aPho = reco::Photon(*iPho);
5014  float phiPho = aPho.phi();
5015  float etaPho = aPho.eta();
5016  float deltaPhi = phiPho - mcJetPhi_;
5017  float deltaEta = etaPho - mcJetEta_;
5018  if (deltaPhi > pi)
5019  deltaPhi -= twopi;
5020  if (deltaPhi < -pi)
5021  deltaPhi += twopi;
5022  deltaPhi = pow(deltaPhi, 2);
5023  deltaEta = pow(deltaEta, 2);
5024  float delta = sqrt(deltaPhi + deltaEta);
5025  if (delta < 0.3) {
5026  matchingPho = *iPho;
5027  matched = true;
5028  }
5029  } // end loop over reco photons
5030 
5031  if (!matched)
5032  continue;
5033  nPho++;
5034 
5037  h_MatchedSimJet_[2]->Fill(mcJetPt);
5038 
5039  bool phoIsInBarrel = false;
5040  bool phoIsInEndcap = false;
5041  if (fabs(matchingPho.superCluster()->position().eta()) < 1.479) {
5042  phoIsInBarrel = true;
5043  } else {
5044  phoIsInEndcap = true;
5045  }
5046  edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
5047  if (phoIsInBarrel) {
5048  // Get handle to rec hits ecal barrel
5049  e.getByToken(barrelEcalHits_, ecalRecHitHandle);
5050  if (!ecalRecHitHandle.isValid()) {
5051  Labels l;
5053  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
5054  return;
5055  }
5056 
5057  } else if (phoIsInEndcap) {
5058  // Get handle to rec hits ecal encap
5059  e.getByToken(endcapEcalHits_, ecalRecHitHandle);
5060  if (!ecalRecHitHandle.isValid()) {
5061  Labels l;
5063  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
5064  return;
5065  }
5066  }
5067 
5068  const EcalRecHitCollection ecalRecHitCollection = *(ecalRecHitHandle.product());
5069  float photonE = matchingPho.energy();
5070  float photonEt = matchingPho.et();
5071  float r9 = matchingPho.r9();
5072  float r1 = matchingPho.r1x5();
5073  float r2 = matchingPho.r2x5();
5074  float sigmaIetaIeta = matchingPho.sigmaIetaIeta();
5075  float hOverE = matchingPho.hadronicOverEm();
5076  float ecalIso = matchingPho.ecalRecHitSumEtConeDR04();
5077  float hcalIso = matchingPho.hcalTowerSumEtConeDR04();
5078  float trkIso = matchingPho.trkSumPtSolidConeDR04();
5079  float nIsoTrk = matchingPho.nTrkSolidConeDR04();
5080  std::vector<std::pair<DetId, float> >::const_iterator rhIt;
5081 
5082  bool atLeastOneDeadChannel = false;
5083  for (reco::CaloCluster_iterator bcIt = matchingPho.superCluster()->clustersBegin();
5084  bcIt != matchingPho.superCluster()->clustersEnd();
5085  ++bcIt) {
5086  for (rhIt = (*bcIt)->hitsAndFractions().begin(); rhIt != (*bcIt)->hitsAndFractions().end(); ++rhIt) {
5087  for (EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin(); it != ecalRecHitCollection.end();
5088  ++it) {
5089  if (rhIt->first == (*it).id()) {
5090  if ((*it).recoFlag() == 9) {
5091  atLeastOneDeadChannel = true;
5092  break;
5093  }
5094  }
5095  }
5096  }
5097  }
5098 
5099  if (atLeastOneDeadChannel) {
5102  h_MatchedSimJetBadCh_[2]->Fill(mcJetPt);
5103  }
5104 
5105  h_scBkgEta_->Fill(matchingPho.superCluster()->eta());
5106  h_scBkgPhi_->Fill(matchingPho.superCluster()->phi());
5107  h_scBkgE_[0]->Fill(matchingPho.superCluster()->energy());
5108  h_scBkgEt_[0]->Fill(matchingPho.superCluster()->energy() / cosh(matchingPho.superCluster()->eta()));
5109  //
5110  h_phoBkgEta_->Fill(matchingPho.eta());
5111  h_phoBkgPhi_->Fill(matchingPho.phi());
5112  h_phoBkgE_[0]->Fill(photonE);
5113  h_phoBkgEt_[0]->Fill(photonEt);
5114  h_phoBkgDEta_->Fill(matchingPho.eta() - mcJetEta_);
5115  h_phoBkgDPhi_->Fill(matchingPho.phi() - mcJetPhi_);
5116 
5117  h_r9Bkg_[0]->Fill(r9);
5118  h_r1Bkg_[0]->Fill(r1);
5119  h_r2Bkg_[0]->Fill(r2);
5120  h_sigmaIetaIetaBkg_[0]->Fill(sigmaIetaIeta);
5121  h_hOverEBkg_[0]->Fill(hOverE);
5122  h_ecalRecHitSumEtConeDR04Bkg_[0]->Fill(ecalIso);
5123  h_hcalTowerSumEtConeDR04Bkg_[0]->Fill(hcalIso);
5124  h_isoTrkSolidConeDR04Bkg_[0]->Fill(trkIso);
5125  h_nTrkSolidConeDR04Bkg_[0]->Fill(nIsoTrk);
5126 
5127  if (!isRunCentrally_) {
5129  h2_r9VsEtBkg_->Fill(mcJetPt, r9);
5131  h2_r1VsEtBkg_->Fill(mcJetPt, r1);
5133  h2_r2VsEtBkg_->Fill(mcJetPt, r2);
5134  h2_sigmaIetaIetaVsEtaBkg_->Fill(mcJetEta_, sigmaIetaIeta);
5135  h2_sigmaIetaIetaVsEtBkg_[0]->Fill(mcJetPt, sigmaIetaIeta);
5137  h2_hOverEVsEtBkg_->Fill(mcJetPt, hOverE);
5138 
5140  p_r1VsEtBkg_->Fill(mcJetPt, r1);
5142  p_r2VsEtBkg_->Fill(mcJetPt, r2);
5143  p_sigmaIetaIetaVsEtaBkg_->Fill(mcJetEta_, sigmaIetaIeta);
5144  p_sigmaIetaIetaVsEtBkg_[0]->Fill(mcJetPt, sigmaIetaIeta);
5146  p_hOverEVsEtBkg_->Fill(mcJetPt, hOverE);
5147  }
5148 
5149  if (!isRunCentrally_) {
5151  h2_ecalRecHitSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, ecalIso);
5153  h2_hcalTowerSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, hcalIso);
5155  p_ecalRecHitSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, ecalIso);
5157  p_hcalTowerSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, hcalIso);
5159  p_isoTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, trkIso);
5161  p_nTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, nIsoTrk);
5163  h2_isoTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, trkIso);
5165  h2_nTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, nIsoTrk);
5166  }
5167 
5168  if (phoIsInBarrel) {
5169  h_r9Bkg_[1]->Fill(r9);
5170  h_r1Bkg_[1]->Fill(r1);
5171  h_r2Bkg_[1]->Fill(r2);
5172 
5173  h_sigmaIetaIetaBkg_[1]->Fill(sigmaIetaIeta);
5174  h_hOverEBkg_[1]->Fill(hOverE);
5175  h_ecalRecHitSumEtConeDR04Bkg_[1]->Fill(ecalIso);
5176  h_hcalTowerSumEtConeDR04Bkg_[1]->Fill(hcalIso);
5177  h_isoTrkSolidConeDR04Bkg_[1]->Fill(trkIso);
5178  h_nTrkSolidConeDR04Bkg_[1]->Fill(nIsoTrk);
5179 
5180  if (!isRunCentrally_) {
5181  h2_sigmaIetaIetaVsEtBkg_[1]->Fill(mcJetPt, sigmaIetaIeta);
5182  h2_isoTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, trkIso);
5183  h2_nTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, nIsoTrk);
5184  h2_ecalRecHitSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, ecalIso);
5185  h2_hcalTowerSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, hcalIso);
5186  p_sigmaIetaIetaVsEtBkg_[1]->Fill(mcJetPt, sigmaIetaIeta);
5187  p_ecalRecHitSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, ecalIso);
5188  p_hcalTowerSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, hcalIso);
5189  p_isoTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, trkIso);
5190  p_nTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, nIsoTrk);
5191  }
5192  } else if (phoIsInEndcap) {
5193  h_r9Bkg_[2]->Fill(r9);
5194  h_r1Bkg_[2]->Fill(r1);
5195  h_r2Bkg_[2]->Fill(r2);
5196 
5197  h_sigmaIetaIetaBkg_[2]->Fill(sigmaIetaIeta);
5198  h_hOverEBkg_[2]->Fill(hOverE);
5199  h_ecalRecHitSumEtConeDR04Bkg_[2]->Fill(ecalIso);
5200  h_hcalTowerSumEtConeDR04Bkg_[2]->Fill(hcalIso);
5201  h_isoTrkSolidConeDR04Bkg_[2]->Fill(trkIso);
5202  h_nTrkSolidConeDR04Bkg_[2]->Fill(nIsoTrk);
5203 
5204  if (!isRunCentrally_) {
5205  h2_sigmaIetaIetaVsEtBkg_[2]->Fill(mcJetPt, sigmaIetaIeta);
5206  h2_isoTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, trkIso);
5207  h2_nTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, nIsoTrk);
5208  h2_ecalRecHitSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, ecalIso);
5209  h2_hcalTowerSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, hcalIso);
5210  p_sigmaIetaIetaVsEtBkg_[2]->Fill(mcJetPt, sigmaIetaIeta);
5211  p_ecalRecHitSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, ecalIso);
5212  p_hcalTowerSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, hcalIso);
5213  p_isoTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, trkIso);
5214  p_nTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, nIsoTrk);
5215  }
5216  }
5217 
5218  if (!fastSim_) {
5221  for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
5222  reco::ConversionRef aConv = conversions[iConv];
5223  //std::vector<reco::TrackRef> tracks = aConv->tracks();
5224  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
5225  double like = aConv->MVAout();
5226  if (like < likelihoodCut_)
5227  continue;
5228  if (tracks.size() < 2)
5229  continue;
5230  if (!aConv->caloCluster().empty()) {
5231  h_convEtaBkg_->Fill(aConv->caloCluster()[0]->eta());
5232  h_convPhiBkg_->Fill(aConv->caloCluster()[0]->phi());
5233  }
5234  h_mvaOutBkg_[0]->Fill(like);
5235  float eoverp = aConv->EoverP();
5236  h_EoverPTracksBkg_[0]->Fill(eoverp);
5237  h_PoverETracksBkg_[0]->Fill(1. / eoverp);
5238  h_DCotTracksBkg_[0]->Fill(aConv->pairCotThetaSeparation());
5239  float dPhiTracksAtVtx = aConv->dPhiTracksAtVtx();
5240  h_DPhiTracksAtVtxBkg_[0]->Fill(dPhiTracksAtVtx);
5241 
5242  if (phoIsInBarrel) {
5243  h_mvaOutBkg_[1]->Fill(like);
5244  h_EoverPTracksBkg_[1]->Fill(eoverp);
5245  h_PoverETracksBkg_[1]->Fill(1. / eoverp);
5246  h_DCotTracksBkg_[1]->Fill(aConv->pairCotThetaSeparation());
5247  h_DPhiTracksAtVtxBkg_[1]->Fill(dPhiTracksAtVtx);
5248  } else if (phoIsInEndcap) {
5249  h_mvaOutBkg_[2]->Fill(like);
5250  h_EoverPTracksBkg_[2]->Fill(eoverp);
5251  h_PoverETracksBkg_[2]->Fill(1. / eoverp);
5252  h_DCotTracksBkg_[2]->Fill(aConv->pairCotThetaSeparation());
5253  h_DPhiTracksAtVtxBkg_[2]->Fill(dPhiTracksAtVtx);
5254  }
5255 
5256  if (aConv->conversionVertex().isValid()) {
5257  double convR = sqrt(aConv->conversionVertex().position().perp2());
5258  double scalar = aConv->conversionVertex().position().x() * aConv->pairMomentum().x() +
5259  aConv->conversionVertex().position().y() * aConv->pairMomentum().y();
5260  if (scalar < 0)
5261  convR = -sqrt(aConv->conversionVertex().position().perp2());
5262 
5263  if (!isRunCentrally_) {
5264  h_convVtxRvsZBkg_[0]->Fill(fabs(aConv->conversionVertex().position().z()),
5265  sqrt(aConv->conversionVertex().position().perp2()));
5266  if (!aConv->caloCluster().empty() && fabs(aConv->caloCluster()[0]->eta()) <= 1.) {
5267  h_convVtxYvsXBkg_->Fill(aConv->conversionVertex().position().y(),
5268  aConv->conversionVertex().position().x());
5269  h_convVtxRvsZBkg_[1]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
5270  }
5271  }
5272 
5273  } // end vertex valid
5274 
5275  } // end loop over conversions
5276  } // if !fastSim
5277  } // end loop over sim jets
5278 
5280  for (reco::GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end();
5281  mcIter++) {
5282  if (!(mcIter->pdgId() == 22))
5283  continue;
5284  if (mcIter->mother() != nullptr and !(mcIter->mother()->pdgId() == 25))
5285  continue;
5286  if (fabs(mcIter->eta()) > 2.5)
5287  continue;
5288 
5289  float mcPhi = mcIter->phi();
5290  float mcEta = mcIter->eta();
5291  //mcEta = etaTransformation(mcEta, (*mcPho).primaryVertex().z() );
5292  float mcEnergy = mcIter->energy();
5293 
5294  double dR = 9999999.;
5295  float minDr = 10000.;
5296  int iMatch = -1;
5297  bool matched = false;
5298 
5299  for (unsigned int ipho = 0; ipho < photonHandle->size(); ipho++) {
5300  reco::PhotonRef pho(reco::PhotonRef(photonHandle, ipho));
5301 
5302  double dphi = pho->phi() - mcPhi;
5303  if (std::fabs(dphi) > CLHEP::pi) {
5304  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
5305  }
5306  double deta = pho->superCluster()->position().eta() - mcEta;
5307 
5308  dR = sqrt(pow((deta), 2) + pow(dphi, 2));
5309  if (dR < 0.1 && dR < minDr) {
5310  minDr = dR;
5311  iMatch = ipho;
5312  }
5313  }
5314 
5315  if (iMatch > -1)
5316  matched = true;
5317  if (!matched)
5318  continue;
5319 
5320  reco::PhotonRef matchingPho(reco::PhotonRef(photonHandle, iMatch));
5321 
5322  bool phoIsInBarrel = false;
5323  bool phoIsInEndcap = false;
5324 
5325  float phoEta = matchingPho->superCluster()->position().eta();
5326  if (fabs(phoEta) < 1.479) {
5327  phoIsInBarrel = true;
5328  } else {
5329  phoIsInEndcap = true;
5330  }
5331 
5332  float photonE = matchingPho->energy();
5333  float sigmaEoE = matchingPho->getCorrectedEnergyError(matchingPho->getCandidateP4type()) / matchingPho->energy();
5334  float photonEt = matchingPho->energy() / cosh(matchingPho->eta());
5335  // float photonERegr1 = matchingPho->getCorrectedEnergy(reco::Photon::regression1);
5336  //float photonERegr2 = matchingPho->getCorrectedEnergy(reco::Photon::regression2);
5337  float r9 = matchingPho->r9();
5338  float full5x5_r9 = matchingPho->full5x5_r9();
5339  float r1 = matchingPho->r1x5();
5340  float r2 = matchingPho->r2x5();
5341  float sigmaIetaIeta = matchingPho->sigmaIetaIeta();
5342  float full5x5_sieie = matchingPho->full5x5_sigmaIetaIeta();
5343  float hOverE = matchingPho->hadronicOverEm();
5344  float newhOverE = matchingPho->hadTowOverEm();
5345  float ecalIso = matchingPho->ecalRecHitSumEtConeDR04();
5346  float hcalIso = matchingPho->hcalTowerSumEtConeDR04();
5347  float newhcalIso = matchingPho->hcalTowerSumEtBcConeDR04();
5348  float trkIso = matchingPho->trkSumPtSolidConeDR04();
5349  float nIsoTrk = matchingPho->nTrkSolidConeDR04();
5350  // PF related quantities
5351  float chargedHadIso = matchingPho->chargedHadronIso();
5352  float neutralHadIso = matchingPho->neutralHadronIso();
5353  float photonIso = matchingPho->photonIso();
5354  // float etOutsideMustache = matchingPho->etOutsideMustache();
5355  // int nClusterOutsideMustache = matchingPho->nClusterOutsideMustache();
5356  //float pfMVA = matchingPho->pfMVA();
5357 
5358  if ((photonEt > 14 && newhOverE < 0.15) || (photonEt > 10 && photonEt < 14 && chargedHadIso < 10)) {
5359  h_scEta_miniAOD_[0]->Fill(matchingPho->superCluster()->eta());
5360  h_scPhi_miniAOD_[0]->Fill(matchingPho->superCluster()->phi());
5361 
5362  h_phoE_miniAOD_[0][0]->Fill(photonE);
5363  h_phoEt_miniAOD_[0][0]->Fill(photonEt);
5364 
5365  h_phoERes_miniAOD_[0][0]->Fill(photonE / mcEnergy);
5366  h_phoSigmaEoE_miniAOD_[0][0]->Fill(sigmaEoE);
5367 
5368  h_r9_miniAOD_[0][0]->Fill(r9);
5369  h_full5x5_r9_miniAOD_[0][0]->Fill(full5x5_r9);
5370  h_r1_miniAOD_[0][0]->Fill(r1);
5371  h_r2_miniAOD_[0][0]->Fill(r2);
5372 
5373  h_sigmaIetaIeta_miniAOD_[0][0]->Fill(sigmaIetaIeta);
5374  h_full5x5_sigmaIetaIeta_miniAOD_[0][0]->Fill(full5x5_sieie);
5375  h_hOverE_miniAOD_[0][0]->Fill(hOverE);
5376  h_newhOverE_miniAOD_[0][0]->Fill(newhOverE);
5377 
5378  h_ecalRecHitSumEtConeDR04_miniAOD_[0][0]->Fill(ecalIso);
5379  h_hcalTowerSumEtConeDR04_miniAOD_[0][0]->Fill(hcalIso);
5380  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][0]->Fill(newhcalIso);
5381  h_isoTrkSolidConeDR04_miniAOD_[0][0]->Fill(trkIso);
5382  h_nTrkSolidConeDR04_miniAOD_[0][0]->Fill(nIsoTrk);
5383 
5384  //
5385  h_chHadIso_miniAOD_[0]->Fill(chargedHadIso);
5386  h_nHadIso_miniAOD_[0]->Fill(neutralHadIso);
5388 
5389  //
5390  if (phoIsInBarrel) {
5391  h_phoE_miniAOD_[0][1]->Fill(photonE);
5392  h_phoEt_miniAOD_[0][1]->Fill(photonEt);
5393 
5394  h_phoERes_miniAOD_[0][1]->Fill(photonE / mcEnergy);
5395  h_phoSigmaEoE_miniAOD_[0][1]->Fill(sigmaEoE);
5396 
5397  h_r9_miniAOD_[0][1]->Fill(r9);
5398  h_full5x5_r9_miniAOD_[0][1]->Fill(full5x5_r9);
5399  h_r1_miniAOD_[0][1]->Fill(r1);
5400  h_r2_miniAOD_[0][1]->Fill(r2);
5401  h_sigmaIetaIeta_miniAOD_[0][1]->Fill(sigmaIetaIeta);
5402  h_full5x5_sigmaIetaIeta_miniAOD_[0][1]->Fill(full5x5_sieie);
5403  h_hOverE_miniAOD_[0][1]->Fill(hOverE);
5404  h_newhOverE_miniAOD_[0][1]->Fill(newhOverE);
5405  h_ecalRecHitSumEtConeDR04_miniAOD_[0][1]->Fill(ecalIso);
5406  h_hcalTowerSumEtConeDR04_miniAOD_[0][1]->Fill(hcalIso);
5407  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][1]->Fill(newhcalIso);
5408  h_isoTrkSolidConeDR04_miniAOD_[0][1]->Fill(trkIso);
5409  h_nTrkSolidConeDR04_miniAOD_[0][1]->Fill(nIsoTrk);
5410  h_chHadIso_miniAOD_[1]->Fill(chargedHadIso);
5411  h_nHadIso_miniAOD_[1]->Fill(neutralHadIso);
5413  }
5414  if (phoIsInEndcap) {
5415  h_phoE_miniAOD_[0][2]->Fill(photonE);
5416  h_phoEt_miniAOD_[0][2]->Fill(photonEt);
5417 
5418  h_phoERes_miniAOD_[0][2]->Fill(photonE / mcEnergy);
5419  h_phoSigmaEoE_miniAOD_[0][2]->Fill(sigmaEoE);
5420  h_r9_miniAOD_[0][2]->Fill(r9);
5421  h_full5x5_r9_miniAOD_[0][2]->Fill(full5x5_r9);
5422  h_r1_miniAOD_[0][2]->Fill(r1);
5423  h_r2_miniAOD_[0][2]->Fill(r2);
5424  h_sigmaIetaIeta_miniAOD_[0][2]->Fill(sigmaIetaIeta);
5425  h_full5x5_sigmaIetaIeta_miniAOD_[0][2]->Fill(full5x5_sieie);
5426  h_hOverE_miniAOD_[0][2]->Fill(hOverE);
5427  h_newhOverE_miniAOD_[0][2]->Fill(newhOverE);
5428  h_ecalRecHitSumEtConeDR04_miniAOD_[0][2]->Fill(ecalIso);
5429  h_hcalTowerSumEtConeDR04_miniAOD_[0][2]->Fill(hcalIso);
5430  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][2]->Fill(newhcalIso);
5431  h_isoTrkSolidConeDR04_miniAOD_[0][2]->Fill(trkIso);
5432  h_nTrkSolidConeDR04_miniAOD_[0][2]->Fill(nIsoTrk);
5433  h_chHadIso_miniAOD_[2]->Fill(chargedHadIso);
5434  h_nHadIso_miniAOD_[2]->Fill(neutralHadIso);
5436  }
5437  } // end histos for comparing with miniAOD
5438 
5439  } // end loop over gen photons
5440 
5441  h_nPho_->Fill(float(nPho));
5442 }
5443 
5445  //---Definitions
5446  const float PI = 3.1415927;
5447  const float TWOPI = 2.0 * PI;
5448 
5449  if (phi > PI) {
5450  phi = phi - TWOPI;
5451  }
5452  if (phi < -PI) {
5453  phi = phi + TWOPI;
5454  }
5455 
5456  return phi;
5457 }
5458 
5459 float PhotonValidator::etaTransformation(float EtaParticle, float Zvertex) {
5460  //---Definitions
5461  const float PI = 3.1415927;
5462 
5463  //---Definitions for ECAL
5464  const float R_ECAL = 136.5;
5465  const float Z_Endcap = 328.0;
5466  const float etaBarrelEndcap = 1.479;
5467 
5468  //---ETA correction
5469 
5470  float Theta = 0.0;
5471  float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex;
5472 
5473  if (ZEcal != 0.0)
5474  Theta = atan(R_ECAL / ZEcal);
5475  if (Theta < 0.0)
5476  Theta = Theta + PI;
5477  float ETA = -log(tan(0.5 * Theta));
5478 
5479  if (fabs(ETA) > etaBarrelEndcap) {
5480  float Zend = Z_Endcap;
5481  if (EtaParticle < 0.0)
5482  Zend = -Zend;
5483  float Zlen = Zend - Zvertex;
5484  float RR = Zlen / sinh(EtaParticle);
5485  Theta = atan(RR / Zend);
5486  if (Theta < 0.0)
5487  Theta = Theta + PI;
5488  ETA = -log(tan(0.5 * Theta));
5489  }
5490  //---Return the result
5491  return ETA;
5492  //---end
5493 }
MonitorElement * p_DCotTracksVsR_
MonitorElement * p_sigmaEoEVsEta_[3]
MonitorElement * h_convVtxdX_endcap_
MonitorElement * h_SumPtOverPhoPt_NeuHad_unCleaned_[3]
MonitorElement * h_zPVFromTracks_[5]
MonitorElement * h_hOverE_miniAOD_[3][3]
edm::EDGetTokenT< EcalRecHitCollection > barrelEcalHits_
MonitorElement * h_OIinnermostHitR_
MonitorElement * h2_nTrkSolidConeDR04VsEta_[3]
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeometryToken_
MonitorElement * p_hOverEVsEtBkg_
MonitorElement * h_nSimPho_[2]
MonitorElement * p_DPhiTracksAtEcalVsR_
MonitorElement * h_scBkgPhi_
MonitorElement * h2_Chi2VsR_[3]
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magneticFieldToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
MonitorElement * h_sigmaIetaIeta_[3][3]
ParticleType
particle types
Definition: PFCandidate.h:44
MonitorElement * p_sceResVsR9_[3]
MonitorElement * h_DPhiTracksAtEcal_[2][3]
MonitorElement * h_scPhi_miniAOD_[2]
TPRegexp parents
Definition: eve_filter.cc:21
MonitorElement * h2_hcalTowerSumEtConeDR04VsEta_[3]
MonitorElement * h_IOinnermostHitR_
MonitorElement * h_phoBkgDPhi_
MonitorElement * p_nHitsVsEtaSL_[2]
MonitorElement * h_DPhiTracksAtVtx_[2][3]
MonitorElement * p_EoverEtrueVsEta_[3]
MonitorElement * p_EoverPVsEta_[3]
MonitorElement * h_convVtxdZ_
MonitorElement * h_dRPhoPFcand_Pho_Cleaned_[3]
MonitorElement * h_newhOverE_[3][3]
MonitorElement * h_phoBkgPhi_
MonitorElement * h_chHadIso_[3]
MonitorElement * h_phoPhi_[2]
edm::EDGetTokenT< edm::SimVertexContainer > g4_simVtx_Token_
MonitorElement * h_hcalTowerBcSumEtConeDR04_[3][3]
MonitorElement * h2_PoverPtrueVsEoverP_[3]
reco::ConversionRefVector conversions() const
vector of references to Conversion&#39;s
Definition: Photon.h:64
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
MonitorElement * h_mvaOut_[3]
MonitorElement * h_scE_[2][3]
edm::EDGetTokenT< reco::VertexCollection > offline_pvToken_
MonitorElement * h_nRecoVtx_
MonitorElement * h_convVtxRvsZ_zoom_[2]
MonitorElement * h2_hOverEVsEt_[3]
MonitorElement * h_hcalTowerSumEtConeDR04_miniAOD_[3][3]
edm::EDGetTokenT< edm::HepMCProduct > hepMC_Token_
MonitorElement * h_SumPtOverPhoPt_NeuHad_Cleaned_[3]
MonitorElement * p_hcalTowerSumEtConeDR04VsEt_[3]
std::string fName_
MonitorElement * p_isoTrkSolidConeDR04VsEtBkg_[3]
MonitorElement * h_DPhiTracksAtVtxBkg_[3]
edm::EDGetTokenT< edm::SimVertexContainer > famos_simVtx_Token_
MonitorElement * h2_EoverPVsR_[3]
MonitorElement * h_phoEt_[2][3]
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackBuilderToken_
float ecalRecHitSumEtConeDR04() const
Definition: Photon.h:457
MonitorElement * h_DEtaTracksAtEcal_[2][3]
edm::EDGetTokenT< reco::PFCandidateCollection > pfCandidates_
MonitorElement * h_phoEResRegr2_[3][3]
MonitorElement * p_convVtxdYVsY_
MonitorElement * h_phoDEta_[2]
MonitorElement * h_SimJet_[3]
MonitorElement * h2_convVtxdRVsEta_
MonitorElement * h_RecoConvTwoMTracks_[5]
MonitorElement * h_convVtxdY_
MonitorElement * h_psE_
MonitorElement * h_scEtaWidth_[2]
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
MonitorElement * h2_hOverEVsEtaBkg_
MonitorElement * h2_DCotTracksVsEta_
std::vector< GenJet > GenJetCollection
collection of GenJet objects
T const * product() const
Definition: Handle.h:70
MonitorElement * h2_etaVsRsim_[3]
MonitorElement * h2_PtRecVsPtSim_[3]
MonitorElement * h2_PoverPtrueVsEta_[3]
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * h_convVtxdZ_endcap_
std::vector< EcalRecHit >::const_iterator const_iterator
edm::EDGetTokenT< edm::View< reco::Track > > conversionIOTrackPr_Token_
MonitorElement * h_scEt_[2][3]
MonitorElement * h_dzPVFromTracks_[5]
MonitorElement * p_EoverEtrueVsR_[3]
MonitorElement * h2_sigmaIetaIetaVsEtBkg_[3]
MonitorElement * h_ecalRecHitSumEtConeDR04Bkg_[3]
MonitorElement * h_simConvVtxRvsZ_[4]
MonitorElement * h2_hcalTowerSumEtConeDR04VsEt_[3]
MonitorElement * h_MatchedSimJet_[3]
MonitorElement * p_nHitsVsRSL_[2]
MonitorElement * p_r2VsEtBkg_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
MonitorElement * h_dRPhoPFcand_NeuHad_Cleaned_[3]
constexpr int pow(int x)
Definition: conifer.h:24
MonitorElement * h2_isoTrkSolidConeDR04VsEtaBkg_
MonitorElement * h_SimConvTwoMTracksAndVtxPGT0005_[5]
MonitorElement * h2_r1VsEtaBkg_
MonitorElement * h2_isoTrkSolidConeDR04VsEtBkg_[3]
MonitorElement * h_TkD0_[3]
MonitorElement * h_dRPhoPFcand_ChHad_Cleaned_[3]
MonitorElement * h_chHadIso_miniAOD_[3]
MonitorElement * h_convVtxdY_endcap_
MonitorElement * h_EoverP_SL_[3]
std::unique_ptr< PhotonMCTruthFinder > thePhotonMCTruthFinder_
float r1x5() const
Definition: Photon.h:274
MonitorElement * p_eResVsR9_[3]
MonitorElement * h_etOutsideMustache_[3]
MonitorElement * h2_DPhiTracksAtVtxVsEta_
MonitorElement * p_DPhiTracksAtVtxVsR_
MonitorElement * h_SumPtOverPhoPt_ChHad_Cleaned_[3]
MonitorElement * p_sigmaEoEVsEt_[3][3]
MonitorElement * h_convVtxdR_endcap_
Log< level::Error, false > LogError
MonitorElement * h_convSLVtxRvsZ_[3]
MonitorElement * h_phoEt_miniAOD_[2][3]
static constexpr float R_ECAL
MonitorElement * p_newhOverEVsEta_[3]
MonitorElement * h2_convVtxRrecVsTrue_
MonitorElement * h2_DCotTracksVsR_
edm::EDGetTokenT< EcalRecHitCollection > endcapEcalHits_
MonitorElement * h2_PtRecVsPtSimMixProv_
MonitorElement * h_SumPtOverPhoPt_ChHad_unCleaned_[3]
key_type key() const
Accessor for product key.
Definition: Ref.h:250
MonitorElement * h_convEtaBkg_
edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > particleBasedIso_token
static const double deltaEta
Definition: CaloConstants.h:8
MonitorElement * h_phoE_miniAOD_[2][3]
MonitorElement * h_scPhi_[2]
MonitorElement * h2_r2VsEtaBkg_
MonitorElement * h_convVtxdPhi_
MonitorElement * h_scBkgE_[3]
MonitorElement * h_convERes_[2][3]
MonitorElement * p_Chi2VsR_[3]
MonitorElement * h_SimPho_[3]
Denominator for efficiencies.
const_iterator end() const
Definition: ValueMap.h:230
MonitorElement * h2_r2VsEtBkg_
MonitorElement * p_r2VsEtaBkg_
MonitorElement * h_convVtxRvsZ_[3]
const Double_t pi
MonitorElement * h_nTrkSolidConeDR04_miniAOD_[3][3]
MonitorElement * h_convPhi_[2]
MonitorElement * h_nConv_[2][3]
info per conversion
MonitorElement * h2_isoTrkSolidConeDR04VsEt_[3]
MonitorElement * h_full5x5_r9_miniAOD_[3][3]
void Fill(long long x)
MonitorElement * h_r9_[3][3]
eBin
CAREFULL for the time being only Loos exists 1 => Tight Photon = GoodCandidate.
MonitorElement * h2_sigmaIetaIetaVsEta_[3]
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
MonitorElement * h_dRPhoPFcand_Pho_unCleaned_[3]
MonitorElement * p_EoverPVsR_[3]
float trkSumPtSolidConeDR04() const
Definition: Photon.h:495
edm::ESHandle< MagneticField > theMF_
MonitorElement * h2_sceResVsR9_[3]
MonitorElement * h_phoEta_[2]
MonitorElement * h2_Chi2VsEta_[3]
#define ETA
MonitorElement * h_simTkPt_
MonitorElement * h_mvaOutBkg_[3]
MonitorElement * h_trkAlgo_
MonitorElement * h2_dzPVVsR_
edm::EDGetTokenT< edm::SimTrackContainer > g4_simTk_Token_
MonitorElement * h_scEta_[2]
MonitorElement * h_convVtxdX_barrel_
MonitorElement * h2_hOverEVsEta_[3]
MonitorElement * p_eResVsR_
MonitorElement * p_hcalTowerSumEtConeDR04VsEtBkg_[3]
MonitorElement * h_tkChi2Large_[2]
MonitorElement * h2_r1VsEt_[3]
MonitorElement * h_trkProv_[2]
MonitorElement * p_sigmaIetaIetaVsEtaBkg_
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
float hcalTowerSumEtConeDR04(int depth=0) const
Definition: Photon.h:475
edm::ParameterSet parameters_
MonitorElement * p_convVtxdRVsEta_
MonitorElement * h_r1_[3][3]
MonitorElement * h_EoverPTracks_[2][3]
MonitorElement * h_phoSigmaEoE_miniAOD_[3][3]
MonitorElement * h_scPhiWidth_[2]
MonitorElement * h2_etaVsRreco_[3]
float sigmaIetaIeta() const
Definition: Photon.h:273
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
Definition: DQMStore.h:399
MonitorElement * h2_r1VsEta_[3]
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
MonitorElement * p_ecalRecHitSumEtConeDR04VsEtaBkg_
float phiNormalization(float &a)
T sqrt(T t)
Definition: SSEVec.h:19
MonitorElement * h2_r2VsEta_[3]
MonitorElement * h_nHadIso_miniAOD_[3]
MonitorElement * h_isoTrkSolidConeDR04_[3][3]
MonitorElement * p_hOverEVsEt_[3]
MonitorElement * h_EtR9Less093_[3][3]
MonitorElement * h_tkChi2SL_[2]
MonitorElement * h2_eResVsEt_[3][3]
MonitorElement * h_r9VsNofTracks_[2][3]
MonitorElement * h_ecalRecHitSumEtConeDR04_[3][3]
MonitorElement * h_ecalRecHitSumEtConeDR04_miniAOD_[3][3]
MonitorElement * h_phoEResRegr1_[3][3]
MonitorElement * h2_r9VsEtBkg_
MonitorElement * p_hOverEVsEta_[3]
MonitorElement * h2_TkPtPull_[3]
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * h_SumPtOverPhoPt_Pho_Cleaned_[3]
#define TWOPI
MonitorElement * h_MatchedSimPhoBadCh_[3]
MonitorElement * h_MatchedSimJetBadCh_[3]
MonitorElement * h_convVtxdEta_
MonitorElement * h_r2_[3][3]
MonitorElement * p_nHitsVsEta_[2]
MonitorElement * h_convVtxdY_barrel_
float ChiSquaredProbability(double chiSquared, double nrDOF)
~PhotonValidator() override
MonitorElement * p_sigmaIetaIetaVsEtBkg_[3]
MonitorElement * h2_EoverEtrueVsEta_[3]
MonitorElement * h_phoBkgDEta_
MonitorElement * h_phoIso_miniAOD_[3]
MonitorElement * h_simTkEta_
MonitorElement * nHitsVsEta_[2]
static constexpr float etaBarrelEndcap
const_iterator begin() const
MonitorElement * p_nTrkSolidConeDR04VsEtaBkg_
MonitorElement * h2_sigmaIetaIetaVsEtaBkg_
MonitorElement * h_gamgamMassRegr1_[3][3]
MonitorElement * p_convVtxdXVsX_
MonitorElement * p_dzPVVsR_
MonitorElement * hBCEnergyOverTrackPout_[3]
MonitorElement * h_PoverETracksBkg_[3]
MonitorElement * h_invMass_[2][3]
edm::EDGetTokenT< TrackingParticleCollection > token_tp_
MonitorElement * h2_EoverEtrueVsEoverP_[3]
#define PI
Definition: QcdUeDQM.h:37
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:130
MonitorElement * h_phoE_[2][3]
MonitorElement * h_simConvVtxYvsX_
MonitorElement * h_hOverE_[3][3]
MonitorElement * p_TkPtPull_[3]
MonitorElement * h_hOverEBkg_[3]
MonitorElement * h_dRPhoPFcand_NeuHad_unCleaned_[3]
MonitorElement * h_SimPhoMotherEt_[2]
MonitorElement * h2_eResVsR9_[3]
MonitorElement * nHitsVsR_[2]
MonitorElement * h_r1Bkg_[3]
MonitorElement * h_scEta_miniAOD_[2]
Histos for comparison with miniAOD content.
const_iterator end() const
MonitorElement * h_convVtxdX_
MonitorElement * p_isoTrkSolidConeDR04VsEtaBkg_
MonitorElement * h2_DPhiTracksAtVtxVsR_
MonitorElement * h_convVtxYvsXBkg_
MonitorElement * h_TkPtPull_[3]
MonitorElement * h2_EoverPVsEta_[3]
edm::ESHandle< CaloGeometry > theCaloGeom_
MonitorElement * h_nTrkSolidConeDR04Bkg_[3]
Log< level::Info, false > LogInfo
int nTrkSolidConeDR04() const
Definition: Photon.h:499
MonitorElement * p_DCotTracksVsEta_
MonitorElement * h_convPtRes_[2][3]
MonitorElement * h2_nTrkSolidConeDR04VsEtaBkg_
float r2x5() const
Definition: Photon.h:275
MonitorElement * h_r2Bkg_[3]
MonitorElement * h_MatchedSimPho_[3]
Numerator for efficiencies.
MonitorElement * p_convVtxdRVsR_
static constexpr float d0
float hadronicOverEm(int depth=0) const
Definition: Photon.h:236
MonitorElement * h_convVtxRvsZBkg_[2]
MonitorElement * p_Chi2VsEta_[3]
MonitorElement * h_nHadIso_[3]
MonitorElement * h2_hOverEVsEtBkg_
MonitorElement * p_sigmaEoEVsNVtx_[3][3]
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
MonitorElement * p_eResVsNVtx_[3][3]
MonitorElement * h_SumPtOverPhoPt_Pho_unCleaned_[3]
MonitorElement * h2_ecalRecHitSumEtConeDR04VsEtBkg_[3]
void clear()
Clear the vector.
Definition: RefVector.h:142
MonitorElement * h_nSimConv_[2]
MonitorElement * h_nTrkSolidConeDR04_[3][3]
MonitorElement * h_sigmaIetaIetaBkg_[3]
MonitorElement * h2_EoverEtrueVsR_[3]
MonitorElement * p_hcalTowerBcSumEtConeDR04VsEta_[3]
MonitorElement * h_SimConvTwoMTracksAndVtxPGT0_[5]
MonitorElement * h_gamgamMass_[3][3]
MonitorElement * h_distMinAppTracks_[2][3]
MonitorElement * h_nPho_
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
edm::EDGetTokenT< reco::GenParticleCollection > genpartToken_
MonitorElement * p_PoverPtrueVsEta_[3]
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:228
MonitorElement * h_r9Bkg_[3]
MonitorElement * h_phoERes_[3][3]
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
MonitorElement * h_isoTrkSolidConeDR04Bkg_[3]
MonitorElement * h2_r9VsEtaBkg_
MonitorElement * h_convVtxYvsX_zoom_[2]
MonitorElement * h_convAlgo_
MonitorElement * h_nCluOutsideMustache_[3]
edm::EDGetTokenT< reco::GenJetCollection > genjets_Token_
MonitorElement * h_hcalTowerSumEtConeDR04_[3][3]
MonitorElement * h2_nTrkSolidConeDR04VsEt_[3]
MonitorElement * h2_hcalTowerSumEtConeDR04VsEtBkg_[3]
MonitorElement * h_convQuality_
MonitorElement * h2_r1VsEtBkg_
MonitorElement * h_DCotTracksBkg_[3]
MonitorElement * h_phoIso_[3]
MonitorElement * p_ecalRecHitSumEtConeDR04VsEta_[3]
MonitorElement * p_r1VsEtaBkg_
MonitorElement * h_PoverETracks_[2][3]
float etaTransformation(float a, float b)
MonitorElement * h2_ecalRecHitSumEtConeDR04VsEt_[3]
MonitorElement * h_phoPixSeedSize_[2]
float r9() const
Definition: Photon.h:276
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:664
MonitorElement * h_vtxChi2_[3]
MonitorElement * p_nTrkSolidConeDR04VsEtBkg_[3]
MonitorElement * p_hcalTowerBcSumEtConeDR04VsEt_[3]
bool isValid() const
Definition: HandleBase.h:70
MonitorElement * h_pfMva_[3]
edm::EDGetTokenT< reco::PhotonCollection > photonCollectionToken_
MonitorElement * p_ecalRecHitSumEtConeDR04VsEtBkg_[3]
MonitorElement * h_hcalTowerSumEtConeDR04Bkg_[3]
MonitorElement * p_convVtxdZVsZ_
MonitorElement * p_hcalTowerSumEtConeDR04VsEta_[3]
MonitorElement * h_r1_miniAOD_[3][3]
MonitorElement * p_r1VsEtBkg_
MonitorElement * h_phoBkgEt_[3]
double et() const final
transverse energy
HLT enums.
MonitorElement * h2_isoTrkSolidConeDR04VsEta_[3]
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
MonitorElement * h_SimPhoMotherEta_[2]
MonitorElement * h_EoverPTracksBkg_[3]
MonitorElement * h_convVtxdR_barrel_
void push_back(const RefToBase< T > &)
MonitorElement * h_VisSimConv_[6]
MonitorElement * h_SimConvTwoMTracks_[5]
MonitorElement * h2_nTrkSolidConeDR04VsEtBkg_[3]
MonitorElement * h2_hcalTowerSumEtConeDR04VsEtaBkg_
MonitorElement * p_eResVsEt_[3][3]
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
Definition: RefVector.h:67
MonitorElement * h_convVtxYvsX_
MonitorElement * h_phoBkgE_[3]
MonitorElement * p_hOverEVsEtaBkg_
MonitorElement * h_r2_miniAOD_[3][3]
MonitorElement * h_phoSigmaEoE_[3][3]
MonitorElement * h_RecoConvTwoTracks_[5]
MonitorElement * p_r9VsEta_[3]
MonitorElement * h_DCotTracks_[2][3]
MonitorElement * h_phoERes_miniAOD_[3][3]
MonitorElement * h2_DPhiTracksAtEcalVsR_
std::vector< TrackingParticle > TrackingParticleCollection
MonitorElement * p_eResVsEta_[3]
edm::RefVector< TrackingParticleCollection > theConvTP_
MonitorElement * h_newhOverE_miniAOD_[3][3]
void dqmBeginRun(edm::Run const &r, edm::EventSetup const &theEventSetup) override
MonitorElement * h_dRPhoPFcand_ChHad_unCleaned_[3]
MonitorElement * h_AllSimConv_[5]
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * h_vtxChi2Prob_[3]
MonitorElement * h_scBkgEta_
MonitorElement * p_nHitsVsR_[2]
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:223
MonitorElement * h_hcalTowerBcSumEtConeDR04_miniAOD_[3][3]
MonitorElement * h_r9_miniAOD_[3][3]
MonitorElement * h2_convVtxdRVsR_
double phi() const final
momentum azimuthal angle
MonitorElement * h_gamgamMassRegr2_[3][3]
MonitorElement * p_newhOverEVsEt_[3]
MonitorElement * h2_r2VsEt_[3]
MonitorElement * h_convVtxdR_
MonitorElement * h_convVtxdZ_barrel_
value_type const * get() const
Definition: RefToBase.h:211
MonitorElement * h_SimConvOneTracks_[5]
MonitorElement * h_full5x5_sigmaIetaIeta_miniAOD_[3][3]
MonitorElement * h_convEta_[3]
MonitorElement * p_hcalTowerSumEtConeDR04VsEtaBkg_
MonitorElement * p_ecalRecHitSumEtConeDR04VsEt_[3]
double mcPhi_
global variable for the MC photon
MonitorElement * h_SimConvTwoTracks_[5]
MonitorElement * h2_sigmaIetaIetaVsEt_[3]
MonitorElement * h2_ecalRecHitSumEtConeDR04VsEtaBkg_
MonitorElement * h_scBkgEt_[3]
MonitorElement * h2_DPhiTracksAtEcalVsEta_
edm::EDGetTokenT< edm::View< reco::Track > > conversionOITrackPr_Token_
MonitorElement * h_sigmaIetaIeta_miniAOD_[3][3]
MonitorElement * h2_ecalRecHitSumEtConeDR04VsEta_[3]
MonitorElement * h_SimConvEtaPix_[2]
static constexpr float Z_Endcap
MonitorElement * h2_eResVsEta_[3]
Definition: Run.h:45
MonitorElement * p_DPhiTracksAtVtxVsEta_
void labelsForToken(EDGetToken iToken, Labels &oLabels) const
MonitorElement * p_DPhiTracksAtEcalVsEta_
MonitorElement * h_phoDPhi_[2]
MonitorElement * h_convPhiBkg_
edm::EDGetTokenT< edm::SimTrackContainer > famos_simTk_Token_
MonitorElement * h_phoBkgEta_
MonitorElement * h2_r9VsEt_[3]
MonitorElement * h_tkChi2_[2]
MonitorElement * p_dzPVVsEta_
double scalar(const CLHEP::HepGenMatrix &m)
Return the matrix as a scalar. Raise an assertion if the matris is not .
Definition: matutil.cc:166
PhotonValidator(const edm::ParameterSet &)
MonitorElement * h_SimConvOneMTracks_[5]
double energy() const final
energy
MonitorElement * h_isoTrkSolidConeDR04_miniAOD_[3][3]
double eta() const final
momentum pseudorapidity
void dqmEndRun(edm::Run const &r, edm::EventSetup const &es) override