Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-06-10 02:54:43

0001 #include <iostream>
0002 #include <memory>
0003 
0004 //
0005 #include "FWCore/ServiceRegistry/interface/Service.h"
0006 #include "CommonTools/UtilAlgos/interface/TFileService.h"
0007 //
0008 #include "Validation/RecoEgamma/plugins/PhotonValidator.h"
0009 
0010 //
0011 #include "FWCore/Framework/interface/MakerMacros.h"
0012 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0013 #include "FWCore/Utilities/interface/Exception.h"
0014 //
0015 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
0016 //
0017 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h"
0018 #include "SimDataFormats/TrackingAnalysis/interface/TrackingVertexContainer.h"
0019 #include "SimDataFormats/Associations/interface/TrackToTrackingParticleAssociator.h"
0020 //
0021 #include "SimTracker/TrackerHitAssociation/interface/TrackerHitAssociator.h"
0022 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
0023 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0024 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0025 //
0026 #include "DataFormats/Math/interface/deltaR.h"
0027 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
0028 #include "TrackingTools/PatternTools/interface/TwoTrackMinimumDistance.h"
0029 #include "TrackingTools/TransientTrack/interface/TrackTransientTrack.h"
0030 //
0031 #include "CLHEP/Units/GlobalPhysicalConstants.h"
0032 #include "CommonTools/Statistics/interface/ChiSquaredProbability.h"
0033 
0034 //
0035 #include "DataFormats/Common/interface/Handle.h"
0036 #include "DataFormats/TrackReco/interface/Track.h"
0037 #include "DataFormats/TrackReco/interface/TrackExtra.h"
0038 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0039 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
0040 #include "DataFormats/EgammaCandidates/interface/Conversion.h"
0041 #include "DataFormats/EgammaCandidates/interface/ConversionFwd.h"
0042 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0043 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
0044 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0045 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
0046 #include "DataFormats/VertexReco/interface/Vertex.h"
0047 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
0048 #include "DataFormats/EgammaReco/interface/BasicClusterFwd.h"
0049 #include "DataFormats/CaloRecHit/interface/CaloCluster.h"
0050 #include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h"
0051 #include "DataFormats/DetId/interface/DetId.h"
0052 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
0053 #include "DataFormats/VertexReco/interface/Vertex.h"
0054 
0055 //
0056 #include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruthFinder.h"
0057 #include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruth.h"
0058 #include "RecoEgamma/EgammaMCTools/interface/ElectronMCTruth.h"
0059 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h"
0060 
0061 #include "Geometry/CaloTopology/interface/CaloTopology.h"
0062 #include "Geometry/Records/interface/CaloTopologyRecord.h"
0063 //
0064 //#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0065 //
0066 #include "TFile.h"
0067 #include "TH1.h"
0068 #include "TH2.h"
0069 #include "TTree.h"
0070 #include "TVector3.h"
0071 #include "TProfile.h"
0072 //
0073 /** \class PhotonValidator
0074  **
0075  **
0076  **  $Id: PhotonValidator
0077  **  \author Nancy Marinelli, U. of Notre Dame, US
0078  **
0079  ***/
0080 
0081 using namespace std;
0082 
0083 PhotonValidator::PhotonValidator(const edm::ParameterSet& pset)
0084     : magneticFieldToken_{esConsumes<edm::Transition::BeginRun>()},
0085       caloGeometryToken_{esConsumes()},
0086       transientTrackBuilderToken_{esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))} {
0087   fName_ = pset.getParameter<std::string>("analyzerName");
0088   verbosity_ = pset.getUntrackedParameter<int>("Verbosity");
0089   parameters_ = pset;
0090   fastSim_ = pset.getParameter<bool>("fastSim");
0091   isRunCentrally_ = pset.getParameter<bool>("isRunCentrally");
0092 
0093   photonCollectionProducer_ = pset.getParameter<std::string>("phoProducer");
0094   photonCollection_ = pset.getParameter<std::string>("photonCollection");
0095   photonCollectionToken_ =
0096       consumes<reco::PhotonCollection>(edm::InputTag(photonCollectionProducer_, photonCollection_));
0097 
0098   token_tp_ = consumes<TrackingParticleCollection>(pset.getParameter<edm::InputTag>("label_tp"));
0099 
0100   barrelEcalHits_ = consumes<EcalRecHitCollection>(pset.getParameter<edm::InputTag>("barrelEcalHits"));
0101   endcapEcalHits_ = consumes<EcalRecHitCollection>(pset.getParameter<edm::InputTag>("endcapEcalHits"));
0102 
0103   conversionOITrackProducer_ = pset.getParameter<std::string>("conversionOITrackProducer");
0104   conversionIOTrackProducer_ = pset.getParameter<std::string>("conversionIOTrackProducer");
0105   conversionOITrackPr_Token_ = consumes<edm::View<reco::Track> >(edm::InputTag(conversionOITrackProducer_));
0106   conversionIOTrackPr_Token_ = consumes<edm::View<reco::Track> >(edm::InputTag(conversionIOTrackProducer_));
0107 
0108   pfCandidates_ = consumes<reco::PFCandidateCollection>(pset.getParameter<edm::InputTag>("pfCandidates"));
0109   valueMapPhoPFCandIso_ = pset.getParameter<std::string>("valueMapPhoToParticleBasedIso");
0110   particleBasedIso_token =
0111       consumes<edm::ValueMap<std::vector<reco::PFCandidateRef> > >(pset.getUntrackedParameter<edm::InputTag>(
0112           "particleBasedIso", edm::InputTag("particleBasedIsolation", valueMapPhoPFCandIso_)));
0113 
0114   minPhoEtCut_ = pset.getParameter<double>("minPhoEtCut");
0115   convTrackMinPtCut_ = pset.getParameter<double>("convTrackMinPtCut");
0116   likelihoodCut_ = pset.getParameter<double>("likelihoodCut");
0117 
0118   trkIsolExtRadius_ = pset.getParameter<double>("trkIsolExtR");
0119   trkIsolInnRadius_ = pset.getParameter<double>("trkIsolInnR");
0120   trkPtLow_ = pset.getParameter<double>("minTrackPtCut");
0121   lip_ = pset.getParameter<double>("lipCut");
0122   ecalIsolRadius_ = pset.getParameter<double>("ecalIsolR");
0123   bcEtLow_ = pset.getParameter<double>("minBcEtCut");
0124   hcalIsolExtRadius_ = pset.getParameter<double>("hcalIsolExtR");
0125   hcalIsolInnRadius_ = pset.getParameter<double>("hcalIsolInnR");
0126   hcalHitEtLow_ = pset.getParameter<double>("minHcalHitEtCut");
0127 
0128   numOfTracksInCone_ = pset.getParameter<int>("maxNumOfTracksInCone");
0129   trkPtSumCut_ = pset.getParameter<double>("trkPtSumCut");
0130   ecalEtSumCut_ = pset.getParameter<double>("ecalEtSumCut");
0131   hcalEtSumCut_ = pset.getParameter<double>("hcalEtSumCut");
0132   dCotCutOn_ = pset.getParameter<bool>("dCotCutOn");
0133   dCotCutValue_ = pset.getParameter<double>("dCotCutValue");
0134   dCotHardCutValue_ = pset.getParameter<double>("dCotHardCutValue");
0135 
0136   offline_pvToken_ = consumes<reco::VertexCollection>(
0137       pset.getUntrackedParameter<edm::InputTag>("offlinePV", edm::InputTag("offlinePrimaryVertices")));
0138   g4_simTk_Token_ = consumes<edm::SimTrackContainer>(edm::InputTag("g4SimHits"));
0139   g4_simVtx_Token_ = consumes<edm::SimVertexContainer>(edm::InputTag("g4SimHits"));
0140   famos_simTk_Token_ = consumes<edm::SimTrackContainer>(edm::InputTag("fastSimProducer"));
0141   famos_simVtx_Token_ = consumes<edm::SimVertexContainer>(edm::InputTag("fastSimProducer"));
0142   hepMC_Token_ = consumes<edm::HepMCProduct>(edm::InputTag("generatorSmeared"));
0143   genjets_Token_ = consumes<reco::GenJetCollection>(edm::InputTag("ak4GenJets"));
0144 
0145   genpartToken_ = consumes<reco::GenParticleCollection>(edm::InputTag("genParticles"));
0146 
0147   consumes<reco::TrackToTrackingParticleAssociator>(edm::InputTag("trackAssociatorByHitsForPhotonValidation"));
0148 
0149   nEvt_ = 0;
0150   nEntry_ = 0;
0151   nRecConv_ = 0;
0152   nRecConvAss_ = 0;
0153   nRecConvAssWithEcal_ = 0;
0154   nInvalidPCA_ = 0;
0155 }
0156 
0157 PhotonValidator::~PhotonValidator() {}
0158 
0159 void PhotonValidator::bookHistograms(DQMStore::IBooker& iBooker, edm::Run const& run, edm::EventSetup const&) {
0160   double resMin = parameters_.getParameter<double>("resMin");
0161   double resMax = parameters_.getParameter<double>("resMax");
0162   int resBin = parameters_.getParameter<int>("resBin");
0163 
0164   double eMin = parameters_.getParameter<double>("eMin");
0165   double eMax = parameters_.getParameter<double>("eMax");
0166   int eBin = parameters_.getParameter<int>("eBin");
0167 
0168   double etMin = parameters_.getParameter<double>("etMin");
0169   double etMax = parameters_.getParameter<double>("etMax");
0170   int etBin = parameters_.getParameter<int>("etBin");
0171 
0172   double etScale = parameters_.getParameter<double>("etScale");
0173 
0174   double etaMin = parameters_.getParameter<double>("etaMin");
0175   double etaMax = parameters_.getParameter<double>("etaMax");
0176   int etaBin = parameters_.getParameter<int>("etaBin");
0177   int etaBin2 = parameters_.getParameter<int>("etaBin2");
0178 
0179   double dEtaMin = parameters_.getParameter<double>("dEtaMin");
0180   double dEtaMax = parameters_.getParameter<double>("dEtaMax");
0181   int dEtaBin = parameters_.getParameter<int>("dEtaBin");
0182 
0183   double phiMin = parameters_.getParameter<double>("phiMin");
0184   double phiMax = parameters_.getParameter<double>("phiMax");
0185   int phiBin = parameters_.getParameter<int>("phiBin");
0186 
0187   double dPhiMin = parameters_.getParameter<double>("dPhiMin");
0188   double dPhiMax = parameters_.getParameter<double>("dPhiMax");
0189   int dPhiBin = parameters_.getParameter<int>("dPhiBin");
0190 
0191   double rMin = parameters_.getParameter<double>("rMin");
0192   double rMax = parameters_.getParameter<double>("rMax");
0193   int rBin = parameters_.getParameter<int>("rBin");
0194 
0195   double zMin = parameters_.getParameter<double>("zMin");
0196   double zMax = parameters_.getParameter<double>("zMax");
0197   int zBin = parameters_.getParameter<int>("zBin");
0198 
0199   double r9Min = parameters_.getParameter<double>("r9Min");
0200   double r9Max = parameters_.getParameter<double>("r9Max");
0201   int r9Bin = parameters_.getParameter<int>("r9Bin");
0202 
0203   double dPhiTracksMin = parameters_.getParameter<double>("dPhiTracksMin");
0204   double dPhiTracksMax = parameters_.getParameter<double>("dPhiTracksMax");
0205   int dPhiTracksBin = parameters_.getParameter<int>("dPhiTracksBin");
0206 
0207   double dEtaTracksMin = parameters_.getParameter<double>("dEtaTracksMin");
0208   double dEtaTracksMax = parameters_.getParameter<double>("dEtaTracksMax");
0209   int dEtaTracksBin = parameters_.getParameter<int>("dEtaTracksBin");
0210 
0211   double dCotTracksMin = parameters_.getParameter<double>("dCotTracksMin");
0212   double dCotTracksMax = parameters_.getParameter<double>("dCotTracksMax");
0213   int dCotTracksBin = parameters_.getParameter<int>("dCotTracksBin");
0214 
0215   double povereMin = parameters_.getParameter<double>("povereMin");
0216   double povereMax = parameters_.getParameter<double>("povereMax");
0217   int povereBin = parameters_.getParameter<int>("povereBin");
0218 
0219   double eoverpMin = parameters_.getParameter<double>("eoverpMin");
0220   double eoverpMax = parameters_.getParameter<double>("eoverpMax");
0221   int eoverpBin = parameters_.getParameter<int>("eoverpBin");
0222 
0223   double chi2Min = parameters_.getParameter<double>("chi2Min");
0224   double chi2Max = parameters_.getParameter<double>("chi2Max");
0225 
0226   int ggMassBin = parameters_.getParameter<int>("ggMassBin");
0227   double ggMassMin = parameters_.getParameter<double>("ggMassMin");
0228   double ggMassMax = parameters_.getParameter<double>("ggMassMax");
0229 
0230   double rMinForXray = parameters_.getParameter<double>("rMinForXray");
0231   double rMaxForXray = parameters_.getParameter<double>("rMaxForXray");
0232   int rBinForXray = parameters_.getParameter<int>("rBinForXray");
0233   double zMinForXray = parameters_.getParameter<double>("zMinForXray");
0234   double zMaxForXray = parameters_.getParameter<double>("zMaxForXray");
0235   int zBinForXray = parameters_.getParameter<int>("zBinForXray");
0236   int zBin2ForXray = parameters_.getParameter<int>("zBin2ForXray");
0237 
0238   //// All MC photons
0239   // SC from reco photons
0240 
0241   iBooker.setCurrentFolder("EgammaV/" + fName_ + "/SimulationInfo");
0242 
0243   // simulation information about all MC photons found
0244   std::string histname = "nOfSimPhotons";
0245   if (!isRunCentrally_) {
0246     h_nSimPho_[0] = iBooker.book1D(histname, "# of Sim photons per event ", 20, -0.5, 19.5);
0247     histname = "SimPhoMotherEt";
0248     h_SimPhoMotherEt_[0] = iBooker.book1D(histname, "Sim photon Mother tranverse energy spectrum", etBin, etMin, etMax);
0249     h_SimPhoMotherEta_[0] = iBooker.book1D("SimPhoMotherEta", " Sim Photon Mother Eta ", etaBin, etaMin, etaMax);
0250     histname = "SimPhoMotherEtMatched";
0251     h_SimPhoMotherEt_[1] = iBooker.book1D(
0252         histname, "Sim photon  matched by a reco Photon: Mother tranverse energy spectrum", etBin, etMin, etMax);
0253     h_SimPhoMotherEta_[1] = iBooker.book1D(
0254         "SimPhoMotherEtaMatched", " Sim Photon matched by a reco Photon:  Mother Eta ", etaBin, etaMin, etaMax);
0255   }
0256 
0257   histname = "h_SimPhoEta";
0258   h_SimPho_[0] = iBooker.book1D(histname, " All photons simulated #eta", etaBin, etaMin, etaMax);
0259   histname = "h_SimPhoPhi";
0260   h_SimPho_[1] = iBooker.book1D(histname, " All photons simulated #phi", phiBin, phiMin, phiMax);
0261   histname = "h_SimPhoEt";
0262   h_SimPho_[2] = iBooker.book1D(histname, " All photons simulated Et", etBin, etMin, etMax);
0263   // Numerators
0264   histname = "nOfSimPhotonsMatched";
0265   h_nSimPho_[1] = iBooker.book1D(histname, "# of Sim photons matched by a reco Photon per event ", 20, -0.5, 19.5);
0266   histname = "h_MatchedSimPhoEta";
0267   h_MatchedSimPho_[0] = iBooker.book1D(histname, " Matching photons simulated #eta", etaBin, etaMin, etaMax);
0268   histname = "h_MatchedSimPhoPhi";
0269   h_MatchedSimPho_[1] = iBooker.book1D(histname, " Matching photons simulated #phi", phiBin, phiMin, phiMax);
0270   histname = "h_MatchedSimPhoEt";
0271   h_MatchedSimPho_[2] = iBooker.book1D(histname, " Matching photons simulated Et", etBin, etMin, etMax);
0272   //
0273   histname = "h_MatchedSimPhoBadChEta";
0274   h_MatchedSimPhoBadCh_[0] = iBooker.book1D(histname, " Matching photons simulated #eta", etaBin, etaMin, etaMax);
0275   histname = "h_MatchedSimPhoBadChPhi";
0276   h_MatchedSimPhoBadCh_[1] = iBooker.book1D(histname, " Matching photons simulated #phi", phiBin, phiMin, phiMax);
0277   histname = "h_MatchedSimPhoBadChEt";
0278   h_MatchedSimPhoBadCh_[2] = iBooker.book1D(histname, " Matching photons simulated Et", etBin, etMin, etMax);
0279 
0280   /// Histograms for efficiencies
0281   histname = "nOfSimConversions";
0282   if (!isRunCentrally_) {
0283     h_nSimConv_[0] = iBooker.book1D(histname, "# of Sim conversions per event ", 20, -0.5, 19.5);
0284     histname = "nOfVisSimConversions";
0285     h_nSimConv_[1] = iBooker.book1D(histname, "# of Sim conversions per event ", 20, -0.5, 19.5);
0286   }
0287   /// Denominators
0288   histname = "h_AllSimConvEta";
0289   h_AllSimConv_[0] = iBooker.book1D(histname, " All conversions: simulated #eta", etaBin2, etaMin, etaMax);
0290   histname = "h_AllSimConvPhi";
0291   h_AllSimConv_[1] = iBooker.book1D(histname, " All conversions: simulated #phi", phiBin, phiMin, phiMax);
0292   histname = "h_AllSimConvR";
0293   h_AllSimConv_[2] = iBooker.book1D(histname, " All conversions: simulated R", rBin, rMin, rMax);
0294   histname = "h_AllSimConvZ";
0295   h_AllSimConv_[3] = iBooker.book1D(histname, " All conversions: simulated Z", zBin, zMin, zMax);
0296   histname = "h_AllSimConvEt";
0297   h_AllSimConv_[4] = iBooker.book1D(histname, " All conversions: simulated Et", etBin, etMin, etMax);
0298   //
0299   histname = "h_VisSimConvEta";
0300   h_VisSimConv_[0] = iBooker.book1D(histname, " All vis conversions: simulated #eta", etaBin2, etaMin, etaMax);
0301   histname = "h_VisSimConvPhi";
0302   h_VisSimConv_[1] = iBooker.book1D(histname, " All vis conversions: simulated #phi", phiBin, phiMin, phiMax);
0303   histname = "h_VisSimConvR";
0304   h_VisSimConv_[2] = iBooker.book1D(histname, " All vis conversions: simulated R", rBin, rMin, rMax);
0305   histname = "h_VisSimConvZ";
0306   h_VisSimConv_[3] = iBooker.book1D(histname, " All vis conversions: simulated Z", zBin, zMin, zMax);
0307   histname = "h_VisSimConvEt";
0308   h_VisSimConv_[4] = iBooker.book1D(histname, " All vis conversions: simulated Et", etBin, etMin, etMax);
0309   /// Numerators
0310   histname = "h_SimConvOneTracksEta";
0311   h_SimConvOneTracks_[0] =
0312       iBooker.book1D(histname, " All vis conversions with 1 reco  tracks: simulated #eta", etaBin2, etaMin, etaMax);
0313   histname = "h_SimConvOneTracksPhi";
0314   h_SimConvOneTracks_[1] =
0315       iBooker.book1D(histname, " All vis conversions with 1 reco  tracks: simulated #phi", phiBin, phiMin, phiMax);
0316   histname = "h_SimConvOneTracksR";
0317   h_SimConvOneTracks_[2] =
0318       iBooker.book1D(histname, " All vis conversions with 1 reco  tracks: simulated R", rBin, rMin, rMax);
0319   histname = "h_SimConvOneTracksZ";
0320   h_SimConvOneTracks_[3] =
0321       iBooker.book1D(histname, " All vis conversions with 1 reco  tracks: simulated Z", zBin, zMin, zMax);
0322   histname = "h_SimConvOneTracksEt";
0323   h_SimConvOneTracks_[4] =
0324       iBooker.book1D(histname, " All vis conversions with 1 reco  tracks: simulated Et", etBin, etMin, etMax);
0325   //
0326   histname = "h_SimConvTwoMTracksEta";
0327   h_SimConvTwoMTracks_[0] = iBooker.book1D(
0328       histname, " All vis conversions with 2 reco-matching tracks: simulated #eta", etaBin2, etaMin, etaMax);
0329   histname = "h_SimConvTwoMTracksPhi";
0330   h_SimConvTwoMTracks_[1] = iBooker.book1D(
0331       histname, " All vis conversions with 2 reco-matching tracks: simulated #phi", phiBin, phiMin, phiMax);
0332   histname = "h_SimConvTwoMTracksR";
0333   h_SimConvTwoMTracks_[2] =
0334       iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated R", rBin, rMin, rMax);
0335   histname = "h_SimConvTwoMTracksZ";
0336   h_SimConvTwoMTracks_[3] =
0337       iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated Z", zBin, zMin, zMax);
0338   histname = "h_SimConvTwoMTracksEt";
0339   h_SimConvTwoMTracks_[4] =
0340       iBooker.book1D(histname, " All vis conversions with 2 reco-matching tracks: simulated Et", etBin, etMin, etMax);
0341   //
0342   histname = "h_SimConvTwoTracksEta";
0343   h_SimConvTwoTracks_[0] =
0344       iBooker.book1D(histname, " All vis conversions with 2 reco  tracks: simulated #eta", etaBin2, etaMin, etaMax);
0345   histname = "h_SimConvTwoTracksPhi";
0346   h_SimConvTwoTracks_[1] =
0347       iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated #phi", phiBin, phiMin, phiMax);
0348   histname = "h_SimConvTwoTracksR";
0349   h_SimConvTwoTracks_[2] =
0350       iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated R", rBin, rMin, rMax);
0351   histname = "h_SimConvTwoTracksZ";
0352   h_SimConvTwoTracks_[3] =
0353       iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated Z", zBin, zMin, zMax);
0354   histname = "h_SimConvTwoTracksEt";
0355   h_SimConvTwoTracks_[4] =
0356       iBooker.book1D(histname, " All vis conversions with 2 reco tracks: simulated Et", etBin, etMin, etMax);
0357   //
0358   histname = "h_SimConvOneMTracksEta";
0359   h_SimConvOneMTracks_[0] = iBooker.book1D(
0360       histname, " All vis conversions with 1 reco-matching tracks: simulated #eta", etaBin2, etaMin, etaMax);
0361   histname = "h_SimConvOneMTracksPhi";
0362   h_SimConvOneMTracks_[1] = iBooker.book1D(
0363       histname, " All vis conversions with 1 reco-matching tracks: simulated #phi", phiBin, phiMin, phiMax);
0364   histname = "h_SimConvOneMTracksR";
0365   h_SimConvOneMTracks_[2] =
0366       iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated R", rBin, rMin, rMax);
0367   histname = "h_SimConvOneMTracksZ";
0368   h_SimConvOneMTracks_[3] =
0369       iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated Z", zBin, zMin, zMax);
0370   histname = "h_SimConvOneMTracksEt";
0371   h_SimConvOneMTracks_[4] =
0372       iBooker.book1D(histname, " All vis conversions with 1 reco-matching tracks: simulated Et", etBin, etMin, etMax);
0373   //
0374   histname = "h_SimConvTwoMTracksEtaAndVtxPGT0";
0375   h_SimConvTwoMTracksAndVtxPGT0_[0] = iBooker.book1D(
0376       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #eta", etaBin2, etaMin, etaMax);
0377   histname = "h_SimConvTwoMTracksPhiAndVtxPGT0";
0378   h_SimConvTwoMTracksAndVtxPGT0_[1] = iBooker.book1D(
0379       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #phi", phiBin, phiMin, phiMax);
0380   histname = "h_SimConvTwoMTracksRAndVtxPGT0";
0381   h_SimConvTwoMTracksAndVtxPGT0_[2] = iBooker.book1D(
0382       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated R", rBin, rMin, rMax);
0383   histname = "h_SimConvTwoMTracksZAndVtxPGT0";
0384   h_SimConvTwoMTracksAndVtxPGT0_[3] = iBooker.book1D(
0385       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Z", zBin, zMin, zMax);
0386   histname = "h_SimConvTwoMTracksEtAndVtxPGT0";
0387   h_SimConvTwoMTracksAndVtxPGT0_[4] = iBooker.book1D(
0388       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Et", etBin, etMin, etMax);
0389   //
0390   histname = "h_SimConvTwoMTracksEtaAndVtxPGT0005";
0391   h_SimConvTwoMTracksAndVtxPGT0005_[0] = iBooker.book1D(
0392       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #eta", etaBin2, etaMin, etaMax);
0393   histname = "h_SimConvTwoMTracksPhiAndVtxPGT0005";
0394   h_SimConvTwoMTracksAndVtxPGT0005_[1] = iBooker.book1D(
0395       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated #phi", phiBin, phiMin, phiMax);
0396   histname = "h_SimConvTwoMTracksRAndVtxPGT0005";
0397   h_SimConvTwoMTracksAndVtxPGT0005_[2] = iBooker.book1D(
0398       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated R", rBin, rMin, rMax);
0399   histname = "h_SimConvTwoMTracksZAndVtxPGT0005";
0400   h_SimConvTwoMTracksAndVtxPGT0005_[3] = iBooker.book1D(
0401       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Z", zBin, zMin, zMax);
0402   histname = "h_SimConvTwoMTracksEtAndVtxPGT0005";
0403   h_SimConvTwoMTracksAndVtxPGT0005_[4] = iBooker.book1D(
0404       histname, " All vis conversions with 2 reco-matching tracks + vertex: simulated Et", etBin, etMin, etMax);
0405 
0406   if (!isRunCentrally_) {
0407     h_SimConvEtaPix_[0] = iBooker.book1D("simConvEtaPix", " sim converted Photon Eta: Pix ", etaBin, etaMin, etaMax);
0408     h_simTkPt_ = iBooker.book1D("simTkPt", "Sim conversion tracks pt ", etBin * 3, 0., etMax);
0409     h_simTkEta_ = iBooker.book1D("simTkEta", "Sim conversion tracks eta ", etaBin, etaMin, etaMax);
0410     h_simConvVtxRvsZ_[0] = iBooker.book2D("simConvVtxRvsZAll",
0411                                           " Photon Sim conversion vtx position",
0412                                           zBinForXray,
0413                                           zMinForXray,
0414                                           zMaxForXray,
0415                                           rBinForXray,
0416                                           rMinForXray,
0417                                           rMaxForXray);
0418     h_simConvVtxRvsZ_[1] = iBooker.book2D("simConvVtxRvsZBarrel",
0419                                           " Photon Sim conversion vtx position",
0420                                           zBinForXray,
0421                                           zMinForXray,
0422                                           zMaxForXray,
0423                                           rBinForXray,
0424                                           rMinForXray,
0425                                           rMaxForXray);
0426     h_simConvVtxRvsZ_[2] = iBooker.book2D("simConvVtxRvsZEndcap",
0427                                           " Photon Sim conversion vtx position",
0428                                           zBin2ForXray,
0429                                           zMinForXray,
0430                                           zMaxForXray,
0431                                           rBinForXray,
0432                                           rMinForXray,
0433                                           rMaxForXray);
0434     h_simConvVtxYvsX_ = iBooker.book2D(
0435         "simConvVtxYvsXTrkBarrel", " Photon Sim conversion vtx position, (x,y) eta<1 ", 100, -80., 80., 100, -80., 80.);
0436   }
0437 
0438   //// histograms for bkg
0439   histname = "h_SimJetEta";
0440   h_SimJet_[0] = iBooker.book1D(histname, " Jet bkg simulated #eta", etaBin, etaMin, etaMax);
0441   histname = "h_SimJetPhi";
0442   h_SimJet_[1] = iBooker.book1D(histname, " Jet bkg simulated #phi", phiBin, phiMin, phiMax);
0443   histname = "h_SimJetEt";
0444   h_SimJet_[2] = iBooker.book1D(histname, " Jet bkg simulated Et", etBin, etMin, etMax);
0445   //
0446   histname = "h_MatchedSimJetEta";
0447   h_MatchedSimJet_[0] = iBooker.book1D(histname, " Matching jet simulated #eta", etaBin, etaMin, etaMax);
0448   histname = "h_MatchedSimJetPhi";
0449   h_MatchedSimJet_[1] = iBooker.book1D(histname, " Matching jet simulated #phi", phiBin, phiMin, phiMax);
0450   histname = "h_MatchedSimJetEt";
0451   h_MatchedSimJet_[2] = iBooker.book1D(histname, " Matching jet simulated Et", etBin, etMin, etMax);
0452   //
0453   histname = "h_MatchedSimJetBadChEta";
0454   h_MatchedSimJetBadCh_[0] = iBooker.book1D(histname, " Matching jet simulated #eta", etaBin, etaMin, etaMax);
0455   histname = "h_MatchedSimJetBadChPhi";
0456   h_MatchedSimJetBadCh_[1] = iBooker.book1D(histname, " Matching jet simulated #phi", phiBin, phiMin, phiMax);
0457   histname = "h_MatchedSimJetBadChEt";
0458   h_MatchedSimJetBadCh_[2] = iBooker.book1D(histname, " Matching jet simulated Et", etBin, etMin, etMax);
0459 
0460   iBooker.setCurrentFolder("EgammaV/" + fName_ + "/Background");
0461 
0462   histname = "nOfPhotons";
0463   h_nPho_ = iBooker.book1D(histname, "# of Reco photons per event ", 20, -0.5, 19.5);
0464 
0465   h_scBkgEta_ = iBooker.book1D("scBkgEta", " SC Bkg Eta ", etaBin, etaMin, etaMax);
0466   h_scBkgPhi_ = iBooker.book1D("scBkgPhi", " SC Bkg  Phi ", phiBin, phiMin, phiMax);
0467   //
0468   h_phoBkgEta_ = iBooker.book1D("phoBkgEta", " Photon Bkg Eta ", etaBin, etaMin, etaMax);
0469   h_phoBkgPhi_ = iBooker.book1D("phoBkgPhi", " Photon Bkg Phi ", phiBin, phiMin, phiMax);
0470   //
0471   h_phoBkgDEta_ = iBooker.book1D("phoBkgDEta", " Photon Eta(rec)-Eta(true) ", dEtaBin, dEtaMin, dEtaMax);
0472   h_phoBkgDPhi_ = iBooker.book1D("phoBkgDPhi", " Photon  Phi(rec)-Phi(true) ", dPhiBin, dPhiMin, dPhiMax);
0473   //
0474   histname = "phoBkgE";
0475   h_phoBkgE_[0] = iBooker.book1D(histname + "All", " Photon Bkg Energy: All ecal ", eBin, eMin, eMax);
0476   h_phoBkgE_[1] = iBooker.book1D(histname + "Barrel", " Photon Bkg Energy: barrel ", eBin, eMin, eMax);
0477   h_phoBkgE_[2] = iBooker.book1D(histname + "Endcap", " Photon Bkg Energy: Endcap ", eBin, eMin, eMax);
0478   //
0479   histname = "phoBkgEt";
0480   h_phoBkgEt_[0] = iBooker.book1D(histname + "All", " Photon Bkg Transverse Energy: All ecal ", etBin, etMin, etMax);
0481   h_phoBkgEt_[1] = iBooker.book1D(histname + "Barrel", " Photon Bkg Transverse Energy: Barrel ", etBin, etMin, etMax);
0482   h_phoBkgEt_[2] = iBooker.book1D(histname + "Endcap", " Photon BkgTransverse Energy: Endcap ", etBin, etMin, etMax);
0483 
0484   //
0485   histname = "scBkgE";
0486   h_scBkgE_[0] = iBooker.book1D(histname + "All", "    SC bkg Energy: All Ecal  ", eBin, eMin, eMax);
0487   h_scBkgE_[1] = iBooker.book1D(histname + "Barrel", " SC bkg Energy: Barrel ", eBin, eMin, eMax);
0488   h_scBkgE_[2] = iBooker.book1D(histname + "Endcap", " SC bkg Energy: Endcap ", eBin, eMin, eMax);
0489   histname = "scBkgEt";
0490   h_scBkgEt_[0] = iBooker.book1D(histname + "All", "    SC bkg Et: All Ecal  ", eBin, eMin, eMax);
0491   h_scBkgEt_[1] = iBooker.book1D(histname + "Barrel", " SC bkg Et: Barrel ", eBin, eMin, eMax);
0492   h_scBkgEt_[2] = iBooker.book1D(histname + "Endcap", " SC bkg Et: Endcap ", eBin, eMin, eMax);
0493   //
0494   histname = "r9Bkg";
0495   h_r9Bkg_[0] = iBooker.book1D(histname + "All", " r9 bkg: All Ecal", r9Bin, r9Min, r9Max);
0496   h_r9Bkg_[1] = iBooker.book1D(histname + "Barrel", " r9 bkg: Barrel ", r9Bin, r9Min, r9Max);
0497   h_r9Bkg_[2] = iBooker.book1D(histname + "Endcap", " r9 bkg: Endcap ", r9Bin, r9Min, r9Max);
0498   //
0499   histname = "R9VsEtaBkg";
0500   if (!isRunCentrally_)
0501     h2_r9VsEtaBkg_ =
0502         iBooker.book2D(histname + "All", " Bkg r9 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
0503   //
0504   histname = "R9VsEtBkg";
0505   if (!isRunCentrally_)
0506     h2_r9VsEtBkg_ =
0507         iBooker.book2D(histname + "All", " Bkg photons r9 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
0508   //
0509   histname = "r1Bkg";
0510   h_r1Bkg_[0] = iBooker.book1D(histname + "All", " Bkg photon e1x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
0511   h_r1Bkg_[1] = iBooker.book1D(histname + "Barrel", " Bkg photon e1x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
0512   h_r1Bkg_[2] = iBooker.book1D(histname + "Endcap", " Bkg photon e1x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
0513   //
0514   histname = "R1VsEtaBkg";
0515   if (!isRunCentrally_)
0516     h2_r1VsEtaBkg_ = iBooker.book2D(
0517         histname + "All", " Bkg photons e1x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
0518   histname = "pR1VsEtaBkg";
0519   if (!isRunCentrally_)
0520     p_r1VsEtaBkg_ = iBooker.bookProfile(
0521         histname + "All", " Bkg photons e1x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
0522   //
0523   histname = "R1VsEtBkg";
0524   if (!isRunCentrally_)
0525     h2_r1VsEtBkg_ =
0526         iBooker.book2D(histname + "All", " Bkg photons e1x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
0527   histname = "pR1VsEtBkg";
0528   if (!isRunCentrally_)
0529     p_r1VsEtBkg_ = iBooker.bookProfile(
0530         histname + "All", " Bkg photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
0531   //
0532   histname = "r2Bkg";
0533   h_r2Bkg_[0] = iBooker.book1D(histname + "All", " Bkg photon e2x5/e5x5: All Ecal", r9Bin, r9Min, r9Max);
0534   h_r2Bkg_[1] = iBooker.book1D(histname + "Barrel", " Bkg photon e2x5/e5x5: Barrel ", r9Bin, r9Min, r9Max);
0535   h_r2Bkg_[2] = iBooker.book1D(histname + "Endcap", " Bkg photon e2x5/e5x5: Endcap ", r9Bin, r9Min, r9Max);
0536   //
0537   histname = "R2VsEtaBkg";
0538   if (!isRunCentrally_)
0539     h2_r2VsEtaBkg_ = iBooker.book2D(
0540         histname + "All", " Bkg photons e2x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
0541   histname = "pR2VsEtaBkg";
0542   if (!isRunCentrally_)
0543     p_r2VsEtaBkg_ = iBooker.bookProfile(
0544         histname + "All", " Bkg photons e2x5/e5x5 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 1.1);
0545   //
0546   histname = "R2VsEtBkg";
0547   if (!isRunCentrally_)
0548     h2_r2VsEtBkg_ =
0549         iBooker.book2D(histname + "All", " Bkg photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
0550   histname = "pR2VsEtBkg";
0551   if (!isRunCentrally_)
0552     p_r2VsEtBkg_ = iBooker.bookProfile(
0553         histname + "All", " Bkg photons e2x5/e5x5 vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 1.1);
0554 
0555   histname = "sigmaIetaIetaBkg";
0556   h_sigmaIetaIetaBkg_[0] = iBooker.book1D(histname + "All", "Bkg sigmaIetaIeta: All Ecal", 100, 0., 0.1);
0557   h_sigmaIetaIetaBkg_[1] = iBooker.book1D(histname + "Barrel", "Bkg sigmaIetaIeta: Barrel ", 100, 0., 0.05);
0558   h_sigmaIetaIetaBkg_[2] = iBooker.book1D(histname + "Endcap", "Bkg sigmaIetaIeta: Endcap ", 100, 0., 0.1);
0559   //
0560   histname = "sigmaIetaIetaVsEtaBkg";
0561   if (!isRunCentrally_)
0562     h2_sigmaIetaIetaVsEtaBkg_ = iBooker.book2D(
0563         histname + "All", " Bkg photons sigmaIetaIeta vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
0564   histname = "pSigmaIetaIetaVsEtaBkg";
0565   if (!isRunCentrally_)
0566     p_sigmaIetaIetaVsEtaBkg_ = iBooker.bookProfile(
0567         histname + "All", " Bkg photons sigmaIetaIeta vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
0568   //
0569   histname = "sigmaIetaIetaVsEtBkg";
0570   if (!isRunCentrally_)
0571     h2_sigmaIetaIetaVsEtBkg_[0] = iBooker.book2D(
0572         histname + "All", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0573   if (!isRunCentrally_)
0574     h2_sigmaIetaIetaVsEtBkg_[1] = iBooker.book2D(
0575         histname + "Barrel", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0576   if (!isRunCentrally_)
0577     h2_sigmaIetaIetaVsEtBkg_[2] = iBooker.book2D(
0578         histname + "Endcap", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0579   //
0580   histname = "pSigmaIetaIetaVsEtBkg";
0581   if (!isRunCentrally_)
0582     p_sigmaIetaIetaVsEtBkg_[0] = iBooker.bookProfile(
0583         histname + "All", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0584   if (!isRunCentrally_)
0585     p_sigmaIetaIetaVsEtBkg_[1] = iBooker.bookProfile(
0586         histname + "Barrel", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0587   if (!isRunCentrally_)
0588     p_sigmaIetaIetaVsEtBkg_[2] = iBooker.bookProfile(
0589         histname + "Endcap", " Bkg photons sigmaIetaIeta vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0590   //
0591   histname = "hOverEBkg";
0592   h_hOverEBkg_[0] = iBooker.book1D(histname + "All", "H/E bkg: All Ecal", 100, 0., 1.);
0593   h_hOverEBkg_[1] = iBooker.book1D(histname + "Barrel", "H/E bkg: Barrel ", 100, 0., 1.);
0594   h_hOverEBkg_[2] = iBooker.book1D(histname + "Endcap", "H/E bkg: Endcap ", 100, 0., 1.);
0595   //
0596   histname = "pHOverEVsEtaBkg";
0597   if (!isRunCentrally_)
0598     p_hOverEVsEtaBkg_ =
0599         iBooker.bookProfile(histname + "All", " Bkg H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
0600   histname = "pHOverEVsEtBkg";
0601   if (!isRunCentrally_)
0602     p_hOverEVsEtBkg_ =
0603         iBooker.bookProfile(histname + "All", " Bkg photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0604   if (!isRunCentrally_) {
0605     histname = "hOverEVsEtaBkg";
0606     h2_hOverEVsEtaBkg_ =
0607         iBooker.book2D(histname + "All", " Bkg H/E vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 100, 0., 0.1);
0608     //
0609     histname = "hOverEVsEtBkg";
0610     h2_hOverEVsEtBkg_ =
0611         iBooker.book2D(histname + "All", " Bkg photons H/E vs Et: all Ecal ", etBin, etMin, etMax, 100, 0., 0.1);
0612   }
0613   //
0614   histname = "ecalRecHitSumEtConeDR04Bkg";
0615   h_ecalRecHitSumEtConeDR04Bkg_[0] =
0616       iBooker.book1D(histname + "All", "bkg ecalRecHitSumEtDR04: All Ecal", etBin, etMin, 50.);
0617   h_ecalRecHitSumEtConeDR04Bkg_[1] =
0618       iBooker.book1D(histname + "Barrel", "bkg ecalRecHitSumEtDR04: Barrel ", etBin, etMin, 50.);
0619   h_ecalRecHitSumEtConeDR04Bkg_[2] =
0620       iBooker.book1D(histname + "Endcap", "bkg ecalRecHitSumEtDR04: Endcap ", etBin, etMin, 50.);
0621   //
0622   if (!isRunCentrally_) {
0623     histname = "ecalRecHitSumEtConeDR04VsEtaBkg";
0624     h2_ecalRecHitSumEtConeDR04VsEtaBkg_ = iBooker.book2D(histname + "All",
0625                                                          " bkg ecalRecHitSumEtDR04 vs #eta: all Ecal ",
0626                                                          etaBin2,
0627                                                          etaMin,
0628                                                          etaMax,
0629                                                          etBin,
0630                                                          etMin,
0631                                                          etMax * etScale);
0632     histname = "ecalRecHitSumEtConeDR04VsEtBkg";
0633     h2_ecalRecHitSumEtConeDR04VsEtBkg_[0] = iBooker.book2D(histname + "All",
0634                                                            " Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
0635                                                            etBin,
0636                                                            etMin,
0637                                                            etMax,
0638                                                            etBin,
0639                                                            etMin,
0640                                                            etMax * etScale);
0641     h2_ecalRecHitSumEtConeDR04VsEtBkg_[1] = iBooker.book2D(histname + "Barrel",
0642                                                            " Bkg ecalRecHitSumEtDR04 vs Et: Barrel ",
0643                                                            etBin,
0644                                                            etMin,
0645                                                            etMax,
0646                                                            etBin,
0647                                                            etMin,
0648                                                            etMax * etScale);
0649     h2_ecalRecHitSumEtConeDR04VsEtBkg_[2] = iBooker.book2D(histname + "Endcap",
0650                                                            " Bkg ecalRecHitSumEtDR04 vs Et: Endcap ",
0651                                                            etBin,
0652                                                            etMin,
0653                                                            etMax,
0654                                                            etBin,
0655                                                            etMin,
0656                                                            etMax * etScale);
0657     histname = "hcalTowerSumEtConeDR04VsEtaBkg";
0658     h2_hcalTowerSumEtConeDR04VsEtaBkg_ = iBooker.book2D(histname + "All",
0659                                                         " bkg hcalTowerSumEtDR04 vs #eta: all Ecal ",
0660                                                         etaBin2,
0661                                                         etaMin,
0662                                                         etaMax,
0663                                                         etBin,
0664                                                         etMin,
0665                                                         etMax * etScale);
0666     histname = "hcalTowerSumEtConeDR04VsEtBkg";
0667     h2_hcalTowerSumEtConeDR04VsEtBkg_[0] = iBooker.book2D(histname + "All",
0668                                                           " Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
0669                                                           etBin,
0670                                                           etMin,
0671                                                           etMax,
0672                                                           etBin,
0673                                                           etMin,
0674                                                           etMax * etScale);
0675     h2_hcalTowerSumEtConeDR04VsEtBkg_[1] = iBooker.book2D(histname + "Barrel",
0676                                                           " Bkg hcalTowerSumEtDR04 vs Et: Barrel ",
0677                                                           etBin,
0678                                                           etMin,
0679                                                           etMax,
0680                                                           etBin,
0681                                                           etMin,
0682                                                           etMax * etScale);
0683     h2_hcalTowerSumEtConeDR04VsEtBkg_[2] = iBooker.book2D(histname + "Endcap",
0684                                                           " Bkg hcalTowerSumEtDR04 vs Et: Endcap ",
0685                                                           etBin,
0686                                                           etMin,
0687                                                           etMax,
0688                                                           etBin,
0689                                                           etMin,
0690                                                           etMax * etScale);
0691   }
0692 
0693   histname = "pEcalRecHitSumEtConeDR04VsEtaBkg";
0694   if (!isRunCentrally_)
0695     p_ecalRecHitSumEtConeDR04VsEtaBkg_ = iBooker.bookProfile(histname + "All",
0696                                                              "bkg photons ecalRecHitSumEtDR04 vs #eta: all Ecal ",
0697                                                              etaBin2,
0698                                                              etaMin,
0699                                                              etaMax,
0700                                                              etBin,
0701                                                              etMin,
0702                                                              etMax * etScale,
0703                                                              "");
0704   //
0705   histname = "pEcalRecHitSumEtConeDR04VsEtBkg";
0706   if (!isRunCentrally_)
0707     p_ecalRecHitSumEtConeDR04VsEtBkg_[0] = iBooker.bookProfile(histname + "All",
0708                                                                "Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
0709                                                                etBin,
0710                                                                etMin,
0711                                                                etMax,
0712                                                                etBin,
0713                                                                etMin,
0714                                                                etMax * etScale,
0715                                                                "");
0716   if (!isRunCentrally_)
0717     p_ecalRecHitSumEtConeDR04VsEtBkg_[1] = iBooker.bookProfile(histname + "Barrel",
0718                                                                "Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
0719                                                                etBin,
0720                                                                etMin,
0721                                                                etMax,
0722                                                                etBin,
0723                                                                etMin,
0724                                                                etMax * etScale,
0725                                                                "");
0726   if (!isRunCentrally_)
0727     p_ecalRecHitSumEtConeDR04VsEtBkg_[2] = iBooker.bookProfile(histname + "Endcap",
0728                                                                "Bkg ecalRecHitSumEtDR04 vs Et: all Ecal ",
0729                                                                etBin,
0730                                                                etMin,
0731                                                                etMax,
0732                                                                etBin,
0733                                                                etMin,
0734                                                                etMax * etScale,
0735                                                                "");
0736   //
0737   histname = "hcalTowerSumEtConeDR04Bkg";
0738   h_hcalTowerSumEtConeDR04Bkg_[0] =
0739       iBooker.book1D(histname + "All", "bkg hcalTowerSumEtDR04: All Ecal", etBin, etMin, 20.);
0740   h_hcalTowerSumEtConeDR04Bkg_[1] =
0741       iBooker.book1D(histname + "Barrel", "bkg hcalTowerSumEtDR04: Barrel ", etBin, etMin, 20.);
0742   h_hcalTowerSumEtConeDR04Bkg_[2] =
0743       iBooker.book1D(histname + "Endcap", "bkg hcalTowerSumEtDR04: Endcap ", etBin, etMin, 20.);
0744   //
0745   histname = "pHcalTowerSumEtConeDR04VsEtaBkg";
0746   if (!isRunCentrally_)
0747     p_hcalTowerSumEtConeDR04VsEtaBkg_ = iBooker.bookProfile(histname + "All",
0748                                                             "bkg photons hcalTowerSumEtDR04 vs #eta: all Ecal ",
0749                                                             etaBin2,
0750                                                             etaMin,
0751                                                             etaMax,
0752                                                             etBin,
0753                                                             etMin,
0754                                                             etMax * etScale,
0755                                                             "");
0756   //
0757   histname = "pHcalTowerSumEtConeDR04VsEtBkg";
0758   if (!isRunCentrally_)
0759     p_hcalTowerSumEtConeDR04VsEtBkg_[0] = iBooker.bookProfile(histname + "All",
0760                                                               "Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
0761                                                               etBin,
0762                                                               etMin,
0763                                                               etMax,
0764                                                               etBin,
0765                                                               etMin,
0766                                                               etMax * etScale,
0767                                                               "");
0768   if (!isRunCentrally_)
0769     p_hcalTowerSumEtConeDR04VsEtBkg_[1] = iBooker.bookProfile(histname + "Barrel",
0770                                                               "Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
0771                                                               etBin,
0772                                                               etMin,
0773                                                               etMax,
0774                                                               etBin,
0775                                                               etMin,
0776                                                               etMax * etScale,
0777                                                               "");
0778   if (!isRunCentrally_)
0779     p_hcalTowerSumEtConeDR04VsEtBkg_[2] = iBooker.bookProfile(histname + "Endcap",
0780                                                               "Bkg hcalTowerSumEtDR04 vs Et: all Ecal ",
0781                                                               etBin,
0782                                                               etMin,
0783                                                               etMax,
0784                                                               etBin,
0785                                                               etMin,
0786                                                               etMax * etScale,
0787                                                               "");
0788   //
0789   histname = "isoTrkSolidConeDR04Bkg";
0790   h_isoTrkSolidConeDR04Bkg_[0] =
0791       iBooker.book1D(histname + "All", "isoTrkSolidConeDR04 Bkg: All Ecal", etBin, etMin, etMax * 0.1);
0792   h_isoTrkSolidConeDR04Bkg_[1] =
0793       iBooker.book1D(histname + "Barrel", "isoTrkSolidConeDR04 Bkg: Barrel ", etBin, etMin, etMax * 0.1);
0794   h_isoTrkSolidConeDR04Bkg_[2] =
0795       iBooker.book1D(histname + "Endcap", "isoTrkSolidConeDR04 Bkg: Endcap ", etBin, etMin, etMax * 0.1);
0796   //
0797   histname = "isoTrkSolidConeDR04VsEtaBkg";
0798   if (!isRunCentrally_)
0799     h2_isoTrkSolidConeDR04VsEtaBkg_ = iBooker.book2D(histname + "All",
0800                                                      " Bkg photons isoTrkSolidConeDR04 vs #eta: all Ecal ",
0801                                                      etaBin2,
0802                                                      etaMin,
0803                                                      etaMax,
0804                                                      etBin,
0805                                                      etMin,
0806                                                      etMax * 0.1);
0807   histname = "pIsoTrkSolidConeDR04VsEtaBkg";
0808   if (!isRunCentrally_)
0809     p_isoTrkSolidConeDR04VsEtaBkg_ = iBooker.bookProfile(histname + "All",
0810                                                          " Bkg photons isoTrkSolidConeDR04 vs #eta: all Ecal ",
0811                                                          etaBin2,
0812                                                          etaMin,
0813                                                          etaMax,
0814                                                          etBin,
0815                                                          etMin,
0816                                                          etMax * 0.1);
0817   //
0818   histname = "isoTrkSolidConeDR04VsEtBkg";
0819   if (!isRunCentrally_)
0820     h2_isoTrkSolidConeDR04VsEtBkg_[0] = iBooker.book2D(histname + "All",
0821                                                        " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
0822                                                        etBin,
0823                                                        etMin,
0824                                                        etMax,
0825                                                        etBin,
0826                                                        etMin,
0827                                                        etMax * 0.1);
0828   if (!isRunCentrally_)
0829     h2_isoTrkSolidConeDR04VsEtBkg_[1] = iBooker.book2D(histname + "Barrel",
0830                                                        " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
0831                                                        etBin,
0832                                                        etMin,
0833                                                        etMax,
0834                                                        etBin,
0835                                                        etMin,
0836                                                        etMax * 0.1);
0837   if (!isRunCentrally_)
0838     h2_isoTrkSolidConeDR04VsEtBkg_[2] = iBooker.book2D(histname + "Endcap",
0839                                                        " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
0840                                                        etBin,
0841                                                        etMin,
0842                                                        etMax,
0843                                                        etBin,
0844                                                        etMin,
0845                                                        etMax * 0.1);
0846   histname = "pIsoTrkSolidConeDR04VsEtBkg";
0847   if (!isRunCentrally_)
0848     p_isoTrkSolidConeDR04VsEtBkg_[0] = iBooker.bookProfile(histname + "All",
0849                                                            " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
0850                                                            etBin,
0851                                                            etMin,
0852                                                            etMax,
0853                                                            etBin,
0854                                                            etMin,
0855                                                            etMax * 0.1);
0856   if (!isRunCentrally_)
0857     p_isoTrkSolidConeDR04VsEtBkg_[1] = iBooker.bookProfile(histname + "Barrel",
0858                                                            " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
0859                                                            etBin,
0860                                                            etMin,
0861                                                            etMax,
0862                                                            etBin,
0863                                                            etMin,
0864                                                            etMax * 0.1);
0865   if (!isRunCentrally_)
0866     p_isoTrkSolidConeDR04VsEtBkg_[2] = iBooker.bookProfile(histname + "Endcap",
0867                                                            " Bkg photons isoTrkSolidConeDR04 vs Et: all Ecal ",
0868                                                            etBin,
0869                                                            etMin,
0870                                                            etMax,
0871                                                            etBin,
0872                                                            etMin,
0873                                                            etMax * 0.1);
0874   //
0875   histname = "nTrkSolidConeDR04Bkg";
0876   h_nTrkSolidConeDR04Bkg_[0] = iBooker.book1D(histname + "All", "Bkg nTrkSolidConeDR04: All Ecal", 20, 0., 20);
0877   h_nTrkSolidConeDR04Bkg_[1] = iBooker.book1D(histname + "Barrel", "Bkg nTrkSolidConeDR04: Barrel ", 20, 0., 20);
0878   h_nTrkSolidConeDR04Bkg_[2] = iBooker.book1D(histname + "Endcap", "Bkg nTrkSolidConeDR04: Endcap ", 20, 0., 20);
0879   //
0880   histname = "nTrkSolidConeDR04VsEtaBkg";
0881   if (!isRunCentrally_)
0882     h2_nTrkSolidConeDR04VsEtaBkg_ = iBooker.book2D(
0883         histname + "All", " Bkg photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
0884   histname = "p_nTrkSolidConeDR04VsEtaBkg";
0885   if (!isRunCentrally_)
0886     p_nTrkSolidConeDR04VsEtaBkg_ = iBooker.bookProfile(
0887         histname + "All", " Bkg photons nTrkSolidConeDR04 vs #eta: all Ecal ", etaBin2, etaMin, etaMax, 20, 0., 20);
0888   //
0889   histname = "nTrkSolidConeDR04VsEtBkg";
0890   if (!isRunCentrally_)
0891     h2_nTrkSolidConeDR04VsEtBkg_[0] = iBooker.book2D(
0892         histname + "All", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
0893   if (!isRunCentrally_)
0894     h2_nTrkSolidConeDR04VsEtBkg_[1] = iBooker.book2D(
0895         histname + "Barrel", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
0896   if (!isRunCentrally_)
0897     h2_nTrkSolidConeDR04VsEtBkg_[2] = iBooker.book2D(
0898         histname + "Endcap", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
0899   //
0900   histname = "pnTrkSolidConeDR04VsEtBkg";
0901   if (!isRunCentrally_)
0902     p_nTrkSolidConeDR04VsEtBkg_[0] = iBooker.bookProfile(
0903         histname + "All", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
0904   if (!isRunCentrally_)
0905     p_nTrkSolidConeDR04VsEtBkg_[1] = iBooker.bookProfile(
0906         histname + "Barrel", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
0907   if (!isRunCentrally_)
0908     p_nTrkSolidConeDR04VsEtBkg_[2] = iBooker.bookProfile(
0909         histname + "Endcap", "Bkg photons nTrkSolidConeDR04 vs Et: all Ecal ", etBin, etMin, etMax, 20, 0., 20);
0910   //
0911   h_convEtaBkg_ = iBooker.book1D("convEtaBkg", " converted Photon Bkg Eta 2 tracks", etaBin, etaMin, etaMax);
0912   h_convPhiBkg_ = iBooker.book1D("convPhiBkg", " converted Photon Bkg Phi ", phiBin, phiMin, phiMax);
0913   //
0914   histname = "mvaOutBkg";
0915   h_mvaOutBkg_[0] = iBooker.book1D(histname + "All", " mvaOut  conversions bkg : All Ecal", 100, 0., 1.);
0916   h_mvaOutBkg_[1] = iBooker.book1D(histname + "Barrel", " mvaOut conversions bkg: Barrel Ecal", 100, 0., 1.);
0917   h_mvaOutBkg_[2] = iBooker.book1D(histname + "Endcap", " mvaOut  conversions bkg: Endcap Ecal", 100, 0., 1.);
0918 
0919   histname = "PoverEtracksBkg";
0920   h_PoverETracksBkg_[0] =
0921       iBooker.book1D(histname + "All", " bkg photons conversion p/E: all Ecal ", povereBin, povereMin, povereMax);
0922   h_PoverETracksBkg_[1] =
0923       iBooker.book1D(histname + "Barrel", "bkg photons conversion p/E: Barrel Ecal", povereBin, povereMin, povereMax);
0924   h_PoverETracksBkg_[2] =
0925       iBooker.book1D(histname + "Endcap", " bkg photons conversion p/E: Endcap Ecal ", povereBin, povereMin, povereMax);
0926 
0927   histname = "EoverPtracksBkg";
0928   h_EoverPTracksBkg_[0] =
0929       iBooker.book1D(histname + "All", " bkg photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax);
0930   h_EoverPTracksBkg_[1] =
0931       iBooker.book1D(histname + "Barrel", "bkg photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
0932   h_EoverPTracksBkg_[2] =
0933       iBooker.book1D(histname + "Endcap", " bkg photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
0934 
0935   histname = "hDCotTracksBkg";
0936   h_DCotTracksBkg_[0] = iBooker.book1D(histname + "All",
0937                                        " bkg Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",
0938                                        dCotTracksBin,
0939                                        dCotTracksMin,
0940                                        dCotTracksMax);
0941   h_DCotTracksBkg_[1] = iBooker.book1D(histname + "Barrel",
0942                                        " bkg Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",
0943                                        dCotTracksBin,
0944                                        dCotTracksMin,
0945                                        dCotTracksMax);
0946   h_DCotTracksBkg_[2] = iBooker.book1D(histname + "Endcap",
0947                                        " bkg Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",
0948                                        dCotTracksBin,
0949                                        dCotTracksMin,
0950                                        dCotTracksMax);
0951 
0952   histname = "hDPhiTracksAtVtxBkg";
0953   h_DPhiTracksAtVtxBkg_[0] =
0954       iBooker.book1D(histname + "All",
0955                      " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",
0956                      dPhiTracksBin,
0957                      dPhiTracksMin,
0958                      dPhiTracksMax);
0959   h_DPhiTracksAtVtxBkg_[1] =
0960       iBooker.book1D(histname + "Barrel",
0961                      " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",
0962                      dPhiTracksBin,
0963                      dPhiTracksMin,
0964                      dPhiTracksMax);
0965   h_DPhiTracksAtVtxBkg_[2] =
0966       iBooker.book1D(histname + "Endcap",
0967                      " Bkg Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",
0968                      dPhiTracksBin,
0969                      dPhiTracksMin,
0970                      dPhiTracksMax);
0971 
0972   if (!isRunCentrally_) {
0973     h_convVtxRvsZBkg_[0] = iBooker.book2D("convVtxRvsZAllBkg",
0974                                           " Bkg Photon Reco conversion vtx position",
0975                                           zBinForXray,
0976                                           zMinForXray,
0977                                           zMaxForXray,
0978                                           rBinForXray,
0979                                           rMinForXray,
0980                                           rMaxForXray);
0981     h_convVtxRvsZBkg_[1] = iBooker.book2D("convVtxRvsZBarrelBkg",
0982                                           " Bkg Photon Reco conversion vtx position",
0983                                           zBinForXray,
0984                                           zMinForXray,
0985                                           zMaxForXray,
0986                                           rBinForXray,
0987                                           rMinForXray,
0988                                           rMaxForXray);
0989     h_convVtxYvsXBkg_ = iBooker.book2D("convVtxYvsXTrkBarrelBkg",
0990                                        " Bkg Photon Reco conversion vtx position, (x,y) eta<1 ",
0991                                        100,
0992                                        -80.,
0993                                        80.,
0994                                        100,
0995                                        -80.,
0996                                        80.);
0997   }
0998 
0999   //
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);
1048     //////
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 
1062   /////    //
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.);
1998   ////////// particle based isolation from value map
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 
2187   ///// Histos to allow comparison with miniAOD
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 
2810   /// zooms
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 
2927   //////////////////// plots per track
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 
3111   ////////////// test on OutIn tracks
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 
3115   /// test track provenance
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   theMF_ = theEventSetup.getHandle(magneticFieldToken_);
3163 
3164   thePhotonMCTruthFinder_ = std::make_unique<PhotonMCTruthFinder>();
3165 }
3166 
3167 void PhotonValidator::dqmEndRun(edm::Run const& r, edm::EventSetup const&) { thePhotonMCTruthFinder_.reset(); }
3168 
3169 void PhotonValidator::analyze(const edm::Event& e, const edm::EventSetup& esup) {
3170   thePhotonMCTruthFinder_->clear();
3171   using namespace edm;
3172   //  const float etaPhiDistance=0.01;
3173   // Fiducial region
3174   // const float TRK_BARL =0.9;
3175   const float BARL = 1.4442;  // DAQ TDR p.290
3176   //  const float END_LO = 1.566; // unused
3177   const float END_HI = 2.5;
3178   // Electron mass
3179   //const Float_t mElec= 0.000511;
3180 
3181   edm::Handle<reco::TrackToTrackingParticleAssociator> theHitsAssociator;
3182   e.getByLabel("trackAssociatorByHitsForPhotonValidation", theHitsAssociator);
3183   reco::TrackToTrackingParticleAssociator const* trackAssociator = theHitsAssociator.product();
3184 
3185   nEvt_++;
3186   LogInfo("PhotonValidator") << "PhotonValidator Analyzing event number: " << e.id() << " Global Counter " << nEvt_
3187                              << "\n";
3188 
3189   // get the geometry from the event setup:
3190   theCaloGeom_ = esup.getHandle(caloGeometryToken_);
3191 
3192   edm::Handle<reco::VertexCollection> vtxH;
3193   e.getByToken(offline_pvToken_, vtxH);
3194   h_nRecoVtx_->Fill(float(vtxH->size()));
3195 
3196   // Transform Track into TransientTrack (needed by the Vertex fitter)
3197   auto theTTB = esup.getHandle(transientTrackBuilderToken_);
3198 
3199   ///// Get the recontructed  photons
3200   Handle<reco::PhotonCollection> photonHandle;
3201   e.getByToken(photonCollectionToken_, photonHandle);
3202   const reco::PhotonCollection photonCollection = *(photonHandle.product());
3203   if (!photonHandle.isValid()) {
3204     edm::LogError("PhotonProducer") << "Error! Can't get the Photon collection " << std::endl;
3205     return;
3206   }
3207 
3208   // Get the  PF refined cluster  collection
3209   Handle<reco::PFCandidateCollection> pfCandidateHandle;
3210   e.getByToken(pfCandidates_, pfCandidateHandle);
3211   if (!pfCandidateHandle.isValid()) {
3212     edm::LogError("PhotonValidator") << "Error! Can't get the product pfCandidates " << std::endl;
3213   }
3214 
3215   edm::Handle<edm::ValueMap<std::vector<reco::PFCandidateRef> > > phoToParticleBasedIsoMapHandle;
3216   edm::ValueMap<std::vector<reco::PFCandidateRef> > phoToParticleBasedIsoMap;
3217   if (fName_ == "pfPhotonValidator") {
3218     e.getByToken(particleBasedIso_token, phoToParticleBasedIsoMapHandle);
3219     if (!phoToParticleBasedIsoMapHandle.isValid()) {
3220       edm::LogInfo("PhotonValidator") << "Error! Can't get the product: valueMap photons to particle based iso "
3221                                       << std::endl;
3222     }
3223     phoToParticleBasedIsoMap = *(phoToParticleBasedIsoMapHandle.product());
3224   }
3225 
3226   Handle<edm::View<reco::Track> > outInTrkHandle;
3227   Handle<edm::View<reco::Track> > inOutTrkHandle;
3228   if (!fastSim_) {
3229     //// Get the Out In CKF tracks from conversions
3230     e.getByToken(conversionOITrackPr_Token_, outInTrkHandle);
3231     //// Get the In Out  CKF tracks from conversions
3232     e.getByToken(conversionIOTrackPr_Token_, inOutTrkHandle);
3233 
3234     // Loop over Out In Tracks
3235     int iTrk = 0;
3236     int nHits = 0;
3237     for (View<reco::Track>::const_iterator iTk = outInTrkHandle->begin(); iTk != outInTrkHandle->end(); iTk++) {
3238       h_OIinnermostHitR_->Fill(sqrt(iTk->innerPosition().Perp2()));
3239       for (trackingRecHit_iterator itHits = iTk->extra()->recHitsBegin(); itHits != iTk->extra()->recHitsEnd();
3240            ++itHits) {
3241         if ((*itHits)->isValid()) {
3242           nHits++;
3243         }
3244       }
3245 
3246       iTrk++;
3247     }
3248 
3249     // Loop over In Out Tracks Barrel
3250     iTrk = 0;
3251     for (View<reco::Track>::const_iterator iTk = inOutTrkHandle->begin(); iTk != inOutTrkHandle->end(); iTk++) {
3252       h_IOinnermostHitR_->Fill(sqrt(iTk->innerPosition().Perp2()));
3253       nHits = 0;
3254       for (trackingRecHit_iterator itHits = iTk->extra()->recHitsBegin(); itHits != iTk->extra()->recHitsEnd();
3255            ++itHits) {
3256         if ((*itHits)->isValid()) {
3257           nHits++;
3258         }
3259       }
3260       iTrk++;
3261     }
3262 
3263   }  // if !fastSim
3264 
3265   //////////////////// Get the MC truth
3266   //get simtrack info
3267   std::vector<SimTrack> theSimTracks;
3268   std::vector<SimVertex> theSimVertices;
3269   edm::Handle<SimTrackContainer> SimTk;
3270   edm::Handle<SimVertexContainer> SimVtx;
3271 
3272   if (!fastSim_) {
3273     e.getByToken(g4_simTk_Token_, SimTk);
3274     e.getByToken(g4_simVtx_Token_, SimVtx);
3275   } else {
3276     e.getByToken(famos_simTk_Token_, SimTk);
3277     e.getByToken(famos_simVtx_Token_, SimVtx);
3278   }
3279 
3280   theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end());
3281   theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end());
3282   std::vector<PhotonMCTruth> mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices);
3283 
3284   edm::Handle<edm::HepMCProduct> hepMC;
3285   e.getByToken(hepMC_Token_, hepMC);
3286   const HepMC::GenEvent* myGenEvent = hepMC->GetEvent();
3287 
3288   Handle<reco::GenParticleCollection> genParticles;
3289   e.getByToken(genpartToken_, genParticles);
3290 
3291   // get generated jets
3292   Handle<reco::GenJetCollection> GenJetsHandle;
3293   e.getByToken(genjets_Token_, GenJetsHandle);
3294   reco::GenJetCollection genJetCollection = *(GenJetsHandle.product());
3295 
3296   // Get electron tracking truth
3297   bool useTP = parameters_.getParameter<bool>("useTP");
3298   TrackingParticleCollection trackingParticles;
3299   edm::Handle<TrackingParticleCollection> ElectronTPHandle;
3300   if (useTP) {
3301     if (!fastSim_) {
3302       e.getByToken(token_tp_, ElectronTPHandle);
3303       trackingParticles = *(ElectronTPHandle.product());
3304     }
3305   }
3306 
3307   //// Track association with TrackingParticles
3308   std::vector<reco::PhotonCollection::const_iterator> StoRMatchedConvertedPhotons;
3309   reco::SimToRecoCollection OISimToReco;
3310   reco::SimToRecoCollection IOSimToReco;
3311   // Reco to Sim
3312   reco::RecoToSimCollection OIRecoToSim;
3313   reco::RecoToSimCollection IORecoToSim;
3314 
3315   if (useTP) {
3316     if (!fastSim_) {
3317       // Sim to Reco
3318       OISimToReco = trackAssociator->associateSimToReco(outInTrkHandle, ElectronTPHandle);
3319       IOSimToReco = trackAssociator->associateSimToReco(inOutTrkHandle, ElectronTPHandle);
3320       // Reco to Sim
3321       OIRecoToSim = trackAssociator->associateRecoToSim(outInTrkHandle, ElectronTPHandle);
3322       IORecoToSim = trackAssociator->associateRecoToSim(inOutTrkHandle, ElectronTPHandle);
3323     }
3324   }
3325   //
3326   vector<reco::SimToRecoCollection*> StoRCollPtrs;
3327   StoRCollPtrs.push_back(&OISimToReco);
3328   StoRCollPtrs.push_back(&IOSimToReco);
3329   vector<reco::RecoToSimCollection*> RtoSCollPtrs;
3330   RtoSCollPtrs.push_back(&OIRecoToSim);
3331   RtoSCollPtrs.push_back(&IORecoToSim);
3332   //
3333   for (int i = 0; i < 2; i++)
3334     nSimPho_[i] = 0;
3335   for (int i = 0; i < 2; i++)
3336     nSimConv_[i] = 0;
3337 
3338   std::vector<reco::PhotonRef> myPhotons;
3339 
3340   for (unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
3341     reco::PhotonRef phoRef(reco::PhotonRef(photonHandle, iPho));
3342     //  for( reco::PhotonCollection::const_iterator  iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
3343     if (fabs(phoRef->eta()) > 2.5)
3344       continue;
3345     myPhotons.push_back(phoRef);
3346   }
3347 
3348   std::sort(myPhotons.begin(), myPhotons.end(), sortPhotons());
3349   // if ( ! isRunCentrally_ ) {
3350   if (myPhotons.size() >= 2) {
3351     if (myPhotons[0]->et() > 40 && myPhotons[1]->et() > 25) {
3352       math::XYZTLorentzVector p12 = myPhotons[0]->p4() + myPhotons[1]->p4();
3353       math::XYZTLorentzVector p12_regr1 =
3354           myPhotons[0]->p4(reco::Photon::regression1) + myPhotons[1]->p4(reco::Photon::regression1);
3355       math::XYZTLorentzVector p12_regr2 =
3356           myPhotons[0]->p4(reco::Photon::regression2) + myPhotons[1]->p4(reco::Photon::regression2);
3357       float gamgamMass2 = p12.Dot(p12);
3358       float gamgamMass2_regr1 = p12_regr1.Dot(p12_regr1);
3359       float gamgamMass2_regr2 = p12_regr2.Dot(p12_regr2);
3360 
3361       //// standard ecal energy corrections
3362       if (gamgamMass2 > 0) {
3363         // total
3364         h_gamgamMass_[0][0]->Fill(sqrt(gamgamMass2));
3365         if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3366           h_gamgamMass_[0][1]->Fill(sqrt(gamgamMass2));
3367         if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3368             (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3369           h_gamgamMass_[0][2]->Fill(sqrt(gamgamMass2));
3370         // Golden photons
3371         if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3372           h_gamgamMass_[1][0]->Fill(sqrt(gamgamMass2));
3373           if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3374             h_gamgamMass_[1][1]->Fill(sqrt(gamgamMass2));
3375           if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3376               (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3377             h_gamgamMass_[1][2]->Fill(sqrt(gamgamMass2));
3378         }
3379         // both photons converted
3380         if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3381           if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3382             float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3383                                                     myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3384             float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3385                                                     myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3386             if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3387               h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3388               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3389                 h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3390               }
3391               if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3392                   (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3393                 h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3394               }
3395             }
3396           }
3397         } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3398                    myPhotons[1]->r9() > 0.93) {  // one photon converted
3399           if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3400             float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3401                                                     myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3402             if (chi2Prob1 > 0.0005) {
3403               h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3404               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3405                 h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3406               }
3407               if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3408                 h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3409               }
3410             }
3411           }
3412         } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3413                    myPhotons[0]->r9() > 0.93) {  // one photon converted
3414           if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3415             float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3416                                                     myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3417             if (chi2Prob1 > 0.0005) {
3418               h_gamgamMass_[2][0]->Fill(sqrt(gamgamMass2));
3419               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3420                 h_gamgamMass_[2][1]->Fill(sqrt(gamgamMass2));
3421               }
3422               if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3423                 h_gamgamMass_[2][2]->Fill(sqrt(gamgamMass2));
3424               }
3425             }
3426           }
3427         }
3428       }  // gamgamMass2 > 0
3429 
3430       ////  energy from regression1
3431       if (gamgamMass2_regr1 > 0) {
3432         // total
3433         h_gamgamMassRegr1_[0][0]->Fill(sqrt(gamgamMass2_regr1));
3434         if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3435           h_gamgamMassRegr1_[0][1]->Fill(sqrt(gamgamMass2_regr1));
3436         if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3437             (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3438           h_gamgamMassRegr1_[0][2]->Fill(sqrt(gamgamMass2_regr1));
3439         // Golden photons
3440         if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3441           h_gamgamMassRegr1_[1][0]->Fill(sqrt(gamgamMass2_regr1));
3442           if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3443             h_gamgamMassRegr1_[1][1]->Fill(sqrt(gamgamMass2_regr1));
3444           if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3445               (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3446             h_gamgamMassRegr1_[1][2]->Fill(sqrt(gamgamMass2_regr1));
3447         }
3448 
3449         // both photons converted
3450         if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3451           if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3452             float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3453                                                     myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3454             float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3455                                                     myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3456             if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3457               h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3458               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3459                 h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3460               }
3461               if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3462                   (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3463                 h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3464               }
3465             }
3466           }
3467         } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3468                    myPhotons[1]->r9() > 0.93) {  // one photon converted
3469           if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3470             float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3471                                                     myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3472             if (chi2Prob1 > 0.0005) {
3473               h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3474               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3475                 h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3476               }
3477               if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3478                 h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3479               }
3480             }
3481           }
3482         } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3483                    myPhotons[0]->r9() > 0.93) {  // one photon converted
3484           if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3485             float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3486                                                     myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3487             if (chi2Prob1 > 0.0005) {
3488               h_gamgamMassRegr1_[2][0]->Fill(sqrt(gamgamMass2_regr1));
3489               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3490                 h_gamgamMassRegr1_[2][1]->Fill(sqrt(gamgamMass2_regr1));
3491               }
3492               if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3493                 h_gamgamMassRegr1_[2][2]->Fill(sqrt(gamgamMass2_regr1));
3494               }
3495             }
3496           }
3497         }
3498       }  // gamgamMass2_regr1 > 0
3499 
3500       ////  energy from regression2
3501       if (gamgamMass2_regr2 > 0) {
3502         // total
3503         h_gamgamMassRegr2_[0][0]->Fill(sqrt(gamgamMass2_regr2));
3504         if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3505           h_gamgamMassRegr2_[0][1]->Fill(sqrt(gamgamMass2_regr2));
3506         if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3507             (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3508           h_gamgamMassRegr2_[0][2]->Fill(sqrt(gamgamMass2_regr2));
3509         // Golden photons
3510         if (myPhotons[0]->r9() > 0.94 && myPhotons[1]->r9() > 0.94) {
3511           h_gamgamMassRegr2_[1][0]->Fill(sqrt(gamgamMass2_regr2));
3512           if (myPhotons[0]->isEB() && myPhotons[1]->isEB())
3513             h_gamgamMassRegr2_[1][1]->Fill(sqrt(gamgamMass2_regr2));
3514           if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3515               (myPhotons[0]->isEB() && myPhotons[1]->isEE()))
3516             h_gamgamMassRegr2_[1][2]->Fill(sqrt(gamgamMass2_regr2));
3517         }
3518 
3519         // both photons converted
3520         if (!myPhotons[0]->conversions().empty() && !myPhotons[1]->conversions().empty()) {
3521           if (myPhotons[0]->conversions()[0]->nTracks() == 2 && myPhotons[1]->conversions()[0]->nTracks() == 2) {
3522             float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3523                                                     myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3524             float chi2Prob2 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3525                                                     myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3526             if (chi2Prob1 > 0.0005 && chi2Prob2 > 0.0005) {
3527               h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3528               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3529                 h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3530               }
3531               if ((myPhotons[0]->isEE() && myPhotons[1]->isEE()) || (myPhotons[0]->isEE() && myPhotons[1]->isEB()) ||
3532                   (myPhotons[0]->isEB() && myPhotons[1]->isEE())) {
3533                 h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3534               }
3535             }
3536           }
3537         } else if (!myPhotons[0]->conversions().empty() && myPhotons[1]->conversions().empty() &&
3538                    myPhotons[1]->r9() > 0.93) {  // one photon converted
3539           if (myPhotons[0]->conversions()[0]->nTracks() == 2) {
3540             float chi2Prob1 = ChiSquaredProbability(myPhotons[0]->conversions()[0]->conversionVertex().chi2(),
3541                                                     myPhotons[0]->conversions()[0]->conversionVertex().ndof());
3542             if (chi2Prob1 > 0.0005) {
3543               h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3544               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3545                 h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3546               }
3547               if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3548                 h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3549               }
3550             }
3551           }
3552         } else if (!myPhotons[1]->conversions().empty() && myPhotons[0]->conversions().empty() &&
3553                    myPhotons[0]->r9() > 0.93) {  // one photon converted
3554           if (myPhotons[1]->conversions()[0]->nTracks() == 2) {
3555             float chi2Prob1 = ChiSquaredProbability(myPhotons[1]->conversions()[0]->conversionVertex().chi2(),
3556                                                     myPhotons[1]->conversions()[0]->conversionVertex().ndof());
3557             if (chi2Prob1 > 0.0005) {
3558               h_gamgamMassRegr2_[2][0]->Fill(sqrt(gamgamMass2_regr2));
3559               if (myPhotons[0]->isEB() && myPhotons[1]->isEB()) {
3560                 h_gamgamMassRegr2_[2][1]->Fill(sqrt(gamgamMass2_regr2));
3561               }
3562               if (myPhotons[0]->isEE() || myPhotons[1]->isEE()) {
3563                 h_gamgamMassRegr2_[2][2]->Fill(sqrt(gamgamMass2_regr2));
3564               }
3565             }
3566           }
3567         }
3568       }  // gamgamMass2_regr2 > 0
3569     }
3570   }
3571   // }
3572 
3573   for (std::vector<PhotonMCTruth>::const_iterator mcPho = mcPhotons.begin(); mcPho != mcPhotons.end(); mcPho++) {
3574     if ((*mcPho).fourMomentum().et() < minPhoEtCut_)
3575       continue;
3576 
3577     for (HepMC::GenEvent::particle_const_iterator mcIter = myGenEvent->particles_begin();
3578          mcIter != myGenEvent->particles_end();
3579          mcIter++) {
3580       if ((*mcIter)->pdg_id() != 22)
3581         continue;
3582       bool isTheSame = false;
3583       HepMC::GenParticle* mother = nullptr;
3584       if ((*mcIter)->production_vertex()) {
3585         if ((*mcIter)->production_vertex()->particles_begin(HepMC::parents) !=
3586             (*mcIter)->production_vertex()->particles_end(HepMC::parents))
3587           mother = *((*mcIter)->production_vertex()->particles_begin(HepMC::parents));
3588       }
3589 
3590       float mcPhi = (*mcPho).fourMomentum().phi();
3591       mcPhi_ = phiNormalization(mcPhi);
3592       mcEta_ = (*mcPho).fourMomentum().pseudoRapidity();
3593       mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z());
3594       mcConvR_ = (*mcPho).vertex().perp();
3595       mcConvX_ = (*mcPho).vertex().x();
3596       mcConvY_ = (*mcPho).vertex().y();
3597       mcConvZ_ = (*mcPho).vertex().z();
3598       mcConvEta_ = (*mcPho).vertex().eta();
3599       mcConvPhi_ = (*mcPho).vertex().phi();
3600 
3601       if (fabs(mcEta_) > END_HI)
3602         continue;
3603 
3604       if (mother == nullptr || (mother != nullptr && mother->pdg_id() == 22) ||
3605           (mother != nullptr && mother->pdg_id() == 25) || (mother != nullptr && mother->pdg_id() == 35)) {
3606         double dPt = fabs((*mcIter)->momentum().perp() - (*mcPho).fourMomentum().et());
3607         float phiMother = (*mcIter)->momentum().phi();
3608         double dPhi = phiNormalization(phiMother) - mcPhi_;
3609         double dEta = fabs((*mcIter)->momentum().eta() - (*mcPho).fourMomentum().pseudoRapidity());
3610 
3611         if (dEta <= 0.0001 && dPhi <= 0.0001 && dPt <= 0.0001)
3612           isTheSame = true;
3613       }
3614       if (!isTheSame)
3615         continue;
3616 
3617       nSimPho_[0]++;
3618       if (!isRunCentrally_) {
3619         h_SimPhoMotherEt_[0]->Fill((*mcPho).motherMomentum().et());
3620         h_SimPhoMotherEta_[0]->Fill((*mcPho).motherMomentum().pseudoRapidity());
3621       }
3622 
3623       h_SimPho_[0]->Fill(mcEta_);
3624       h_SimPho_[1]->Fill(mcPhi_);
3625       h_SimPho_[2]->Fill((*mcPho).fourMomentum().et());
3626 
3627       ////////////////////////////////// extract info about simulated conversions
3628 
3629       bool goodSimConversion = false;
3630       bool visibleConversion = false;
3631       bool visibleConversionsWithTwoSimTracks = false;
3632       if ((*mcPho).isAConversion() == 1) {
3633         nSimConv_[0]++;
3634         h_AllSimConv_[0]->Fill(mcEta_);
3635         h_AllSimConv_[1]->Fill(mcPhi_);
3636         h_AllSimConv_[2]->Fill(mcConvR_);
3637         h_AllSimConv_[3]->Fill(mcConvZ_);
3638         h_AllSimConv_[4]->Fill((*mcPho).fourMomentum().et());
3639 
3640         if (!isRunCentrally_) {
3641           if (mcConvR_ < 51)
3642             h_SimConvEtaPix_[0]->Fill(mcEta_);
3643         }
3644 
3645         if ((fabs(mcEta_) <= BARL && mcConvR_ < 85) ||
3646             (fabs(mcEta_) > BARL && fabs(mcEta_) <= END_HI && fabs((*mcPho).vertex().z()) < 210))
3647           visibleConversion = true;
3648 
3649         theConvTP_.clear();
3650         for (size_t i = 0; i < trackingParticles.size(); ++i) {
3651           TrackingParticleRef tp(ElectronTPHandle, i);
3652           if (fabs(tp->vx() - (*mcPho).vertex().x()) < 0.001 && fabs(tp->vy() - (*mcPho).vertex().y()) < 0.001 &&
3653               fabs(tp->vz() - (*mcPho).vertex().z()) < 0.001) {
3654             theConvTP_.push_back(tp);
3655           }
3656         }
3657         if (theConvTP_.size() == 2)
3658           visibleConversionsWithTwoSimTracks = true;
3659         goodSimConversion = false;
3660 
3661         if (visibleConversion && visibleConversionsWithTwoSimTracks)
3662           goodSimConversion = true;
3663         if (goodSimConversion) {
3664           nSimConv_[1]++;
3665           h_VisSimConv_[0]->Fill(mcEta_);
3666           h_VisSimConv_[1]->Fill(mcPhi_);
3667           h_VisSimConv_[2]->Fill(mcConvR_);
3668           h_VisSimConv_[3]->Fill(mcConvZ_);
3669           h_VisSimConv_[4]->Fill((*mcPho).fourMomentum().et());
3670 
3671           if (useTP) {
3672             if (!isRunCentrally_) {
3673               for (edm::RefVector<TrackingParticleCollection>::iterator iTrk = theConvTP_.begin();
3674                    iTrk != theConvTP_.end();
3675                    ++iTrk) {
3676                 h_simTkPt_->Fill((*iTrk)->pt());
3677                 h_simTkEta_->Fill((*iTrk)->eta());
3678               }
3679             }
3680           }
3681         }
3682       }  ////////////// End of info from sim conversions //////////////////////////////////////////////////
3683 
3684       float minDelta = 10000.;
3685       std::vector<reco::PhotonRef> thePhotons;
3686       int index = 0;
3687       int iMatch = -1;
3688       bool matched = false;
3689 
3690       for (unsigned int iPho = 0; iPho < photonHandle->size(); iPho++) {
3691         reco::PhotonRef aPho(reco::PhotonRef(photonHandle, iPho));
3692         thePhotons.push_back(aPho);
3693         float phiPho = aPho->phi();
3694         float etaPho = aPho->eta();
3695         float deltaPhi = phiPho - mcPhi_;
3696         float deltaEta = etaPho - mcEta_;
3697         if (deltaPhi > pi)
3698           deltaPhi -= twopi;
3699         if (deltaPhi < -pi)
3700           deltaPhi += twopi;
3701         deltaPhi = pow(deltaPhi, 2);
3702         deltaEta = pow(deltaEta, 2);
3703         float delta = sqrt(deltaPhi + deltaEta);
3704         if (delta < 0.1 && delta < minDelta) {
3705           minDelta = delta;
3706           iMatch = index;
3707         }
3708         index++;
3709       }  // end loop over reco photons
3710       if (iMatch > -1)
3711         matched = true;
3712 
3713       if (matched) {
3714         nSimPho_[1]++;
3715         if (!isRunCentrally_) {
3716           h_SimPhoMotherEt_[1]->Fill((*mcPho).motherMomentum().et());
3717           h_SimPhoMotherEta_[1]->Fill((*mcPho).motherMomentum().pseudoRapidity());
3718         }
3719         h_MatchedSimPho_[0]->Fill(mcEta_);
3720         h_MatchedSimPho_[1]->Fill(mcPhi_);
3721         h_MatchedSimPho_[2]->Fill((*mcPho).fourMomentum().et());
3722       }
3723 
3724       if (!matched)
3725         continue;
3726 
3727       bool phoIsInBarrel = false;
3728       bool phoIsInEndcap = false;
3729       bool phoIsInEndcapP = false;
3730       bool phoIsInEndcapM = false;
3731 
3732       reco::PhotonRef matchingPho = thePhotons[iMatch];
3733 
3734       if (fabs(matchingPho->superCluster()->position().eta()) < 1.479) {
3735         phoIsInBarrel = true;
3736       } else {
3737         phoIsInEndcap = true;
3738         if (matchingPho->superCluster()->position().eta() > 0)
3739           phoIsInEndcapP = true;
3740         if (matchingPho->superCluster()->position().eta() < 0)
3741           phoIsInEndcapM = true;
3742       }
3743 
3744       edm::Handle<EcalRecHitCollection> ecalRecHitHandle;
3745       if (phoIsInBarrel) {
3746         // Get handle to rec hits ecal barrel
3747         e.getByToken(barrelEcalHits_, ecalRecHitHandle);
3748         if (!ecalRecHitHandle.isValid()) {
3749           Labels l;
3750           labelsForToken(barrelEcalHits_, l);
3751           edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
3752           return;
3753         }
3754 
3755       } else if (phoIsInEndcap) {
3756         // Get handle to rec hits ecal encap
3757         e.getByToken(endcapEcalHits_, ecalRecHitHandle);
3758         if (!ecalRecHitHandle.isValid()) {
3759           Labels l;
3760           labelsForToken(barrelEcalHits_, l);
3761           edm::LogError("PhotonProducer") << "Error! Can't get the product " << l.module;
3762           return;
3763         }
3764       }
3765 
3766       int type = 0;
3767       const EcalRecHitCollection ecalRecHitCollection = *(ecalRecHitHandle.product());
3768       float photonE = matchingPho->energy();
3769       float sigmaEoE = matchingPho->getCorrectedEnergyError(matchingPho->getCandidateP4type()) / matchingPho->energy();
3770       //float photonEt= matchingPho->energy()/cosh( matchingPho->eta()) ;
3771       float photonEt = matchingPho->pt();
3772       float photonERegr1 = matchingPho->getCorrectedEnergy(reco::Photon::regression1);
3773       float photonERegr2 = matchingPho->getCorrectedEnergy(reco::Photon::regression2);
3774       float r9 = matchingPho->r9();
3775       //     float full5x5_r9 = matchingPho->full5x5_r9();
3776       float r1 = matchingPho->r1x5();
3777       float r2 = matchingPho->r2x5();
3778       float sigmaIetaIeta = matchingPho->sigmaIetaIeta();
3779       //float full5x5_sieie =  matchingPho->full5x5_sigmaIetaIeta();
3780       float hOverE = matchingPho->hadronicOverEm();
3781       float newhOverE = matchingPho->hadTowOverEm();
3782       float ecalIso = matchingPho->ecalRecHitSumEtConeDR04();
3783       float hcalIso = matchingPho->hcalTowerSumEtConeDR04();
3784       float newhcalIso = matchingPho->hcalTowerSumEtBcConeDR04();
3785       float trkIso = matchingPho->trkSumPtSolidConeDR04();
3786       float nIsoTrk = matchingPho->nTrkSolidConeDR04();
3787       // PF related quantities
3788       float chargedHadIso = matchingPho->chargedHadronIso();
3789       float neutralHadIso = matchingPho->neutralHadronIso();
3790       float photonIso = matchingPho->photonIso();
3791       float etOutsideMustache = matchingPho->etOutsideMustache();
3792       int nClusterOutsideMustache = matchingPho->nClusterOutsideMustache();
3793       float pfMVA = matchingPho->pfMVA();
3794 
3795       std::vector<std::pair<DetId, float> >::const_iterator rhIt;
3796       bool atLeastOneDeadChannel = false;
3797       for (reco::CaloCluster_iterator bcIt = matchingPho->superCluster()->clustersBegin();
3798            bcIt != matchingPho->superCluster()->clustersEnd();
3799            ++bcIt) {
3800         for (rhIt = (*bcIt)->hitsAndFractions().begin(); rhIt != (*bcIt)->hitsAndFractions().end(); ++rhIt) {
3801           for (EcalRecHitCollection::const_iterator it = ecalRecHitCollection.begin(); it != ecalRecHitCollection.end();
3802                ++it) {
3803             if (rhIt->first == (*it).id()) {
3804               if ((*it).recoFlag() == 9) {
3805                 atLeastOneDeadChannel = true;
3806                 break;
3807               }
3808             }
3809           }
3810         }
3811       }
3812 
3813       if (atLeastOneDeadChannel) {
3814         h_MatchedSimPhoBadCh_[0]->Fill(mcEta_);
3815         h_MatchedSimPhoBadCh_[1]->Fill(mcPhi_);
3816         h_MatchedSimPhoBadCh_[2]->Fill((*mcPho).fourMomentum().et());
3817       }
3818 
3819       if (phoIsInBarrel)
3820         h_phoPixSeedSize_[0]->Fill(matchingPho->electronPixelSeeds().size());
3821       else
3822         h_phoPixSeedSize_[1]->Fill(matchingPho->electronPixelSeeds().size());
3823 
3824       h_scEta_[type]->Fill(matchingPho->superCluster()->eta());
3825       h_scPhi_[type]->Fill(matchingPho->superCluster()->phi());
3826       if (!isRunCentrally_) {
3827         h_scEtaWidth_[type]->Fill(matchingPho->superCluster()->etaWidth());
3828         h_scPhiWidth_[type]->Fill(matchingPho->superCluster()->phiWidth());
3829       }
3830       h_scE_[type][0]->Fill(matchingPho->superCluster()->energy());
3831       h_scEt_[type][0]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
3832       if (phoIsInEndcap)
3833         h_psE_->Fill(matchingPho->superCluster()->preshowerEnergy());
3834       //
3835       h_r9_[type][0]->Fill(r9);
3836       //
3837       h_r1_[type][0]->Fill(r1);
3838       //
3839       h_r2_[type][0]->Fill(r2);
3840       //
3841       h_sigmaIetaIeta_[type][0]->Fill(sigmaIetaIeta);
3842       //
3843       h_hOverE_[type][0]->Fill(hOverE);
3844       p_r9VsEta_[0]->Fill(mcEta_, r9);
3845 
3846       if (!isRunCentrally_) {
3847         h2_r9VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r9);
3848         h2_r1VsEta_[0]->Fill(mcEta_, r1);
3849         h2_r1VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r1);
3850         h2_r2VsEta_[0]->Fill(mcEta_, r2);
3851         h2_r2VsEt_[0]->Fill((*mcPho).fourMomentum().et(), r2);
3852         h2_sigmaIetaIetaVsEta_[0]->Fill(mcEta_, sigmaIetaIeta);
3853         h2_sigmaIetaIetaVsEt_[0]->Fill((*mcPho).fourMomentum().et(), sigmaIetaIeta);
3854         h2_hOverEVsEta_[0]->Fill(mcEta_, hOverE);
3855         h2_hOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), hOverE);
3856       }
3857       p_hOverEVsEta_[0]->Fill(mcEta_, hOverE);
3858       p_hOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), hOverE);
3859       //
3860       h_newhOverE_[type][0]->Fill(newhOverE);
3861       p_newhOverEVsEta_[0]->Fill(mcEta_, newhOverE);
3862       p_newhOverEVsEt_[0]->Fill((*mcPho).fourMomentum().et(), newhOverE);
3863 
3864       //
3865       h_ecalRecHitSumEtConeDR04_[type][0]->Fill(ecalIso);
3866       if (!isRunCentrally_) {
3867         h2_ecalRecHitSumEtConeDR04VsEta_[0]->Fill(mcEta_, ecalIso);
3868         h2_ecalRecHitSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), ecalIso);
3869         h2_hcalTowerSumEtConeDR04VsEta_[0]->Fill(mcEta_, hcalIso);
3870         h2_hcalTowerSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), hcalIso);
3871       }
3872       p_ecalRecHitSumEtConeDR04VsEta_[0]->Fill(mcEta_, ecalIso);
3873       if (!isRunCentrally_)
3874         p_ecalRecHitSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), ecalIso);
3875       //
3876       h_hcalTowerSumEtConeDR04_[type][0]->Fill(hcalIso);
3877       p_hcalTowerSumEtConeDR04VsEta_[0]->Fill(mcEta_, hcalIso);
3878       if (!isRunCentrally_)
3879         p_hcalTowerSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), hcalIso);
3880       //
3881       if (!isRunCentrally_)
3882         h_hcalTowerBcSumEtConeDR04_[type][0]->Fill(newhcalIso);
3883       p_hcalTowerBcSumEtConeDR04VsEta_[0]->Fill(mcEta_, newhcalIso);
3884       if (!isRunCentrally_)
3885         p_hcalTowerBcSumEtConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
3886       //
3887       h_isoTrkSolidConeDR04_[type][0]->Fill(trkIso);
3888       h_nTrkSolidConeDR04_[type][0]->Fill(nIsoTrk);
3889 
3890       if (!isRunCentrally_) {
3891         h2_isoTrkSolidConeDR04VsEta_[0]->Fill(mcEta_, trkIso);
3892         h2_isoTrkSolidConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), trkIso);
3893         h2_nTrkSolidConeDR04VsEta_[0]->Fill(mcEta_, nIsoTrk);
3894         h2_nTrkSolidConeDR04VsEt_[0]->Fill((*mcPho).fourMomentum().et(), nIsoTrk);
3895       }
3896 
3897       h_chHadIso_[0]->Fill(chargedHadIso);
3898       h_nHadIso_[0]->Fill(neutralHadIso);
3899       h_phoIso_[0]->Fill(photonIso);
3900       h_nCluOutsideMustache_[0]->Fill(float(nClusterOutsideMustache));
3901       h_etOutsideMustache_[0]->Fill(etOutsideMustache);
3902       h_pfMva_[0]->Fill(pfMVA);
3903       //
3904       h_phoEta_[type]->Fill(matchingPho->eta());
3905       h_phoPhi_[type]->Fill(matchingPho->phi());
3906       h_phoDEta_[0]->Fill(matchingPho->eta() - (*mcPho).fourMomentum().eta());
3907       h_phoDPhi_[0]->Fill(matchingPho->phi() - mcPhi_);
3908       h_phoE_[type][0]->Fill(photonE);
3909       h_phoEt_[type][0]->Fill(photonEt);
3910       h_nConv_[0][0]->Fill(float(matchingPho->conversions().size()));
3911       h_nConv_[1][0]->Fill(float(matchingPho->conversionsOneLeg().size()));
3912 
3913       //
3914       h_phoERes_[0][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3915       h_phoSigmaEoE_[0][0]->Fill(sigmaEoE);
3916       h_phoEResRegr1_[0][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3917       h_phoEResRegr2_[0][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3918 
3919       p_eResVsEta_[0]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3920       p_sigmaEoEVsEta_[0]->Fill(mcEta_, sigmaEoE);
3921       p_eResVsEt_[0][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3922 
3923       if (!isRunCentrally_)
3924         h2_eResVsEta_[0]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3925       if (!isRunCentrally_)
3926         h2_eResVsEt_[0][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3927       if (!isRunCentrally_)
3928         h2_eResVsR9_[0]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
3929       if (!isRunCentrally_)
3930         h2_sceResVsR9_[0]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
3931       if (!isRunCentrally_)
3932         p_eResVsR9_[0]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
3933       if (!isRunCentrally_)
3934         p_sceResVsR9_[0]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
3935       //
3936       if ((*mcPho).isAConversion() == 0) {
3937         if (!isRunCentrally_) {
3938           h2_eResVsEta_[1]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3939           h2_r9VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r9);
3940           //
3941           h2_r1VsEta_[1]->Fill(mcEta_, r1);
3942           h2_r1VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r1);
3943           //
3944           h2_r2VsEta_[1]->Fill(mcEta_, r2);
3945           h2_r2VsEt_[1]->Fill((*mcPho).fourMomentum().et(), r2);
3946           //
3947           h2_sigmaIetaIetaVsEta_[1]->Fill(mcEta_, sigmaIetaIeta);
3948           h2_sigmaIetaIetaVsEt_[1]->Fill((*mcPho).fourMomentum().et(), sigmaIetaIeta);
3949           //
3950           h2_hOverEVsEta_[1]->Fill(mcEta_, hOverE);
3951           h2_hOverEVsEt_[1]->Fill((*mcPho).fourMomentum().et(), hOverE);
3952         }
3953 
3954         if (!isRunCentrally_) {
3955           h2_ecalRecHitSumEtConeDR04VsEta_[1]->Fill(mcEta_, ecalIso);
3956           h2_hcalTowerSumEtConeDR04VsEta_[1]->Fill(mcEta_, hcalIso);
3957           h2_isoTrkSolidConeDR04VsEta_[1]->Fill(mcEta_, trkIso);
3958           h2_isoTrkSolidConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), trkIso);
3959           h2_nTrkSolidConeDR04VsEta_[1]->Fill(mcEta_, nIsoTrk);
3960           h2_nTrkSolidConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), nIsoTrk);
3961         }
3962         p_ecalRecHitSumEtConeDR04VsEta_[1]->Fill(mcEta_, ecalIso);
3963         if (!isRunCentrally_)
3964           p_hcalTowerSumEtConeDR04VsEta_[1]->Fill(mcEta_, hcalIso);
3965       }
3966 
3967       if (photonE / (*mcPho).fourMomentum().e() < 0.3 && photonE / (*mcPho).fourMomentum().e() > 0.1) {
3968       }
3969 
3970       if ((r9 > 0.94 && phoIsInBarrel) || (r9 > 0.95 && phoIsInEndcap)) {
3971         h_phoERes_[1][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3972         h_phoSigmaEoE_[1][0]->Fill(sigmaEoE);
3973         h_phoEResRegr1_[1][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3974         h_phoEResRegr2_[1][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3975         if (!isRunCentrally_)
3976           h2_eResVsEt_[0][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3977         p_eResVsEt_[0][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3978         p_eResVsEta_[1]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3979         p_r9VsEta_[1]->Fill(mcEta_, r9);
3980         p_sigmaEoEVsEta_[1]->Fill(mcEta_, sigmaEoE);
3981 
3982       } else if ((r9 <= 0.94 && phoIsInBarrel) || (r9 <= 0.95 && phoIsInEndcap)) {
3983         h_phoERes_[2][0]->Fill(photonE / (*mcPho).fourMomentum().e());
3984         h_phoSigmaEoE_[2][0]->Fill(sigmaEoE);
3985         h_phoEResRegr1_[2][0]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
3986         h_phoEResRegr2_[2][0]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
3987         p_eResVsEt_[0][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3988         p_eResVsEta_[2]->Fill(mcEta_, photonE / (*mcPho).fourMomentum().e());
3989         p_r9VsEta_[2]->Fill(mcEta_, r9);
3990         p_sigmaEoEVsEta_[2]->Fill(mcEta_, sigmaEoE);
3991 
3992         if (!isRunCentrally_) {
3993           h2_eResVsEt_[0][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
3994           h_EtR9Less093_[0][0]->Fill(photonEt);
3995         }
3996       }
3997 
3998       if (phoIsInBarrel) {
3999         h_scE_[type][1]->Fill(matchingPho->superCluster()->energy());
4000         h_scEt_[type][1]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
4001         h_r9_[type][1]->Fill(r9);
4002         h_r1_[type][1]->Fill(r1);
4003         h_r2_[type][1]->Fill(r2);
4004         h_sigmaIetaIeta_[type][1]->Fill(sigmaIetaIeta);
4005         h_hOverE_[type][1]->Fill(hOverE);
4006         h_newhOverE_[type][1]->Fill(newhOverE);
4007         h_ecalRecHitSumEtConeDR04_[type][1]->Fill(ecalIso);
4008         p_ecalRecHitSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4009         h_hcalTowerSumEtConeDR04_[type][1]->Fill(hcalIso);
4010         p_hcalTowerSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4011         h_hcalTowerBcSumEtConeDR04_[type][1]->Fill(newhcalIso);
4012         p_hcalTowerBcSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
4013         h_isoTrkSolidConeDR04_[type][1]->Fill(trkIso);
4014         h_nTrkSolidConeDR04_[type][1]->Fill(nIsoTrk);
4015         h_chHadIso_[1]->Fill(chargedHadIso);
4016         h_nHadIso_[1]->Fill(neutralHadIso);
4017         h_phoIso_[1]->Fill(photonIso);
4018         h_nCluOutsideMustache_[1]->Fill(float(nClusterOutsideMustache));
4019         h_etOutsideMustache_[1]->Fill(etOutsideMustache);
4020         h_pfMva_[1]->Fill(pfMVA);
4021         h_phoE_[type][1]->Fill(photonE);
4022         h_phoEt_[type][1]->Fill(photonEt);
4023         h_nConv_[type][1]->Fill(float(matchingPho->conversions().size()));
4024         h_nConv_[1][1]->Fill(float(matchingPho->conversionsOneLeg().size()));
4025         h_phoERes_[0][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4026         h_phoSigmaEoE_[0][1]->Fill(sigmaEoE);
4027         h_phoEResRegr1_[0][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4028         h_phoEResRegr2_[0][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4029         p_eResVsR9_[1]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4030         p_sceResVsR9_[1]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4031         if (!isRunCentrally_) {
4032           h2_eResVsR9_[1]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4033           h2_sceResVsR9_[1]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4034           h2_ecalRecHitSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4035           h2_hcalTowerSumEtConeDR04VsEt_[1]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4036           h2_eResVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4037         }
4038         p_eResVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4039         p_eResVsNVtx_[1][0]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4040         p_sigmaEoEVsEt_[1][0]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4041         p_sigmaEoEVsNVtx_[1][0]->Fill(float(vtxH->size()), sigmaEoE);
4042 
4043         if (r9 > 0.94) {
4044           h_phoERes_[1][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4045           h_phoSigmaEoE_[1][1]->Fill(sigmaEoE);
4046           h_phoEResRegr1_[1][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4047           h_phoEResRegr2_[1][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4048           if (!isRunCentrally_)
4049             h2_eResVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4050           p_eResVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4051           p_eResVsNVtx_[1][1]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4052           p_sigmaEoEVsEt_[1][1]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4053           p_sigmaEoEVsNVtx_[1][1]->Fill(float(vtxH->size()), sigmaEoE);
4054         }
4055         if (r9 <= 0.94) {
4056           h_phoERes_[2][1]->Fill(photonE / (*mcPho).fourMomentum().e());
4057           h_phoSigmaEoE_[2][1]->Fill(sigmaEoE);
4058           h_phoEResRegr1_[2][1]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4059           h_phoEResRegr2_[2][1]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4060           p_eResVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4061           p_eResVsNVtx_[1][2]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4062           p_sigmaEoEVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4063           p_sigmaEoEVsNVtx_[1][2]->Fill(float(vtxH->size()), sigmaEoE);
4064           if (!isRunCentrally_) {
4065             h2_eResVsEt_[1][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4066             h_EtR9Less093_[0][1]->Fill(photonEt);
4067           }
4068         }
4069       }
4070       if (phoIsInEndcap) {
4071         h_scE_[type][2]->Fill(matchingPho->superCluster()->energy());
4072         h_scEt_[type][2]->Fill(matchingPho->superCluster()->energy() / cosh(matchingPho->superCluster()->eta()));
4073         h_r9_[type][2]->Fill(r9);
4074         h_r1_[type][2]->Fill(r1);
4075         h_r2_[type][2]->Fill(r2);
4076         h_sigmaIetaIeta_[type][2]->Fill(sigmaIetaIeta);
4077         h_hOverE_[type][2]->Fill(hOverE);
4078         h_newhOverE_[type][2]->Fill(newhOverE);
4079         h_ecalRecHitSumEtConeDR04_[type][2]->Fill(ecalIso);
4080         p_ecalRecHitSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4081         h_hcalTowerSumEtConeDR04_[type][2]->Fill(hcalIso);
4082         p_hcalTowerSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4083         h_hcalTowerBcSumEtConeDR04_[type][2]->Fill(newhcalIso);
4084         p_hcalTowerBcSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), newhcalIso);
4085         h_isoTrkSolidConeDR04_[type][2]->Fill(trkIso);
4086         h_nTrkSolidConeDR04_[type][2]->Fill(nIsoTrk);
4087         h_chHadIso_[2]->Fill(chargedHadIso);
4088         h_nHadIso_[2]->Fill(neutralHadIso);
4089         h_phoIso_[2]->Fill(photonIso);
4090         h_nCluOutsideMustache_[2]->Fill(float(nClusterOutsideMustache));
4091         h_etOutsideMustache_[2]->Fill(etOutsideMustache);
4092         h_pfMva_[2]->Fill(pfMVA);
4093         h_phoE_[type][2]->Fill(photonE);
4094         h_phoEt_[type][2]->Fill(photonEt);
4095         h_nConv_[type][2]->Fill(float(matchingPho->conversions().size()));
4096         h_nConv_[1][2]->Fill(float(matchingPho->conversionsOneLeg().size()));
4097         h_phoERes_[0][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4098         h_phoSigmaEoE_[0][2]->Fill(sigmaEoE);
4099         h_phoEResRegr1_[0][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4100         h_phoEResRegr2_[0][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4101         p_eResVsR9_[2]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4102         p_sceResVsR9_[2]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4103         if (!isRunCentrally_) {
4104           h2_eResVsR9_[2]->Fill(r9, photonE / (*mcPho).fourMomentum().e());
4105           h2_sceResVsR9_[2]->Fill(r9, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4106           h2_ecalRecHitSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), ecalIso);
4107           h2_hcalTowerSumEtConeDR04VsEt_[2]->Fill((*mcPho).fourMomentum().et(), hcalIso);
4108           h2_eResVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4109         }
4110 
4111         p_eResVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4112         p_eResVsNVtx_[2][0]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4113         p_sigmaEoEVsEt_[2][0]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4114         p_sigmaEoEVsNVtx_[2][0]->Fill(float(vtxH->size()), sigmaEoE);
4115 
4116         if (r9 > 0.95) {
4117           h_phoERes_[1][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4118           h_phoSigmaEoE_[1][2]->Fill(sigmaEoE);
4119           h_phoEResRegr1_[1][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4120           h_phoEResRegr2_[1][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4121           if (!isRunCentrally_)
4122             h2_eResVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4123           p_eResVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4124           p_eResVsNVtx_[2][1]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4125           p_sigmaEoEVsEt_[2][1]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4126           p_sigmaEoEVsNVtx_[2][1]->Fill(float(vtxH->size()), sigmaEoE);
4127         }
4128         if (r9 <= 0.95) {
4129           h_phoERes_[2][2]->Fill(photonE / (*mcPho).fourMomentum().e());
4130           h_phoSigmaEoE_[2][2]->Fill(sigmaEoE);
4131           h_phoEResRegr1_[2][2]->Fill(photonERegr1 / (*mcPho).fourMomentum().e());
4132           h_phoEResRegr2_[2][2]->Fill(photonERegr2 / (*mcPho).fourMomentum().e());
4133           p_eResVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4134           p_eResVsNVtx_[2][2]->Fill(float(vtxH->size()), photonE / (*mcPho).fourMomentum().e());
4135           p_sigmaEoEVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), sigmaEoE);
4136           p_sigmaEoEVsNVtx_[2][2]->Fill(float(vtxH->size()), sigmaEoE);
4137 
4138           if (!isRunCentrally_) {
4139             h2_eResVsEt_[2][2]->Fill((*mcPho).fourMomentum().et(), photonE / (*mcPho).fourMomentum().e());
4140             h_EtR9Less093_[0][2]->Fill(photonEt);
4141           }
4142         }
4143       }
4144 
4145       ///////////////////////   Particle based isolation
4146       if (fName_ == "pfPhotonValidator") {
4147         float SumPtIsoValCh = 0.;
4148         float SumPtIsoValNh = 0.;
4149         float SumPtIsoValPh = 0.;
4150 
4151         float SumPtIsoValCleanCh = 0.;
4152         float SumPtIsoValCleanNh = 0.;
4153         float SumPtIsoValCleanPh = 0.;
4154 
4155         for (unsigned int lCand = 0; lCand < pfCandidateHandle->size(); lCand++) {
4156           reco::PFCandidateRef pfCandRef(reco::PFCandidateRef(pfCandidateHandle, lCand));
4157           float dR = deltaR(matchingPho->eta(), matchingPho->phi(), pfCandRef->eta(), pfCandRef->phi());
4158           if (dR < 0.4) {
4159             /// uncleaned
4160             reco::PFCandidate::ParticleType type = pfCandRef->particleId();
4161             if (type == reco::PFCandidate::e)
4162               continue;
4163             if (type == reco::PFCandidate::gamma && pfCandRef->mva_nothing_gamma() > 0.)
4164               continue;
4165 
4166             if (type == reco::PFCandidate::h) {
4167               SumPtIsoValCh += pfCandRef->pt();
4168               h_dRPhoPFcand_ChHad_unCleaned_[0]->Fill(dR);
4169               if (phoIsInBarrel)
4170                 h_dRPhoPFcand_ChHad_unCleaned_[1]->Fill(dR);
4171               else
4172                 h_dRPhoPFcand_ChHad_unCleaned_[2]->Fill(dR);
4173             }
4174             if (type == reco::PFCandidate::h0) {
4175               SumPtIsoValNh += pfCandRef->pt();
4176               h_dRPhoPFcand_NeuHad_unCleaned_[0]->Fill(dR);
4177               if (phoIsInBarrel)
4178                 h_dRPhoPFcand_NeuHad_unCleaned_[1]->Fill(dR);
4179               else
4180                 h_dRPhoPFcand_NeuHad_unCleaned_[2]->Fill(dR);
4181             }
4182             if (type == reco::PFCandidate::gamma) {
4183               SumPtIsoValPh += pfCandRef->pt();
4184               h_dRPhoPFcand_Pho_unCleaned_[0]->Fill(dR);
4185               if (phoIsInBarrel)
4186                 h_dRPhoPFcand_Pho_unCleaned_[1]->Fill(dR);
4187               else
4188                 h_dRPhoPFcand_Pho_unCleaned_[2]->Fill(dR);
4189             }
4190             ////////// acces the value map to access the PFCandidates in overlap with the photon which need to be excluded from the isolation
4191             bool skip = false;
4192             for (std::vector<reco::PFCandidateRef>::const_iterator i = phoToParticleBasedIsoMap[matchingPho].begin();
4193                  i != phoToParticleBasedIsoMap[matchingPho].end();
4194                  ++i) {
4195               if ((*i) == pfCandRef) {
4196                 skip = true;
4197               }
4198             }  // loop over the PFCandidates flagged as overlapping with the photon
4199 
4200             if (skip)
4201               continue;
4202             if (type == reco::PFCandidate::h) {
4203               SumPtIsoValCleanCh += pfCandRef->pt();
4204               h_dRPhoPFcand_ChHad_Cleaned_[0]->Fill(dR);
4205               if (phoIsInBarrel)
4206                 h_dRPhoPFcand_ChHad_Cleaned_[1]->Fill(dR);
4207               else
4208                 h_dRPhoPFcand_ChHad_Cleaned_[2]->Fill(dR);
4209             }
4210             if (type == reco::PFCandidate::h0) {
4211               SumPtIsoValCleanNh += pfCandRef->pt();
4212               h_dRPhoPFcand_NeuHad_Cleaned_[0]->Fill(dR);
4213               if (phoIsInBarrel)
4214                 h_dRPhoPFcand_NeuHad_Cleaned_[1]->Fill(dR);
4215               else
4216                 h_dRPhoPFcand_NeuHad_Cleaned_[2]->Fill(dR);
4217             }
4218             if (type == reco::PFCandidate::gamma) {
4219               SumPtIsoValCleanPh += pfCandRef->pt();
4220               h_dRPhoPFcand_Pho_Cleaned_[0]->Fill(dR);
4221               if (phoIsInBarrel)
4222                 h_dRPhoPFcand_Pho_Cleaned_[1]->Fill(dR);
4223               else
4224                 h_dRPhoPFcand_Pho_Cleaned_[2]->Fill(dR);
4225             }
4226 
4227           }  // dr=0.4
4228         }    // loop over all PF Candidates
4229 
4230         h_SumPtOverPhoPt_ChHad_Cleaned_[0]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4231         h_SumPtOverPhoPt_NeuHad_Cleaned_[0]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4232         h_SumPtOverPhoPt_Pho_Cleaned_[0]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4233         h_SumPtOverPhoPt_ChHad_unCleaned_[0]->Fill(SumPtIsoValCh / matchingPho->pt());
4234         h_SumPtOverPhoPt_NeuHad_unCleaned_[0]->Fill(SumPtIsoValNh / matchingPho->pt());
4235         h_SumPtOverPhoPt_Pho_unCleaned_[0]->Fill(SumPtIsoValPh / matchingPho->pt());
4236         if (phoIsInBarrel) {
4237           h_SumPtOverPhoPt_ChHad_Cleaned_[1]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4238           h_SumPtOverPhoPt_NeuHad_Cleaned_[1]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4239           h_SumPtOverPhoPt_Pho_Cleaned_[1]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4240           h_SumPtOverPhoPt_ChHad_unCleaned_[1]->Fill(SumPtIsoValCh / matchingPho->pt());
4241           h_SumPtOverPhoPt_NeuHad_unCleaned_[1]->Fill(SumPtIsoValNh / matchingPho->pt());
4242           h_SumPtOverPhoPt_Pho_unCleaned_[1]->Fill(SumPtIsoValPh / matchingPho->pt());
4243         } else {
4244           h_SumPtOverPhoPt_ChHad_Cleaned_[2]->Fill(SumPtIsoValCleanCh / matchingPho->pt());
4245           h_SumPtOverPhoPt_NeuHad_Cleaned_[2]->Fill(SumPtIsoValCleanNh / matchingPho->pt());
4246           h_SumPtOverPhoPt_Pho_Cleaned_[2]->Fill(SumPtIsoValCleanPh / matchingPho->pt());
4247           h_SumPtOverPhoPt_ChHad_unCleaned_[2]->Fill(SumPtIsoValCh / matchingPho->pt());
4248           h_SumPtOverPhoPt_NeuHad_unCleaned_[2]->Fill(SumPtIsoValNh / matchingPho->pt());
4249           h_SumPtOverPhoPt_Pho_unCleaned_[2]->Fill(SumPtIsoValPh / matchingPho->pt());
4250         }
4251 
4252       }  // only for pfPhotonValidator
4253 
4254       if (!(visibleConversion && visibleConversionsWithTwoSimTracks))
4255         continue;
4256 
4257       if (!isRunCentrally_) {
4258         h_r9_[1][0]->Fill(r9);
4259         if (phoIsInBarrel)
4260           h_r9_[1][1]->Fill(r9);
4261         if (phoIsInEndcap)
4262           h_r9_[1][2]->Fill(r9);
4263 
4264         h_simConvVtxRvsZ_[0]->Fill(fabs(mcConvZ_), mcConvR_);
4265         if (fabs(mcEta_) <= 1.) {
4266           h_simConvVtxRvsZ_[1]->Fill(fabs(mcConvZ_), mcConvR_);
4267           h_simConvVtxYvsX_->Fill(mcConvX_, mcConvY_);
4268         } else
4269           h_simConvVtxRvsZ_[2]->Fill(fabs(mcConvZ_), mcConvR_);
4270       }
4271 
4272       if (!fastSim_) {
4273         ////////////////// plot quantities related to conversions
4274         reco::ConversionRefVector conversions = matchingPho->conversions();
4275         bool atLeastOneRecoTwoTrackConversion = false;
4276         for (unsigned int iConv = 0; iConv < conversions.size(); iConv++) {
4277           reco::ConversionRef aConv = conversions[iConv];
4278           double like = aConv->MVAout();
4279           if (like < likelihoodCut_)
4280             continue;
4281 
4282           if (!isRunCentrally_)
4283             h2_EoverEtrueVsEta_[1]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4284           p_EoverEtrueVsEta_[1]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4285 
4286           //std::vector<reco::TrackRef> tracks = aConv->tracks();
4287           const std::vector<edm::RefToBase<reco::Track> > tracks = aConv->tracks();
4288           if (tracks.size() < 2)
4289             continue;
4290           atLeastOneRecoTwoTrackConversion = true;
4291 
4292           h_mvaOut_[0]->Fill(like);
4293 
4294           if (tracks.size() == 2) {
4295             if (sqrt(aConv->tracksPin()[0].Perp2()) < convTrackMinPtCut_ ||
4296                 sqrt(aConv->tracksPin()[1].Perp2()) < convTrackMinPtCut_)
4297               continue;
4298           }
4299 
4300           if (dCotCutOn_) {
4301             if ((fabs(mcEta_) > 1.1 && fabs(mcEta_) < 1.4) && fabs(aConv->pairCotThetaSeparation()) > dCotHardCutValue_)
4302               continue;
4303             if (fabs(aConv->pairCotThetaSeparation()) > dCotCutValue_)
4304               continue;
4305           }
4306 
4307           nRecConv_++;
4308 
4309           std::map<const reco::Track*, TrackingParticleRef> myAss;
4310           std::map<const reco::Track*, TrackingParticleRef>::const_iterator itAss;
4311           std::map<reco::TrackRef, TrackingParticleRef>::const_iterator itAssMin;
4312           std::map<reco::TrackRef, TrackingParticleRef>::const_iterator itAssMax;
4313           //
4314 
4315           int nAssT2 = 0;
4316           for (unsigned int i = 0; i < tracks.size(); i++) {
4317             //      reco::TrackRef track = tracks[i].castTo<reco::TrackRef>();
4318 
4319             type = 0;
4320             if (!isRunCentrally_)
4321               nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4322             if (!isRunCentrally_)
4323               nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4324             p_nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits() - 0.0001));
4325             p_nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits() - 0.0001));
4326             h_tkChi2_[type]->Fill(tracks[i]->normalizedChi2());
4327 
4328             RefToBase<reco::Track> tfrb = tracks[i];
4329             RefToBaseVector<reco::Track> tc;
4330             tc.push_back(tfrb);
4331             // reco::RecoToSimCollection q = trackAssociator->associateRecoToSim(tc,theConvTP_);
4332             reco::SimToRecoCollection q = trackAssociator->associateSimToReco(tc, theConvTP_);
4333             std::vector<std::pair<RefToBase<reco::Track>, double> > trackV;
4334             int tpI = 0;
4335 
4336             if (q.find(theConvTP_[0]) != q.end()) {
4337               trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[0]];
4338             } else if (q.find(theConvTP_[1]) != q.end()) {
4339               trackV = (std::vector<std::pair<RefToBase<reco::Track>, double> >)q[theConvTP_[1]];
4340               tpI = 1;
4341             }
4342 
4343             if (trackV.empty())
4344               continue;
4345             edm::RefToBase<reco::Track> tr = trackV.front().first;
4346             myAss.insert(std::make_pair(tr.get(), theConvTP_[tpI]));
4347             nAssT2++;
4348           }
4349 
4350           type = 0;
4351 
4352           //      float totP = sqrt(aConv->pairMomentum().Mag2());
4353           float refP = -99999.;
4354           float refPt = -99999.;
4355           if (aConv->conversionVertex().isValid()) {
4356             refP = sqrt(aConv->refittedPairMomentum().Mag2());
4357             refPt = sqrt(aConv->refittedPairMomentum().perp2());
4358           }
4359           float invM = aConv->pairInvariantMass();
4360 
4361           h_invMass_[type][0]->Fill(invM);
4362           if (phoIsInBarrel)
4363             h_invMass_[type][1]->Fill(invM);
4364           if (phoIsInEndcap)
4365             h_invMass_[type][2]->Fill(invM);
4366 
4367           ////////// Numerators for conversion absolute efficiency
4368           if (tracks.size() == 2) {
4369             h_SimConvTwoTracks_[0]->Fill(mcEta_);
4370             h_SimConvTwoTracks_[1]->Fill(mcPhi_);
4371             h_SimConvTwoTracks_[2]->Fill(mcConvR_);
4372             h_SimConvTwoTracks_[3]->Fill(mcConvZ_);
4373             h_SimConvTwoTracks_[4]->Fill((*mcPho).fourMomentum().et());
4374 
4375             if (!aConv->caloCluster().empty())
4376               h_convEta_[1]->Fill(aConv->caloCluster()[0]->eta());
4377 
4378             float trkProvenance = 3;
4379             if (tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "outInEcalSeededConv")
4380               trkProvenance = 0;
4381             if (tracks[0]->algoName() == "inOutEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv")
4382               trkProvenance = 1;
4383             if ((tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv") ||
4384                 (tracks[1]->algoName() == "outInEcalSeededConv" && tracks[0]->algoName() == "inOutEcalSeededConv"))
4385               trkProvenance = 2;
4386             if (trkProvenance == 3) {
4387             }
4388             h_trkProv_[0]->Fill(trkProvenance);
4389             h_trkAlgo_->Fill(tracks[0]->algo());
4390             h_trkAlgo_->Fill(tracks[1]->algo());
4391             h_convAlgo_->Fill(aConv->algo());
4392 
4393             ////////// Numerators for conversion efficiencies: both tracks are associated
4394             if (nAssT2 == 2) {
4395               if (!isRunCentrally_) {
4396                 h_r9_[2][0]->Fill(r9);
4397                 if (phoIsInBarrel)
4398                   h_r9_[2][1]->Fill(r9);
4399                 if (phoIsInEndcap)
4400                   h_r9_[2][2]->Fill(r9);
4401               }
4402 
4403               if (!aConv->caloCluster().empty())
4404                 h_convEta_[2]->Fill(aConv->caloCluster()[0]->eta());
4405               nRecConvAss_++;
4406 
4407               h_SimConvTwoMTracks_[0]->Fill(mcEta_);
4408               h_SimConvTwoMTracks_[1]->Fill(mcPhi_);
4409               h_SimConvTwoMTracks_[2]->Fill(mcConvR_);
4410               h_SimConvTwoMTracks_[3]->Fill(mcConvZ_);
4411               h_SimConvTwoMTracks_[4]->Fill((*mcPho).fourMomentum().et());
4412 
4413               if (aConv->conversionVertex().isValid()) {
4414                 float chi2Prob =
4415                     ChiSquaredProbability(aConv->conversionVertex().chi2(), aConv->conversionVertex().ndof());
4416                 if (chi2Prob > 0) {
4417                   h_SimConvTwoMTracksAndVtxPGT0_[0]->Fill(mcEta_);
4418                   h_SimConvTwoMTracksAndVtxPGT0_[1]->Fill(mcPhi_);
4419                   h_SimConvTwoMTracksAndVtxPGT0_[2]->Fill(mcConvR_);
4420                   h_SimConvTwoMTracksAndVtxPGT0_[3]->Fill(mcConvZ_);
4421                   h_SimConvTwoMTracksAndVtxPGT0_[4]->Fill((*mcPho).fourMomentum().et());
4422                 }
4423                 if (chi2Prob > 0.0005) {
4424                   h_SimConvTwoMTracksAndVtxPGT0005_[0]->Fill(mcEta_);
4425                   h_SimConvTwoMTracksAndVtxPGT0005_[1]->Fill(mcPhi_);
4426                   h_SimConvTwoMTracksAndVtxPGT0005_[2]->Fill(mcConvR_);
4427                   h_SimConvTwoMTracksAndVtxPGT0005_[3]->Fill(mcConvZ_);
4428                   h_SimConvTwoMTracksAndVtxPGT0005_[4]->Fill((*mcPho).fourMomentum().et());
4429                 }
4430 
4431                 if (chi2Prob > 0.0005) {
4432                   if (!aConv->caloCluster().empty()) {
4433                     h_convEta_[0]->Fill(aConv->caloCluster()[0]->eta());
4434                     h_convPhi_[0]->Fill(aConv->caloCluster()[0]->phi());
4435                     h_convERes_[0][0]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4436                   }
4437                   if (!isRunCentrally_) {
4438                     h_r9VsNofTracks_[0][0]->Fill(r9, aConv->nTracks());
4439                     h_EtR9Less093_[1][0]->Fill(photonEt);
4440                     if (phoIsInBarrel)
4441                       h_EtR9Less093_[1][1]->Fill(photonEt);
4442                     if (phoIsInEndcap)
4443                       h_EtR9Less093_[1][2]->Fill(photonEt);
4444                   }
4445                   if (phoIsInBarrel) {
4446                     if (!aConv->caloCluster().empty())
4447                       h_convERes_[0][1]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4448                     if (!isRunCentrally_)
4449                       h_r9VsNofTracks_[0][1]->Fill(r9, aConv->nTracks());
4450                     h_mvaOut_[1]->Fill(like);
4451                   }
4452                   if (phoIsInEndcap) {
4453                     if (!aConv->caloCluster().empty())
4454                       h_convERes_[0][2]->Fill(aConv->caloCluster()[0]->energy() / (*mcPho).fourMomentum().e());
4455                     if (!isRunCentrally_)
4456                       h_r9VsNofTracks_[0][2]->Fill(r9, aConv->nTracks());
4457                     h_mvaOut_[2]->Fill(like);
4458                   }
4459                 }
4460               }
4461 
4462               ///////////  Quantities per conversion
4463               type = 1;
4464 
4465               h_trkProv_[1]->Fill(trkProvenance);
4466               h_invMass_[type][0]->Fill(invM);
4467 
4468               float eoverp = -99999.;
4469 
4470               if (aConv->conversionVertex().isValid()) {
4471                 eoverp = photonE / sqrt(aConv->refittedPairMomentum().Mag2());
4472                 //eoverp= aConv->EoverPrefittedTracks();
4473                 h_convPtRes_[type][0]->Fill(refPt / (*mcPho).fourMomentum().et());
4474                 h_EoverPTracks_[type][0]->Fill(eoverp);
4475                 h_PoverETracks_[type][0]->Fill(1. / eoverp);
4476                 if (!isRunCentrally_)
4477                   h2_EoverEtrueVsEoverP_[0]->Fill(eoverp,
4478                                                   matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4479                 if (!isRunCentrally_)
4480                   h2_PoverPtrueVsEoverP_[0]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4481                 if (!isRunCentrally_)
4482                   h2_EoverPVsEta_[0]->Fill(mcEta_, eoverp);
4483                 if (!isRunCentrally_)
4484                   h2_EoverPVsR_[0]->Fill(mcConvR_, eoverp);
4485                 p_EoverPVsEta_[0]->Fill(mcEta_, eoverp);
4486                 p_EoverPVsR_[0]->Fill(mcConvR_, eoverp);
4487                 p_eResVsR_->Fill(mcConvR_, photonE / (*mcPho).fourMomentum().e());
4488                 if (!isRunCentrally_)
4489                   h2_PoverPtrueVsEta_[0]->Fill(mcEta_, refP / (*mcPho).fourMomentum().e());
4490                 p_PoverPtrueVsEta_[0]->Fill(mcEta_, refP / (*mcPho).fourMomentum().e());
4491               }
4492 
4493               if (!isRunCentrally_)
4494                 h2_EoverEtrueVsEta_[0]->Fill(mcEta_,
4495                                              matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4496               if (!isRunCentrally_)
4497                 h2_EoverEtrueVsR_[0]->Fill(mcConvR_,
4498                                            matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4499               p_EoverEtrueVsEta_[0]->Fill(mcEta_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4500               p_EoverEtrueVsR_[0]->Fill(mcConvR_, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4501 
4502               if (!isRunCentrally_)
4503                 h2_etaVsRsim_[0]->Fill(mcEta_, mcConvR_);
4504 
4505               //  here original tracks and their inner momentum is considered
4506               float dPhiTracksAtVtx = aConv->dPhiTracksAtVtx();
4507               h_DPhiTracksAtVtx_[type][0]->Fill(dPhiTracksAtVtx);
4508               if (!isRunCentrally_)
4509                 h2_DPhiTracksAtVtxVsEta_->Fill(mcEta_, dPhiTracksAtVtx);
4510               if (!isRunCentrally_)
4511                 h2_DPhiTracksAtVtxVsR_->Fill(mcConvR_, dPhiTracksAtVtx);
4512               p_DPhiTracksAtVtxVsEta_->Fill(mcEta_, dPhiTracksAtVtx);
4513               p_DPhiTracksAtVtxVsR_->Fill(mcConvR_, dPhiTracksAtVtx);
4514 
4515               h_DCotTracks_[type][0]->Fill(aConv->pairCotThetaSeparation());
4516               if (!isRunCentrally_)
4517                 h2_DCotTracksVsEta_->Fill(mcEta_, aConv->pairCotThetaSeparation());
4518               if (!isRunCentrally_)
4519                 h2_DCotTracksVsR_->Fill(mcConvR_, aConv->pairCotThetaSeparation());
4520               p_DCotTracksVsEta_->Fill(mcEta_, aConv->pairCotThetaSeparation());
4521               p_DCotTracksVsR_->Fill(mcConvR_, aConv->pairCotThetaSeparation());
4522 
4523               if (phoIsInBarrel) {
4524                 h_invMass_[type][1]->Fill(invM);
4525                 if (aConv->conversionVertex().isValid()) {
4526                   h_convPtRes_[type][1]->Fill(refPt / (*mcPho).fourMomentum().et());
4527                   h_EoverPTracks_[type][1]->Fill(eoverp);
4528                   if (mcConvR_ < 15)
4529                     h_EoverPTracks_[0][0]->Fill(eoverp);
4530                   if (mcConvR_ > 15 && mcConvR_ < 58)
4531                     h_EoverPTracks_[0][1]->Fill(eoverp);
4532                   if (mcConvR_ > 58)
4533                     h_EoverPTracks_[0][2]->Fill(eoverp);
4534                   h_PoverETracks_[type][1]->Fill(1. / eoverp);
4535                   if (!isRunCentrally_)
4536                     h2_EoverEtrueVsEoverP_[1]->Fill(
4537                         eoverp, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4538                   if (!isRunCentrally_)
4539                     h2_PoverPtrueVsEoverP_[1]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4540                 }
4541                 h_DPhiTracksAtVtx_[type][1]->Fill(dPhiTracksAtVtx);
4542                 h_DCotTracks_[type][1]->Fill(aConv->pairCotThetaSeparation());
4543               }
4544 
4545               if (phoIsInEndcap) {
4546                 h_invMass_[type][2]->Fill(invM);
4547                 if (aConv->conversionVertex().isValid()) {
4548                   h_convPtRes_[type][2]->Fill(refPt / (*mcPho).fourMomentum().et());
4549                   h_EoverPTracks_[type][2]->Fill(eoverp);
4550                   h_PoverETracks_[type][2]->Fill(1. / eoverp);
4551                   if (!isRunCentrally_)
4552                     h2_EoverEtrueVsEoverP_[2]->Fill(
4553                         eoverp, matchingPho->superCluster()->energy() / (*mcPho).fourMomentum().e());
4554                   if (!isRunCentrally_)
4555                     h2_PoverPtrueVsEoverP_[2]->Fill(eoverp, refP / (*mcPho).fourMomentum().e());
4556                 }
4557                 h_DPhiTracksAtVtx_[type][2]->Fill(dPhiTracksAtVtx);
4558                 h_DCotTracks_[type][2]->Fill(aConv->pairCotThetaSeparation());
4559               }
4560 
4561               if (aConv->conversionVertex().isValid()) {
4562                 h_convVtxdX_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4563                 h_convVtxdY_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4564                 h_convVtxdZ_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4565                 h_convVtxdR_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4566 
4567                 if (fabs(mcConvEta_) <= 1.2) {
4568                   h_convVtxdX_barrel_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4569                   h_convVtxdY_barrel_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4570                   h_convVtxdZ_barrel_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4571                   h_convVtxdR_barrel_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4572                 } else {
4573                   h_convVtxdX_endcap_->Fill(aConv->conversionVertex().position().x() - mcConvX_);
4574                   h_convVtxdY_endcap_->Fill(aConv->conversionVertex().position().y() - mcConvY_);
4575                   h_convVtxdZ_endcap_->Fill(aConv->conversionVertex().position().z() - mcConvZ_);
4576                   h_convVtxdR_endcap_->Fill(sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4577                 }
4578 
4579                 h_convVtxdPhi_->Fill(aConv->conversionVertex().position().phi() - mcConvPhi_);
4580                 h_convVtxdEta_->Fill(aConv->conversionVertex().position().eta() - mcConvEta_);
4581                 if (!isRunCentrally_)
4582                   h2_convVtxdRVsR_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4583                 if (!isRunCentrally_)
4584                   h2_convVtxdRVsEta_->Fill(mcEta_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4585                 p_convVtxdRVsR_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4586                 p_convVtxdRVsEta_->Fill(mcEta_, sqrt(aConv->conversionVertex().position().perp2()) - mcConvR_);
4587                 float signX = aConv->refittedPairMomentum().x() / fabs(aConv->refittedPairMomentum().x());
4588                 float signY = aConv->refittedPairMomentum().y() / fabs(aConv->refittedPairMomentum().y());
4589                 float signZ = aConv->refittedPairMomentum().z() / fabs(aConv->refittedPairMomentum().z());
4590                 p_convVtxdXVsX_->Fill(mcConvX_, (aConv->conversionVertex().position().x() - mcConvX_) * signX);
4591                 p_convVtxdYVsY_->Fill(mcConvY_, (aConv->conversionVertex().position().y() - mcConvY_) * signY);
4592                 p_convVtxdZVsZ_->Fill(mcConvZ_, (aConv->conversionVertex().position().z() - mcConvZ_) * signZ);
4593 
4594                 if (!isRunCentrally_)
4595                   h2_convVtxRrecVsTrue_->Fill(mcConvR_, sqrt(aConv->conversionVertex().position().perp2()));
4596 
4597                 //float zPV = aConv->zOfPrimaryVertexFromTracks();
4598                 float thetaConv = aConv->refittedPairMomentum().Theta();
4599                 float thetaSC = matchingPho->superCluster()->position().theta();
4600                 float rSC =
4601                     sqrt(matchingPho->superCluster()->position().x() * matchingPho->superCluster()->position().x() +
4602                          matchingPho->superCluster()->position().y() * matchingPho->superCluster()->position().y());
4603                 float zSC = matchingPho->superCluster()->position().z();
4604                 float zPV = sqrt(rSC * rSC + zSC * zSC) * sin(thetaConv - thetaSC) / sin(thetaConv);
4605 
4606                 h_zPVFromTracks_[0]->Fill(zPV);
4607                 h_dzPVFromTracks_[0]->Fill(zPV - (*mcPho).primaryVertex().z());
4608 
4609                 if (phoIsInBarrel) {
4610                   h_zPVFromTracks_[1]->Fill(zPV);
4611                   h_dzPVFromTracks_[1]->Fill(zPV - (*mcPho).primaryVertex().z());
4612                 } else if (phoIsInEndcap) {
4613                   h_zPVFromTracks_[2]->Fill(zPV);
4614                   h_dzPVFromTracks_[2]->Fill(zPV - (*mcPho).primaryVertex().z());
4615                 } else if (phoIsInEndcapP) {
4616                   h_zPVFromTracks_[3]->Fill(zPV);
4617                   h_dzPVFromTracks_[3]->Fill(zPV - (*mcPho).primaryVertex().z());
4618                 } else if (phoIsInEndcapM) {
4619                   h_zPVFromTracks_[4]->Fill(zPV);
4620                   h_dzPVFromTracks_[4]->Fill(zPV - (*mcPho).primaryVertex().z());
4621                 }
4622 
4623                 p_dzPVVsR_->Fill(mcConvR_, zPV - (*mcPho).primaryVertex().z());
4624                 p_dzPVVsEta_->Fill(mcConvEta_, zPV - (*mcPho).primaryVertex().z());
4625                 if (!isRunCentrally_)
4626                   h2_dzPVVsR_->Fill(mcConvR_, zPV - (*mcPho).primaryVertex().z());
4627               }
4628 
4629               float dPhiTracksAtEcal = -99;
4630               float dEtaTracksAtEcal = -99;
4631               if (!aConv->bcMatchingWithTracks().empty() && aConv->bcMatchingWithTracks()[0].isNonnull() &&
4632                   aConv->bcMatchingWithTracks()[1].isNonnull()) {
4633                 nRecConvAssWithEcal_++;
4634                 float recoPhi1 = aConv->ecalImpactPosition()[0].phi();
4635                 float recoPhi2 = aConv->ecalImpactPosition()[1].phi();
4636                 float recoEta1 = aConv->ecalImpactPosition()[0].eta();
4637                 float recoEta2 = aConv->ecalImpactPosition()[1].eta();
4638                 // unused   float bcPhi1 = aConv->bcMatchingWithTracks()[0]->phi();
4639                 // unused   float bcPhi2 = aConv->bcMatchingWithTracks()[1]->phi();
4640                 // unused   float bcEta1 = aConv->bcMatchingWithTracks()[0]->eta();
4641                 // unused   float bcEta2 = aConv->bcMatchingWithTracks()[1]->eta();
4642                 recoPhi1 = phiNormalization(recoPhi1);
4643                 recoPhi2 = phiNormalization(recoPhi2);
4644                 dPhiTracksAtEcal = recoPhi1 - recoPhi2;
4645                 dPhiTracksAtEcal = phiNormalization(dPhiTracksAtEcal);
4646                 dEtaTracksAtEcal = recoEta1 - recoEta2;
4647 
4648                 h_DPhiTracksAtEcal_[type][0]->Fill(fabs(dPhiTracksAtEcal));
4649                 if (!isRunCentrally_)
4650                   h2_DPhiTracksAtEcalVsR_->Fill(mcConvR_, fabs(dPhiTracksAtEcal));
4651                 if (!isRunCentrally_)
4652                   h2_DPhiTracksAtEcalVsEta_->Fill(mcEta_, fabs(dPhiTracksAtEcal));
4653                 p_DPhiTracksAtEcalVsR_->Fill(mcConvR_, fabs(dPhiTracksAtEcal));
4654                 p_DPhiTracksAtEcalVsEta_->Fill(mcEta_, fabs(dPhiTracksAtEcal));
4655 
4656                 h_DEtaTracksAtEcal_[type][0]->Fill(dEtaTracksAtEcal);
4657 
4658                 if (phoIsInBarrel) {
4659                   h_DPhiTracksAtEcal_[type][1]->Fill(fabs(dPhiTracksAtEcal));
4660                   h_DEtaTracksAtEcal_[type][1]->Fill(dEtaTracksAtEcal);
4661                 }
4662                 if (phoIsInEndcap) {
4663                   h_DPhiTracksAtEcal_[type][2]->Fill(fabs(dPhiTracksAtEcal));
4664                   h_DEtaTracksAtEcal_[type][2]->Fill(dEtaTracksAtEcal);
4665                 }
4666               }
4667               ///////////  Quantities per track
4668               for (unsigned int i = 0; i < tracks.size(); i++) {
4669                 RefToBase<reco::Track> tfrb(tracks[i]);
4670                 itAss = myAss.find(tfrb.get());
4671                 if (itAss == myAss.end())
4672                   continue;
4673 
4674                 float trkProvenance = 3;
4675                 if (tracks[0]->algoName() == "outInEcalSeededConv" && tracks[1]->algoName() == "outInEcalSeededConv")
4676                   trkProvenance = 0;
4677                 if (tracks[0]->algoName() == "inOutEcalSeededConv" && tracks[1]->algoName() == "inOutEcalSeededConv")
4678                   trkProvenance = 1;
4679                 if ((tracks[0]->algoName() == "outInEcalSeededConv" &&
4680                      tracks[1]->algoName() == "inOutEcalSeededConv") ||
4681                     (tracks[1]->algoName() == "outInEcalSeededConv" && tracks[0]->algoName() == "inOutEcalSeededConv"))
4682                   trkProvenance = 2;
4683 
4684                 if (!isRunCentrally_)
4685                   nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()));
4686                 if (!isRunCentrally_)
4687                   nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()));
4688                 p_nHitsVsEta_[type]->Fill(mcEta_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4689                 p_nHitsVsR_[type]->Fill(mcConvR_, float(tracks[i]->numberOfValidHits()) - 0.0001);
4690                 h_tkChi2_[type]->Fill(tracks[i]->normalizedChi2());
4691                 h_tkChi2Large_[type]->Fill(tracks[i]->normalizedChi2());
4692                 if (!isRunCentrally_)
4693                   h2_Chi2VsEta_[0]->Fill(mcEta_, tracks[i]->normalizedChi2());
4694