CMS 3D CMS Logo

PhotonValidator.cc
Go to the documentation of this file.
1 #include <iostream>
2 //
5 //
7 
8 //
12 //
14 //
18 //
23 //
28 //
31 #include "CLHEP/Units/GlobalPhysicalConstants.h"
33 
34 //
54 
55 //
60 
64 //
65 //#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
66 //
67 #include "TFile.h"
68 #include "TH1.h"
69 #include "TH2.h"
70 #include "TTree.h"
71 #include "TVector3.h"
72 #include "TProfile.h"
73 //
82 using namespace std;
83 
85 
86 {
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";
311  h_SimConvOneTracks_[0] =
312  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated #eta", etaBin2, etaMin, etaMax);
313  histname = "h_SimConvOneTracksPhi";
314  h_SimConvOneTracks_[1] =
315  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated #phi", phiBin, phiMin, phiMax);
316  histname = "h_SimConvOneTracksR";
317  h_SimConvOneTracks_[2] =
318  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated R", rBin, rMin, rMax);
319  histname = "h_SimConvOneTracksZ";
320  h_SimConvOneTracks_[3] =
321  iBooker.book1D(histname, " All vis conversions with 1 reco tracks: simulated Z", zBin, zMin, zMax);
322  histname = "h_SimConvOneTracksEt";
323  h_SimConvOneTracks_[4] =
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";
333  h_SimConvTwoMTracks_[2] =
334  iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated R", rBin, rMin, rMax);
335  histname = "h_SimConvTwoMTracksZ";
336  h_SimConvTwoMTracks_[3] =
337  iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated Z", zBin, zMin, zMax);
338  histname = "h_SimConvTwoMTracksEt";
339  h_SimConvTwoMTracks_[4] =
340  iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated Et", etBin, etMin, etMax);
341  //
342  histname = "h_SimConvTwoTracksEta";
343  h_SimConvTwoTracks_[0] =
344  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated #eta", etaBin2, etaMin, etaMax);
345  histname = "h_SimConvTwoTracksPhi";
346  h_SimConvTwoTracks_[1] =
347  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated #phi", phiBin, phiMin, phiMax);
348  histname = "h_SimConvTwoTracksR";
349  h_SimConvTwoTracks_[2] =
350  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated R", rBin, rMin, rMax);
351  histname = "h_SimConvTwoTracksZ";
352  h_SimConvTwoTracks_[3] =
353  iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated Z", zBin, zMin, zMax);
354  histname = "h_SimConvTwoTracksEt";
355  h_SimConvTwoTracks_[4] =
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";
365  h_SimConvOneMTracks_[2] =
366  iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated R", rBin, rMin, rMax);
367  histname = "h_SimConvOneMTracksZ";
368  h_SimConvOneMTracks_[3] =
369  iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated Z", zBin, zMin, zMax);
370  histname = "h_SimConvOneMTracksEt";
371  h_SimConvOneMTracks_[4] =
372  iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated Et", etBin, etMin, etMax);
373  //
374  histname = "h_SimConvTwoMTracksEtaAndVtxPGT0";
375  h_SimConvTwoMTracksAndVtxPGT0_[0] = iBooker.book1D(
376  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #eta", etaBin2, etaMin, etaMax);
377  histname = "h_SimConvTwoMTracksPhiAndVtxPGT0";
378  h_SimConvTwoMTracksAndVtxPGT0_[1] = iBooker.book1D(
379  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #phi", phiBin, phiMin, phiMax);
380  histname = "h_SimConvTwoMTracksRAndVtxPGT0";
381  h_SimConvTwoMTracksAndVtxPGT0_[2] = iBooker.book1D(
382  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated R", rBin, rMin, rMax);
383  histname = "h_SimConvTwoMTracksZAndVtxPGT0";
384  h_SimConvTwoMTracksAndVtxPGT0_[3] = iBooker.book1D(
385  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Z", zBin, zMin, zMax);
386  histname = "h_SimConvTwoMTracksEtAndVtxPGT0";
387  h_SimConvTwoMTracksAndVtxPGT0_[4] = iBooker.book1D(
388  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Et", etBin, etMin, etMax);
389  //
390  histname = "h_SimConvTwoMTracksEtaAndVtxPGT0005";
391  h_SimConvTwoMTracksAndVtxPGT0005_[0] = iBooker.book1D(
392  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #eta", etaBin2, etaMin, etaMax);
393  histname = "h_SimConvTwoMTracksPhiAndVtxPGT0005";
394  h_SimConvTwoMTracksAndVtxPGT0005_[1] = iBooker.book1D(
395  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #phi", phiBin, phiMin, phiMax);
396  histname = "h_SimConvTwoMTracksRAndVtxPGT0005";
397  h_SimConvTwoMTracksAndVtxPGT0005_[2] = iBooker.book1D(
398  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated R", rBin, rMin, rMax);
399  histname = "h_SimConvTwoMTracksZAndVtxPGT0005";
400  h_SimConvTwoMTracksAndVtxPGT0005_[3] = iBooker.book1D(
401  histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Z", zBin, zMin, zMax);
402  histname = "h_SimConvTwoMTracksEtAndVtxPGT0005";
403  h_SimConvTwoMTracksAndVtxPGT0005_[4] = iBooker.book1D(
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_)
501  h2_r9VsEtaBkg_ =
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_)
562  h2_sigmaIetaIetaVsEtaBkg_ = iBooker.book2D(
563  histname + "All", " Bkg photons sigmaIetaIeta vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
564  histname = "pSigmaIetaIetaVsEtaBkg";
565  if (!isRunCentrally_)
566  p_sigmaIetaIetaVsEtaBkg_ = iBooker.bookProfile(
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_)
582  p_sigmaIetaIetaVsEtBkg_[0] = iBooker.bookProfile(
583  histname + "All", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
584  if (!isRunCentrally_)
585  p_sigmaIetaIetaVsEtBkg_[1] = iBooker.bookProfile(
586  histname + "Barrel", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
587  if (!isRunCentrally_)
588  p_sigmaIetaIetaVsEtBkg_[2] = iBooker.bookProfile(
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_)
598  p_hOverEVsEtaBkg_ =
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_)
602  p_hOverEVsEtBkg_ =
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";
606  h2_hOverEVsEtaBkg_ =
607  iBooker.book2D(histname + "All", " Bkg H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
608  //
609  histname = "hOverEVsEtBkg";
610  h2_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";
615  h_ecalRecHitSumEtConeDR04Bkg_[0] =
616  iBooker.book1D(histname + "All", "bkg ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 50.);
617  h_ecalRecHitSumEtConeDR04Bkg_[1] =
618  iBooker.book1D(histname + "Barrel", "bkg ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 50.);
619  h_ecalRecHitSumEtConeDR04Bkg_[2] =
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";
738  h_hcalTowerSumEtConeDR04Bkg_[0] =
739  iBooker.book1D(histname + "All", "bkg hcalTowerSumEtDR04: All Ecal", etBin, etMin, 20.);
740  h_hcalTowerSumEtConeDR04Bkg_[1] =
741  iBooker.book1D(histname + "Barrel", "bkg hcalTowerSumEtDR04: Barrel ", etBin, etMin, 20.);
742  h_hcalTowerSumEtConeDR04Bkg_[2] =
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";
790  h_isoTrkSolidConeDR04Bkg_[0] =
791  iBooker.book1D(histname + "All", "isoTrkSolidConeDR04 Bkg: All Ecal", etBin, etMin, etMax * 0.1);
792  h_isoTrkSolidConeDR04Bkg_[1] =
793  iBooker.book1D(histname + "Barrel", "isoTrkSolidConeDR04 Bkg: Barrel ", etBin, etMin, etMax * 0.1);
794  h_isoTrkSolidConeDR04Bkg_[2] =
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_)
882  h2_nTrkSolidConeDR04VsEtaBkg_ = iBooker.book2D(
883  histname + "All", " Bkg photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
884  histname = "p_nTrkSolidConeDR04VsEtaBkg";
885  if (!isRunCentrally_)
886  p_nTrkSolidConeDR04VsEtaBkg_ = iBooker.bookProfile(
887  histname + "All", " Bkg photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
888  //
889  histname = "nTrkSolidConeDR04VsEtBkg";
890  if (!isRunCentrally_)
891  h2_nTrkSolidConeDR04VsEtBkg_[0] = iBooker.book2D(
892  histname + "All", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
893  if (!isRunCentrally_)
894  h2_nTrkSolidConeDR04VsEtBkg_[1] = iBooker.book2D(
895  histname + "Barrel", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
896  if (!isRunCentrally_)
897  h2_nTrkSolidConeDR04VsEtBkg_[2] = iBooker.book2D(
898  histname + "Endcap", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
899  //
900  histname = "pnTrkSolidConeDR04VsEtBkg";
901  if (!isRunCentrally_)
902  p_nTrkSolidConeDR04VsEtBkg_[0] = iBooker.bookProfile(
903  histname + "All", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
904  if (!isRunCentrally_)
905  p_nTrkSolidConeDR04VsEtBkg_[1] = iBooker.bookProfile(
906  histname + "Barrel", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
907  if (!isRunCentrally_)
908  p_nTrkSolidConeDR04VsEtBkg_[2] = iBooker.bookProfile(
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";
953  h_DPhiTracksAtVtxBkg_[0] =
954  iBooker.book1D(histname + "All",
955  " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",
958  dPhiTracksMax);
959  h_DPhiTracksAtVtxBkg_[1] =
960  iBooker.book1D(histname + "Barrel",
961  " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",
964  dPhiTracksMax);
965  h_DPhiTracksAtVtxBkg_[2] =
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";
1192  h_ecalRecHitSumEtConeDR04_[0][0] =
1193  iBooker.book1D(histname + "All", "ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 20.);
1194  h_ecalRecHitSumEtConeDR04_[0][1] =
1195  iBooker.book1D(histname + "Barrel", "ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 20.);
1196  h_ecalRecHitSumEtConeDR04_[0][2] =
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";
1297  h_hcalTowerSumEtConeDR04_[0][0] =
1298  iBooker.book1D(histname + "All", "hcalTowerSumEtConeDR04: All Ecal", etBin, etMin, 20.);
1299  h_hcalTowerSumEtConeDR04_[0][1] =
1300  iBooker.book1D(histname + "Barrel", "hcalTowerSumEtConeDR04: Barrel ", etBin, etMin, 20.);
1301  h_hcalTowerSumEtConeDR04_[0][2] =
1302  iBooker.book1D(histname + "Endcap", "hcalTowerSumEtConeDR04: Endcap ", etBin, etMin, 20.);
1303  //
1304  histname = "hcalTowerBcSumEtConeDR04";
1305  if (!isRunCentrally_)
1306  h_hcalTowerBcSumEtConeDR04_[0][0] =
1307  iBooker.book1D(histname + "All", "hcalTowerBcSumEtConeDR04: All Ecal", etBin, etMin, 20.);
1308  h_hcalTowerBcSumEtConeDR04_[0][1] =
1309  iBooker.book1D(histname + "Barrel", "hcalTowerBcSumEtConeDR04: Barrel ", etBin, etMin, 20.);
1310  h_hcalTowerBcSumEtConeDR04_[0][2] =
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";
1984  h_nCluOutsideMustache_[0] =
1985  iBooker.book1D(histname + "All", "PF number of clusters outside Mustache: All Ecal", 50, 0., 50.);
1986  h_nCluOutsideMustache_[1] =
1987  iBooker.book1D(histname + "Barrel", "PF number of clusters outside Mustache: Barrel", 50, 0., 50.);
1988  h_nCluOutsideMustache_[2] =
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";
2000  h_SumPtOverPhoPt_ChHad_Cleaned_[0] =
2001  iBooker.book1D(histname + "All", "Pf Cand SumPt/P_{T}_{#gamma}: Charged Hadrons: All Ecal", etBin, etMin, 2.);
2002  h_SumPtOverPhoPt_ChHad_Cleaned_[1] =
2003  iBooker.book1D(histname + "Barrel", "PF Cand SumPt/P_{T}_{#gamma}: Charged Hadrons: Barrel", etBin, etMin, 2.);
2004  h_SumPtOverPhoPt_ChHad_Cleaned_[2] =
2005  iBooker.book1D(histname + "Endcap", "PF Cand SumPt/P_{T}_{#gamma}: Charged Hadrons: Endcap", etBin, etMin, 2.);
2006  histname = "SumPtOverPhoPt_NeuHad_Cleaned";
2007  h_SumPtOverPhoPt_NeuHad_Cleaned_[0] =
2008  iBooker.book1D(histname + "All", "Pf Cand SumPt/P_{T}_{#gamma}: Neutral Hadrons: All Ecal", etBin, etMin, 2.);
2009  h_SumPtOverPhoPt_NeuHad_Cleaned_[1] =
2010  iBooker.book1D(histname + "Barrel", "PF Cand SumPt/P_{T}_{#gamma}: Neutral Hadrons: Barrel", etBin, etMin, 2.);
2011  h_SumPtOverPhoPt_NeuHad_Cleaned_[2] =
2012  iBooker.book1D(histname + "Endcap", "PF Cand SumPt/P_{T}_{#gamma}: Neutral Hadrons: Endcap", etBin, etMin, 2.);
2013  histname = "SumPtOverPhoPt_Pho_Cleaned";
2014  h_SumPtOverPhoPt_Pho_Cleaned_[0] =
2015  iBooker.book1D(histname + "All", "Pf Cand SumPt/P_{T}_{#gamma}: Photons: All Ecal", etBin, etMin, 2.);
2016  h_SumPtOverPhoPt_Pho_Cleaned_[1] =
2017  iBooker.book1D(histname + "Barrel", "PF Cand SumPt/P_{T}_{#gamma}: Photons: Barrel", etBin, etMin, 2.);
2018  h_SumPtOverPhoPt_Pho_Cleaned_[2] =
2019  iBooker.book1D(histname + "Endcap", "PF Cand SumPt/P_{T}_{#gamma}: Photons: Endcap", etBin, etMin, 2.);
2020 
2021  histname = "dRPhoPFcand_ChHad_Cleaned";
2022  h_dRPhoPFcand_ChHad_Cleaned_[0] =
2023  iBooker.book1D(histname + "All", "dR(pho,cand) Charged Hadrons : All Ecal", etBin, etMin, 0.7);
2024  h_dRPhoPFcand_ChHad_Cleaned_[1] =
2025  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Charged Hadrons : Barrel", etBin, etMin, 0.7);
2026  h_dRPhoPFcand_ChHad_Cleaned_[2] =
2027  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Charged Hadrons : Endcap", etBin, etMin, 0.7);
2028  histname = "dRPhoPFcand_NeuHad_Cleaned";
2029  h_dRPhoPFcand_NeuHad_Cleaned_[0] =
2030  iBooker.book1D(histname + "All", "dR(pho,cand) Neutral Hadrons : All Ecal", etBin, etMin, 0.7);
2031  h_dRPhoPFcand_NeuHad_Cleaned_[1] =
2032  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Neutral Hadrons : Barrel", etBin, etMin, 0.7);
2033  h_dRPhoPFcand_NeuHad_Cleaned_[2] =
2034  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Neutral Hadrons : Endcap", etBin, etMin, 0.7);
2035  histname = "dRPhoPFcand_Pho_Cleaned";
2036  h_dRPhoPFcand_Pho_Cleaned_[0] =
2037  iBooker.book1D(histname + "All", "dR(pho,cand) Photons : All Ecal", etBin, etMin, 0.7);
2038  h_dRPhoPFcand_Pho_Cleaned_[1] =
2039  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Photons : Barrel", etBin, etMin, 0.7);
2040  h_dRPhoPFcand_Pho_Cleaned_[2] =
2041  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Photons : Endcap", etBin, etMin, 0.7);
2042 
2043  //
2044  histname = "SumPtOverPhoPt_ChHad_unCleaned";
2045  h_SumPtOverPhoPt_ChHad_unCleaned_[0] =
2046  iBooker.book1D(histname + "All", "Pf Cand Sum Pt Over photon pt Charged Hadrons : All Ecal", etBin, etMin, 2.);
2047  h_SumPtOverPhoPt_ChHad_unCleaned_[1] =
2048  iBooker.book1D(histname + "Barrel", "PF Cand Sum Pt Over photon pt Charged Hadrons: Barrel", etBin, etMin, 2.);
2049  h_SumPtOverPhoPt_ChHad_unCleaned_[2] =
2050  iBooker.book1D(histname + "Endcap", "PF Cand Sum Pt Over photon pt Charged Hadrons: Endcap", etBin, etMin, 2.);
2051  histname = "SumPtOverPhoPt_NeuHad_unCleaned";
2052  h_SumPtOverPhoPt_NeuHad_unCleaned_[0] =
2053  iBooker.book1D(histname + "All", "Pf Cand Sum Pt Over photon pt Neutral Hadrons : All Ecal", etBin, etMin, 2.);
2054  h_SumPtOverPhoPt_NeuHad_unCleaned_[1] =
2055  iBooker.book1D(histname + "Barrel", "PF Cand Sum Pt Over photon pt Neutral Hadrons: Barrel", etBin, etMin, 2.);
2056  h_SumPtOverPhoPt_NeuHad_unCleaned_[2] =
2057  iBooker.book1D(histname + "Endcap", "PF Cand Sum Pt Over photon pt Neutral Hadrons: Endcap", etBin, etMin, 2.);
2058  histname = "SumPtOverPhoPt_Pho_unCleaned";
2059  h_SumPtOverPhoPt_Pho_unCleaned_[0] =
2060  iBooker.book1D(histname + "All", "Pf Cand Sum Pt Over photon pt Photons: All Ecal", etBin, etMin, 2.);
2061  h_SumPtOverPhoPt_Pho_unCleaned_[1] =
2062  iBooker.book1D(histname + "Barrel", "PF Cand Sum Pt Over photon pt Photons: Barrel", etBin, etMin, 2.);
2063  h_SumPtOverPhoPt_Pho_unCleaned_[2] =
2064  iBooker.book1D(histname + "Endcap", "PF Cand Sum Pt Over photon pt Photons: Endcap", etBin, etMin, 2.);
2065  histname = "dRPhoPFcand_ChHad_unCleaned";
2066  h_dRPhoPFcand_ChHad_unCleaned_[0] =
2067  iBooker.book1D(histname + "All", "dR(pho,cand) Charged Hadrons : All Ecal", etBin, etMin, 0.7);
2068  h_dRPhoPFcand_ChHad_unCleaned_[1] =
2069  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Charged Hadrons : Barrel", etBin, etMin, 0.7);
2070  h_dRPhoPFcand_ChHad_unCleaned_[2] =
2071  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Charged Hadrons : Endcap", etBin, etMin, 0.7);
2072  histname = "dRPhoPFcand_NeuHad_unCleaned";
2073  h_dRPhoPFcand_NeuHad_unCleaned_[0] =
2074  iBooker.book1D(histname + "All", "dR(pho,cand) Neutral Hadrons : All Ecal", etBin, etMin, 0.7);
2075  h_dRPhoPFcand_NeuHad_unCleaned_[1] =
2076  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Neutral Hadrons : Barrel", etBin, etMin, 0.7);
2077  h_dRPhoPFcand_NeuHad_unCleaned_[2] =
2078  iBooker.book1D(histname + "Endcap", "dR(pho,cand) Neutral Hadrons : Endcap", etBin, etMin, 0.7);
2079  histname = "dRPhoPFcand_Pho_unCleaned";
2080  h_dRPhoPFcand_Pho_unCleaned_[0] =
2081  iBooker.book1D(histname + "All", "dR(pho,cand) Photons: All Ecal", etBin, etMin, 0.7);
2082  h_dRPhoPFcand_Pho_unCleaned_[1] =
2083  iBooker.book1D(histname + "Barrel", "dR(pho,cand) Photons: Barrel", etBin, etMin, 0.7);
2084  h_dRPhoPFcand_Pho_unCleaned_[2] =
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";
2251  h_full5x5_sigmaIetaIeta_miniAOD_[0][0] =
2252  iBooker.book1D(histname + "All_miniAOD", "Full5x5 sigmaIetaIeta: All Ecal", 100, 0., 0.1);
2253  h_full5x5_sigmaIetaIeta_miniAOD_[0][1] =
2254  iBooker.book1D(histname + "Barrel_miniAOD", "Full5x5 sigmaIetaIeta: Barrel ", 100, 0., 0.05);
2255  h_full5x5_sigmaIetaIeta_miniAOD_[0][2] =
2256  iBooker.book1D(histname + "Endcap_miniAOD", "Full5x5 sigmaIetaIeta: Endcap ", 100, 0., 0.1);
2257  //
2258  histname = "ecalRecHitSumEtConeDR04";
2259  h_ecalRecHitSumEtConeDR04_miniAOD_[0][0] =
2260  iBooker.book1D(histname + "All_miniAOD", "ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 20.);
2261  h_ecalRecHitSumEtConeDR04_miniAOD_[0][1] =
2262  iBooker.book1D(histname + "Barrel_miniAOD", "ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 20.);
2263  h_ecalRecHitSumEtConeDR04_miniAOD_[0][2] =
2264  iBooker.book1D(histname + "Endcap_miniAOD", "ecalRecHitSumEtDR04: Endcap ", etBin, etMin, 20.);
2265  histname = "hcalTowerSumEtConeDR04";
2266  h_hcalTowerSumEtConeDR04_miniAOD_[0][0] =
2267  iBooker.book1D(histname + "All_miniAOD", "hcalTowerSumEtConeDR04: All Ecal", etBin, etMin, 20.);
2268  h_hcalTowerSumEtConeDR04_miniAOD_[0][1] =
2269  iBooker.book1D(histname + "Barrel_miniAOD", "hcalTowerSumEtConeDR04: Barrel ", etBin, etMin, 20.);
2270  h_hcalTowerSumEtConeDR04_miniAOD_[0][2] =
2271  iBooker.book1D(histname + "Endcap_miniAOD", "hcalTowerSumEtConeDR04: Endcap ", etBin, etMin, 20.);
2272  //
2273  histname = "hcalTowerBcSumEtConeDR04";
2274  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][0] =
2275  iBooker.book1D(histname + "All_miniAOD", "hcalTowerBcSumEtConeDR04: All Ecal", etBin, etMin, 20.);
2276  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][1] =
2277  iBooker.book1D(histname + "Barrel_miniAOD", "hcalTowerBcSumEtConeDR04: Barrel ", etBin, etMin, 20.);
2278  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][2] =
2279  iBooker.book1D(histname + "Endcap_miniAOD", "hcalTowerBcSumEtConeDR04: Endcap ", etBin, etMin, 20.);
2280  histname = "isoTrkSolidConeDR04";
2281  h_isoTrkSolidConeDR04_miniAOD_[0][0] =
2282  iBooker.book1D(histname + "All_miniAOD", "isoTrkSolidConeDR04: All Ecal", etBin, etMin, etMax * 0.1);
2283  h_isoTrkSolidConeDR04_miniAOD_[0][1] =
2284  iBooker.book1D(histname + "Barrel_miniAOD", "isoTrkSolidConeDR04: Barrel ", etBin, etMin, etMax * 0.1);
2285  h_isoTrkSolidConeDR04_miniAOD_[0][2] =
2286  iBooker.book1D(histname + "Endcap_miniAOD", "isoTrkSolidConeDR04: Endcap ", etBin, etMin, etMax * 0.1);
2287  histname = "nTrkSolidConeDR04";
2288  h_nTrkSolidConeDR04_miniAOD_[0][0] =
2289  iBooker.book1D(histname + "All_miniAOD", "nTrkSolidConeDR04: All Ecal", 20, 0., 20);
2290  h_nTrkSolidConeDR04_miniAOD_[0][1] =
2291  iBooker.book1D(histname + "Barrel_miniAOD", "nTrkSolidConeDR04: Barrel ", 20, 0., 20);
2292  h_nTrkSolidConeDR04_miniAOD_[0][2] =
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";
2445  h2_EoverEtrueVsEoverP_[0] =
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";
2452  h2_PoverPtrueVsEoverP_[0] =
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")
2608  h2_DPhiTracksAtEcalVsEta_ =
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";
2620  p_DPhiTracksAtVtxVsEta_ =
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";
2671  p_DCotTracksVsR_ =
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 
2851  h_convVtxdX_barrel_ =
2852  iBooker.book1D("convVtxdX_barrel", " Photon Reco conversion vtx dX, |eta|<=1.2", 100, -20., 20.);
2853  h_convVtxdY_barrel_ =
2854  iBooker.book1D("convVtxdY_barrel", " Photon Reco conversion vtx dY, |eta|<=1.2 ", 100, -20., 20.);
2855  h_convVtxdZ_barrel_ =
2856  iBooker.book1D("convVtxdZ_barrel", " Photon Reco conversion vtx dZ, |eta|<=1.2,", 100, -20., 20.);
2857  h_convVtxdR_barrel_ =
2858  iBooker.book1D("convVtxdR_barrel", " Photon Reco conversion vtx dR, |eta|<=1.2", 100, -20., 20.);
2859  h_convVtxdX_endcap_ =
2860  iBooker.book1D("convVtxdX_endcap", " Photon Reco conversion vtx dX, |eta|>1.2", 100, -20., 20.);
2861  h_convVtxdY_endcap_ =
2862  iBooker.book1D("convVtxdY_endcap", " Photon Reco conversion vtx dY, |eta|>1.2", 100, -20., 20.);
2863  h_convVtxdZ_endcap_ =
2864  iBooker.book1D("convVtxdZ_endcap", " Photon Reco conversion vtx dZ, |eta|>1.2", 100, -20., 20.);
2865  h_convVtxdR_endcap_ =
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_) {
2872  h2_convVtxdRVsR_ =
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";
3126  h_RecoConvTwoTracks_[0] =
3127  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated #eta", etaBin2, etaMin, etaMax);
3128  histname = "h_RecoConvTwoTracksPhi";
3129  h_RecoConvTwoTracks_[1] =
3130  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated #phi", phiBin, phiMin, phiMax);
3131  histname = "h_RecoConvTwoTracksR";
3132  h_RecoConvTwoTracks_[2] =
3133  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated R", rBin, rMin, rMax);
3134  histname = "h_RecoConvTwoTracksZ";
3135  h_RecoConvTwoTracks_[3] =
3136  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated Z", zBin, zMin, zMax);
3137  histname = "h_RecoConvTwoTracksEt";
3138  h_RecoConvTwoTracks_[4] =
3139  iBooker.book1D(histname, " All reco conversions with 2 reco tracks: simulated Et", etBin, etMin, etMax);
3140  //
3141  histname = "h_RecoConvTwoMTracksEta";
3142  h_RecoConvTwoMTracks_[0] =
3143  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated #eta", etaBin2, etaMin, etaMax);
3144  histname = "h_RecoConvTwoMTracksPhi";
3145  h_RecoConvTwoMTracks_[1] =
3146  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated #phi", phiBin, phiMin, phiMax);
3147  histname = "h_RecoConvTwoMTracksR";
3148  h_RecoConvTwoMTracks_[2] =
3149  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated R", rBin, rMin, rMax);
3150  histname = "h_RecoConvTwoMTracksZ";
3151  h_RecoConvTwoMTracks_[3] =
3152  iBooker.book1D(histname, " All reco conversions with 2 reco-ass tracks: simulated Z", zBin, zMin, zMax);
3153  histname = "h_RecoConvTwoMTracksEt";
3154  h_RecoConvTwoMTracks_[4] =
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  theEventSetup.get<IdealMagneticFieldRecord>().get(theMF_);
3163 
3164  thePhotonMCTruthFinder_.reset(new PhotonMCTruthFinder());
3165 }
3166 
3167 void PhotonValidator::dqmEndRun(edm::Run const& r, edm::EventSetup const& theEventSetup) {
3168  thePhotonMCTruthFinder_.reset();
3169 }
3170 
3172  thePhotonMCTruthFinder_->clear();
3173  using namespace edm;
3174  // const float etaPhiDistance=0.01;
3175  // Fiducial region
3176  // const float TRK_BARL =0.9;
3177  const float BARL = 1.4442; // DAQ TDR p.290
3178  // const float END_LO = 1.566; // unused
3179  const float END_HI = 2.5;
3180  // Electron mass
3181  //const Float_t mElec= 0.000511;
3182 
3184  e.getByLabel("trackAssociatorByHitsForPhotonValidation", theHitsAssociator);
3186 
3187  nEvt_++;
3188  LogInfo("PhotonValidator") << "PhotonValidator Analyzing event number: " << e.id() << " Global Counter " << nEvt_
3189  << "\n";
3190 
3191  // get the geometry from the event setup:
3192  esup.get<CaloGeometryRecord>().get(theCaloGeom_);
3193 
3195  e.getByToken(offline_pvToken_, vtxH);
3196  h_nRecoVtx_->Fill(float(vtxH->size()));
3197 
3198  // Transform Track into TransientTrack (needed by the Vertex fitter)
3200  esup.get<TransientTrackRecord>().get("TransientTrackBuilder", theTTB);
3201 
3203  Handle<reco::PhotonCollection> photonHandle;
3204  e.getByToken(photonCollectionToken_, photonHandle);
3205  const reco::PhotonCollection photonCollection = *(photonHandle.product());
3206  if (!photonHandle.isValid()) {
3207  edm::LogError("PhotonProducer") << "Error! Can't get the Photon collection " << std::endl;
3208  return;
3209  }
3210 
3211  // Get the PF refined cluster collection
3212  Handle<reco::PFCandidateCollection> pfCandidateHandle;
3213  e.getByToken(pfCandidates_, pfCandidateHandle);
3214  if (!pfCandidateHandle.isValid()) {
3215  edm::LogError("PhotonValidator") << "Error! Can't get the product pfCandidates " << std::endl;
3216  }
3217 
3218  edm::Handle<edm::ValueMap<std::vector<reco::PFCandidateRef> > > phoToParticleBasedIsoMapHandle;
3219  edm::ValueMap<std::vector<reco::PFCandidateRef> > phoToParticleBasedIsoMap;
3220  if (fName_ == "pfPhotonValidator") {
3221  e.getByToken(particleBasedIso_token, phoToParticleBasedIsoMapHandle);
3222  if (!phoToParticleBasedIsoMapHandle.isValid()) {
3223  edm::LogInfo("PhotonValidator") << "Error! Can't get the product: valueMap photons to particle based iso "
3224  << std::endl;
3225  }
3226  phoToParticleBasedIsoMap = *(phoToParticleBasedIsoMapHandle.product());
3227  }
3228 
3229  Handle<edm::View<reco::Track> > outInTrkHandle;
3230  Handle<edm::View<reco::Track> > inOutTrkHandle;
3231  if (!fastSim_) {
3233  e.getByToken(conversionOITrackPr_Token_, outInTrkHandle);
3235  e.getByToken(conversionIOTrackPr_Token_, inOutTrkHandle);
3236 
3237  // Loop over Out In Tracks
3238  int iTrk = 0;
3239  int nHits = 0;
3240  for (View<reco::Track>::const_iterator iTk = outInTrkHandle->begin(); iTk != outInTrkHandle->end(); iTk++) {
3241  h_OIinnermostHitR_->Fill(sqrt(iTk->innerPosition().Perp2()));
3242  for (trackingRecHit_iterator itHits = iTk->extra()->recHitsBegin(); itHits != iTk->extra()->recHitsEnd();
3243  ++itHits) {
3244  if ((*itHits)->isValid()) {
3245  nHits++;
3246  }
3247  }
3248 
3249  iTrk++;
3250  }
3251 
3252  // Loop over In Out Tracks Barrel
3253  iTrk = 0;
3254  for (View<reco::Track>::const_iterator iTk = inOutTrkHandle->begin(); iTk != inOutTrkHandle->end(); iTk++) {
3255  h_IOinnermostHitR_->Fill(sqrt(iTk->innerPosition().Perp2()));
3256  nHits = 0;
3257  for (trackingRecHit_iterator itHits = iTk->extra()->recHitsBegin(); itHits != iTk->extra()->recHitsEnd();
3258  ++itHits) {
3259  if ((*itHits)->isValid()) {
3260  nHits++;
3261  }
3262  }
3263  iTrk++;
3264  }
3265 
3266  } // if !fastSim
3267 
3269  //get simtrack info
3270  std::vector<SimTrack> theSimTracks;
3271  std::vector<SimVertex> theSimVertices;
3274 
3275  if (!fastSim_) {
3276  e.getByToken(g4_simTk_Token_, SimTk);
3277  e.getByToken(g4_simVtx_Token_, SimVtx);
3278  } else {
3279  e.getByToken(famos_simTk_Token_, SimTk);
3280  e.getByToken(famos_simVtx_Token_, SimVtx);
3281  }
3282 
3283  theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end());
3284  theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end());
3285  std::vector<PhotonMCTruth> mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices);
3286 
3288  e.getByToken(hepMC_Token_, hepMC);
3289  const HepMC::GenEvent* myGenEvent = hepMC->GetEvent();
3290 
3292  e.getByToken(genpartToken_, genParticles);
3293 
3294  // get generated jets
3295  Handle<reco::GenJetCollection> GenJetsHandle;
3296  e.getByToken(genjets_Token_, GenJetsHandle);
3297  reco::GenJetCollection genJetCollection = *(GenJetsHandle.product());
3298 
3299  // Get electron tracking truth
3300  bool useTP = parameters_.getParameter<bool>("useTP");
3302  edm::Handle<TrackingParticleCollection> ElectronTPHandle;
3303  if (useTP) {
3304  if (!fastSim_) {
3305  e.getByToken(token_tp_, ElectronTPHandle);
3306  trackingParticles = *(ElectronTPHandle.product());
3307  }
3308  }
3309 
3311  std::vector<reco::PhotonCollection::const_iterator> StoRMatchedConvertedPhotons;
3312  reco::SimToRecoCollection OISimToReco;
3313  reco::SimToRecoCollection IOSimToReco;
3314  // Reco to Sim
3315  reco::RecoToSimCollection OIRecoToSim;
3316  reco::RecoToSimCollection IORecoToSim;
3317 
3318  if (useTP) {
3319  if (!fastSim_) {
3320  // Sim to Reco
3321  OISimToReco = trackAssociator->associateSimToReco(outInTrkHandle, ElectronTPHandle);
3322  IOSimToReco = trackAssociator->associateSimToReco(inOutTrkHandle, ElectronTPHandle);
3323  // Reco to Sim
3324  OIRecoToSim = trackAssociator->associateRecoToSim(outInTrkHandle, ElectronTPHandle);
3325  IORecoToSim = trackAssociator->associateRecoToSim(inOutTrkHandle, ElectronTPHandle);
3326  }
3327  }
3328  //
3329  vector<reco::SimToRecoCollection*> StoRCollPtrs;
3330  StoRCollPtrs.push_back(&OISimToReco);
3331  StoRCollPtrs.push_back(&IOSimToReco);
3332  vector<reco::RecoToSimCollection*> RtoSCollPtrs;
3333  RtoSCollPtrs.push_back(&OIRecoToSim);
3334  RtoSCollPtrs.push_back(&IORecoToSim);
3335  //
3336  for (int i = 0; i < 2; i++)
3337  nSimPho_[i] = 0;
3338  for (int i = 0; i < 2; i++)
3339  nSimConv_[i] = 0;
3340 
3341  std::vector<reco::PhotonRef> myPhotons;
3342 
3343  for (unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
3344  reco::PhotonRef phoRef(reco::PhotonRef(photonHandle, iPho));
3345  // for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
3346  if (fabs(phoRef->eta()) > 2.5)
3347  continue;
3348  myPhotons.push_back(phoRef);
3349  }
3350 
3351  std::sort(myPhotons.begin(), myPhotons.end(), sortPhotons());
3352  // if ( ! isRunCentrally_ ) {
3353  if (myPhotons.size() >= 2) {
3354  if (myPhotons[0]->et() > 40 && myPhotons[1]->et() > 25) {
3355  math::XYZTLorentzVector p12 = myPhotons[0]->p4() + myPhotons[1]->p4();
3356  math::XYZTLorentzVector p12_regr1 =
3357  myPhotons[0]->p4(reco::Photon::regression1) + myPhotons[1]->p4(reco::Photon::regression1);
3358  math::XYZTLorentzVector p12_regr2 =
3359  myPhotons[0]->p4(reco::Photon::regression2) + myPhotons[1]->p4(reco::Photon::regression2);
3360  float gamgamMass2 = p12.Dot(p12);
3361  float gamgamMass2_regr1 = p12_regr1.Dot(p12_regr1);
3362  float gamgamMass2_regr2 = p12_regr2.Dot(p12_regr2);
3363 
3365  if (gamgamMass2 > 0) {
3366  // total
3367  h_gamgamMass_[0][0]->Fill(sqrt(gamgamMass2));
3368  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3369  h_gamgamMass_[0][1]->Fill(sqrt(gamgamMass2));
3370  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3371  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3372  h_gamgamMass_[0][2]->Fill(sqrt(gamgamMass2));
3373  // Golden photons
3374  if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3375  h_gamgamMass_[1][0]->Fill(sqrt(gamgamMass2));
3376  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3377  h_gamgamMass_[1][1]->Fill(sqrt(gamgamMass2));
3378  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3379  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3380  h_gamgamMass_[1][2]->Fill(sqrt(gamgamMass2));
3381  }
3382  // both photons converted
3383  if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3384  if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3385  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3386  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3387  float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3388  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3389  if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3390  h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3391  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3392  h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3393  }
3394  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3395  (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3396  h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3397  }
3398  }
3399  }
3400  } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3401  myPhotons[1]->r9() > 0.93) { // one photon converted
3402  if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3403  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3404  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3405  if (chi2Prob1 > 0.0005) {
3406  h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3407  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3408  h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3409  }
3410  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3411  h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3412  }
3413  }
3414  }
3415  } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3416  myPhotons[0]->r9() > 0.93) { // one photon converted
3417  if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3418  float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3419  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3420  if (chi2Prob1 > 0.0005) {
3421  h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3422  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3423  h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3424  }
3425  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3426  h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3427  }
3428  }
3429  }
3430  }
3431  } // gamgamMass2 > 0
3432 
3434  if (gamgamMass2_regr1 > 0) {
3435  // total
3436  h_gamgamMassRegr1_[0][0]->Fill(sqrt(gamgamMass2_regr1));
3437  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3438  h_gamgamMassRegr1_[0][1]->Fill(sqrt(gamgamMass2_regr1));
3439  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3440  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3441  h_gamgamMassRegr1_[0][2]->Fill(sqrt(gamgamMass2_regr1));
3442  // Golden photons
3443  if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3444  h_gamgamMassRegr1_[1][0]->Fill(sqrt(gamgamMass2_regr1));
3445  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3446  h_gamgamMassRegr1_[1][1]->Fill(sqrt(gamgamMass2_regr1));
3447  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3448  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3449  h_gamgamMassRegr1_[1][2]->Fill(sqrt(gamgamMass2_regr1));
3450  }
3451 
3452  // both photons converted
3453  if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3454  if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3455  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3456  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3457  float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3458  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3459  if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3460  h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3461  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3462  h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3463  }
3464  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3465  (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3466  h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3467  }
3468  }
3469  }
3470  } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3471  myPhotons[1]->r9() > 0.93) { // one photon converted
3472  if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3473  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3474  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3475  if (chi2Prob1 > 0.0005) {
3476  h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3477  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3478  h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3479  }
3480  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3481  h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3482  }
3483  }
3484  }
3485  } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3486  myPhotons[0]->r9() > 0.93) { // one photon converted
3487  if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3488  float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3489  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3490  if (chi2Prob1 > 0.0005) {
3491  h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3492  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3493  h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3494  }
3495  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3496  h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3497  }
3498  }
3499  }
3500  }
3501  } // gamgamMass2_regr1 > 0
3502 
3504  if (gamgamMass2_regr2 > 0) {
3505  // total
3506  h_gamgamMassRegr2_[0][0]->Fill(sqrt(gamgamMass2_regr2));
3507  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3508  h_gamgamMassRegr2_[0][1]->Fill(sqrt(gamgamMass2_regr2));
3509  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3510  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3511  h_gamgamMassRegr2_[0][2]->Fill(sqrt(gamgamMass2_regr2));
3512  // Golden photons
3513  if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3514  h_gamgamMassRegr2_[1][0]->Fill(sqrt(gamgamMass2_regr2));
3515  if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3516  h_gamgamMassRegr2_[1][1]->Fill(sqrt(gamgamMass2_regr2));
3517  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3518  (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3519  h_gamgamMassRegr2_[1][2]->Fill(sqrt(gamgamMass2_regr2));
3520  }
3521 
3522  // both photons converted
3523  if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3524  if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3525  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3526  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3527  float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3528  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3529  if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3530  h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3531  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3532  h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3533  }
3534  if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3535  (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3536  h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3537  }
3538  }
3539  }
3540  } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3541  myPhotons[1]->r9() > 0.93) { // one photon converted
3542  if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3543  float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3544  myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3545  if (chi2Prob1 > 0.0005) {
3546  h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3547  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3548  h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3549  }
3550  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3551  h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3552  }
3553  }
3554  }
3555  } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3556  myPhotons[0]->r9() > 0.93) { // one photon converted
3557  if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3558  float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3559  myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3560  if (chi2Prob1 > 0.0005) {
3561  h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3562  if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3563  h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3564  }
3565  if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3566  h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3567  }
3568  }
3569  }
3570  }
3571  } // gamgamMass2_regr2 > 0
3572  }
3573  }
3574  // }
3575 
3576  for (std::vector<PhotonMCTruth>::const_iterator mcPho = mcPhotons.begin(); mcPho != mcPhotons.end(); mcPho++) {
3577  if ((*mcPho).fourMomentum().et() < minPhoEtCut_)
3578  continue;
3579 
3580  for (HepMC::GenEvent::particle_const_iterator mcIter = myGenEvent->particles_begin();
3581  mcIter != myGenEvent->particles_end();
3582  mcIter++) {
3583  if ((*mcIter)->pdg_id() != 22)
3584  continue;
3585  bool isTheSame = false;
3586  HepMC::GenParticle* mother = nullptr;
3587  if ((*mcIter)->production_vertex()) {
3588  if ((*mcIter)->production_vertex()->particles_begin(HepMC::parents) !=
3589  (*mcIter)->production_vertex()->particles_end(HepMC::parents))
3590  mother = *((*mcIter)->production_vertex()->particles_begin(HepMC::parents));
3591  }
3592 
3593  float mcPhi = (*mcPho).fourMomentum().phi();
3594  mcPhi_ = phiNormalization(mcPhi);
3595  mcEta_ = (*mcPho).fourMomentum().pseudoRapidity();
3596  mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z());
3597  mcConvR_ = (*mcPho).vertex().perp();
3598  mcConvX_ = (*mcPho).vertex().x();
3599  mcConvY_ = (*mcPho).vertex().y();
3600  mcConvZ_ = (*mcPho).vertex().z();
3601  mcConvEta_ = (*mcPho).vertex().eta();
3602  mcConvPhi_ = (*mcPho).vertex().phi();
3603 
3604  if (fabs(mcEta_) > END_HI)
3605  continue;
3606 
3607  if (mother == nullptr || (mother != nullptr && mother->pdg_id() == 22) ||
3608  (mother != nullptr && mother->pdg_id() == 25) || (mother != nullptr && mother->pdg_id() == 35)) {
3609  double dPt = fabs((*mcIter)->momentum().perp() - (*mcPho).fourMomentum().et());
3610  float phiMother = (*mcIter)->momentum().phi();
3611  double dPhi = phiNormalization(phiMother) - mcPhi_;
3612  double dEta = fabs((*mcIter)->momentum().eta() - (*mcPho).fourMomentum().pseudoRapidity());
3613 
3614  if (dEta <= 0.0001 && dPhi <= 0.0001 && dPt <= 0.0001)
3615  isTheSame = true;
3616  }
3617  if (!isTheSame)
3618  continue;
3619 
3620  nSimPho_[0]++;
3621  if (!isRunCentrally_) {
3622  h_SimPhoMotherEt_[0]->Fill((*mcPho).motherMomentum().et());
3623  h_SimPhoMotherEta_[0]->Fill((*mcPho).motherMomentum().pseudoRapidity());
3624  }
3625 
3626  h_SimPho_[0]->Fill(mcEta_);
3627  h_SimPho_[1]->Fill(mcPhi_);
3628  h_SimPho_[2]->Fill((*mcPho).fourMomentum().et());
3629 
3631 
3632  bool goodSimConversion = false;
3633  bool visibleConversion = false;
3634  bool visibleConversionsWithTwoSimTracks = false;
3635  if ((*mcPho).isAConversion() == 1) {
3636  nSimConv_[0]++;
3637  h_AllSimConv_[0]->Fill(mcEta_);
3638  h_AllSimConv_[1]->Fill(mcPhi_);
3639  h_AllSimConv_[2]->Fill(mcConvR_);
3640  h_AllSimConv_[3]->Fill(mcConvZ_);
3641  h_AllSimConv_[4]->Fill((*mcPho).fourMomentum().et());
3642 
3643  if (!isRunCentrally_) {
3644  if (mcConvR_ < 51)
3645  h_SimConvEtaPix_[0]->Fill(mcEta_);
3646  }
3647 
3648  if ((fabs(mcEta_) <= BARL && mcConvR_ < 85) ||
3649  (fabs(mcEta_) > BARL && fabs(mcEta_) <= END_HI && fabs((*mcPho).vertex().z()) < 210))
3650  visibleConversion = true;
3651 
3652  theConvTP_.clear();
3653  for (size_t i = 0; i < trackingParticles.size(); ++i) {
3654  TrackingParticleRef tp(ElectronTPHandle, i);
3655  if (fabs(tp->vx() - (*mcPho).vertex().x()) < 0.001 && fabs(tp->vy() - (*mcPho).vertex().y()) < 0.001 &&
3656  fabs(tp->vz() - (*mcPho).vertex().z()) < 0.001) {
3657  theConvTP_.push_back(tp);
3658  }
3659  }
3660  if (theConvTP_.size() == 2)
3661  visibleConversionsWithTwoSimTracks = true;
3662  goodSimConversion = false;
3663 
3664  if (visibleConversion && visibleConversionsWithTwoSimTracks)
3665  goodSimConversion = true;
3666  if (goodSimConversion) {
3667  nSimConv_[1]++;
3668  h_VisSimConv_[0]->Fill(mcEta_);
3669  h_VisSimConv_[1]->Fill(mcPhi_);
3670  h_VisSimConv_[2]->Fill(mcConvR_);
3671  h_VisSimConv_[3]->Fill(mcConvZ_);
3672  h_VisSimConv_[4]->Fill((*mcPho).fourMomentum().et());
3673 
3674  if (useTP) {
3675  if (!isRunCentrally_) {
3676  for (edm::RefVector<TrackingParticleCollection>::iterator iTrk = theConvTP_.begin();
3677  iTrk != theConvTP_.end();
3678  ++iTrk) {
3679  h_simTkPt_->Fill((*iTrk)->pt());
3680  h_simTkEta_->Fill((*iTrk)->eta());
3681  }
3682  }
3683  }
3684  }
3685  }
3686 
3687  float minDelta = 10000.;
3688  std::vector<reco::PhotonRef> thePhotons;
3689  int index = 0;
3690  int iMatch = -1;
3691  bool matched = false;
3692 
3693  for (unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
3694  reco::PhotonRef aPho(reco::PhotonRef(photonHandle, iPho));
3695  thePhotons.push_back(aPho);
3696  float phiPho = aPho->phi();
3697  float etaPho = aPho->eta();
3698  float deltaPhi = phiPho - mcPhi_;
3699  float deltaEta = etaPho - mcEta_;
3700  if (deltaPhi > pi)
3701  deltaPhi -= twopi;
3702  if (deltaPhi < -pi)
3703  deltaPhi += twopi;
3704  deltaPhi = pow(deltaPhi, 2);
3705  deltaEta = pow(deltaEta, 2);
3706  float delta = sqrt(deltaPhi + deltaEta);
3707  if (delta < 0.1 && delta < minDelta) {
3708  minDelta = delta;
3709  iMatch = index;
3710  }
3711  index++;
3712  } // end loop over reco photons
3713  if (iMatch > -1)
3714  matched = true;
3715 
3716  if (matched) {
3717  nSimPho_[1]++;
3718  if (!isRunCentrally_) {
3719  h_SimPhoMotherEt_[1]->Fill((*mcPho).motherMomentum().et());
3720  h_SimPhoMotherEta_[1]->Fill((*mcPho).motherMomentum().pseudoRapidity());
3721  }
3722  h_MatchedSimPho_[0]->Fill(mcEta_);
3723  h_MatchedSimPho_[1]->Fill(mcPhi_);
3724  h_MatchedSimPho_[2]->Fill((*mcPho).fourMomentum().et());
3725  }
3726 
3727  if (!matched)
3728  continue;
3729 
3730  bool phoIsInBarrel = false;
3731  bool phoIsInEndcap = false;
3732  bool phoIsInEndcapP = false;
3733  bool phoIsInEndcapM = false;
3734 
3735  reco::PhotonRef matchingPho = thePhotons[iMatch];
3736 
3737  if (fabs(matchingPho->superCluster()->position().eta()) < 1.479) {
3738  phoIsInBarrel = true;
3739  } else {
3740  phoIsInEndcap = true;
3741  if (matchingPho->superCluster()->position().eta() > 0)
3742  phoIsInEndcapP = true;
3743  if (matchingPho->superCluster()->position().eta() < 0)
3744  phoIsInEndcapM = true;
3745  }
3746 
3747  edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
3748  if (phoIsInBarrel) {
3749  // Get handle to rec hits ecal barrel
3750  e.getByToken(barrelEcalHits_, ecalRecHitHandle);
3751  if (!ecalRecHitHandle.isValid()) {
3752  Labels l;
3753  labelsForToken(barrelEcalHits_, l);
3754  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
3755  return;
3756  }
3757 
3758  } else if (phoIsInEndcap) {
3759  // Get handle to rec hits ecal encap
3760  e.getByToken(endcapEcalHits_, ecalRecHitHandle);
3761  if (!ecalRecHitHandle.isValid()) {
3762  Labels l;
3763  labelsForToken(barrelEcalHits_, l);
3764  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
3765  return;
3766  }
3767  }
3768 
3769  int type = 0;
3770  const EcalRecHitCollection ecalRecHitCollection = *(ecalRecHitHandle.product());
3771  float photonE = matchingPho->energy();
3772  float sigmaEoE = matchingPho->getCorrectedEnergyError(matchingPho->getCandidateP4type()) / matchingPho->energy();
3773  //float photonEt= matchingPho->energy()/cosh( matchingPho->eta()) ;
3774  float photonEt = matchingPho->pt();
3775  float photonERegr1 = matchingPho->getCorrectedEnergy(reco::Photon::regression1);
3776  float photonERegr2 = matchingPho->getCorrectedEnergy(reco::Photon::regression2);
3777  float r9 = matchingPho->r9();
3778  // float full5x5_r9 = matchingPho->full5x5_r9();
3779  float r1 = matchingPho->r1x5();
3780  float r2 = matchingPho->r2x5();
3781  float sigmaIetaIeta = matchingPho->sigmaIetaIeta();
3782  //float full5x5_sieie = matchingPho->full5x5_sigmaIetaIeta();
3783  float hOverE = matchingPho->hadronicOverEm();
3784  float newhOverE = matchingPho->hadTowOverEm();
3785  float ecalIso = matchingPho->ecalRecHitSumEtConeDR04();
3786  float hcalIso = matchingPho->hcalTowerSumEtConeDR04();
3787  float newhcalIso = matchingPho->hcalTowerSumEtBcConeDR04();
3788  float trkIso = matchingPho->trkSumPtSolidConeDR04();
3789  float nIsoTrk = matchingPho->nTrkSolidConeDR04();
3790  // PF related quantities
3791  float chargedHadIso = matchingPho->chargedHadronIso();
3792  float neutralHadIso = matchingPho->neutralHadronIso();
3793  float photonIso = matchingPho->photonIso();
3794  float etOutsideMustache = matchingPho->etOutsideMustache();
3795  int nClusterOutsideMustache = matchingPho->nClusterOutsideMustache();
3796  float pfMVA = matchingPho->pfMVA();
3797 
3798  std::vector<std::pair<DetId, float> >::const_iterator rhIt;
3799  bool atLeastOneDeadChannel = false;
3800  for (reco::CaloCluster_iterator bcIt = matchingPho->superCluster()->clustersBegin();
3801  bcIt != matchingPho->superCluster()->clustersEnd();
3802  ++bcIt) {
3803  for (rhIt = (*bcIt)->hitsAndFractions().begin(); rhIt != (*bcIt)->hitsAndFractions().end(); ++rhIt) {
3804  for (EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin(); it != ecalRecHitCollection.end();
3805  ++it) {
3806  if (rhIt->first == (*it).id()) {
3807  if ((*it).recoFlag() == 9) {
3808  atLeastOneDeadChannel = true;
3809  break;
3810  }
3811  }
3812  }
3813  }
3814  }
3815 
3816  if (atLeastOneDeadChannel) {
3817  h_MatchedSimPhoBadCh_[0]->Fill(mcEta_);
3818  h_MatchedSimPhoBadCh_[1]->Fill(mcPhi_);
3819  h_MatchedSimPhoBadCh_[2]->Fill((*mcPho).fourMomentum().et());
3820  }
3821 
3822  if (phoIsInBarrel)
3823  h_phoPixSeedSize_[0]->Fill(matchingPho->electronPixelSeeds().size());
3824  else
3825  h_phoPixSeedSize_[1]->Fill(matchingPho->electronPixelSeeds().size());
3826 
3827  h_scEta_[type]->Fill(matchingPho->superCluster()->eta());
3828  h_scPhi_[type]->Fill(matchingPho->superCluster()->phi());
3829  if (!isRunCentrally_) {
3830  h_scEtaWidth_[type]->Fill(matchingPho->superCluster()->etaWidth());
3831  h_scPhiWidth_[type]->Fill(matchingPho->superCluster()->phiWidth());
3832  }
3833  h_scE_[type][0]->Fill(matchingPho->superCluster()->energy());
3834  h_scEt_[type][0]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
3835  if (phoIsInEndcap)
3836  h_psE_->Fill(matchingPho->superCluster()->preshowerEnergy());
3837  //
3838  h_r9_[type][0]->Fill(r9);
3839  //
3840  h_r1_[type][0]->Fill(r1);
3841  //
3842  h_r2_[type][0]->Fill(r2);
3843  //
3844  h_sigmaIetaIeta_[type][0]->Fill(sigmaIetaIeta);
3845  //
3846  h_hOverE_[type][0]->Fill(hOverE);
3847  p_r9VsEta_[0]->Fill(mcEta_, r9);
3848 
3849  if (!isRunCentrally_) {
3850  h2_r9VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r9);
3851  h2_r1VsEta_[0]->Fill(mcEta_, r1);
3852  h2_r1VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r1);
3853  h2_r2VsEta_[0]->Fill(mcEta_, r2);
3854  h2_r2VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r2);
3855  h2_sigmaIetaIetaVsEta_[0]->Fill(mcEta_, sigmaIetaIeta);
3856  h2_sigmaIetaIetaVsEt_[0]->Fill((*mcPho).fourMomentum().et(), sigmaIetaIeta);
3857  h2_hOverEVsEta_[0]->Fill(mcEta_, hOverE);
3858  h2_hOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), hOverE);
3859  }
3860  p_hOverEVsEta_[0]->Fill(mcEta_, hOverE);
3861  p_hOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), hOverE);
3862  //
3863  h_newhOverE_[type][0]->Fill(newhOverE);
3864  p_newhOverEVsEta_[0]->Fill(mcEta_, newhOverE);
3865  p_newhOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), newhOverE);
3866 
3867  //
3868  h_ecalRecHitSumEtConeDR04_[type][0]->Fill(ecalIso);
3869  if (!isRunCentrally_) {
3870  h2_ecalRecHitSumEtConeDR04VsEta_[0]->Fill(mcEta_, ecalIso);
3871  h2_ecalRecHitSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), ecalIso);
3872  h2_hcalTowerSumEtConeDR04VsEta_[0]->Fill(mcEta_, hcalIso);
3873  h2_hcalTowerSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), hcalIso);
3874  }
3875  p_ecalRecHitSumEtConeDR04VsEta_[0]->Fill(mcEta_, ecalIso);
3876  if (!isRunCentrally_)
3877  p_ecalRecHitSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), ecalIso);
3878  //
3879  h_hcalTowerSumEtConeDR04_[type][0]->Fill(hcalIso);
3880  p_hcalTowerSumEtConeDR04VsEta_[0]->Fill(mcEta_, hcalIso);
3881  if (!isRunCentrally_)
3882  p_hcalTowerSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), hcalIso);
3883  //
3884  if (!isRunCentrally_)
3885  h_hcalTowerBcSumEtConeDR04_[type][0]->Fill(newhcalIso);
3886  p_hcalTowerBcSumEtConeDR04VsEta_[0]->Fill(mcEta_, newhcalIso);
3887  if (!isRunCentrally_)
3888  p_hcalTowerBcSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
3889  //
3890  h_isoTrkSolidConeDR04_[type][0]->Fill(trkIso);
3891  h_nTrkSolidConeDR04_[type][0]->Fill(nIsoTrk);
3892 
3893  if (!isRunCentrally_) {
3894  h2_isoTrkSolidConeDR04VsEta_[0]->Fill(mcEta_, trkIso);
3895  h2_isoTrkSolidConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), trkIso);
3896  h2_nTrkSolidConeDR04VsEta_[0]->Fill(mcEta_, nIsoTrk);
3897  h2_nTrkSolidConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), nIsoTrk);
3898  }
3899 
3900  h_chHadIso_[0]->Fill(chargedHadIso);
3901  h_nHadIso_[0]->Fill(neutralHadIso);
3902  h_phoIso_[0]->Fill(photonIso);
3903  h_nCluOutsideMustache_[0]->Fill(float(nClusterOutsideMustache));
3904  h_etOutsideMustache_[0]->Fill(etOutsideMustache);
3905  h_pfMva_[0]->Fill(pfMVA);
3906  //
3907  h_phoEta_[type]->Fill(matchingPho->eta());
3908  h_phoPhi_[type]->Fill(matchingPho->phi());
3909  h_phoDEta_[0]->Fill(matchingPho->eta() - (*mcPho).fourMomentum().eta());
3910  h_phoDPhi_[0]->Fill(matchingPho->phi() - mcPhi_);
3911  h_phoE_[type][0]->Fill(photonE);
3912  h_phoEt_[type][0]->Fill(photonEt);
3913  h_nConv_[0][0]->Fill(float(matchingPho->conversions().size()));
3914  h_nConv_[1][0]->Fill(float(matchingPho->conversionsOneLeg().size()));
3915 
3916  //
3917  h_phoERes_[0][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3918  h_phoSigmaEoE_[0][0]->Fill(sigmaEoE);
3919  h_phoEResRegr1_[0][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3920  h_phoEResRegr2_[0][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3921 
3922  p_eResVsEta_[0]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3923  p_sigmaEoEVsEta_[0]->Fill(mcEta_, sigmaEoE);
3924  p_eResVsEt_[0][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3925 
3926  if (!isRunCentrally_)
3927  h2_eResVsEta_[0]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3928  if (!isRunCentrally_)
3929  h2_eResVsEt_[0][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3930  if (!isRunCentrally_)
3931  h2_eResVsR9_[0]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
3932  if (!isRunCentrally_)
3933  h2_sceResVsR9_[0]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
3934  if (!isRunCentrally_)
3935  p_eResVsR9_[0]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
3936  if (!isRunCentrally_)
3937  p_sceResVsR9_[0]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
3938  //
3939  if ((*mcPho).isAConversion() == 0) {
3940  if (!isRunCentrally_) {
3941  h2_eResVsEta_[1]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3942  h2_r9VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r9);
3943  //
3944  h2_r1VsEta_[1]->Fill(mcEta_, r1);
3945  h2_r1VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r1);
3946  //
3947  h2_r2VsEta_[1]->Fill(mcEta_, r2);
3948  h2_r2VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r2);
3949  //
3950  h2_sigmaIetaIetaVsEta_[1]->Fill(mcEta_, sigmaIetaIeta);
3951  h2_sigmaIetaIetaVsEt_[1]->Fill((*mcPho).fourMomentum().et(), sigmaIetaIeta);
3952  //
3953  h2_hOverEVsEta_[1]->Fill(mcEta_, hOverE);
3954  h2_hOverEVsEt_[1]->Fill((*mcPho).fourMomentum().et(), hOverE);
3955  }
3956 
3957  if (!isRunCentrally_) {
3958  h2_ecalRecHitSumEtConeDR04VsEta_[1]->Fill(mcEta_, ecalIso);
3959  h2_hcalTowerSumEtConeDR04VsEta_[1]->Fill(mcEta_, hcalIso);
3960  h2_isoTrkSolidConeDR04VsEta_[1]->Fill(mcEta_, trkIso);
3961  h2_isoTrkSolidConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), trkIso);
3962  h2_nTrkSolidConeDR04VsEta_[1]->Fill(mcEta_, nIsoTrk);
3963  h2_nTrkSolidConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), nIsoTrk);
3964  }
3965  p_ecalRecHitSumEtConeDR04VsEta_[1]->Fill(mcEta_, ecalIso);
3966  if (!isRunCentrally_)
3967  p_hcalTowerSumEtConeDR04VsEta_[1]->Fill(mcEta_, hcalIso);
3968  }
3969 
3970  if (photonE / (*mcPho).fourMomentum().e() < 0.3 && photonE / (*mcPho).fourMomentum().e() > 0.1) {
3971  }
3972 
3973  if ((r9 > 0.94 && phoIsInBarrel) || (r9 > 0.95 && phoIsInEndcap)) {
3974  h_phoERes_[1][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3975  h_phoSigmaEoE_[1][0]->Fill(sigmaEoE);
3976  h_phoEResRegr1_[1][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3977  h_phoEResRegr2_[1][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3978  if (!isRunCentrally_)
3979  h2_eResVsEt_[0][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3980  p_eResVsEt_[0][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3981  p_eResVsEta_[1]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3982  p_r9VsEta_[1]->Fill(mcEta_, r9);
3983  p_sigmaEoEVsEta_[1]->Fill(mcEta_, sigmaEoE);
3984 
3985  } else if ((r9 <= 0.94 && phoIsInBarrel) || (r9 <= 0.95 && phoIsInEndcap)) {
3986  h_phoERes_[2][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3987  h_phoSigmaEoE_[2][0]->Fill(sigmaEoE);
3988  h_phoEResRegr1_[2][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3989  h_phoEResRegr2_[2][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3990  p_eResVsEt_[0][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3991  p_eResVsEta_[2]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3992  p_r9VsEta_[2]->Fill(mcEta_, r9);
3993  p_sigmaEoEVsEta_[2]->Fill(mcEta_, sigmaEoE);
3994 
3995  if (!isRunCentrally_) {
3996  h2_eResVsEt_[0][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3997  h_EtR9Less093_[0][0]->Fill(photonEt);
3998  }
3999  }
4000 
4001  if (phoIsInBarrel) {
4002  h_scE_[type][1]->Fill(matchingPho->superCluster()->energy());
4003  h_scEt_[type][1]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
4004  h_r9_[type][1]->Fill(r9);
4005  h_r1_[type][1]->Fill(r1);
4006  h_r2_[type][1]->Fill(r2);
4007  h_sigmaIetaIeta_[type][1]->Fill(sigmaIetaIeta);
4008  h_hOverE_[type][1]->Fill(hOverE);
4009  h_newhOverE_[type][1]->Fill(newhOverE);
4010  h_ecalRecHitSumEtConeDR04_[type][1]->Fill(ecalIso);
4011  p_ecalRecHitSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4012  h_hcalTowerSumEtConeDR04_[type][1]->Fill(hcalIso);
4013  p_hcalTowerSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4014  h_hcalTowerBcSumEtConeDR04_[type][1]->Fill(newhcalIso);
4015  p_hcalTowerBcSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
4016  h_isoTrkSolidConeDR04_[type][1]->Fill(trkIso);
4017  h_nTrkSolidConeDR04_[type][1]->Fill(nIsoTrk);
4018  h_chHadIso_[1]->Fill(chargedHadIso);
4019  h_nHadIso_[1]->Fill(neutralHadIso);
4020  h_phoIso_[1]->Fill(photonIso);
4021  h_nCluOutsideMustache_[1]->Fill(float(nClusterOutsideMustache));
4022  h_etOutsideMustache_[1]->Fill(etOutsideMustache);
4023  h_pfMva_[1]->Fill(pfMVA);
4024  h_phoE_[type][1]->Fill(photonE);
4025  h_phoEt_[type][1]->Fill(photonEt);
4026  h_nConv_[type][1]->Fill(float(matchingPho->conversions().size()));
4027  h_nConv_[1][1]->Fill(float(matchingPho->conversionsOneLeg().size()));
4028  h_phoERes_[0][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4029  h_phoSigmaEoE_[0][1]->Fill(sigmaEoE);
4030  h_phoEResRegr1_[0][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4031  h_phoEResRegr2_[0][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4032  p_eResVsR9_[1]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4033  p_sceResVsR9_[1]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4034  if (!isRunCentrally_) {
4035  h2_eResVsR9_[1]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4036  h2_sceResVsR9_[1]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4037  h2_ecalRecHitSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4038  h2_hcalTowerSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4039  h2_eResVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4040  }
4041  p_eResVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4042  p_eResVsNVtx_[1][0]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4043  p_sigmaEoEVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4044  p_sigmaEoEVsNVtx_[1][0]->Fill(float(vtxH->size()), sigmaEoE);
4045 
4046  if (r9 > 0.94) {
4047  h_phoERes_[1][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4048  h_phoSigmaEoE_[1][1]->Fill(sigmaEoE);
4049  h_phoEResRegr1_[1][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4050  h_phoEResRegr2_[1][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4051  if (!isRunCentrally_)
4052  h2_eResVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4053  p_eResVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4054  p_eResVsNVtx_[1][1]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4055  p_sigmaEoEVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4056  p_sigmaEoEVsNVtx_[1][1]->Fill(float(vtxH->size()), sigmaEoE);
4057  }
4058  if (r9 <= 0.94) {
4059  h_phoERes_[2][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4060  h_phoSigmaEoE_[2][1]->Fill(sigmaEoE);
4061  h_phoEResRegr1_[2][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4062  h_phoEResRegr2_[2][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4063  p_eResVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4064  p_eResVsNVtx_[1][2]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4065  p_sigmaEoEVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4066  p_sigmaEoEVsNVtx_[1][2]->Fill(float(vtxH->size()), sigmaEoE);
4067  if (!isRunCentrally_) {
4068  h2_eResVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4069  h_EtR9Less093_[0][1]->Fill(photonEt);
4070  }
4071  }
4072  }
4073  if (phoIsInEndcap) {
4074  h_scE_[type][2]->Fill(matchingPho->superCluster()->energy());
4075  h_scEt_[type][2]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
4076  h_r9_[type][2]->Fill(r9);
4077  h_r1_[type][2]->Fill(r1);
4078  h_r2_[type][2]->Fill(r2);
4079  h_sigmaIetaIeta_[type][2]->Fill(sigmaIetaIeta);
4080  h_hOverE_[type][2]->Fill(hOverE);
4081  h_newhOverE_[type][2]->Fill(newhOverE);
4082  h_ecalRecHitSumEtConeDR04_[type][2]->Fill(ecalIso);
4083  p_ecalRecHitSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4084  h_hcalTowerSumEtConeDR04_[type][2]->Fill(hcalIso);
4085  p_hcalTowerSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4086  h_hcalTowerBcSumEtConeDR04_[type][2]->Fill(newhcalIso);
4087  p_hcalTowerBcSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
4088  h_isoTrkSolidConeDR04_[type][2]->Fill(trkIso);
4089  h_nTrkSolidConeDR04_[type][2]->Fill(nIsoTrk);
4090  h_chHadIso_[2]->Fill(chargedHadIso);
4091  h_nHadIso_[2]->Fill(neutralHadIso);
4092  h_phoIso_[2]->Fill(photonIso);
4093  h_nCluOutsideMustache_[2]->Fill(float(nClusterOutsideMustache));
4094  h_etOutsideMustache_[2]->Fill(etOutsideMustache);
4095  h_pfMva_[2]->Fill(pfMVA);
4096  h_phoE_[type][2]->Fill(photonE);
4097  h_phoEt_[type][2]->Fill(photonEt);
4098  h_nConv_[type][2]->Fill(float(matchingPho->conversions().size()));
4099  h_nConv_[1][2]->Fill(float(matchingPho->conversionsOneLeg().size()));
4100  h_phoERes_[0][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4101  h_phoSigmaEoE_[0][2]->Fill(sigmaEoE);
4102  h_phoEResRegr1_[0][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4103  h_phoEResRegr2_[0][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4104  p_eResVsR9_[2]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4105  p_sceResVsR9_[2]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4106  if (!isRunCentrally_) {
4107  h2_eResVsR9_[2]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4108  h2_sceResVsR9_[2]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4109  h2_ecalRecHitSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4110  h2_hcalTowerSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4111  h2_eResVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4112  }
4113 
4114  p_eResVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4115  p_eResVsNVtx_[2][0]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4116  p_sigmaEoEVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4117  p_sigmaEoEVsNVtx_[2][0]->Fill(float(vtxH->size()), sigmaEoE);
4118 
4119  if (r9 > 0.95) {
4120  h_phoERes_[1][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4121  h_phoSigmaEoE_[1][2]->Fill(sigmaEoE);
4122  h_phoEResRegr1_[1][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4123  h_phoEResRegr2_[1][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4124  if (!isRunCentrally_)
4125  h2_eResVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4126  p_eResVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4127  p_eResVsNVtx_[2][1]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4128  p_sigmaEoEVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4129  p_sigmaEoEVsNVtx_[2][1]->Fill(float(vtxH->size()), sigmaEoE);
4130  }
4131  if (r9 <= 0.95) {
4132  h_phoERes_[2][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4133  h_phoSigmaEoE_[2][2]->Fill(sigmaEoE);
4134  h_phoEResRegr1_[2][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4135  h_phoEResRegr2_[2][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4136  p_eResVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4137  p_eResVsNVtx_[2][2]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4138  p_sigmaEoEVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4139  p_sigmaEoEVsNVtx_[2][2]->Fill(float(vtxH->size()), sigmaEoE);
4140 
4141  if (!isRunCentrally_) {
4142  h2_eResVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4143  h_EtR9Less093_[0][2]->Fill(photonEt);
4144  }
4145  }
4146  }
4147 
4149  if (fName_ == "pfPhotonValidator") {
4150  float SumPtIsoValCh = 0.;
4151  float SumPtIsoValNh = 0.;
4152  float SumPtIsoValPh = 0.;
4153 
4154  float SumPtIsoValCleanCh = 0.;
4155  float SumPtIsoValCleanNh = 0.;
4156  float SumPtIsoValCleanPh = 0.;
4157 
4158  for (unsigned int lCand = 0; lCand < pfCandidateHandle->size(); lCand++) {
4159  reco::PFCandidateRef pfCandRef(reco::PFCandidateRef(pfCandidateHandle, lCand));
4160  float dR = deltaR(matchingPho->eta(), matchingPho->phi(), pfCandRef->eta(), pfCandRef->phi());
4161  if (dR < 0.4) {
4163  reco::PFCandidate::ParticleType type = pfCandRef->particleId();
4164  if (type == reco::PFCandidate::e)
4165  continue;
4166  if (type == reco::PFCandidate::gamma && pfCandRef->mva_nothing_gamma() > 0.)
4167  continue;
4168 
4169  if (type == reco::PFCandidate::h) {
4170  SumPtIsoValCh += pfCandRef->pt();
4171  h_dRPhoPFcand_ChHad_unCleaned_[0]->Fill(dR);
4172  if (phoIsInBarrel)
4173  h_dRPhoPFcand_ChHad_unCleaned_[1]->Fill(dR);
4174  else
4175  h_dRPhoPFcand_ChHad_unCleaned_[2]->Fill(dR);
4176  }
4177  if (type == reco::PFCandidate::h0) {
4178  SumPtIsoValNh += pfCandRef->pt();
4179  h_dRPhoPFcand_NeuHad_unCleaned_[0]->Fill(dR);
4180  if (phoIsInBarrel)
4181  h_dRPhoPFcand_NeuHad_unCleaned_[1]->Fill(dR);
4182  else
4183  h_dRPhoPFcand_NeuHad_unCleaned_[2]->Fill(dR);
4184  }
4185  if (type == reco::PFCandidate::gamma) {
4186  SumPtIsoValPh += pfCandRef->pt();
4187  h_dRPhoPFcand_Pho_unCleaned_[0]->Fill(dR);
4188  if (phoIsInBarrel)
4189  h_dRPhoPFcand_Pho_unCleaned_[1]->Fill(dR);
4190  else
4191  h_dRPhoPFcand_Pho_unCleaned_[2]->Fill(dR);
4192  }
4194  bool skip = false;
4195  for (std::vector<reco::PFCandidateRef>::const_iterator i = phoToParticleBasedIsoMap[matchingPho].begin();
4196  i != phoToParticleBasedIsoMap[matchingPho].end();
4197  ++i) {
4198  if ((*i) == pfCandRef) {
4199  skip = true;
4200  }
4201  } // loop over the PFCandidates flagged as overlapping with the photon
4202 
4203  if (skip)
4204  continue;
4205  if (type == reco::PFCandidate::h) {
4206  SumPtIsoValCleanCh += pfCandRef->pt();
4207  h_dRPhoPFcand_ChHad_Cleaned_[0]->Fill(dR);
4208  if (phoIsInBarrel)
4209  h_dRPhoPFcand_ChHad_Cleaned_[1]->Fill(dR);
4210  else
4211  h_dRPhoPFcand_ChHad_Cleaned_[2]->Fill(dR);
4212  }
4213  if (type == reco::PFCandidate::h0) {
4214  SumPtIsoValCleanNh += pfCandRef->pt();
4215  h_dRPhoPFcand_NeuHad_Cleaned_[0]->Fill(dR);
4216  if (phoIsInBarrel)
4217  h_dRPhoPFcand_NeuHad_Cleaned_[1]->Fill(dR);
4218  else
4219  h_dRPhoPFcand_NeuHad_Cleaned_[2]->Fill(dR);
4220  }
4221  if (type == reco::PFCandidate::gamma) {
4222  SumPtIsoValCleanPh += pfCandRef->pt();
4223  h_dRPhoPFcand_Pho_Cleaned_[0]->Fill(dR);
4224  if (phoIsInBarrel)
4225  h_dRPhoPFcand_Pho_Cleaned_[1]->Fill(dR);
4226  else
4227  h_dRPhoPFcand_Pho_Cleaned_[2]->Fill(dR);
4228  }
4229 
4230  } // dr=0.4
4231  } // loop over all PF Candidates
4232 
4233  h_SumPtOverPhoPt_ChHad_Cleaned_[0]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4234  h_SumPtOverPhoPt_NeuHad_Cleaned_[0]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4235  h_SumPtOverPhoPt_Pho_Cleaned_[0]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4236  h_SumPtOverPhoPt_ChHad_unCleaned_[0]->Fill(SumPtIsoValCh / matchingPho->pt());
4237  h_SumPtOverPhoPt_NeuHad_unCleaned_[0]->Fill(SumPtIsoValNh / matchingPho->pt());
4238  h_SumPtOverPhoPt_Pho_unCleaned_[0]->Fill(SumPtIsoValPh / matchingPho->pt());
4239  if (phoIsInBarrel) {
4240  h_SumPtOverPhoPt_ChHad_Cleaned_[1]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4241  h_SumPtOverPhoPt_NeuHad_Cleaned_[1]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4242  h_SumPtOverPhoPt_Pho_Cleaned_[1]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4243  h_SumPtOverPhoPt_ChHad_unCleaned_[1]->Fill(SumPtIsoValCh / matchingPho->pt());
4244  h_SumPtOverPhoPt_NeuHad_unCleaned_[1]->Fill(SumPtIsoValNh / matchingPho->pt());
4245  h_SumPtOverPhoPt_Pho_unCleaned_[1]->Fill(SumPtIsoValPh / matchingPho->pt());
4246  } else {
4247  h_SumPtOverPhoPt_ChHad_Cleaned_[2]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4248  h_SumPtOverPhoPt_NeuHad_Cleaned_[2]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4249  h_SumPtOverPhoPt_Pho_Cleaned_[2]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4250  h_SumPtOverPhoPt_ChHad_unCleaned_[2]->Fill(SumPtIsoValCh / matchingPho->pt());
4251  h_SumPtOverPhoPt_NeuHad_unCleaned_[2]->Fill(SumPtIsoValNh / matchingPho->pt());
4252  h_SumPtOverPhoPt_Pho_unCleaned_[2]->Fill(SumPtIsoValPh / matchingPho->pt());
4253  }
4254 
4255  } // only for pfPhotonValidator
4256 
4257  if (!(visibleConversion && visibleConversionsWithTwoSimTracks))
4258  continue;
4259 
4260  if (!isRunCentrally_) {
4261  h_r9_[1][0]->Fill(r9);
4262  if (phoIsInBarrel)
4263  h_r9_[1][1]->Fill(r9);
4264  if (phoIsInEndcap)
4265  h_r9_[1][2]->Fill(r9);
4266 
4267  h_simConvVtxRvsZ_[0]->Fill(fabs(mcConvZ_), mcConvR_);
4268  if (fabs(mcEta_) <= 1.) {
4269  h_simConvVtxRvsZ_[1]->Fill(fabs(mcConvZ_), mcConvR_);
4270  h_simConvVtxYvsX_->Fill(mcConvX_, mcConvY_);
4271  } else
4272  h_simConvVtxRvsZ_[2]->Fill(fabs(mcConvZ_), mcConvR_);
4273  }
4274 
4275  if (!fastSim_) {
4277  reco::ConversionRefVector conversions = matchingPho->conversions();
4278  bool atLeastOneRecoTwoTrackConversion = false;
4279  for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
4280  reco::ConversionRef aConv = conversions[iConv];
4281  double like = aConv->MVAout();
4282  if (like < likelihoodCut_)
4283  continue;
4284 
4285  if (!isRunCentrally_)
4286  h2_EoverEtrueVsEta_[1]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4287  p_EoverEtrueVsEta_[1]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4288 
4289  //std::vector<reco::TrackRef> tracks = aConv->tracks();
4290  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
4291  if (tracks.size() < 2)
4292  continue;
4293  atLeastOneRecoTwoTrackConversion = true;
4294 
4295  h_mvaOut_[0]->Fill(like);
4296 
4297  if (tracks.size() == 2) {
4298  if (sqrt(aConv->tracksPin()[0].Perp2()) < convTrackMinPtCut_ ||
4299  sqrt(aConv->tracksPin()[1].Perp2()) < convTrackMinPtCut_)
4300  continue;
4301  }
4302 
4303  if (dCotCutOn_) {
4304  if ((fabs(mcEta_) > 1.1 && fabs(mcEta_) < 1.4) && fabs(aConv->pairCotThetaSeparation()) > dCotHardCutValue_)
4305  continue;
4306  if (fabs(aConv->pairCotThetaSeparation()) > dCotCutValue_)
4307  continue;
4308  }
4309 
4310  nRecConv_++;
4311 
4312  std::map<const reco::Track*, TrackingParticleRef> myAss;
4313  std::map<const reco::Track*, TrackingParticleRef>::const_iterator itAss;
4314  std::map<reco::TrackRef, TrackingParticleRef>::const_iterator itAssMin;
4315  std::map<reco::TrackRef, TrackingParticleRef>::const_iterator itAssMax;
4316  //
4317 
4318  int nAssT2 = 0;
4319  for (unsigned int i = 0; i < tracks.size(); i++) {
4320  // reco::TrackRef track = tracks[i].castTo<reco::TrackRef>();
4321 
4322  type = 0;
4323  if (!isRunCentrally_)
4324  nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4325  if (!isRunCentrally_)
4326  nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4327  p_nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits() - 0.0001));
4328  p_nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits() - 0.0001));
4329  h_tkChi2_[type]->Fill(tracks[i]->normalizedChi2());
4330 
4333  tc.push_back(tfrb);
4334  // reco::RecoToSimCollection q = trackAssociator->associateRecoToSim(tc,theConvTP_);
4335  reco::SimToRecoCollection q = trackAssociator->associateSimToReco(tc, theConvTP_);
4336  std::vector<std::pair<RefToBase<reco::Track>, double> > trackV;
4337  int tpI = 0;
4338 
4339  if (q.find(theConvTP_[0]) != q.end()) {
4340  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[0]];
4341  } else if (q.find(theConvTP_[1]) != q.end()) {
4342  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[1]];
4343  tpI = 1;
4344  }
4345 
4346  if (trackV.empty())
4347  continue;
4348  edm::RefToBase<reco::Track> tr = trackV.front().first;
4349  myAss.insert(std::make_pair(tr.get(), theConvTP_[tpI]));
4350  nAssT2++;
4351  }
4352 
4353  type = 0;
4354 
4355  // float totP = sqrt(aConv->pairMomentum().Mag2());
4356  float refP = -99999.;
4357  float refPt = -99999.;
4358  if (aConv->conversionVertex().isValid()) {
4359  refP = sqrt(aConv->refittedPairMomentum().Mag2());
4360  refPt = sqrt(aConv->refittedPairMomentum().perp2());
4361  }
4362  float invM = aConv->pairInvariantMass();
4363 
4364  h_invMass_[type][0]->Fill(invM);
4365  if (phoIsInBarrel)
4366  h_invMass_[type][1]->Fill(invM);
4367  if (phoIsInEndcap)
4368  h_invMass_[type][2]->Fill(invM);
4369 
4371  if (tracks.size() == 2) {
4372  h_SimConvTwoTracks_[0]->Fill(mcEta_);
4373  h_SimConvTwoTracks_[1]->Fill(mcPhi_);
4374  h_SimConvTwoTracks_[2]->Fill(mcConvR_);
4375  h_SimConvTwoTracks_[3]->Fill(mcConvZ_);
4376  h_SimConvTwoTracks_[4]->Fill((*mcPho).fourMomentum().et());
4377 
4378  if (!aConv->caloCluster().empty())
4379  h_convEta_[1]->Fill(aConv->caloCluster()[0]->eta());
4380 
4381  float trkProvenance = 3;
4382  if (tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "outInEcalSeededConv")
4383  trkProvenance = 0;
4384  if (tracks[0]->algoName() == "inOutEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv")
4385  trkProvenance = 1;
4386  if ((tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv") ||
4387  (tracks[1]->algoName() == "outInEcalSeededConv" && tracks[0]->algoName() == "inOutEcalSeededConv"))
4388  trkProvenance = 2;
4389  if (trkProvenance == 3) {
4390  }
4391  h_trkProv_[0]->Fill(trkProvenance);
4392  h_trkAlgo_->Fill(tracks[0]->algo());
4393  h_trkAlgo_->Fill(tracks[1]->algo());
4394  h_convAlgo_->Fill(aConv->algo());
4395 
4397  if (nAssT2 == 2) {
4398  if (!isRunCentrally_) {
4399  h_r9_[2][0]->Fill(r9);
4400  if (phoIsInBarrel)
4401  h_r9_[2][1]->Fill(r9);
4402  if (phoIsInEndcap)
4403  h_r9_[2][2]->Fill(r9);
4404  }
4405 
4406  if (!aConv->caloCluster().empty())
4407  h_convEta_[2]->Fill(aConv->caloCluster()[0]->eta());
4408  nRecConvAss_++;
4409 
4410  h_SimConvTwoMTracks_[0]->Fill(mcEta_);
4411  h_SimConvTwoMTracks_[1]->Fill(mcPhi_);
4412  h_SimConvTwoMTracks_[2]->Fill(mcConvR_);
4413  h_SimConvTwoMTracks_[3]->Fill(mcConvZ_);
4414  h_SimConvTwoMTracks_[4]->Fill((*mcPho).fourMomentum().et());
4415 
4416  if (aConv->conversionVertex().isValid()) {
4417  float chi2Prob =
4418  ChiSquaredProbability(aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof());
4419  if (chi2Prob > 0) {
4420  h_SimConvTwoMTracksAndVtxPGT0_[0]->Fill(mcEta_);
4421  h_SimConvTwoMTracksAndVtxPGT0_[1]->Fill(mcPhi_);
4422  h_SimConvTwoMTracksAndVtxPGT0_[2]->Fill(mcConvR_);
4423  h_SimConvTwoMTracksAndVtxPGT0_[3]->Fill(mcConvZ_);
4424  h_SimConvTwoMTracksAndVtxPGT0_[4]->Fill((*mcPho).fourMomentum().et());
4425  }
4426  if (chi2Prob > 0.0005) {
4427  h_SimConvTwoMTracksAndVtxPGT0005_[0]->Fill(mcEta_);
4428  h_SimConvTwoMTracksAndVtxPGT0005_[1]->Fill(mcPhi_);
4429  h_SimConvTwoMTracksAndVtxPGT0005_[2]->Fill(mcConvR_);
4430  h_SimConvTwoMTracksAndVtxPGT0005_[3]->Fill(mcConvZ_);
4431  h_SimConvTwoMTracksAndVtxPGT0005_[4]->Fill((*mcPho).fourMomentum().et());
4432  }
4433 
4434  if (chi2Prob > 0.0005) {
4435  if (!aConv->caloCluster().empty()) {
4436  h_convEta_[0]->Fill(aConv->caloCluster()[0]->eta());
4437  h_convPhi_[0]->Fill(aConv->caloCluster()[0]->phi());
4438  h_convERes_[0][0]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4439  }
4440  if (!isRunCentrally_) {
4441  h_r9VsNofTracks_[0][0]->Fill(r9, aConv->nTracks());
4442  h_EtR9Less093_[1][0]->Fill(photonEt);
4443  if (phoIsInBarrel)
4444  h_EtR9Less093_[1][1]->Fill(photonEt);
4445  if (phoIsInEndcap)
4446  h_EtR9Less093_[1][2]->Fill(photonEt);
4447  }
4448  if (phoIsInBarrel) {
4449  if (!aConv->caloCluster().empty())
4450  h_convERes_[0][1]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4451  if (!isRunCentrally_)
4452  h_r9VsNofTracks_[0][1]->Fill(r9, aConv->nTracks());
4453  h_mvaOut_[1]->Fill(like);
4454  }
4455  if (phoIsInEndcap) {
4456  if (!aConv->caloCluster().empty())
4457  h_convERes_[0][2]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4458  if (!isRunCentrally_)
4459  h_r9VsNofTracks_[0][2]->Fill(r9, aConv->nTracks());
4460  h_mvaOut_[2]->Fill(like);
4461  }
4462  }
4463  }
4464 
4466  type = 1;
4467 
4468  h_trkProv_[1]->Fill(trkProvenance);
4469  h_invMass_[type][0]->Fill(invM);
4470 
4471  float eoverp = -99999.;
4472 
4473  if (aConv->conversionVertex().isValid()) {
4474  eoverp = photonE / sqrt(aConv->refittedPairMomentum().Mag2());
4475  //eoverp= aConv->EoverPrefittedTracks();
4476  h_convPtRes_[type][0]->Fill(refPt / (*mcPho).fourMomentum().et());
4477  h_EoverPTracks_[type][0]->Fill(eoverp);
4478  h_PoverETracks_[type][0]->Fill(1. / eoverp);
4479  if (!isRunCentrally_)
4480  h2_EoverEtrueVsEoverP_[0]->Fill(eoverp,
4481  matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4482  if (!isRunCentrally_)
4483  h2_PoverPtrueVsEoverP_[0]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4484  if (!isRunCentrally_)
4485  h2_EoverPVsEta_[0]->Fill(mcEta_, eoverp);
4486  if (!isRunCentrally_)
4487  h2_EoverPVsR_[0]->Fill(mcConvR_, eoverp);
4488  p_EoverPVsEta_[0]->Fill(mcEta_, eoverp);
4489  p_EoverPVsR_[0]->Fill(mcConvR_, eoverp);
4490  p_eResVsR_->Fill(mcConvR_, photonE / (*mcPho).fourMomentum().e());
4491  if (!isRunCentrally_)
4492  h2_PoverPtrueVsEta_[0]->Fill(mcEta_, refP / (*mcPho).fourMomentum().e());
4493  p_PoverPtrueVsEta_[0]->Fill(mcEta_, refP / (*mcPho).fourMomentum().e());
4494  }
4495 
4496  if (!isRunCentrally_)
4497  h2_EoverEtrueVsEta_[0]->Fill(mcEta_,
4498  matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4499  if (!isRunCentrally_)
4500  h2_EoverEtrueVsR_[0]->Fill(mcConvR_,
4501  matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4502  p_EoverEtrueVsEta_[0]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4503  p_EoverEtrueVsR_[0]->Fill(mcConvR_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4504 
4505  if (!isRunCentrally_)
4506  h2_etaVsRsim_[0]->Fill(mcEta_, mcConvR_);
4507 
4508  // here original tracks and their inner momentum is considered
4509  float dPhiTracksAtVtx = aConv->dPhiTracksAtVtx();
4510  h_DPhiTracksAtVtx_[type][0]->Fill(dPhiTracksAtVtx);
4511  if (!isRunCentrally_)
4512  h2_DPhiTracksAtVtxVsEta_->Fill(mcEta_, dPhiTracksAtVtx);
4513  if (!isRunCentrally_)
4514  h2_DPhiTracksAtVtxVsR_->Fill(mcConvR_, dPhiTracksAtVtx);
4515  p_DPhiTracksAtVtxVsEta_->Fill(mcEta_, dPhiTracksAtVtx);
4516  p_DPhiTracksAtVtxVsR_->Fill(mcConvR_, dPhiTracksAtVtx);
4517 
4518  h_DCotTracks_[type][0]->Fill(aConv->pairCotThetaSeparation());
4519  if (!isRunCentrally_)
4520  h2_DCotTracksVsEta_->Fill(mcEta_, aConv->pairCotThetaSeparation());
4521  if (!isRunCentrally_)
4522  h2_DCotTracksVsR_->Fill(mcConvR_, aConv->pairCotThetaSeparation());
4523  p_DCotTracksVsEta_->Fill(mcEta_, aConv->pairCotThetaSeparation());
4524  p_DCotTracksVsR_->Fill(mcConvR_, aConv->pairCotThetaSeparation());
4525 
4526  if (phoIsInBarrel) {
4527  h_invMass_[type][1]->Fill(invM);
4528  if (aConv->conversionVertex().isValid()) {
4529  h_convPtRes_[type][1]->Fill(refPt / (*mcPho).fourMomentum().et());
4530  h_EoverPTracks_[type][1]->Fill(eoverp);
4531  if (mcConvR_ < 15)
4532  h_EoverPTracks_[0][0]->Fill(eoverp);
4533  if (mcConvR_ > 15 && mcConvR_ < 58)
4534  h_EoverPTracks_[0][1]->Fill(eoverp);
4535  if (mcConvR_ > 58)
4536  h_EoverPTracks_[0][2]->Fill(eoverp);
4537  h_PoverETracks_[type][1]->Fill(1. / eoverp);
4538  if (!isRunCentrally_)
4539  h2_EoverEtrueVsEoverP_[1]->Fill(
4540  eoverp, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4541  if (!isRunCentrally_)
4542  h2_PoverPtrueVsEoverP_[1]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4543  }
4544  h_DPhiTracksAtVtx_[type][1]->Fill(dPhiTracksAtVtx);
4545  h_DCotTracks_[type][1]->Fill(aConv->pairCotThetaSeparation());
4546  }
4547 
4548  if (phoIsInEndcap) {
4549  h_invMass_[type][2]->Fill(invM);
4550  if (aConv->conversionVertex().isValid()) {
4551  h_convPtRes_[type][2]->Fill(refPt / (*mcPho).fourMomentum().et());
4552  h_EoverPTracks_[type][2]->Fill(eoverp);
4553  h_PoverETracks_[type][2]->Fill(1. / eoverp);
4554  if (!isRunCentrally_)
4555  h2_EoverEtrueVsEoverP_[2]->Fill(
4556  eoverp, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4557  if (!isRunCentrally_)
4558  h2_PoverPtrueVsEoverP_[2]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4559  }
4560  h_DPhiTracksAtVtx_[type][2]->Fill(dPhiTracksAtVtx);
4561  h_DCotTracks_[type][2]->Fill(aConv->pairCotThetaSeparation());
4562  }
4563 
4564  if (aConv->conversionVertex().isValid()) {
4565  h_convVtxdX_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4566  h_convVtxdY_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4567  h_convVtxdZ_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4568  h_convVtxdR_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4569 
4570  if (fabs(mcConvEta_) <= 1.2) {
4571  h_convVtxdX_barrel_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4572  h_convVtxdY_barrel_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4573  h_convVtxdZ_barrel_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4574  h_convVtxdR_barrel_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4575  } else {
4576  h_convVtxdX_endcap_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4577  h_convVtxdY_endcap_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4578  h_convVtxdZ_endcap_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4579  h_convVtxdR_endcap_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4580  }
4581 
4582  h_convVtxdPhi_->Fill(aConv->conversionVertex().position().phi() - mcConvPhi_);
4583  h_convVtxdEta_->Fill(aConv->conversionVertex().position().eta() - mcConvEta_);
4584  if (!isRunCentrally_)
4585  h2_convVtxdRVsR_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4586  if (!isRunCentrally_)
4587  h2_convVtxdRVsEta_->Fill(mcEta_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4588  p_convVtxdRVsR_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4589  p_convVtxdRVsEta_->Fill(mcEta_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4590  float signX = aConv->refittedPairMomentum().x() / fabs(aConv->refittedPairMomentum().x());
4591  float signY = aConv->refittedPairMomentum().y() / fabs(aConv->refittedPairMomentum().y());
4592  float signZ = aConv->refittedPairMomentum().z() / fabs(aConv->refittedPairMomentum().z());
4593  p_convVtxdXVsX_->Fill(mcConvX_, (aConv->conversionVertex().position().x() - mcConvX_) * signX);
4594  p_convVtxdYVsY_->Fill(mcConvY_, (aConv->conversionVertex().position().y() - mcConvY_) * signY);
4595  p_convVtxdZVsZ_->Fill(mcConvZ_, (aConv->conversionVertex().position().z() - mcConvZ_) * signZ);
4596 
4597  if (!isRunCentrally_)
4598  h2_convVtxRrecVsTrue_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()));
4599 
4600  //float zPV = aConv->zOfPrimaryVertexFromTracks();
4601  float thetaConv = aConv->refittedPairMomentum().Theta();
4602  float thetaSC = matchingPho->superCluster()->position().theta();
4603  float rSC =
4604  sqrt(matchingPho->superCluster()->position().x() * matchingPho->superCluster()->position().x() +
4605  matchingPho->superCluster()->position().y() * matchingPho->superCluster()->position().y());
4606  float zSC = matchingPho->superCluster()->position().z();
4607  float zPV = sqrt(rSC * rSC + zSC * zSC) * sin(thetaConv - thetaSC) / sin(thetaConv);
4608 
4609  h_zPVFromTracks_[0]->Fill(zPV);
4610  h_dzPVFromTracks_[0]->Fill(zPV - (*mcPho).primaryVertex().z());
4611 
4612  if (phoIsInBarrel) {
4613  h_zPVFromTracks_[1]->Fill(zPV);
4614  h_dzPVFromTracks_[1]->Fill(zPV - (*mcPho).primaryVertex().z());
4615  } else if (phoIsInEndcap) {
4616  h_zPVFromTracks_[2]->Fill(zPV);
4617  h_dzPVFromTracks_[2]->Fill(zPV - (*mcPho).primaryVertex().z());
4618  } else if (phoIsInEndcapP) {
4619  h_zPVFromTracks_[3]->Fill(zPV);
4620  h_dzPVFromTracks_[3]->Fill(zPV - (*mcPho).primaryVertex().z());
4621  } else if (phoIsInEndcapM) {
4622  h_zPVFromTracks_[4]->Fill(zPV);
4623  h_dzPVFromTracks_[4]->Fill(zPV - (*mcPho).primaryVertex().z());
4624  }
4625 
4626  p_dzPVVsR_->Fill(mcConvR_, zPV - (*mcPho).primaryVertex().z());
4627  p_dzPVVsEta_->Fill(mcConvEta_, zPV - (*mcPho).primaryVertex().z());
4628  if (!isRunCentrally_)
4629  h2_dzPVVsR_->Fill(mcConvR_, zPV - (*mcPho).primaryVertex().z());
4630  }
4631 
4632  float dPhiTracksAtEcal = -99;
4633  float dEtaTracksAtEcal = -99;
4634  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[0].isNonnull() &&
4635  aConv->bcMatchingWithTracks()[1].isNonnull()) {
4636  nRecConvAssWithEcal_++;
4637  float recoPhi1 = aConv->ecalImpactPosition()[0].phi();
4638  float recoPhi2 = aConv->ecalImpactPosition()[1].phi();
4639  float recoEta1 = aConv->ecalImpactPosition()[0].eta();
4640  float recoEta2 = aConv->ecalImpactPosition()[1].eta();
4641  // unused float bcPhi1 = aConv->bcMatchingWithTracks()[0]->phi();
4642  // unused float bcPhi2 = aConv->bcMatchingWithTracks()[1]->phi();
4643  // unused float bcEta1 = aConv->bcMatchingWithTracks()[0]->eta();
4644  // unused float bcEta2 = aConv->bcMatchingWithTracks()[1]->eta();
4645  recoPhi1 = phiNormalization(recoPhi1);
4646  recoPhi2 = phiNormalization(recoPhi2);
4647  dPhiTracksAtEcal = recoPhi1 - recoPhi2;
4648  dPhiTracksAtEcal = phiNormalization(dPhiTracksAtEcal);
4649  dEtaTracksAtEcal = recoEta1 - recoEta2;
4650 
4651  h_DPhiTracksAtEcal_[type][0]->Fill(fabs(dPhiTracksAtEcal));
4652  if (!isRunCentrally_)
4653  h2_DPhiTracksAtEcalVsR_->Fill(mcConvR_, fabs(dPhiTracksAtEcal));
4654  if (!isRunCentrally_)
4655  h2_DPhiTracksAtEcalVsEta_->Fill(mcEta_, fabs(dPhiTracksAtEcal));
4656  p_DPhiTracksAtEcalVsR_->Fill(mcConvR_, fabs(dPhiTracksAtEcal));
4657  p_DPhiTracksAtEcalVsEta_->Fill(mcEta_, fabs(dPhiTracksAtEcal));
4658 
4659  h_DEtaTracksAtEcal_[type][0]->Fill(dEtaTracksAtEcal);
4660 
4661  if (phoIsInBarrel) {
4662  h_DPhiTracksAtEcal_[type][1]->Fill(fabs(dPhiTracksAtEcal));
4663  h_DEtaTracksAtEcal_[type][1]->Fill(dEtaTracksAtEcal);
4664  }
4665  if (phoIsInEndcap) {
4666  h_DPhiTracksAtEcal_[type][2]->Fill(fabs(dPhiTracksAtEcal));
4667  h_DEtaTracksAtEcal_[type][2]->Fill(dEtaTracksAtEcal);
4668  }
4669  }
4671  for (unsigned int i = 0; i < tracks.size(); i++) {
4673  itAss = myAss.find(tfrb.get());
4674  if (itAss == myAss.end())
4675  continue;
4676 
4677  float trkProvenance = 3;
4678  if (tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "outInEcalSeededConv")
4679  trkProvenance = 0;
4680  if (tracks[0]->algoName() == "inOutEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv")
4681  trkProvenance = 1;
4682  if ((tracks[0]->algoName() == "outInEcalSeededConv" &&
4683  tracks[1]->algoName() == "inOutEcalSeededConv") ||
4684  (tracks[1]->algoName() == "outInEcalSeededConv" && tracks[0]->algoName() == "inOutEcalSeededConv"))
4685  trkProvenance = 2;
4686 
4687  if (!isRunCentrally_)
4688  nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()));
4689  if (!isRunCentrally_)
4690  nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()));
4691  p_nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4692  p_nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4693  h_tkChi2_[type]->Fill(tracks[i]->normalizedChi2());
4694  h_tkChi2Large_[type]->Fill(tracks[i]->normalizedChi2());
4695  if (!isRunCentrally_)
4696  h2_Chi2VsEta_[0]->Fill(mcEta_, tracks[i]->normalizedChi2());
4697  if (!isRunCentrally_)
4698  h2_Chi2VsR_[0]->Fill(mcConvR_, tracks[i]->normalizedChi2());
4699  p_Chi2VsEta_[0]->Fill(mcEta_, tracks[i]->normalizedChi2());
4700  p_Chi2VsR_[0]->Fill(mcConvR_, tracks[i]->normalizedChi2());
4701 
4702  float simPt = sqrt(((*itAss).second)->momentum().perp2());
4703  // float recPt = sqrt( aConv->tracks()[i]->innerMomentum().Perp2() ) ;
4704  float refPt = -9999.;
4705  float px = 0, py = 0;
4706 
4707  if (aConv->conversionVertex().isValid()) {
4708  reco::Track refTrack = aConv->conversionVertex().refittedTracks()[i];
4709  px = refTrack.momentum().x();
4710  py = refTrack.momentum().y();
4711  refPt = sqrt(px * px + py * py);
4712 
4713  float ptres = refPt - simPt;
4714  // float pterror = aConv->tracks()[i]->ptError();
4715  float pterror = aConv->conversionVertex().refittedTracks()[i].ptError();
4716  if (!isRunCentrally_) {
4717  h2_PtRecVsPtSim_[0]->Fill(simPt, refPt);
4718  if (trkProvenance == 3)
4719  h2_PtRecVsPtSimMixProv_->Fill(simPt, refPt);
4720  }
4721 
4722  h_TkPtPull_[0]->Fill(ptres / pterror);
4723  if (!isRunCentrally_)
4724  h2_TkPtPull_[0]->Fill(mcEta_, ptres / pterror);
4725 
4726  h_TkD0_[0]->Fill(tracks[i]->d0() * tracks[i]->charge());
4727 
4728  // if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator" )
4729  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[i].isNonnull())
4730  hBCEnergyOverTrackPout_[0]->Fill(aConv->bcMatchingWithTracks()[i]->energy() /
4731  sqrt(aConv->tracks()[i]->outerMomentum().Mag2()));
4732 
4733  if (phoIsInBarrel) {
4734  h_TkD0_[1]->Fill(tracks[i]->d0() * tracks[i]->charge());
4735  h_TkPtPull_[1]->Fill(ptres / pterror);
4736  if (!isRunCentrally_)
4737  h2_PtRecVsPtSim_[1]->Fill(simPt, refPt);
4738  //if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator")
4739  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[i].isNonnull())
4740  hBCEnergyOverTrackPout_[1]->Fill(aConv->bcMatchingWithTracks()[i]->energy() /
4741  sqrt(aConv->tracks()[i]->outerMomentum().Mag2()));
4742  }
4743  if (phoIsInEndcap) {
4744  h_TkD0_[2]->Fill(tracks[i]->d0() * tracks[i]->charge());
4745  h_TkPtPull_[2]->Fill(ptres / pterror);
4746  if (!isRunCentrally_)
4747  h2_PtRecVsPtSim_[2]->Fill(simPt, refPt);
4748  // if ( fName_ != "pfPhotonValidator" && fName_ != "oldpfPhotonValidator")
4749  if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[i].isNonnull())
4750  hBCEnergyOverTrackPout_[2]->Fill(aConv->bcMatchingWithTracks()[i]->energy() /
4751  sqrt(aConv->tracks()[i]->outerMomentum().Mag2()));
4752  }
4753  }
4754 
4755  } // end loop over track
4756  } // end analysis of two associated tracks
4757  } // end analysis of two tracks
4758 
4759  } // loop over conversions
4760 
4762 
4763  reco::ConversionRefVector conversionsOneLeg = matchingPho->conversionsOneLeg();
4764  if (!atLeastOneRecoTwoTrackConversion) {
4765  for (unsigned int iConv = 0; iConv < conversionsOneLeg.size(); iConv++) {
4766  reco::ConversionRef aConv = conversionsOneLeg[iConv];
4767  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
4768 
4769  h_trkAlgo_->Fill(tracks[0]->algo());
4770  h_convAlgo_->Fill(aConv->algo());
4771 
4772  int nAssT = 0;
4773  std::map<const reco::Track*, TrackingParticleRef> myAss;
4774  for (unsigned int i = 0; i < tracks.size(); i++) {
4775  p_nHitsVsEtaSL_[0]->Fill(mcEta_, float(tracks[0]->numberOfValidHits() - 0.0001));
4776  p_nHitsVsRSL_[0]->Fill(mcConvR_, float(tracks[0]->numberOfValidHits() - 0.0001));
4777  h_tkChi2SL_[0]->Fill(tracks[0]->normalizedChi2());
4778 
4779  float eoverp = photonE / tracks[0]->p();
4780  h_EoverP_SL_[0]->Fill(eoverp);
4781  if (phoIsInBarrel) {
4782  h_EoverP_SL_[1]->Fill(eoverp);
4783  } else {
4784  h_EoverP_SL_[2]->Fill(eoverp);
4785  }
4786  h_convSLVtxRvsZ_[0]->Fill(tracks[0]->innerPosition().z(), sqrt(tracks[0]->innerPosition().Perp2()));
4787  if (fabs(mcEta_) <= 1.) {
4788  h_convSLVtxRvsZ_[1]->Fill(tracks[0]->innerPosition().z(), sqrt(tracks[0]->innerPosition().Perp2()));
4789  } else {
4790  h_convSLVtxRvsZ_[2]->Fill(tracks[0]->innerPosition().z(), sqrt(tracks[0]->innerPosition().Perp2()));
4791  }
4792 
4795  tc.push_back(tfrb);
4796  reco::SimToRecoCollection q = trackAssociator->associateSimToReco(tc, theConvTP_);
4797  std::vector<std::pair<RefToBase<reco::Track>, double> > trackV;
4798  int tpI = 0;
4799 
4800  if (q.find(theConvTP_[0]) != q.end()) {
4801  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[0]];
4802  } else if (q.find(theConvTP_[1]) != q.end()) {
4803  trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[1]];
4804  tpI = 1;
4805  }
4806 
4807  if (trackV.empty())
4808  continue;
4809  edm::RefToBase<reco::Track> tr = trackV.front().first;
4810  myAss.insert(std::make_pair(tr.get(), theConvTP_[tpI]));
4811  nAssT++;
4812  }
4813 
4814  if (nAssT > 0) {
4815  h_SimConvOneMTracks_[0]->Fill(mcEta_);
4816  h_SimConvOneMTracks_[1]->Fill(mcPhi_);
4817  h_SimConvOneMTracks_[2]->Fill(mcConvR_);
4818  h_SimConvOneMTracks_[3]->Fill(mcConvZ_);
4819  h_SimConvOneMTracks_[4]->Fill((*mcPho).fourMomentum().et());
4820  }
4821  } // End loop over single leg conversions
4822  }
4823 
4824  } // if !fastSim
4825  } // End loop over generated particles
4826  } // End loop over simulated Photons
4827 
4828  if (!isRunCentrally_) {
4829  h_nSimPho_[0]->Fill(float(nSimPho_[0]));
4830  h_nSimPho_[1]->Fill(float(nSimPho_[1]));
4831  h_nSimConv_[0]->Fill(float(nSimConv_[0]));
4832  h_nSimConv_[1]->Fill(float(nSimConv_[1]));
4833  }
4834 
4835  if (!fastSim_) {
4837  for (reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end();
4838  iPho++) {
4839  reco::Photon aPho = reco::Photon(*iPho);
4840  // float et= aPho.superCluster()->energy()/cosh( aPho.superCluster()->eta()) ;
4842  for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
4843  reco::ConversionRef aConv = conversions[iConv];
4844  double like = aConv->MVAout();
4845  if (like < likelihoodCut_)
4846  continue;
4847  //std::vector<reco::TrackRef> tracks = aConv->tracks();
4848  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
4849  if (tracks.size() < 2)
4850  continue;
4851 
4852  RefToBase<reco::Track> tk1 = aConv->tracks().front();
4853  RefToBase<reco::Track> tk2 = aConv->tracks().back();
4855  tc1.push_back(tk1);
4856  tc2.push_back(tk2);
4857 
4858  bool phoIsInBarrel = false;
4859  bool phoIsInEndcap = false;
4860  if (fabs(aPho.superCluster()->position().eta()) < 1.479) {
4861  phoIsInBarrel = true;
4862  } else {
4863  phoIsInEndcap = true;
4864  }
4865 
4866  if (dCotCutOn_) {
4867  if ((fabs(mcEta_) > 1.1 && fabs(mcEta_) < 1.4) && fabs(aConv->pairCotThetaSeparation()) > dCotHardCutValue_)
4868  continue;
4869  if (fabs(aConv->pairCotThetaSeparation()) > dCotCutValue_)
4870  continue;
4871  }
4872 
4873  h_RecoConvTwoTracks_[0]->Fill(aPho.eta());
4874  h_RecoConvTwoTracks_[1]->Fill(aPho.phi());
4875  if (aConv->conversionVertex().isValid())
4876  h_RecoConvTwoTracks_[2]->Fill(aConv->conversionVertex().position().perp2());
4877  h_RecoConvTwoTracks_[3]->Fill(aConv->conversionVertex().position().z());
4878  h_RecoConvTwoTracks_[4]->Fill(aPho.et());
4879 
4880  int nAssT2 = 0;
4881  for (std::vector<PhotonMCTruth>::const_iterator mcPho = mcPhotons.begin(); mcPho != mcPhotons.end(); mcPho++) {
4882  // mcConvPt_= (*mcPho).fourMomentum().et();
4883  float mcPhi = (*mcPho).fourMomentum().phi();
4884  //simPV_Z = (*mcPho).primaryVertex().z();
4885  mcPhi_ = phiNormalization(mcPhi);
4886  mcEta_ = (*mcPho).fourMomentum().pseudoRapidity();
4887  mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z());
4888  //mcConvR_= (*mcPho).vertex().perp();
4889  //mcConvX_= (*mcPho).vertex().x();
4890  //mcConvY_= (*mcPho).vertex().y();
4891  //mcConvZ_= (*mcPho).vertex().z();
4892  //mcConvEta_= (*mcPho).vertex().eta();
4893  //mcConvPhi_= (*mcPho).vertex().phi();
4894  if (fabs(mcEta_) > END_HI)
4895  continue;
4896  // if (mcConvPt_<minPhoPtForPurity) continue;
4897  //if (fabs(mcEta_)>maxPhoEtaForPurity) continue;
4898  //if (fabs(mcConvZ_)>maxPhoZForPurity) continue;
4899  //if (mcConvR_>maxPhoRForEffic) continue;
4900 
4901  if ((*mcPho).isAConversion() != 1)
4902  continue;
4903  if (!((fabs(mcEta_) <= BARL && mcConvR_ < 85) ||
4904  (fabs(mcEta_) > BARL && fabs(mcEta_) <= END_HI && fabs((*mcPho).vertex().z()) < 210)))
4905  continue;
4906 
4907  theConvTP_.clear();
4908  for (size_t i = 0; i < trackingParticles.size(); ++i) {
4909  TrackingParticleRef tp(ElectronTPHandle, i);
4910  if (fabs(tp->vx() - (*mcPho).vertex().x()) < 0.0001 && fabs(tp->vy() - (*mcPho).vertex().y()) < 0.0001 &&
4911  fabs(tp->vz() - (*mcPho).vertex().z()) < 0.0001) {
4912  theConvTP_.push_back(tp);
4913  }
4914  }
4915 
4916  if (theConvTP_.size() < 2)
4917  continue;
4918 
4919  reco::RecoToSimCollection const& p1 = trackAssociator->associateRecoToSim(tc1, theConvTP_);
4920  reco::RecoToSimCollection const& p2 = trackAssociator->associateRecoToSim(tc2, theConvTP_);
4921  std::vector<std::pair<RefToBase<reco::Track>, double> > trackV1, trackV2;
4922 
4923  auto itP1 = p1.find(tk1);
4924  auto itP2 = p2.find(tk2);
4925  bool good = (itP1 != p1.end()) and (not itP1->val.empty()) and (itP2 != p2.end()) and (not itP2->val.empty());
4926  if (not good) {
4927  itP1 = p1.find(tk2);
4928  itP2 = p2.find(tk1);
4929  good = (itP1 != p1.end()) and (not itP1->val.empty()) and (itP2 != p2.end()) and (not itP2->val.empty());
4930  }
4931  if (good) {
4932  std::vector<std::pair<TrackingParticleRef, double> > const& tp1 = itP1->val;
4933  std::vector<std::pair<TrackingParticleRef, double> > const& tp2 = itP2->val;
4934 
4935  TrackingParticleRef tpr1 = tp1.front().first;
4936  TrackingParticleRef tpr2 = tp2.front().first;
4937 
4938  if (abs(tpr1->pdgId()) == 11 && abs(tpr2->pdgId()) == 11) {
4939  if ((tpr1->parentVertex()->sourceTracks_end() - tpr1->parentVertex()->sourceTracks_begin() == 1) &&
4940  (tpr2->parentVertex()->sourceTracks_end() - tpr2->parentVertex()->sourceTracks_begin() == 1)) {
4941  if (tpr1->parentVertex().key() == tpr2->parentVertex().key() &&
4942  ((*tpr1->parentVertex()->sourceTracks_begin())->pdgId() == 22)) {
4943  nAssT2 = 2;
4944  break;
4945  }
4946  }
4947  }
4948  }
4949 
4950  } // end loop over simulated photons
4951 
4952  if (nAssT2 == 2) {
4953  h_RecoConvTwoMTracks_[0]->Fill(aPho.eta());
4954  h_RecoConvTwoMTracks_[1]->Fill(aPho.phi());
4955  if (aConv->conversionVertex().isValid())
4956  h_RecoConvTwoMTracks_[2]->Fill(aConv->conversionVertex().position().perp2());
4957  h_RecoConvTwoMTracks_[3]->Fill(aConv->conversionVertex().position().z());
4958  h_RecoConvTwoMTracks_[4]->Fill(aPho.et());
4959  }
4960 
4962  if (aConv->conversionVertex().isValid()) {
4963  float chi2Prob = ChiSquaredProbability(aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof());
4964  double convR = sqrt(aConv->conversionVertex().position().perp2());
4965  double scalar = aConv->conversionVertex().position().x() * aConv->pairMomentum().x() +
4966  aConv->conversionVertex().position().y() * aConv->pairMomentum().y();
4967 
4968  if (scalar < 0)
4969  convR = -sqrt(aConv->conversionVertex().position().perp2());
4970  h_convVtxRvsZ_[0]->Fill(fabs(aConv->conversionVertex().position().z()),
4971  sqrt(aConv->conversionVertex().position().perp2()));
4972 
4973  if (!aConv->caloCluster().empty()) {
4974  if (!isRunCentrally_)
4975  h2_etaVsRreco_[0]->Fill(aConv->caloCluster()[0]->eta(),
4976  sqrt(aConv->conversionVertex().position().perp2()));
4977  if (fabs(aConv->caloCluster()[0]->eta()) <= 1.) {
4978  h_convVtxYvsX_->Fill(aConv->conversionVertex().position().y(), aConv->conversionVertex().position().x());
4979  h_convVtxRvsZ_[1]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4980 
4981  if (!isRunCentrally_) {
4982  h_convVtxYvsX_zoom_[0]->Fill(aConv->conversionVertex().position().y(),
4983  aConv->conversionVertex().position().x());
4984  h_convVtxYvsX_zoom_[1]->Fill(aConv->conversionVertex().position().y(),
4985  aConv->conversionVertex().position().x());
4986  h_convVtxRvsZ_zoom_[0]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4987  h_convVtxRvsZ_zoom_[1]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4988  }
4989  }
4990  if (fabs(aConv->caloCluster()[0]->eta()) > 1.)
4991  h_convVtxRvsZ_[2]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
4992  }
4993 
4994  h_vtxChi2Prob_[0]->Fill(chi2Prob);
4995  h_vtxChi2_[0]->Fill(aConv->conversionVertex().normalizedChi2());
4996  if (phoIsInBarrel) {
4997  h_vtxChi2Prob_[1]->Fill(chi2Prob);
4998  h_vtxChi2_[1]->Fill(aConv->conversionVertex().normalizedChi2());
4999  }
5000  if (phoIsInEndcap) {
5001  h_vtxChi2Prob_[2]->Fill(chi2Prob);
5002  h_vtxChi2_[2]->Fill(aConv->conversionVertex().normalizedChi2());
5003  }
5004 
5005  } // end conversion vertex valid
5006  } // end loop over reco conversions
5007  } // end loop on all reco photons
5008  } // if !fastSim
5009 
5011  float nPho = 0;
5012  for (reco::GenJetCollection::const_iterator genJetIter = genJetCollection.begin();
5013  genJetIter != genJetCollection.end();
5014  ++genJetIter) {
5015  if (genJetIter->pt() < minPhoEtCut_)
5016  continue;
5017  if (fabs(genJetIter->eta()) > 2.5)
5018  continue;
5019 
5020  float mcJetPhi = genJetIter->phi();
5021  mcJetPhi_ = phiNormalization(mcJetPhi);
5022  mcJetEta_ = genJetIter->eta();
5023  float mcJetPt = genJetIter->pt();
5024 
5025  h_SimJet_[0]->Fill(mcJetEta_);
5026  h_SimJet_[1]->Fill(mcJetPhi_);
5027  h_SimJet_[2]->Fill(mcJetPt);
5028 
5029  std::vector<reco::Photon> thePhotons;
5030  bool matched = false;
5031 
5032  reco::Photon matchingPho;
5033  for (reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end();
5034  iPho++) {
5035  reco::Photon aPho = reco::Photon(*iPho);
5036  float phiPho = aPho.phi();
5037  float etaPho = aPho.eta();
5038  float deltaPhi = phiPho - mcJetPhi_;
5039  float deltaEta = etaPho - mcJetEta_;
5040  if (deltaPhi > pi)
5041  deltaPhi -= twopi;
5042  if (deltaPhi < -pi)
5043  deltaPhi += twopi;
5044  deltaPhi = pow(deltaPhi, 2);
5045  deltaEta = pow(deltaEta, 2);
5046  float delta = sqrt(deltaPhi + deltaEta);
5047  if (delta < 0.3) {
5048  matchingPho = *iPho;
5049  matched = true;
5050  }
5051  } // end loop over reco photons
5052 
5053  if (!matched)
5054  continue;
5055  nPho++;
5056 
5057  h_MatchedSimJet_[0]->Fill(mcJetEta_);
5058  h_MatchedSimJet_[1]->Fill(mcJetPhi_);
5059  h_MatchedSimJet_[2]->Fill(mcJetPt);
5060 
5061  bool phoIsInBarrel = false;
5062  bool phoIsInEndcap = false;
5063  if (fabs(matchingPho.superCluster()->position().eta()) < 1.479) {
5064  phoIsInBarrel = true;
5065  } else {
5066  phoIsInEndcap = true;
5067  }
5068  edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
5069  if (phoIsInBarrel) {
5070  // Get handle to rec hits ecal barrel
5071  e.getByToken(barrelEcalHits_, ecalRecHitHandle);
5072  if (!ecalRecHitHandle.isValid()) {
5073  Labels l;
5074  labelsForToken(barrelEcalHits_, l);
5075  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
5076  return;
5077  }
5078 
5079  } else if (phoIsInEndcap) {
5080  // Get handle to rec hits ecal encap
5081  e.getByToken(endcapEcalHits_, ecalRecHitHandle);
5082  if (!ecalRecHitHandle.isValid()) {
5083  Labels l;
5084  labelsForToken(barrelEcalHits_, l);
5085  edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
5086  return;
5087  }
5088  }
5089 
5090  const EcalRecHitCollection ecalRecHitCollection = *(ecalRecHitHandle.product());
5091  float photonE = matchingPho.energy();
5092  float photonEt = matchingPho.et();
5093  float r9 = matchingPho.r9();
5094  float r1 = matchingPho.r1x5();
5095  float r2 = matchingPho.r2x5();
5096  float sigmaIetaIeta = matchingPho.sigmaIetaIeta();
5097  float hOverE = matchingPho.hadronicOverEm();
5098  float ecalIso = matchingPho.ecalRecHitSumEtConeDR04();
5099  float hcalIso = matchingPho.hcalTowerSumEtConeDR04();
5100  float trkIso = matchingPho.trkSumPtSolidConeDR04();
5101  float nIsoTrk = matchingPho.nTrkSolidConeDR04();
5102  std::vector<std::pair<DetId, float> >::const_iterator rhIt;
5103 
5104  bool atLeastOneDeadChannel = false;
5105  for (reco::CaloCluster_iterator bcIt = matchingPho.superCluster()->clustersBegin();
5106  bcIt != matchingPho.superCluster()->clustersEnd();
5107  ++bcIt) {
5108  for (rhIt = (*bcIt)->hitsAndFractions().begin(); rhIt != (*bcIt)->hitsAndFractions().end(); ++rhIt) {
5109  for (EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin(); it != ecalRecHitCollection.end();
5110  ++it) {
5111  if (rhIt->first == (*it).id()) {
5112  if ((*it).recoFlag() == 9) {
5113  atLeastOneDeadChannel = true;
5114  break;
5115  }
5116  }
5117  }
5118  }
5119  }
5120 
5121  if (atLeastOneDeadChannel) {
5122  h_MatchedSimJetBadCh_[0]->Fill(mcJetEta_);
5123  h_MatchedSimJetBadCh_[1]->Fill(mcJetPhi_);
5124  h_MatchedSimJetBadCh_[2]->Fill(mcJetPt);
5125  }
5126 
5127  h_scBkgEta_->Fill(matchingPho.superCluster()->eta());
5128  h_scBkgPhi_->Fill(matchingPho.superCluster()->phi());
5129  h_scBkgE_[0]->Fill(matchingPho.superCluster()->energy());
5130  h_scBkgEt_[0]->Fill(matchingPho.superCluster()->energy() / cosh(matchingPho.superCluster()->eta()));
5131  //
5132  h_phoBkgEta_->Fill(matchingPho.eta());
5133  h_phoBkgPhi_->Fill(matchingPho.phi());
5134  h_phoBkgE_[0]->Fill(photonE);
5135  h_phoBkgEt_[0]->Fill(photonEt);
5136  h_phoBkgDEta_->Fill(matchingPho.eta() - mcJetEta_);
5137  h_phoBkgDPhi_->Fill(matchingPho.phi() - mcJetPhi_);
5138 
5139  h_r9Bkg_[0]->Fill(r9);
5140  h_r1Bkg_[0]->Fill(r1);
5141  h_r2Bkg_[0]->Fill(r2);
5142  h_sigmaIetaIetaBkg_[0]->Fill(sigmaIetaIeta);
5143  h_hOverEBkg_[0]->Fill(hOverE);
5144  h_ecalRecHitSumEtConeDR04Bkg_[0]->Fill(ecalIso);
5145  h_hcalTowerSumEtConeDR04Bkg_[0]->Fill(hcalIso);
5146  h_isoTrkSolidConeDR04Bkg_[0]->Fill(trkIso);
5147  h_nTrkSolidConeDR04Bkg_[0]->Fill(nIsoTrk);
5148 
5149  if (!isRunCentrally_) {
5150  h2_r9VsEtaBkg_->Fill(mcJetEta_, r9);
5151  h2_r9VsEtBkg_->Fill(mcJetPt, r9);
5152  h2_r1VsEtaBkg_->Fill(mcJetEta_, r1);
5153  h2_r1VsEtBkg_->Fill(mcJetPt, r1);
5154  h2_r2VsEtaBkg_->Fill(mcJetEta_, r2);
5155  h2_r2VsEtBkg_->Fill(mcJetPt, r2);
5156  h2_sigmaIetaIetaVsEtaBkg_->Fill(mcJetEta_, sigmaIetaIeta);
5157  h2_sigmaIetaIetaVsEtBkg_[0]->Fill(mcJetPt, sigmaIetaIeta);
5158  h2_hOverEVsEtaBkg_->Fill(mcJetEta_, hOverE);
5159  h2_hOverEVsEtBkg_->Fill(mcJetPt, hOverE);
5160 
5161  p_r1VsEtaBkg_->Fill(mcJetEta_, r1);
5162  p_r1VsEtBkg_->Fill(mcJetPt, r1);
5163  p_r2VsEtaBkg_->Fill(mcJetEta_, r2);
5164  p_r2VsEtBkg_->Fill(mcJetPt, r2);
5165  p_sigmaIetaIetaVsEtaBkg_->Fill(mcJetEta_, sigmaIetaIeta);
5166  p_sigmaIetaIetaVsEtBkg_[0]->Fill(mcJetPt, sigmaIetaIeta);
5167  p_hOverEVsEtaBkg_->Fill(mcJetEta_, hOverE);
5168  p_hOverEVsEtBkg_->Fill(mcJetPt, hOverE);
5169  }
5170 
5171  if (!isRunCentrally_) {
5172  h2_ecalRecHitSumEtConeDR04VsEtaBkg_->Fill(mcJetEta_, ecalIso);
5173  h2_ecalRecHitSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, ecalIso);
5174  h2_hcalTowerSumEtConeDR04VsEtaBkg_->Fill(mcJetEta_, hcalIso);
5175  h2_hcalTowerSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, hcalIso);
5176  p_ecalRecHitSumEtConeDR04VsEtaBkg_->Fill(mcJetEta_, ecalIso);
5177  p_ecalRecHitSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, ecalIso);
5178  p_hcalTowerSumEtConeDR04VsEtaBkg_->Fill(mcJetEta_, hcalIso);
5179  p_hcalTowerSumEtConeDR04VsEtBkg_[0]->Fill(mcJetPt, hcalIso);
5180  p_isoTrkSolidConeDR04VsEtaBkg_->Fill(mcJetEta_, trkIso);
5181  p_isoTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, trkIso);
5182  p_nTrkSolidConeDR04VsEtaBkg_->Fill(mcJetEta_, nIsoTrk);
5183  p_nTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, nIsoTrk);
5184  h2_isoTrkSolidConeDR04VsEtaBkg_->Fill(mcJetEta_, trkIso);
5185  h2_isoTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, trkIso);
5186  h2_nTrkSolidConeDR04VsEtaBkg_->Fill(mcJetEta_, nIsoTrk);
5187  h2_nTrkSolidConeDR04VsEtBkg_[0]->Fill(mcJetPt, nIsoTrk);
5188  }
5189 
5190  if (phoIsInBarrel) {
5191  h_r9Bkg_[1]->Fill(r9);
5192  h_r1Bkg_[1]->Fill(r1);
5193  h_r2Bkg_[1]->Fill(r2);
5194 
5195  h_sigmaIetaIetaBkg_[1]->Fill(sigmaIetaIeta);
5196  h_hOverEBkg_[1]->Fill(hOverE);
5197  h_ecalRecHitSumEtConeDR04Bkg_[1]->Fill(ecalIso);
5198  h_hcalTowerSumEtConeDR04Bkg_[1]->Fill(hcalIso);
5199  h_isoTrkSolidConeDR04Bkg_[1]->Fill(trkIso);
5200  h_nTrkSolidConeDR04Bkg_[1]->Fill(nIsoTrk);
5201 
5202  if (!isRunCentrally_) {
5203  h2_sigmaIetaIetaVsEtBkg_[1]->Fill(mcJetPt, sigmaIetaIeta);
5204  h2_isoTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, trkIso);
5205  h2_nTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, nIsoTrk);
5206  h2_ecalRecHitSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, ecalIso);
5207  h2_hcalTowerSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, hcalIso);
5208  p_sigmaIetaIetaVsEtBkg_[1]->Fill(mcJetPt, sigmaIetaIeta);
5209  p_ecalRecHitSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, ecalIso);
5210  p_hcalTowerSumEtConeDR04VsEtBkg_[1]->Fill(mcJetPt, hcalIso);
5211  p_isoTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, trkIso);
5212  p_nTrkSolidConeDR04VsEtBkg_[1]->Fill(mcJetPt, nIsoTrk);
5213  }
5214  } else if (phoIsInEndcap) {
5215  h_r9Bkg_[2]->Fill(r9);
5216  h_r1Bkg_[2]->Fill(r1);
5217  h_r2Bkg_[2]->Fill(r2);
5218 
5219  h_sigmaIetaIetaBkg_[2]->Fill(sigmaIetaIeta);
5220  h_hOverEBkg_[2]->Fill(hOverE);
5221  h_ecalRecHitSumEtConeDR04Bkg_[2]->Fill(ecalIso);
5222  h_hcalTowerSumEtConeDR04Bkg_[2]->Fill(hcalIso);
5223  h_isoTrkSolidConeDR04Bkg_[2]->Fill(trkIso);
5224  h_nTrkSolidConeDR04Bkg_[2]->Fill(nIsoTrk);
5225 
5226  if (!isRunCentrally_) {
5227  h2_sigmaIetaIetaVsEtBkg_[2]->Fill(mcJetPt, sigmaIetaIeta);
5228  h2_isoTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, trkIso);
5229  h2_nTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, nIsoTrk);
5230  h2_ecalRecHitSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, ecalIso);
5231  h2_hcalTowerSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, hcalIso);
5232  p_sigmaIetaIetaVsEtBkg_[2]->Fill(mcJetPt, sigmaIetaIeta);
5233  p_ecalRecHitSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, ecalIso);
5234  p_hcalTowerSumEtConeDR04VsEtBkg_[2]->Fill(mcJetPt, hcalIso);
5235  p_isoTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, trkIso);
5236  p_nTrkSolidConeDR04VsEtBkg_[2]->Fill(mcJetPt, nIsoTrk);
5237  }
5238  }
5239 
5240  if (!fastSim_) {
5243  for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
5244  reco::ConversionRef aConv = conversions[iConv];
5245  //std::vector<reco::TrackRef> tracks = aConv->tracks();
5246  const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
5247  double like = aConv->MVAout();
5248  if (like < likelihoodCut_)
5249  continue;
5250  if (tracks.size() < 2)
5251  continue;
5252  if (!aConv->caloCluster().empty()) {
5253  h_convEtaBkg_->Fill(aConv->caloCluster()[0]->eta());
5254  h_convPhiBkg_->Fill(aConv->caloCluster()[0]->phi());
5255  }
5256  h_mvaOutBkg_[0]->Fill(like);
5257  float eoverp = aConv->EoverP();
5258  h_EoverPTracksBkg_[0]->Fill(eoverp);
5259  h_PoverETracksBkg_[0]->Fill(1. / eoverp);
5260  h_DCotTracksBkg_[0]->Fill(aConv->pairCotThetaSeparation());
5261  float dPhiTracksAtVtx = aConv->dPhiTracksAtVtx();
5262  h_DPhiTracksAtVtxBkg_[0]->Fill(dPhiTracksAtVtx);
5263 
5264  if (phoIsInBarrel) {
5265  h_mvaOutBkg_[1]->Fill(like);
5266  h_EoverPTracksBkg_[1]->Fill(eoverp);
5267  h_PoverETracksBkg_[1]->Fill(1. / eoverp);
5268  h_DCotTracksBkg_[1]->Fill(aConv->pairCotThetaSeparation());
5269  h_DPhiTracksAtVtxBkg_[1]->Fill(dPhiTracksAtVtx);
5270  } else if (phoIsInEndcap) {
5271  h_mvaOutBkg_[2]->Fill(like);
5272  h_EoverPTracksBkg_[2]->Fill(eoverp);
5273  h_PoverETracksBkg_[2]->Fill(1. / eoverp);
5274  h_DCotTracksBkg_[2]->Fill(aConv->pairCotThetaSeparation());
5275  h_DPhiTracksAtVtxBkg_[2]->Fill(dPhiTracksAtVtx);
5276  }
5277 
5278  if (aConv->conversionVertex().isValid()) {
5279  double convR = sqrt(aConv->conversionVertex().position().perp2());
5280  double scalar = aConv->conversionVertex().position().x() * aConv->pairMomentum().x() +
5281  aConv->conversionVertex().position().y() * aConv->pairMomentum().y();
5282  if (scalar < 0)
5283  convR = -sqrt(aConv->conversionVertex().position().perp2());
5284 
5285  if (!isRunCentrally_) {
5286  h_convVtxRvsZBkg_[0]->Fill(fabs(aConv->conversionVertex().position().z()),
5287  sqrt(aConv->conversionVertex().position().perp2()));
5288  if (!aConv->caloCluster().empty() && fabs(aConv->caloCluster()[0]->eta()) <= 1.) {
5289  h_convVtxYvsXBkg_->Fill(aConv->conversionVertex().position().y(),
5290  aConv->conversionVertex().position().x());
5291  h_convVtxRvsZBkg_[1]->Fill(fabs(aConv->conversionVertex().position().z()), convR);
5292  }
5293  }
5294 
5295  } // end vertex valid
5296 
5297  } // end loop over conversions
5298  } // if !fastSim
5299  } // end loop over sim jets
5300 
5302  for (reco::GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end();
5303  mcIter++) {
5304  if (!(mcIter->pdgId() == 22))
5305  continue;
5306  if (mcIter->mother() != nullptr and !(mcIter->mother()->pdgId() == 25))
5307  continue;
5308  if (fabs(mcIter->eta()) > 2.5)
5309  continue;
5310 
5311  float mcPhi = mcIter->phi();
5312  float mcEta = mcIter->eta();
5313  //mcEta = etaTransformation(mcEta, (*mcPho).primaryVertex().z() );
5314  float mcEnergy = mcIter->energy();
5315 
5316  double dR = 9999999.;
5317  float minDr = 10000.;
5318  int iMatch = -1;
5319  bool matched = false;
5320 
5321  for (unsigned int ipho = 0; ipho < photonHandle->size(); ipho++) {
5322  reco::PhotonRef pho(reco::PhotonRef(photonHandle, ipho));
5323 
5324  double dphi = pho->phi() - mcPhi;
5325  if (std::fabs(dphi) > CLHEP::pi) {
5326  dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi;
5327  }
5328  double deta = pho->superCluster()->position().eta() - mcEta;
5329 
5330  dR = sqrt(pow((deta), 2) + pow(dphi, 2));
5331  if (dR < 0.1 && dR < minDr) {
5332  minDr = dR;
5333  iMatch = ipho;
5334  }
5335  }
5336 
5337  if (iMatch > -1)
5338  matched = true;
5339  if (!matched)
5340  continue;
5341 
5342  reco::PhotonRef matchingPho(reco::PhotonRef(photonHandle, iMatch));
5343 
5344  bool phoIsInBarrel = false;
5345  bool phoIsInEndcap = false;
5346 
5347  float phoEta = matchingPho->superCluster()->position().eta();
5348  if (fabs(phoEta) < 1.479) {
5349  phoIsInBarrel = true;
5350  } else {
5351  phoIsInEndcap = true;
5352  }
5353 
5354  float photonE = matchingPho->energy();
5355  float sigmaEoE = matchingPho->getCorrectedEnergyError(matchingPho->getCandidateP4type()) / matchingPho->energy();
5356  float photonEt = matchingPho->energy() / cosh(matchingPho->eta());
5357  // float photonERegr1 = matchingPho->getCorrectedEnergy(reco::Photon::regression1);
5358  //float photonERegr2 = matchingPho->getCorrectedEnergy(reco::Photon::regression2);
5359  float r9 = matchingPho->r9();
5360  float full5x5_r9 = matchingPho->full5x5_r9();
5361  float r1 = matchingPho->r1x5();
5362  float r2 = matchingPho->r2x5();
5363  float sigmaIetaIeta = matchingPho->sigmaIetaIeta();
5364  float full5x5_sieie = matchingPho->full5x5_sigmaIetaIeta();
5365  float hOverE = matchingPho->hadronicOverEm();
5366  float newhOverE = matchingPho->hadTowOverEm();
5367  float ecalIso = matchingPho->ecalRecHitSumEtConeDR04();
5368  float hcalIso = matchingPho->hcalTowerSumEtConeDR04();
5369  float newhcalIso = matchingPho->hcalTowerSumEtBcConeDR04();
5370  float trkIso = matchingPho->trkSumPtSolidConeDR04();
5371  float nIsoTrk = matchingPho->nTrkSolidConeDR04();
5372  // PF related quantities
5373  float chargedHadIso = matchingPho->chargedHadronIso();
5374  float neutralHadIso = matchingPho->neutralHadronIso();
5375  float photonIso = matchingPho->photonIso();
5376  // float etOutsideMustache = matchingPho->etOutsideMustache();
5377  // int nClusterOutsideMustache = matchingPho->nClusterOutsideMustache();
5378  //float pfMVA = matchingPho->pfMVA();
5379 
5380  if ((photonEt > 14 && newhOverE < 0.15) || (photonEt > 10 && photonEt < 14 && chargedHadIso < 10)) {
5381  h_scEta_miniAOD_[0]->Fill(matchingPho->superCluster()->eta());
5382  h_scPhi_miniAOD_[0]->Fill(matchingPho->superCluster()->phi());
5383 
5384  h_phoE_miniAOD_[0][0]->Fill(photonE);
5385  h_phoEt_miniAOD_[0][0]->Fill(photonEt);
5386 
5387  h_phoERes_miniAOD_[0][0]->Fill(photonE / mcEnergy);
5388  h_phoSigmaEoE_miniAOD_[0][0]->Fill(sigmaEoE);
5389 
5390  h_r9_miniAOD_[0][0]->Fill(r9);
5391  h_full5x5_r9_miniAOD_[0][0]->Fill(full5x5_r9);
5392  h_r1_miniAOD_[0][0]->Fill(r1);
5393  h_r2_miniAOD_[0][0]->Fill(r2);
5394 
5395  h_sigmaIetaIeta_miniAOD_[0][0]->Fill(sigmaIetaIeta);
5396  h_full5x5_sigmaIetaIeta_miniAOD_[0][0]->Fill(full5x5_sieie);
5397  h_hOverE_miniAOD_[0][0]->Fill(hOverE);
5398  h_newhOverE_miniAOD_[0][0]->Fill(newhOverE);
5399 
5400  h_ecalRecHitSumEtConeDR04_miniAOD_[0][0]->Fill(ecalIso);
5401  h_hcalTowerSumEtConeDR04_miniAOD_[0][0]->Fill(hcalIso);
5402  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][0]->Fill(newhcalIso);
5403  h_isoTrkSolidConeDR04_miniAOD_[0][0]->Fill(trkIso);
5404  h_nTrkSolidConeDR04_miniAOD_[0][0]->Fill(nIsoTrk);
5405 
5406  //
5407  h_chHadIso_miniAOD_[0]->Fill(chargedHadIso);
5408  h_nHadIso_miniAOD_[0]->Fill(neutralHadIso);
5409  h_phoIso_miniAOD_[0]->Fill(photonIso);
5410 
5411  //
5412  if (phoIsInBarrel) {
5413  h_phoE_miniAOD_[0][1]->Fill(photonE);
5414  h_phoEt_miniAOD_[0][1]->Fill(photonEt);
5415 
5416  h_phoERes_miniAOD_[0][1]->Fill(photonE / mcEnergy);
5417  h_phoSigmaEoE_miniAOD_[0][1]->Fill(sigmaEoE);
5418 
5419  h_r9_miniAOD_[0][1]->Fill(r9);
5420  h_full5x5_r9_miniAOD_[0][1]->Fill(full5x5_r9);
5421  h_r1_miniAOD_[0][1]->Fill(r1);
5422  h_r2_miniAOD_[0][1]->Fill(r2);
5423  h_sigmaIetaIeta_miniAOD_[0][1]->Fill(sigmaIetaIeta);
5424  h_full5x5_sigmaIetaIeta_miniAOD_[0][1]->Fill(full5x5_sieie);
5425  h_hOverE_miniAOD_[0][1]->Fill(hOverE);
5426  h_newhOverE_miniAOD_[0][1]->Fill(newhOverE);
5427  h_ecalRecHitSumEtConeDR04_miniAOD_[0][1]->Fill(ecalIso);
5428  h_hcalTowerSumEtConeDR04_miniAOD_[0][1]->Fill(hcalIso);
5429  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][1]->Fill(newhcalIso);
5430  h_isoTrkSolidConeDR04_miniAOD_[0][1]->Fill(trkIso);
5431  h_nTrkSolidConeDR04_miniAOD_[0][1]->Fill(nIsoTrk);
5432  h_chHadIso_miniAOD_[1]->Fill(chargedHadIso);
5433  h_nHadIso_miniAOD_[1]->Fill(neutralHadIso);
5434  h_phoIso_miniAOD_[1]->Fill(photonIso);
5435  }
5436  if (phoIsInEndcap) {
5437  h_phoE_miniAOD_[0][2]->Fill(photonE);
5438  h_phoEt_miniAOD_[0][2]->Fill(photonEt);
5439 
5440  h_phoERes_miniAOD_[0][2]->Fill(photonE / mcEnergy);
5441  h_phoSigmaEoE_miniAOD_[0][2]->Fill(sigmaEoE);
5442  h_r9_miniAOD_[0][2]->Fill(r9);
5443  h_full5x5_r9_miniAOD_[0][2]->Fill(full5x5_r9);
5444  h_r1_miniAOD_[0][2]->Fill(r1);
5445  h_r2_miniAOD_[0][2]->Fill(r2);
5446  h_sigmaIetaIeta_miniAOD_[0][2]->Fill(sigmaIetaIeta);
5447  h_full5x5_sigmaIetaIeta_miniAOD_[0][2]->Fill(full5x5_sieie);
5448  h_hOverE_miniAOD_[0][2]->Fill(hOverE);
5449  h_newhOverE_miniAOD_[0][2]->Fill(newhOverE);
5450  h_ecalRecHitSumEtConeDR04_miniAOD_[0][2]->Fill(ecalIso);
5451  h_hcalTowerSumEtConeDR04_miniAOD_[0][2]->Fill(hcalIso);
5452  h_hcalTowerBcSumEtConeDR04_miniAOD_[0][2]->Fill(newhcalIso);
5453  h_isoTrkSolidConeDR04_miniAOD_[0][2]->Fill(trkIso);
5454  h_nTrkSolidConeDR04_miniAOD_[0][2]->Fill(nIsoTrk);
5455  h_chHadIso_miniAOD_[2]->Fill(chargedHadIso);
5456  h_nHadIso_miniAOD_[2]->Fill(neutralHadIso);
5457  h_phoIso_miniAOD_[2]->Fill(photonIso);
5458  }
5459  } // end histos for comparing with miniAOD
5460 
5461  } // end loop over gen photons
5462 
5463  h_nPho_->Fill(float(nPho));
5464 }
5465 
5467  //---Definitions
5468  const float PI = 3.1415927;
5469  const float TWOPI = 2.0 * PI;
5470 
5471  if (phi > PI) {
5472  phi = phi - TWOPI;
5473  }
5474  if (phi < -PI) {
5475  phi = phi + TWOPI;
5476  }
5477 
5478  return phi;
5479 }
5480 
5481 float PhotonValidator::etaTransformation(float EtaParticle, float Zvertex) {
5482  //---Definitions
5483  const float PI = 3.1415927;
5484 
5485  //---Definitions for ECAL
5486  const float R_ECAL = 136.5;
5487  const float Z_Endcap = 328.0;
5488  const float etaBarrelEndcap = 1.479;
5489 
5490  //---ETA correction
5491 
5492  float Theta = 0.0;
5493  float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex;
5494 
5495  if (ZEcal != 0.0)
5496  Theta = atan(R_ECAL / ZEcal);
5497  if (Theta < 0.0)
5498  Theta = Theta + PI;
5499  float ETA = -log(tan(0.5 * Theta));
5500 
5501  if (fabs(ETA) > etaBarrelEndcap) {
5502  float Zend = Z_Endcap;
5503  if (EtaParticle < 0.0)
5504  Zend = -Zend;
5505  float Zlen = Zend - Zvertex;
5506  float RR = Zlen / sinh(EtaParticle);
5507  Theta = atan(RR / Zend);
5508  if (Theta < 0.0)
5509  Theta = Theta + PI;
5510  ETA = -log(tan(0.5 * Theta));
5511  }
5512  //---Return the result
5513  return ETA;
5514  //---end
5515 }
muonTagProbeFilters_cff.matched
matched
Definition: muonTagProbeFilters_cff.py:62
photonValidator_cfi.dEtaBin
dEtaBin
Definition: photonValidator_cfi.py:74
PI
Definition: PayloadInspector.h:19
TrackExtra.h
electrons_cff.r9
r9
Definition: electrons_cff.py:366
photonValidator_cfi.dEtaMax
dEtaMax
Definition: photonValidator_cfi.py:76
photonAnalyzer_cfi.rMax
rMax
Definition: photonAnalyzer_cfi.py:91
nTracks
const unsigned int nTracks(const reco::Vertex &sv)
Definition: TemplatedVertexArbitrator.h:44
photonAnalyzer_cfi.etMin
etMin
Definition: photonAnalyzer_cfi.py:54
photonValidator_cfi.ggMassMin
ggMassMin
Definition: photonValidator_cfi.py:114
Handle.h
PhotonValidator::phiNormalization
float phiNormalization(float &a)
Definition: PhotonValidator.cc:5466
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
ALCARECOTkAlBeamHalo_cff.etaMin
etaMin
GeV.
Definition: ALCARECOTkAlBeamHalo_cff.py:32
mps_fire.i
i
Definition: mps_fire.py:355
FreeTrajectoryState.h
edm::SortedCollection< EcalRecHit >::const_iterator
std::vector< EcalRecHit >::const_iterator const_iterator
Definition: SortedCollection.h:80
photonValidator_cfi.ggMassMax
ggMassMax
Definition: photonValidator_cfi.py:115
reco::Photon::superCluster
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
photonAnalyzer_cfi.zMax
zMax
Definition: photonAnalyzer_cfi.py:95
MessageLogger.h
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
TrackerGeometry.h
edm::Handle::product
T const * product() const
Definition: Handle.h:70
TrackCandidateCollection.h
photonAnalyzer_cfi.dPhiTracksMin
dPhiTracksMin
Definition: photonAnalyzer_cfi.py:102
etaBin
int etaBin(const l1t::HGCalMulticluster *cl)
Definition: L1EGammaEEProducer.cc:19
reco::PFCandidate::e
Definition: PFCandidate.h:46
reco::Photon::sigmaIetaIeta
float sigmaIetaIeta() const
Definition: Photon.h:237
photonAnalyzer_cfi.zBin
zBin
Definition: photonAnalyzer_cfi.py:93
PFCandidate.h
reco::GenJetCollection
std::vector< GenJet > GenJetCollection
collection of GenJet objects
Definition: GenJetCollection.h:14
photonAnalyzer_cfi.dPhiTracksBin
dPhiTracksBin
Definition: photonAnalyzer_cfi.py:101
PI
#define PI
Definition: QcdUeDQM.h:37
edm::Run
Definition: Run.h:45
BeamMonitor_cff.phiBin
phiBin
Definition: BeamMonitor_cff.py:75
photonValidationSequence_cff.eoverpMax
eoverpMax
Definition: photonValidationSequence_cff.py:17
BasicCluster.h
PhotonValidator::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: PhotonValidator.cc:3171
ChiSquaredProbability
float ChiSquaredProbability(double chiSquared, double nrDOF)
Definition: ChiSquaredProbability.cc:13
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
edm
HLT enums.
Definition: AlignableModifier.h:19
ZMuMuCategoriesSequences_cff.trkIso
trkIso
Definition: ZMuMuCategoriesSequences_cff.py:140
photonValidationSequence_cff.eoverpMin
eoverpMin
Definition: photonValidationSequence_cff.py:16
TrackCollections2monitor_cff.numberOfValidHits
numberOfValidHits
Definition: TrackCollections2monitor_cff.py:248
edm::LogInfo
Definition: MessageLogger.h:254
reco::TrackToTrackingParticleAssociator
Definition: TrackToTrackingParticleAssociator.h:51
muonRecoAnalyzer_cfi.chi2Min
chi2Min
Definition: muonRecoAnalyzer_cfi.py:34
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
reco::PFCandidate::h
Definition: PFCandidate.h:45
data-class-funcs.q
q
Definition: data-class-funcs.py:169
edm::PtrVectorItr
Definition: PtrVector.h:51
HIPAlignmentAlgorithm_cfi.algoName
algoName
Definition: HIPAlignmentAlgorithm_cfi.py:5
edm::SortedCollection< EcalRecHit >
ChiSquaredProbability.h
TrackerHitAssociator.h
photonValidator_cfi.dCotTracksMax
dCotTracksMax
Definition: photonValidator_cfi.py:100
edm::RefVector< ConversionCollection >
particleFlowDQM_cff.genJetCollection
genJetCollection
Definition: particleFlowDQM_cff.py:68
photonValidator_cfi.zMinForXray
zMinForXray
Definition: photonValidator_cfi.py:122
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
ConversionFwd.h
edm::Handle< reco::TrackToTrackingParticleAssociator >
photonValidator_cfi.rMinForXray
rMinForXray
Definition: photonValidator_cfi.py:118
BasicClusterFwd.h
HLT_2018_cff.dEta
dEta
Definition: HLT_2018_cff.py:12289
TwoTrackMinimumDistance.h
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
edm::Ref< PhotonCollection >
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
GenParticle.h
photonAnalyzer_cfi.dPhiTracksMax
dPhiTracksMax
Definition: photonAnalyzer_cfi.py:103
ndof
Definition: HIMultiTrackSelector.h:49
deltaR.h
gedPhotonSequence_cff.photonIso
photonIso
Definition: gedPhotonSequence_cff.py:30
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
conversionPostprocessing_cfi.etaBin2
etaBin2
Definition: conversionPostprocessing_cfi.py:19
cmsdt::algo
algo
Definition: constants.h:164
optionsL1T.skip
skip
Definition: optionsL1T.py:30
MakerMacros.h
PhotonValidator::dqmEndRun
void dqmEndRun(edm::Run const &r, edm::EventSetup const &es) override
Definition: PhotonValidator.cc:3167
TrackingRecHit.h
photonValidator_cfi.povereMax
povereMax
Definition: photonValidator_cfi.py:104
Track.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackFwd.h
photonValidator_cfi.resMin
resMin
Definition: photonValidator_cfi.py:91
TrackingVertexContainer.h
PhotonValidator.h
spr::deltaEta
static const double deltaEta
Definition: CaloConstants.h:8
photonValidationSequence_cff.useTP
useTP
Definition: photonValidationSequence_cff.py:14
ElectronMCTruth.h
edm::RefToBaseVector::push_back
void push_back(const RefToBase< T > &)
Definition: RefToBaseVector.h:217
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
PhotonMCTruth.h
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
Service.h
PhotonValidator::bookHistograms
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
Definition: PhotonValidator.cc:159
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
photonAnalyzer_cfi.eMin
eMin
Definition: photonAnalyzer_cfi.py:50
AlignmentTrackSelector_cfi.phiMin
phiMin
Definition: AlignmentTrackSelector_cfi.py:18
photonValidator_cfi.rMaxForXray
rMaxForXray
Definition: photonValidator_cfi.py:119
reco::Photon::nTrkSolidConeDR04
int nTrkSolidConeDR04() const
Definition: Photon.h:428
TransientTrackRecord
Definition: TransientTrackRecord.h:11
HLT_2018_cff.dPhi
dPhi
Definition: HLT_2018_cff.py:12290
reco::Track
Definition: Track.h:27
edm::ESHandle< TransientTrackBuilder >
AlignmentTrackSelector_cfi.phiMax
phiMax
Definition: AlignmentTrackSelector_cfi.py:17
p2
double p2[4]
Definition: TauolaWrapper.h:90
dqm::implementation::IBooker::bookProfile
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:322
photonValidator_cfi.zMaxForXray
zMaxForXray
Definition: photonValidator_cfi.py:123
CaloClusterFwd.h
hitfit::scalar
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::dqmBeginRun
void dqmBeginRun(edm::Run const &r, edm::EventSetup const &theEventSetup) override
Definition: PhotonValidator.cc:3158
photonAnalyzer_cfi.r9Min
r9Min
Definition: photonAnalyzer_cfi.py:70
PhotonMCTruthFinder
Definition: PhotonMCTruthFinder.h:20
edm::RefToBase::get
value_type const * get() const
Definition: RefToBase.h:209
cmsswSequenceInfo.tp
tp
Definition: cmsswSequenceInfo.py:17
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
edm::OwnVector::const_iterator
Definition: OwnVector.h:41
CaloGeometryRecord.h
photonValidator_cfi.eoverpBin
eoverpBin
Definition: photonValidator_cfi.py:106
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
edm::ValueMap::end
const_iterator end() const
Definition: ValueMap.h:230
TFileService.h
photonAnalyzer_cfi.r9Bin
r9Bin
Definition: photonAnalyzer_cfi.py:69
PhotonMCTruthFinder.h
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
TrackerDigiGeometryRecord.h
std::empty
constexpr auto empty(const C &c) -> decltype(c.empty())
Definition: cuda_cxx17.h:24
TrackToTrackingParticleAssociator.h
TransientTrackBuilder.h
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
EgHLTOffHistBins_cfi.hOverE
hOverE
Definition: EgHLTOffHistBins_cfi.py:17
edm::ParameterSet
Definition: ParameterSet.h:36
PhotonValidator::etaTransformation
float etaTransformation(float a, float b)
Definition: PhotonValidator.cc:5481
edm::LogError
Definition: MessageLogger.h:183
reco::Photon::r9
float r9() const
Definition: Photon.h:240
reco::LeafCandidate::eta
double eta() const final
momentum pseudorapidity
Definition: LeafCandidate.h:152
TWOPI
#define TWOPI
Definition: DQMSourcePi0.cc:36
cosmicPhotonAnalyzer_cfi.eMax
eMax
Definition: cosmicPhotonAnalyzer_cfi.py:10
edm::AssociationMap< edm::OneToManyWithQualityGeneric< TrackingParticleCollection, edm::View< reco::Track >, double > >
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
EcalClusterTools.h
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
muonClassificationByHits_cfi.trackingParticles
trackingParticles
Definition: muonClassificationByHits_cfi.py:28
dumpMFGeometry_cfg.delta
delta
Definition: dumpMFGeometry_cfg.py:25
CaloTopologyRecord.h
photonAnalyzer_cfi.zMin
zMin
Definition: photonAnalyzer_cfi.py:94
diffTwoXMLs.r2
r2
Definition: diffTwoXMLs.py:73
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
TrackTransientTrack.h
photonValidator_cfi.dCotTracksMin
dCotTracksMin
Definition: photonValidator_cfi.py:99
photonAnalyzer_cfi.rBin
rBin
Definition: photonAnalyzer_cfi.py:89
muonRecoAnalyzer_cfi.chi2Max
chi2Max
Definition: muonRecoAnalyzer_cfi.py:35
photonValidator_cfi.dEtaMin
dEtaMin
Definition: photonValidator_cfi.py:75
reco::PFCandidate::gamma
Definition: PFCandidate.h:48
photonValidator_cfi.resBin
resBin
Definition: photonValidator_cfi.py:90
p1
double p1[4]
Definition: TauolaWrapper.h:89
EgHLTOffHistBins_cfi.et
et
Definition: EgHLTOffHistBins_cfi.py:8
EgammaValidation_cff.pdgId
pdgId
Definition: EgammaValidation_cff.py:118
edm::EventSetup
Definition: EventSetup.h:57
photonValidator_cfi.zBin2ForXray
zBin2ForXray
Definition: photonValidator_cfi.py:121
TransientTrackRecord.h
get
#define get
edm::RefToBaseVector< reco::Track >
TrackCollections2monitor_cff.normalizedChi2
normalizedChi2
Definition: TrackCollections2monitor_cff.py:247
PhotonValidator::sortPhotons
Definition: PhotonValidator.h:592
GenTrackMatcher_cfi.trackAssociator
trackAssociator
Definition: GenTrackMatcher_cfi.py:14
nanoDQM_cff.Photon
Photon
Definition: nanoDQM_cff.py:63
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:193
alignCSCRings.r
r
Definition: alignCSCRings.py:93
CaloTopology.h
photonAnalyzer_cfi.dEtaTracksBin
dEtaTracksBin
Definition: photonAnalyzer_cfi.py:97
reco::Photon
Definition: Photon.h:21
cosmicPhotonAnalyzer_cfi.etMax
etMax
Definition: cosmicPhotonAnalyzer_cfi.py:11
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
reco::LeafCandidate::et
double et() const final
transverse energy
Definition: LeafCandidate.h:127
photonValidator_cfi.ggMassBin
ggMassBin
Definition: photonValidator_cfi.py:113
TrackingParticle.h
GeomDet.h
photonAnalyzer_cfi.dEtaTracksMin
dEtaTracksMin
Definition: photonAnalyzer_cfi.py:98
photonValidator_cfi.povereMin
povereMin
Definition: photonValidator_cfi.py:103
type
type
Definition: HCALResponse.h:21
GenParticle.GenParticle
GenParticle
Definition: GenParticle.py:18
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
photonValidator_cfi.dCotTracksBin
dCotTracksBin
Definition: photonValidator_cfi.py:98
reco::Photon::hadronicOverEm
float hadronicOverEm() const
the total hadronic over electromagnetic fraction
Definition: Photon.h:208
reco::LeafCandidate::phi
double phi() const final
momentum azimuthal angle
Definition: LeafCandidate.h:148
reco::TrackBase::algoSize
Definition: TrackBase.h:141
DetId.h
diffTwoXMLs.r1
r1
Definition: diffTwoXMLs.py:53
math::XYZTLorentzVector
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
reco::Photon::trkSumPtSolidConeDR04
float trkSumPtSolidConeDR04() const
Definition: Photon.h:424
edm::ValueMap
Definition: ValueMap.h:107
dqm::implementation::IBooker::book2D
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:177
PhotonValidator::PhotonValidator
PhotonValidator(const edm::ParameterSet &)
Definition: PhotonValidator.cc:84
reco::PFCandidate::h0
Definition: PFCandidate.h:49
SuperCluster.h
edm::RefVectorIterator
Definition: EDProductfwd.h:33
ETA
#define ETA
Definition: GenericBenchmark.cc:28
reco::Photon::conversions
reco::ConversionRefVector conversions() const
vector of references to Conversion's
Definition: Photon.h:60
cosmicPhotonAnalyzer_cfi.r9Max
r9Max
Definition: cosmicPhotonAnalyzer_cfi.py:12
reco::Photon::regression1
Definition: Photon.h:273
ALCARECOTkAlBeamHalo_cff.etaMax
etaMax
Definition: ALCARECOTkAlBeamHalo_cff.py:33
reco::Photon::ecalRecHitSumEtConeDR04
float ecalRecHitSumEtConeDR04() const
Definition: Photon.h:410
TrackingParticleCollection
std::vector< TrackingParticle > TrackingParticleCollection
Definition: TrackingParticleFwd.h:8
reco::Photon::r2x5
float r2x5() const
Definition: Photon.h:239
edm::RefToBase< reco::Track >
photonValidator_cfi.resMax
resMax
Definition: photonValidator_cfi.py:92
Exception.h
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
photonValidator_cfi.rBinForXray
rBinForXray
Definition: photonValidator_cfi.py:117
dqm::implementation::IBooker
Definition: DQMStore.h:43
reco::LeafCandidate::energy
double energy() const final
energy
Definition: LeafCandidate.h:125
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
edm::Ref::key
key_type key() const
Accessor for product key.
Definition: Ref.h:250
reco::PhotonCollection
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
photonAnalyzer_cfi.rMin
rMin
Definition: photonAnalyzer_cfi.py:90
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
pi
const Double_t pi
Definition: trackSplitPlot.h:36
PhotonValidator::~PhotonValidator
~PhotonValidator() override
Definition: PhotonValidator.cc:157
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
reco::Photon::r1x5
float r1x5() const
Definition: Photon.h:238
reco::Photon::regression2
Definition: Photon.h:273
ExoticaDQM_cfi.photonCollection
photonCollection
Definition: ExoticaDQM_cfi.py:17
photonValidator_cfi.dPhiBin
dPhiBin
Definition: photonValidator_cfi.py:78
HepMCProduct.h
reco::PFCandidate::ParticleType
ParticleType
particle types
Definition: PFCandidate.h:43
reco::TrackBase::momentum
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:635
parents
TPRegexp parents
Definition: eve_filter.cc:21
ZEcal
static constexpr float ZEcal
Definition: L1TkEmParticleProducer.cc:40
photonAnalyzer_cfi.etBin
etBin
Definition: photonAnalyzer_cfi.py:53
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
pwdgSkimBPark_cfi.conversions
conversions
Definition: pwdgSkimBPark_cfi.py:10
photonValidator_cfi.povereBin
povereBin
Definition: photonValidator_cfi.py:102
edm::Event
Definition: Event.h:73
edm::RefVector::size
size_type size() const
Size of the RefVector.
Definition: RefVector.h:102
d0
static constexpr float d0
Definition: L1EGammaCrystalsEmulatorProducer.cc:84
CSCSegmentAlgorithmRU_cfi.dPhiMax
dPhiMax
Definition: CSCSegmentAlgorithmRU_cfi.py:10
photonValidator_cfi.dPhiMin
dPhiMin
Definition: photonValidator_cfi.py:79
edm::InputTag
Definition: InputTag.h:15
begin
#define begin
Definition: vmac.h:32
Z_Endcap
static constexpr float Z_Endcap
Definition: ECALPositionCalculator.cc:11
photonAnalyzer_cfi.dEtaTracksMax
dEtaTracksMax
Definition: photonAnalyzer_cfi.py:99
reco::Photon::hcalTowerSumEtConeDR04
float hcalTowerSumEtConeDR04() const
Hcal isolation sum.
Definition: Photon.h:412
MuonClassifier_cff.hepMC
hepMC
Definition: MuonClassifier_cff.py:13
R_ECAL
static constexpr float R_ECAL
Definition: ECALPositionCalculator.cc:10
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
edm::ProductLabels
Definition: ProductLabels.h:4
CaloCluster.h
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
photonValidator_cfi.etScale
etScale
Definition: photonValidator_cfi.py:47
etaBarrelEndcap
static constexpr float etaBarrelEndcap
Definition: ECALPositionCalculator.cc:12
photonAnalyzer_cfi.eBin
eBin
CAREFULL for the time being only Loos exists 1 => Tight Photon = GoodCandidate.
Definition: photonAnalyzer_cfi.py:49
photonValidator_cfi.zBinForXray
zBinForXray
Definition: photonValidator_cfi.py:120
Conversion.h