CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ZToMuMuGammaAnalyzer.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <iomanip>
3 //
4 
7 
8 
19 using namespace std;
20 
21 
23 {
24 
25  fName_ = pset.getUntrackedParameter<string>("Name");
26  verbosity_ = pset.getUntrackedParameter<int>("Verbosity");
27  prescaleFactor_ = pset.getUntrackedParameter<int>("prescaleFactor",1);
28  standAlone_ = pset.getParameter<bool>("standAlone");
29  outputFileName_ = pset.getParameter<string>("OutputFileName");
30  isHeavyIon_ = pset.getUntrackedParameter<bool>("isHeavyIon",false);
31 
32  // triggerEvent_ = pset.getParameter<edm::InputTag>("triggerEvent");
33  triggerEvent_token_ = consumes<trigger::TriggerEvent>(pset.getParameter<edm::InputTag>("triggerEvent"));
34 
35  useTriggerFiltering_ = pset.getParameter<bool>("useTriggerFiltering");
36  splitHistosEBEE_ = pset.getParameter<bool>("splitHistosEBEE");
37  use2DHistos_ = pset.getParameter<bool>("use2DHistos");
38 
39  photon_token_ = consumes<vector<reco::Photon> >(pset.getParameter<edm::InputTag>("phoProducer"));
40  muon_token_ = consumes<vector<reco::Muon> >(pset.getParameter<edm::InputTag>("muonProducer"));
41 
42  barrelRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > >(pset.getParameter<edm::InputTag>("barrelRecHitProducer"));
43 
44  endcapRecHit_token_ = consumes<edm::SortedCollection<EcalRecHit,edm::StrictWeakOrdering<EcalRecHit> > >(pset.getParameter<edm::InputTag>("endcapRecHitProducer"));
45 
46  PhotonIDLoose_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDLoose"));
47  PhotonIDTight_token_ = consumes<edm::ValueMap<bool> >(pset.getParameter<edm::InputTag>("photonIDTight"));
48 
49  beamSpot_token_ = consumes<reco::BeamSpot>(pset.getParameter<edm::InputTag>("beamSpot"));
50 
51  // Muon selection
52  muonMinPt_ = pset.getParameter<double>("muonMinPt");
53  minPixStripHits_ = pset.getParameter<int>("minPixStripHits");
54  muonMaxChi2_ = pset.getParameter<double>("muonMaxChi2");
55  muonMaxDxy_ = pset.getParameter<double>("muonMaxDxy");
56  muonMatches_ = pset.getParameter<int>("muonMatches");
57  validPixHits_ = pset.getParameter<int>("validPixHits");
58  validMuonHits_ = pset.getParameter<int>("validMuonHits");
59  muonTrackIso_ = pset.getParameter<double>("muonTrackIso");
60  muonTightEta_ = pset.getParameter<double>("muonTightEta");
61  // Dimuon selection
62  minMumuInvMass_ = pset.getParameter<double>("minMumuInvMass");
63  maxMumuInvMass_ = pset.getParameter<double>("maxMumuInvMass");
64  // Photon selection
65  photonMinEt_ = pset.getParameter<double>("photonMinEt");
66  photonMaxEta_ = pset.getParameter<double>("photonMaxEta");
67  photonTrackIso_ = pset.getParameter<double>("photonTrackIso");
68  // mumuGamma selection
69  nearMuonDr_ = pset.getParameter<double>("nearMuonDr");
70  nearMuonHcalIso_ = pset.getParameter<double>("nearMuonHcalIso");
71  farMuonEcalIso_ = pset.getParameter<double>("farMuonEcalIso");
72  farMuonTrackIso_ = pset.getParameter<double>("farMuonTrackIso");
73  farMuonMinPt_ = pset.getParameter<double>("farMuonMinPt");
74  minMumuGammaInvMass_ = pset.getParameter<double>("minMumuGammaInvMass");
75  maxMumuGammaInvMass_ = pset.getParameter<double>("maxMumuGammaInvMass");
76 
77  parameters_ = pset;
78 
79 }
80 
82 
84 {
85  nEvt_=0;
86  nEntry_=0;
87 
88  dbe_ = 0;
90 
91  double eMin = parameters_.getParameter<double>("eMin");
92  double eMax = parameters_.getParameter<double>("eMax");
93  int eBin = parameters_.getParameter<int>("eBin");
94 
95  double etMin = parameters_.getParameter<double>("etMin");
96  double etMax = parameters_.getParameter<double>("etMax");
97  int etBin = parameters_.getParameter<int>("etBin");
98 
99  double sumMin = parameters_.getParameter<double>("sumMin");
100  double sumMax = parameters_.getParameter<double>("sumMax");
101  int sumBin = parameters_.getParameter<int>("sumBin");
102 
103  double etaMin = parameters_.getParameter<double>("etaMin");
104  double etaMax = parameters_.getParameter<double>("etaMax");
105  int etaBin = parameters_.getParameter<int>("etaBin");
106 
107  double phiMin = parameters_.getParameter<double>("phiMin");
108  double phiMax = parameters_.getParameter<double>("phiMax");
109  int phiBin = parameters_.getParameter<int>("phiBin");
110 
111  double r9Min = parameters_.getParameter<double>("r9Min");
112  double r9Max = parameters_.getParameter<double>("r9Max");
113  int r9Bin = parameters_.getParameter<int>("r9Bin");
114 
115  double hOverEMin = parameters_.getParameter<double>("hOverEMin");
116  double hOverEMax = parameters_.getParameter<double>("hOverEMax");
117  int hOverEBin = parameters_.getParameter<int>("hOverEBin");
118 
119 // double xMin = parameters_.getParameter<double>("xMin");
120 // double xMax = parameters_.getParameter<double>("xMax");
121 // int xBin = parameters_.getParameter<int>("xBin");
122 
123 // double yMin = parameters_.getParameter<double>("yMin");
124 // double yMax = parameters_.getParameter<double>("yMax");
125 // int yBin = parameters_.getParameter<int>("yBin");
126 
127  double numberMin = parameters_.getParameter<double>("numberMin");
128  double numberMax = parameters_.getParameter<double>("numberMax");
129  int numberBin = parameters_.getParameter<int>("numberBin");
130 
131 // double zMin = parameters_.getParameter<double>("zMin");
132 // double zMax = parameters_.getParameter<double>("zMax");
133 // int zBin = parameters_.getParameter<int>("zBin");
134 
135 // double rMin = parameters_.getParameter<double>("rMin");
136 // double rMax = parameters_.getParameter<double>("rMax");
137 // int rBin = parameters_.getParameter<int>("rBin");
138 
139 // double dPhiTracksMin = parameters_.getParameter<double>("dPhiTracksMin");
140 // double dPhiTracksMax = parameters_.getParameter<double>("dPhiTracksMax");
141 // int dPhiTracksBin = parameters_.getParameter<int>("dPhiTracksBin");
142 
143 // double dEtaTracksMin = parameters_.getParameter<double>("dEtaTracksMin");
144 // double dEtaTracksMax = parameters_.getParameter<double>("dEtaTracksMax");
145 // int dEtaTracksBin = parameters_.getParameter<int>("dEtaTracksBin");
146 
147  double sigmaIetaMin = parameters_.getParameter<double>("sigmaIetaMin");
148  double sigmaIetaMax = parameters_.getParameter<double>("sigmaIetaMax");
149  int sigmaIetaBin = parameters_.getParameter<int>("sigmaIetaBin");
150 
151 // double eOverPMin = parameters_.getParameter<double>("eOverPMin");
152 // double eOverPMax = parameters_.getParameter<double>("eOverPMax");
153 // int eOverPBin = parameters_.getParameter<int>("eOverPBin");
154 
155 // double chi2Min = parameters_.getParameter<double>("chi2Min");
156 // double chi2Max = parameters_.getParameter<double>("chi2Max");
157 // int chi2Bin = parameters_.getParameter<int>("chi2Bin");
158 
159 
160  int reducedEtBin = etBin/4;
161  int reducedEtaBin = etaBin/4;
162  int reducedSumBin = sumBin/4;
163  int reducedR9Bin = r9Bin/4;
164 
166 
167  if (dbe_) {
168 
169 
170  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer/ZToMuMuGamma");
171 
172  h1_mumuInvMass_ = dbe_->book1D("mumuInvMass","Two muon invariant mass: M (GeV)",etBin,etMin,etMax);
173  h1_mumuGammaInvMass_ = dbe_->book1D("mumuGammaInvMass","Two-muon plus gamma invariant mass: M (GeV)",etBin,etMin,etMax);
174 
176 
178 
179  //ENERGY
180  h_phoE_ = dbe_->book1D("phoE","Energy;E (GeV)",eBin,eMin,eMax);
181  h_phoEt_ = dbe_->book1D("phoEt","E_{T};E_{T} (GeV)", etBin,etMin,etMax);
182 
183  //NUMBER OF PHOTONS
184  h_nPho_ = dbe_->book1D("nPho", "Number of Photons per Event;# #gamma", numberBin,numberMin,numberMax);
185 
186  //GEOMETRICAL
187  h_phoEta_ = dbe_->book1D("phoEta", "#eta;#eta",etaBin,etaMin,etaMax);
188  h_phoPhi_ = dbe_->book1D("phoPhi", "#phi;#phi",phiBin,phiMin,phiMax);
189 
190  h_scEta_ = dbe_->book1D("scEta", "SuperCluster #eta;#eta",etaBin,etaMin,etaMax);
191  h_scPhi_ = dbe_->book1D("scPhi", "SuperCluster #phi;#phi",phiBin,phiMin,phiMax);
192 
193  //SHOWER SHAPE
194  //r9
195  h_r9_ = dbe_->book1D("r9","R9;R9",r9Bin,r9Min, r9Max);
196 
197  //sigmaIetaIeta
198  h_phoSigmaIetaIeta_ = dbe_->book1D("phoSigmaIetaIeta","#sigma_{i#etai#eta};#sigma_{i#etai#eta}",sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
199 
200  //TRACK ISOLATION
201 
202  //nTrackIsolSolid
203  h_nTrackIsolSolid_ = dbe_->book1D("nIsoTracksSolid","Number Of Tracks in the Solid Iso Cone;# tracks",numberBin,numberMin,numberMax);
204 
205  //nTrackIsolHollow
206  h_nTrackIsolHollow_ = dbe_->book1D("nIsoTracksHollow","Number Of Tracks in the Hollow Iso Cone;# tracks",numberBin,numberMin,numberMax);
207 
208  //trackPtSumSolid
209  h_trackPtSumSolid_ = dbe_->book1D("isoPtSumSolid","Track P_{T} Sum in the Solid Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
210 
211  //trackPtSumHollow
212  h_trackPtSumHollow_ = dbe_->book1D("isoPtSumHollow","Track P_{T} Sum in the Hollow Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
213 
214  //CALORIMETER ISOLATION VARIABLES
215 
216  //ecal sum
217  h_ecalSum_ = dbe_->book1D("ecalSum","Ecal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
218 
219  //hcal sum
220  h_hcalSum_ = dbe_->book1D("hcalSum","Hcal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
221 
222  //h over e
223  h_hOverE_ = dbe_->book1D("hOverE","H/E;H/E",hOverEBin,hOverEMin,hOverEMax);
224  h_h1OverE_ = dbe_->book1D("h1OverE","H/E for Depth 1;H/E",hOverEBin,hOverEMin,hOverEMax);
225  h_h2OverE_ = dbe_->book1D("h2OverE","H/E for Depth 2;H/E",hOverEBin,hOverEMin,hOverEMax);
226 
227 
229 
230  if(use2DHistos_){
231 
232  //SHOWER SHAPE
233  //r9
234  h_r9VsEt_ = dbe_->book2D("r9VsEt2D","R9 vs E_{T};E_{T} (GeV);R9",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
235  p_r9VsEt_ = dbe_->bookProfile("r9VsEt","Avg R9 vs E_{T};E_{T} (GeV);R9",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
236  h_r9VsEta_ = dbe_->book2D("r9VsEta2D","R9 vs #eta;#eta;R9",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
237  p_r9VsEta_ = dbe_->bookProfile("r9VsEta","Avg R9 vs #eta;#eta;R9",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
238 
239  //sigmaIetaIeta
240  h_sigmaIetaIetaVsEta_ = dbe_->book2D("sigmaIetaIetaVsEta2D","#sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",reducedEtaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
241  p_sigmaIetaIetaVsEta_ = dbe_->bookProfile("sigmaIetaIetaVsEta","Avg #sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",etaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
242 
243  //e1x5
244  h_e1x5VsEt_ = dbe_->book2D("e1x5VsEt2D","E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
245  p_e1x5VsEt_ = dbe_->bookProfile("e1x5VsEt","Avg E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
246  h_e1x5VsEta_ = dbe_->book2D("e1x5VsEta2D","E1x5 vs #eta;#eta;E1X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
247  p_e1x5VsEta_ = dbe_->bookProfile("e1x5VsEta","Avg E1x5 vs #eta;#eta;E1X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
248 
249  //e2x5
250  h_e2x5VsEt_ = dbe_->book2D("e2x5VsEt2D","E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
251  p_e2x5VsEt_ = dbe_->bookProfile("e2x5VsEt","Avg E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
252  h_e2x5VsEta_ = dbe_->book2D("e2x5VsEta2D","E2x5 vs #eta;#eta;E2X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
253  p_e2x5VsEta_ = dbe_->bookProfile("e2x5VsEta","Avg E2x5 vs #eta;#eta;E2X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
254 
255  //r1x5
256  h_r1x5VsEt_ = dbe_->book2D("r1x5VsEt2D","R1x5 vs E_{T};E_{T} (GeV);R1X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
257  p_r1x5VsEt_ = dbe_->bookProfile("r1x5VsEt","Avg R1x5 vs E_{T};E_{T} (GeV);R1X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
258  h_r1x5VsEta_ = dbe_->book2D("r1x5VsEta2D","R1x5 vs #eta;#eta;R1X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
259  p_r1x5VsEta_ = dbe_->bookProfile("r1x5VsEta","Avg R1x5 vs #eta;#eta;R1X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
260 
261  //r2x5
262  h_r2x5VsEt_ = dbe_->book2D("r2x5VsEt2D","R2x5 vs E_{T};E_{T} (GeV);R2X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
263  p_r2x5VsEt_ = dbe_->bookProfile("r2x5VsEt","Avg R2x5 vs E_{T};E_{T} (GeV);R2X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
264  h_r2x5VsEta_ = dbe_->book2D("r2x5VsEta2D","R2x5 vs #eta;#eta;R2X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
265  p_r2x5VsEta_ = dbe_->bookProfile("r2x5VsEta","Avg R2x5 vs #eta;#eta;R2X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
266 
267  //maxEXtalOver3x3
268  h_maxEXtalOver3x3VsEt_ = dbe_->book2D("maxEXtalOver3x3VsEt2D","(Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",reducedEtBin,etMin,etMax,r9Bin,r9Min,r9Max);
269  p_maxEXtalOver3x3VsEt_ = dbe_->bookProfile("maxEXtalOver3x3VsEt","Avg (Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
270  h_maxEXtalOver3x3VsEta_ = dbe_->book2D("maxEXtalOver3x3VsEta2D","(Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",reducedEtaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
271  p_maxEXtalOver3x3VsEta_ = dbe_->bookProfile("maxEXtalOver3x3VsEta","Avg (Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
272 
273  //TRACK ISOLATION
274 
275  //nTrackIsolSolid
276  h_nTrackIsolSolidVsEt_ = dbe_->book2D("nIsoTracksSolidVsEt2D","Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
277  p_nTrackIsolSolidVsEt_ = dbe_->bookProfile("nIsoTracksSolidVsEt","Avg Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
278  h_nTrackIsolSolidVsEta_ = dbe_->book2D("nIsoTracksSolidVsEta2D","Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
279  p_nTrackIsolSolidVsEta_ = dbe_->bookProfile("nIsoTracksSolidVsEta","Avg Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
280 
281  //nTrackIsolHollow
282  h_nTrackIsolHollowVsEt_ = dbe_->book2D("nIsoTracksHollowVsEt2D","Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
283  p_nTrackIsolHollowVsEt_ = dbe_->bookProfile("nIsoTracksHollowVsEt","Avg Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
284  h_nTrackIsolHollowVsEta_ = dbe_->book2D("nIsoTracksHollowVsEta2D","Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
285  p_nTrackIsolHollowVsEta_ = dbe_->bookProfile("nIsoTracksHollowVsEta","Avg Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
286 
287  //trackPtSumSolid
288  h_trackPtSumSolidVsEt_ = dbe_->book2D("isoPtSumSolidVsEt2D","Track P_{T} Sum in the Solid Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
289  p_trackPtSumSolidVsEt_ = dbe_->bookProfile("isoPtSumSolidVsEt","Avg Track P_{T} Sum in the Solid Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
290  h_trackPtSumSolidVsEta_ = dbe_->book2D("isoPtSumSolidVsEta2D","Track P_{T} Sum in the Solid Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
291  p_trackPtSumSolidVsEta_ = dbe_->bookProfile("isoPtSumSolidVsEta","Avg Track P_{T} Sum in the Solid Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
292 
293  //trackPtSumHollow
294  h_trackPtSumHollowVsEt_ = dbe_->book2D("isoPtSumHollowVsEt2D","Track P_{T} Sum in the Hollow Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
295  p_trackPtSumHollowVsEt_ = dbe_->bookProfile("isoPtSumHollowVsEt","Avg Track P_{T} Sum in the Hollow Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
296  h_trackPtSumHollowVsEta_ = dbe_->book2D("isoPtSumHollowVsEta2D","Track P_{T} Sum in the Hollow Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
297  p_trackPtSumHollowVsEta_ = dbe_->bookProfile("isoPtSumHollowVsEta","Avg Track P_{T} Sum in the Hollow Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
298 
299  //CALORIMETER ISOLATION VARIABLES
300 
301  //ecal sum
302  h_ecalSumVsEt_ = dbe_->book2D("ecalSumVsEt2D","Ecal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
303  p_ecalSumVsEt_ = dbe_->bookProfile("ecalSumVsEt","Avg Ecal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
304  h_ecalSumVsEta_ = dbe_->book2D("ecalSumVsEta2D","Ecal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
305  p_ecalSumVsEta_ = dbe_->bookProfile("ecalSumVsEta","Avg Ecal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
306 
307  //hcal sum
308  h_hcalSumVsEt_ = dbe_->book2D("hcalSumVsEt2D","Hcal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
309  p_hcalSumVsEt_ = dbe_->bookProfile("hcalSumVsEt","Avg Hcal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
310  h_hcalSumVsEta_ = dbe_->book2D("hcalSumVsEta2D","Hcal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
311  p_hcalSumVsEta_ = dbe_->bookProfile("hcalSumVsEta","Avg Hcal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
312 
313  //h over e
314  p_hOverEVsEt_ = dbe_->bookProfile("hOverEVsEt","Avg H/E vs Et;E_{T} (GeV);H/E",etBin,etMin,etMax,hOverEBin,hOverEMin,hOverEMax);
315  p_hOverEVsEta_ = dbe_->bookProfile("hOverEVsEta","Avg H/E vs #eta;#eta;H/E",etaBin,etaMin,etaMax,hOverEBin,hOverEMin,hOverEMax);
316 
317  }
318 
320 
321  if(splitHistosEBEE_){
322 
323  //EB ENERGY
324  h_phoEBarrel_ = dbe_->book1D("phoEBarrel","Energy for Barrel;E (GeV)",eBin,eMin,eMax);
325  h_phoEtBarrel_ = dbe_->book1D("phoEtBarrel","E_{T};E_{T} (GeV)", etBin,etMin,etMax);
326 
327  //EB NUMBER OF PHOTONS
328  h_nPhoBarrel_ = dbe_->book1D("nPhoBarrel","Number of Photons per Event;# #gamma", numberBin,numberMin,numberMax);
329 
330  //EB GEOMETRICAL
331  h_phoEtaBarrel_ = dbe_->book1D("phoEtaBarrel","#eta;#eta",etaBin,etaMin,etaMax);
332  h_phoPhiBarrel_ = dbe_->book1D("phoPhiBarrel","#phi;#phi",phiBin,phiMin,phiMax);
333 
334  h_scEtaBarrel_ = dbe_->book1D("scEtaBarrel","SuperCluster #eta;#eta",etaBin,etaMin,etaMax);
335  h_scPhiBarrel_ = dbe_->book1D("scPhiBarrel","SuperCluster #phi;#phi",phiBin,phiMin,phiMax);
336 
337  //EB SHOWER SHAPE
338  //EB r9
339  h_r9Barrel_ = dbe_->book1D("r9Barrel","R9;R9",r9Bin,r9Min, r9Max);
340  h_r9VsEtBarrel_ = dbe_->book2D("r9VsEt2DBarrel","R9 vs E_{T};E_{T} (GeV);R9",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
341  p_r9VsEtBarrel_ = dbe_->bookProfile("r9VsEtBarrel","Avg R9 vs E_{T};E_{T} (GeV);R9",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
342  h_r9VsEtaBarrel_ = dbe_->book2D("r9VsEta2DBarrel","R9 vs #eta;#eta;R9",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
343  p_r9VsEtaBarrel_ = dbe_->bookProfile("r9VsEtaBarrel","Avg R9 vs #eta;#eta;R9",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
344 
345  //EB sigmaIetaIeta
346  h_phoSigmaIetaIetaBarrel_ = dbe_->book1D("phoSigmaIetaIetaBarrel","#sigma_{i#etai#eta};#sigma_{i#etai#eta}",sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
347  h_sigmaIetaIetaVsEtaBarrel_ = dbe_->book2D("sigmaIetaIetaVsEta2DBarrel","#sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",reducedEtaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
348  p_sigmaIetaIetaVsEtaBarrel_ = dbe_->bookProfile("sigmaIetaIetaVsEtaBarrel","Avg #sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",etaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
349 
350  //EB e1x5
351  h_e1x5VsEtBarrel_ = dbe_->book2D("e1x5VsEt2DBarrel","E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
352  p_e1x5VsEtBarrel_ = dbe_->bookProfile("e1x5VsEtBarrel","Avg E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
353  h_e1x5VsEtaBarrel_ = dbe_->book2D("e1x5VsEta2DBarrel","E1x5 vs #eta;#eta;E1X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
354  p_e1x5VsEtaBarrel_ = dbe_->bookProfile("e1x5VsEtaBarrel","Avg E1x5 vs #eta;#eta;E1X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
355 
356  //EB e2x5
357  h_e2x5VsEtBarrel_ = dbe_->book2D("e2x5VsEt2DBarrel","E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
358  p_e2x5VsEtBarrel_ = dbe_->bookProfile("e2x5VsEtBarrel","Avg E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
359  h_e2x5VsEtaBarrel_ = dbe_->book2D("e2x5VsEta2DBarrel","E2x5 vs #eta;#eta;E2X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
360  p_e2x5VsEtaBarrel_ = dbe_->bookProfile("e2x5VsEtaBarrel","Avg E2x5 vs #eta;#eta;E2X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
361 
362  //EB r1x5
363  h_r1x5VsEtBarrel_ = dbe_->book2D("r1x5VsEt2DBarrel","R1x5 vs E_{T};E_{T} (GeV);R1X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
364  p_r1x5VsEtBarrel_ = dbe_->bookProfile("r1x5VsEtBarrel","Avg R1x5 vs E_{T};E_{T} (GeV);R1X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
365  h_r1x5VsEtaBarrel_ = dbe_->book2D("r1x5VsEta2DBarrel","R1x5 vs #eta;#eta;R1X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
366  p_r1x5VsEtaBarrel_ = dbe_->bookProfile("r1x5VsEtaBarrel","Avg R1x5 vs #eta;#eta;R1X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
367 
368  //EB r2x5
369  h_r2x5VsEtBarrel_ = dbe_->book2D("r2x5VsEt2DBarrel","R2x5 vs E_{T};E_{T} (GeV);R2X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
370  p_r2x5VsEtBarrel_ = dbe_->bookProfile("r2x5VsEtBarrel","Avg R2x5 vs E_{T};E_{T} (GeV);R2X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
371  h_r2x5VsEtaBarrel_ = dbe_->book2D("r2x5VsEta2DBarrel","R2x5 vs #eta;#eta;R2X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
372  p_r2x5VsEtaBarrel_ = dbe_->bookProfile("r2x5VsEtaBarrel","Avg R2x5 vs #eta;#eta;R2X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
373 
374  //EB maxEXtalOver3x3
375  h_maxEXtalOver3x3VsEtBarrel_ = dbe_->book2D("maxEXtalOver3x3VsEt2DBarrel","(Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",reducedEtBin,etMin,etMax,r9Bin,r9Min,r9Max);
376  p_maxEXtalOver3x3VsEtBarrel_ = dbe_->bookProfile("maxEXtalOver3x3VsEtBarrel","Avg (Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
377  h_maxEXtalOver3x3VsEtaBarrel_ = dbe_->book2D("maxEXtalOver3x3VsEta2DBarrel","(Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",reducedEtaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
378  p_maxEXtalOver3x3VsEtaBarrel_ = dbe_->bookProfile("maxEXtalOver3x3VsEtaBarrel","Avg (Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
379 
380  //EB TRACK ISOLATION
381 
382  //EB nTrackIsolSolid
383  h_nTrackIsolSolidBarrel_ = dbe_->book1D("nIsoTracksSolidBarrel","Number Of Tracks in the Solid Iso Cone;# tracks",numberBin,numberMin,numberMax);
384  h_nTrackIsolSolidVsEtBarrel_ = dbe_->book2D("nIsoTracksSolidVsEt2DBarrel","Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
385  p_nTrackIsolSolidVsEtBarrel_ = dbe_->bookProfile("nIsoTracksSolidVsEtBarrel","Avg Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
386  h_nTrackIsolSolidVsEtaBarrel_ = dbe_->book2D("nIsoTracksSolidVsEta2DBarrel","Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
387  p_nTrackIsolSolidVsEtaBarrel_ = dbe_->bookProfile("nIsoTracksSolidVsEtaBarrel","Avg Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
388 
389  //EB nTrackIsolHollow
390  h_nTrackIsolHollowBarrel_ = dbe_->book1D("nIsoTracksHollowBarrel","Number Of Tracks in the Hollow Iso Cone;# tracks",numberBin,numberMin,numberMax);
391  h_nTrackIsolHollowVsEtBarrel_ = dbe_->book2D("nIsoTracksHollowVsEt2DBarrel","Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
392  p_nTrackIsolHollowVsEtBarrel_ = dbe_->bookProfile("nIsoTracksHollowVsEtBarrel","Avg Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
393  h_nTrackIsolHollowVsEtaBarrel_ = dbe_->book2D("nIsoTracksHollowVsEta2DBarrel","Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
394  p_nTrackIsolHollowVsEtaBarrel_ = dbe_->bookProfile("nIsoTracksHollowVsEtaBarrel","Avg Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
395 
396  //EB trackPtSumSolid
397  h_trackPtSumSolidBarrel_ = dbe_->book1D("isoPtSumSolidBarrel","Track P_{T} Sum in the Solid Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
398  h_trackPtSumSolidVsEtBarrel_ = dbe_->book2D("isoPtSumSolidVsEt2DBarrel","Track P_{T} Sum in the Solid Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
399  p_trackPtSumSolidVsEtBarrel_ = dbe_->bookProfile("isoPtSumSolidVsEtBarrel","Avg Track P_{T} Sum in the Solid Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
400  h_trackPtSumSolidVsEtaBarrel_ = dbe_->book2D("isoPtSumSolidVsEta2DBarrel","Track P_{T} Sum in the Solid Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
401  p_trackPtSumSolidVsEtaBarrel_ = dbe_->bookProfile("isoPtSumSolidVsEtaBarrel","Avg Track P_{T} Sum in the Solid Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
402 
403  //EB trackPtSumHollow
404  h_trackPtSumHollowBarrel_ = dbe_->book1D("isoPtSumHollowBarrel","Track P_{T} Sum in the Hollow Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
405  h_trackPtSumHollowVsEtBarrel_ = dbe_->book2D("isoPtSumHollowVsEt2DBarrel","Track P_{T} Sum in the Hollow Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
406  p_trackPtSumHollowVsEtBarrel_ = dbe_->bookProfile("isoPtSumHollowVsEtBarrel","Avg Track P_{T} Sum in the Hollow Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
407  h_trackPtSumHollowVsEtaBarrel_ = dbe_->book2D("isoPtSumHollowVsEta2DBarrel","Track P_{T} Sum in the Hollow Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
408  p_trackPtSumHollowVsEtaBarrel_ = dbe_->bookProfile("isoPtSumHollowVsEtaBarrel","Avg Track P_{T} Sum in the Hollow Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
409 
410  //EB CALORIMETER ISOLATION VARIABLES
411 
412  //EB ecal sum
413  h_ecalSumBarrel_ = dbe_->book1D("ecalSumBarrel","Ecal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
414  h_ecalSumVsEtBarrel_ = dbe_->book2D("ecalSumVsEt2DBarrel","Ecal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
415  p_ecalSumVsEtBarrel_ = dbe_->bookProfile("ecalSumVsEtBarrel","Avg Ecal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
416  h_ecalSumVsEtaBarrel_ = dbe_->book2D("ecalSumVsEta2DBarrel","Ecal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
417  p_ecalSumVsEtaBarrel_ = dbe_->bookProfile("ecalSumVsEtaBarrel","Avg Ecal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
418 
419  //EB hcal sum
420  h_hcalSumBarrel_ = dbe_->book1D("hcalSumBarrel","Hcal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
421  h_hcalSumVsEtBarrel_ = dbe_->book2D("hcalSumVsEt2DBarrel","Hcal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
422  p_hcalSumVsEtBarrel_ = dbe_->bookProfile("hcalSumVsEtBarrel","Avg Hcal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
423  h_hcalSumVsEtaBarrel_ = dbe_->book2D("hcalSumVsEta2DBarrel","Hcal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
424  p_hcalSumVsEtaBarrel_ = dbe_->bookProfile("hcalSumVsEtaBarrel","Avg Hcal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
425 
426  //EB h over e
427  h_hOverEBarrel_ = dbe_->book1D("hOverEBarrel","H/E;H/E",hOverEBin,hOverEMin,hOverEMax);
428  p_hOverEVsEtBarrel_ = dbe_->bookProfile("hOverEVsEtBarrel","Avg H/E vs Et;E_{T} (GeV);H/E",etBin,etMin,etMax,hOverEBin,hOverEMin,hOverEMax);
429  p_hOverEVsEtaBarrel_ = dbe_->bookProfile("hOverEVsEtaBarrel","Avg H/E vs #eta;#eta;H/E",etaBin,etaMin,etaMax,hOverEBin,hOverEMin,hOverEMax);
430  h_h1OverEBarrel_ = dbe_->book1D("h1OverEBarrel","H/E for Depth 1;H/E",hOverEBin,hOverEMin,hOverEMax);
431  h_h2OverEBarrel_ = dbe_->book1D("h2OverEBarrel","H/E for Depth 2;H/E",hOverEBin,hOverEMin,hOverEMax);
432 
433 
435 
436  //EE ENERGY
437  h_phoEtEndcap_ = dbe_->book1D("phoEtEndcap","E_{T};E_{T} (GeV)", etBin,etMin,etMax);
438  h_phoEEndcap_ = dbe_->book1D("phoEEndcap","Energy for Endcap;E (GeV)",eBin,eMin,eMax);
439 
440  //EE NUMBER OF PHOTONS
441  h_nPhoEndcap_ = dbe_->book1D("nPhoEndcap","Number of Photons per Event;# #gamma", numberBin,numberMin,numberMax);
442 
443  //EE GEOMETRICAL
444  h_phoEtaEndcap_ = dbe_->book1D("phoEtaEndcap","#eta;#eta",etaBin,etaMin,etaMax);
445  h_phoPhiEndcap_ = dbe_->book1D("phoPhiEndcap","#phi;#phi",phiBin,phiMin,phiMax);
446 
447  h_scEtaEndcap_ = dbe_->book1D("scEtaEndcap","SuperCluster #eta;#eta",etaBin,etaMin,etaMax);
448  h_scPhiEndcap_ = dbe_->book1D("scPhiEndcap","SuperCluster #phi;#phi",phiBin,phiMin,phiMax);
449 
450  //EE SHOWER SHAPE
451  //EE r9
452  h_r9Endcap_ = dbe_->book1D("r9Endcap","R9;R9",r9Bin,r9Min, r9Max);
453  h_r9VsEtEndcap_ = dbe_->book2D("r9VsEt2DEndcap","R9 vs E_{T};E_{T} (GeV);R9",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
454  p_r9VsEtEndcap_ = dbe_->bookProfile("r9VsEtEndcap","Avg R9 vs E_{T};E_{T} (GeV);R9",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
455  h_r9VsEtaEndcap_ = dbe_->book2D("r9VsEta2DEndcap","R9 vs #eta;#eta;R9",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
456  p_r9VsEtaEndcap_ = dbe_->bookProfile("r9VsEtaEndcap","Avg R9 vs #eta;#eta;R9",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
457 
458  //EE sigmaIetaIeta
459  h_phoSigmaIetaIetaEndcap_ = dbe_->book1D("phoSigmaIetaIetaEndcap","#sigma_{i#etai#eta};#sigma_{i#etai#eta}",sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
460  h_sigmaIetaIetaVsEtaEndcap_ = dbe_->book2D("sigmaIetaIetaVsEta2DEndcap","#sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",reducedEtaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
461  p_sigmaIetaIetaVsEtaEndcap_ = dbe_->bookProfile("sigmaIetaIetaVsEtaEndcap","Avg #sigma_{i#etai#eta} vs #eta;#eta;#sigma_{i#etai#eta}",etaBin,etaMin,etaMax,sigmaIetaBin,sigmaIetaMin,sigmaIetaMax);
462 
463  //EE e1x5
464  h_e1x5VsEtEndcap_ = dbe_->book2D("e1x5VsEt2DEndcap","E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
465  p_e1x5VsEtEndcap_ = dbe_->bookProfile("e1x5VsEtEndcap","Avg E1x5 vs E_{T};E_{T} (GeV);E1X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
466  h_e1x5VsEtaEndcap_ = dbe_->book2D("e1x5VsEta2DEndcap","E1x5 vs #eta;#eta;E1X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
467  p_e1x5VsEtaEndcap_ = dbe_->bookProfile("e1x5VsEtaEndcap","Avg E1x5 vs #eta;#eta;E1X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
468 
469  //EE e2x5
470  h_e2x5VsEtEndcap_ = dbe_->book2D("e2x5VsEt2DEndcap","E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",reducedEtBin,etMin,etMax,reducedEtBin,etMin,etMax);
471  p_e2x5VsEtEndcap_ = dbe_->bookProfile("e2x5VsEtEndcap","Avg E2x5 vs E_{T};E_{T} (GeV);E2X5 (GeV)",etBin,etMin,etMax,etBin,etMin,etMax);
472  h_e2x5VsEtaEndcap_ = dbe_->book2D("e2x5VsEta2DEndcap","E2x5 vs #eta;#eta;E2X5 (GeV)",reducedEtaBin,etaMin,etaMax,reducedEtBin,etMin,etMax);
473  p_e2x5VsEtaEndcap_ = dbe_->bookProfile("e2x5VsEtaEndcap","Avg E2x5 vs #eta;#eta;E2X5 (GeV)",etaBin,etaMin,etaMax,etBin,etMin,etMax);
474 
475  //EE r1x5
476  h_r1x5VsEtEndcap_ = dbe_->book2D("r1x5VsEt2DEndcap","R1x5 vs E_{T};E_{T} (GeV);R1X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
477  p_r1x5VsEtEndcap_ = dbe_->bookProfile("r1x5VsEtEndcap","Avg R1x5 vs E_{T};E_{T} (GeV);R1X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
478  h_r1x5VsEtaEndcap_ = dbe_->book2D("r1x5VsEta2DEndcap","R1x5 vs #eta;#eta;R1X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
479  p_r1x5VsEtaEndcap_ = dbe_->bookProfile("r1x5VsEtaEndcap","Avg R1x5 vs #eta;#eta;R1X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
480 
481  //EE r2x5
482  h_r2x5VsEtEndcap_ = dbe_->book2D("r2x5VsEt2DEndcap","R2x5 vs E_{T};E_{T} (GeV);R2X5",reducedEtBin,etMin,etMax,reducedR9Bin,r9Min,r9Max);
483  p_r2x5VsEtEndcap_ = dbe_->bookProfile("r2x5VsEtEndcap","Avg R2x5 vs E_{T};E_{T} (GeV);R2X5",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
484  h_r2x5VsEtaEndcap_ = dbe_->book2D("r2x5VsEta2DEndcap","R2x5 vs #eta;#eta;R2X5",reducedEtaBin,etaMin,etaMax,reducedR9Bin,r9Min,r9Max);
485  p_r2x5VsEtaEndcap_ = dbe_->bookProfile("r2x5VsEtaEndcap","Avg R2x5 vs #eta;#eta;R2X5",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
486 
487  //EE maxEXtalOver3x3
488  h_maxEXtalOver3x3VsEtEndcap_ = dbe_->book2D("maxEXtalOver3x3VsEt2DEndcap","(Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",reducedEtBin,etMin,etMax,r9Bin,r9Min,r9Max);
489  p_maxEXtalOver3x3VsEtEndcap_ = dbe_->bookProfile("maxEXtalOver3x3VsEtEndcap","Avg (Max Xtal E)/E3x3 vs E_{T};E_{T} (GeV);(Max Xtal E)/E3x3",etBin,etMin,etMax,r9Bin,r9Min,r9Max);
490  h_maxEXtalOver3x3VsEtaEndcap_ = dbe_->book2D("maxEXtalOver3x3VsEta2DEndcap","(Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",reducedEtaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
491  p_maxEXtalOver3x3VsEtaEndcap_ = dbe_->bookProfile("maxEXtalOver3x3VsEtaEndcap","Avg (Max Xtal E)/E3x3 vs #eta;#eta;(Max Xtal E)/E3x3",etaBin,etaMin,etaMax,r9Bin,r9Min,r9Max);
492 
493  //EE TRACK ISOLATION
494 
495  //EE nTrackIsolSolid
496  h_nTrackIsolSolidEndcap_ = dbe_->book1D("nIsoTracksSolidEndcap","Number Of Tracks in the Solid Iso Cone;# tracks",numberBin,numberMin,numberMax);
497  h_nTrackIsolSolidVsEtEndcap_ = dbe_->book2D("nIsoTracksSolidVsEt2DEndcap","Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
498  p_nTrackIsolSolidVsEtEndcap_ = dbe_->bookProfile("nIsoTracksSolidVsEtEndcap","Avg Number Of Tracks in the Solid Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
499  h_nTrackIsolSolidVsEtaEndcap_ = dbe_->book2D("nIsoTracksSolidVsEta2DEndcap","Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
500  p_nTrackIsolSolidVsEtaEndcap_ = dbe_->bookProfile("nIsoTracksSolidVsEtaEndcap","Avg Number Of Tracks in the Solid Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
501 
502  //EE nTrackIsolHollow
503  h_nTrackIsolHollowEndcap_ = dbe_->book1D("nIsoTracksHollowEndcap","Number Of Tracks in the Hollow Iso Cone;# tracks",numberBin,numberMin,numberMax);
504  h_nTrackIsolHollowVsEtEndcap_ = dbe_->book2D("nIsoTracksHollowVsEt2DEndcap","Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",reducedEtBin,etMin, etMax,numberBin,numberMin,numberMax);
505  p_nTrackIsolHollowVsEtEndcap_ = dbe_->bookProfile("nIsoTracksHollowVsEtEndcap","Avg Number Of Tracks in the Hollow Iso Cone vs E_{T};E_{T};# tracks",etBin,etMin,etMax,numberBin,numberMin,numberMax);
506  h_nTrackIsolHollowVsEtaEndcap_ = dbe_->book2D("nIsoTracksHollowVsEta2DEndcap","Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",reducedEtaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
507  p_nTrackIsolHollowVsEtaEndcap_ = dbe_->bookProfile("nIsoTracksHollowVsEtaEndcap","Avg Number Of Tracks in the Hollow Iso Cone vs #eta;#eta;# tracks",etaBin,etaMin, etaMax,numberBin,numberMin,numberMax);
508 
509  //EE trackPtSumSolid
510  h_trackPtSumSolidEndcap_ = dbe_->book1D("isoPtSumSolidEndcap","Track P_{T} Sum in the Solid Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
511  h_trackPtSumSolidVsEtEndcap_ = dbe_->book2D("isoPtSumSolidVsEt2DEndcap","Track P_{T} Sum in the Solid Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
512  p_trackPtSumSolidVsEtEndcap_ = dbe_->bookProfile("isoPtSumSolidVsEtEndcap","Avg Track P_{T} Sum in the Solid Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
513  h_trackPtSumSolidVsEtaEndcap_ = dbe_->book2D("isoPtSumSolidVsEta2DEndcap","Track P_{T} Sum in the Solid Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
514  p_trackPtSumSolidVsEtaEndcap_ = dbe_->bookProfile("isoPtSumSolidVsEtaEndcap","Avg Track P_{T} Sum in the Solid Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
515 
516  //EE trackPtSumHollow
517  h_trackPtSumHollowEndcap_ = dbe_->book1D("isoPtSumHollowEndcap","Track P_{T} Sum in the Hollow Iso Cone;P_{T} (GeV)",sumBin,sumMin,sumMax);
518  h_trackPtSumHollowVsEtEndcap_ = dbe_->book2D("isoPtSumHollowVsEt2DEndcap","Track P_{T} Sum in the Hollow Iso Cone;E_{T} (GeV);P_{T} (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
519  p_trackPtSumHollowVsEtEndcap_ = dbe_->bookProfile("isoPtSumHollowVsEtEndcap","Avg Track P_{T} Sum in the Hollow Iso Cone vs E_{T};E_{T} (GeV);P_{T} (GeV)",etBin,etMin,etMax,sumBin,sumMin,sumMax);
520  h_trackPtSumHollowVsEtaEndcap_ = dbe_->book2D("isoPtSumHollowVsEta2DEndcap","Track P_{T} Sum in the Hollow Iso Cone;#eta;P_{T} (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
521  p_trackPtSumHollowVsEtaEndcap_ = dbe_->bookProfile("isoPtSumHollowVsEtaEndcap","Avg Track P_{T} Sum in the Hollow Iso Cone vs #eta;#eta;P_{T} (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
522 
523  //EE CALORIMETER ISOLATION VARIABLES
524 
525  //EE ecal sum
526  h_ecalSumEndcap_ = dbe_->book1D("ecalSumEndcap","Ecal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
527  h_ecalSumVsEtEndcap_ = dbe_->book2D("ecalSumVsEt2DEndcap","Ecal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
528  p_ecalSumVsEtEndcap_ = dbe_->bookProfile("ecalSumVsEtEndcap","Avg Ecal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
529  h_ecalSumVsEtaEndcap_ = dbe_->book2D("ecalSumVsEta2DEndcap","Ecal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
530  p_ecalSumVsEtaEndcap_ = dbe_->bookProfile("ecalSumVsEtaEndcap","Avg Ecal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
531 
532  //EE hcal sum
533  h_hcalSumEndcap_ = dbe_->book1D("hcalSumEndcap","Hcal Sum in the Iso Cone;E (GeV)",sumBin,sumMin,sumMax);
534  h_hcalSumVsEtEndcap_ = dbe_->book2D("hcalSumVsEt2DEndcap","Hcal Sum in the Iso Cone;E_{T} (GeV);E (GeV)",reducedEtBin,etMin, etMax,reducedSumBin,sumMin,sumMax);
535  p_hcalSumVsEtEndcap_ = dbe_->bookProfile("hcalSumVsEtEndcap","Avg Hcal Sum in the Iso Cone vs E_{T};E_{T} (GeV);E (GeV)",etBin,etMin, etMax,sumBin,sumMin,sumMax);
536  h_hcalSumVsEtaEndcap_ = dbe_->book2D("hcalSumVsEta2DEndcap","Hcal Sum in the Iso Cone;#eta;E (GeV)",reducedEtaBin,etaMin, etaMax,reducedSumBin,sumMin,sumMax);
537  p_hcalSumVsEtaEndcap_ = dbe_->bookProfile("hcalSumVsEtaEndcap","Avg Hcal Sum in the Iso Cone vs #eta;#eta;E (GeV)",etaBin,etaMin, etaMax,sumBin,sumMin,sumMax);
538 
539  //EE h over e
540  h_hOverEEndcap_ = dbe_->book1D("hOverEEndcap","H/E;H/E",hOverEBin,hOverEMin,hOverEMax);
541  p_hOverEVsEtEndcap_ = dbe_->bookProfile("hOverEVsEtEndcap","Avg H/E vs Et;E_{T} (GeV);H/E",etBin,etMin,etMax,hOverEBin,hOverEMin,hOverEMax);
542  p_hOverEVsEtaEndcap_ = dbe_->bookProfile("hOverEVsEtaEndcap","Avg H/E vs #eta;#eta;H/E",etaBin,etaMin,etaMax,hOverEBin,hOverEMin,hOverEMax);
543  h_h1OverEEndcap_ = dbe_->book1D("h1OverEEndcap","H/E for Depth 1;H/E",hOverEBin,hOverEMin,hOverEMax);
544  h_h2OverEEndcap_ = dbe_->book1D("h2OverEEndcap","H/E for Depth 2;H/E",hOverEBin,hOverEMin,hOverEMax);
545 
546  }//end if(splitHistosEBEE)
547 
548  }//end if(dbe_)
549 
550 }//end BeginJob
551 
553 {
554  using namespace edm;
555 
556  if (nEvt_% prescaleFactor_ ) return;
557  nEvt_++;
558  LogInfo("ZToMuMuGammaAnalyzer") << "ZToMuMuGammaAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n";
559 
560  // Get the trigger results
561  bool validTriggerEvent=true;
562  edm::Handle<trigger::TriggerEvent> triggerEventHandle;
563  trigger::TriggerEvent triggerEvent;
564  e.getByToken(triggerEvent_token_,triggerEventHandle);
565  if(!triggerEventHandle.isValid()) {
566  edm::LogInfo("PhotonAnalyzer") << "Error! Can't get the product: triggerEvent_token_" << endl;
567  validTriggerEvent=false;
568  }
569  if(validTriggerEvent) triggerEvent = *(triggerEventHandle.product());
570 
571  // Get the reconstructed photons
572  bool validPhotons=true;
573  Handle<reco::PhotonCollection> photonHandle;
574  reco::PhotonCollection photonCollection;
575  e.getByToken(photon_token_ , photonHandle);
576  if ( !photonHandle.isValid()) {
577  edm::LogInfo("ZToMuMuGammaAnalyzer") << "Error! Can't get the product: photon_token_" << endl;
578  validPhotons=false;
579  }
580  if(validPhotons) photonCollection = *(photonHandle.product());
581 
582  // Get the PhotonId objects
583  bool validloosePhotonID=true;
584  Handle<edm::ValueMap<bool> > loosePhotonFlag;
585  edm::ValueMap<bool> loosePhotonID;
586  e.getByToken(PhotonIDLoose_token_, loosePhotonFlag);
587  if ( !loosePhotonFlag.isValid()) {
588  edm::LogInfo("ZToMuMuGammaAnalyzer") << "Error! Can't get the product: PhotonIDLoose_token_" << endl;
589  validloosePhotonID=false;
590  }
591  if (validloosePhotonID) loosePhotonID = *(loosePhotonFlag.product());
592 
593  bool validtightPhotonID=true;
594  Handle<edm::ValueMap<bool> > tightPhotonFlag;
595  edm::ValueMap<bool> tightPhotonID;
596  e.getByToken(PhotonIDTight_token_, tightPhotonFlag);
597  if ( !tightPhotonFlag.isValid()) {
598  edm::LogInfo("ZToMuMuGammaAnalyzer") << "Error! Can't get the product: PhotonIDTight_token_" << endl;
599  validtightPhotonID=false;
600  }
601  if (validtightPhotonID) tightPhotonID = *(tightPhotonFlag.product());
602 
603  // Get the reconstructed muons
604  bool validMuons=true;
605  Handle<reco::MuonCollection> muonHandle;
606  reco::MuonCollection muonCollection;
607  e.getByToken(muon_token_, muonHandle);
608  if ( !muonHandle.isValid()) {
609  edm::LogInfo("ZToMuMuGammaAnalyzer") << "Error! Can't get the product: muon_token_" << endl;
610  validMuons=false;
611  }
612  if(validMuons) muonCollection = *(muonHandle.product());
613 
614  // Get the beam spot
616  e.getByToken(beamSpot_token_, bsHandle);
617  if (!bsHandle.isValid()) {
618  edm::LogError("TrackerOnlyConversionProducer") << "Error! Can't get the product primary Vertex Collection "<< "\n";
619  return;
620  }
621  const reco::BeamSpot &thebs = *bsHandle.product();
622 
623  //Prepare list of photon-related HLT filter names
624  vector<int> Keys;
625  for(uint filterIndex=0;filterIndex<triggerEvent.sizeFilters();++filterIndex){ //loop over all trigger filters in event (i.e. filters passed)
626  string label = triggerEvent.filterTag(filterIndex).label();
627  if(label.find( "Photon" ) != string::npos ) { //get photon-related filters
628  for(uint filterKeyIndex=0;filterKeyIndex<triggerEvent.filterKeys(filterIndex).size();++filterKeyIndex){ //loop over keys to objects passing this filter
629  Keys.push_back(triggerEvent.filterKeys(filterIndex)[filterKeyIndex]); //add keys to a vector for later reference
630  }
631  }
632  }
633 
634  // sort Keys vector in ascending order
635  // and erases duplicate entries from the vector
636  sort(Keys.begin(),Keys.end());
637  for ( uint i=0 ; i<Keys.size() ; )
638  {
639  if (i!=(Keys.size()-1))
640  {
641  if (Keys[i]==Keys[i+1]) Keys.erase(Keys.begin()+i+1) ;
642  else ++i ;
643  }
644  else ++i ;
645  }
646 
647  //photon counters
648  int nPho = 0;
649  int nPhoBarrel = 0;
650  int nPhoEndcap = 0;
651 
653  if ( muonCollection.size() < 2 ) return;
654 
655  for( reco::MuonCollection::const_iterator iMu = muonCollection.begin(); iMu != muonCollection.end(); iMu++) {
656  if ( !basicMuonSelection (*iMu) ) continue;
657 
658  for( reco::MuonCollection::const_iterator iMu2 = iMu+1; iMu2 != muonCollection.end(); iMu2++) {
659  if ( !basicMuonSelection (*iMu2) ) continue;
660  if ( iMu->charge()*iMu2->charge() > 0) continue;
661 
662  if ( !muonSelection(*iMu,thebs) && !muonSelection(*iMu2,thebs) ) continue;
663 
664  float mumuMass = mumuInvMass(*iMu,*iMu2) ;
665  if ( mumuMass < minMumuInvMass_ || mumuMass > maxMumuInvMass_ ) continue;
666 
667  h1_mumuInvMass_ -> Fill (mumuMass);
668 
669  if ( photonCollection.size() < 1 ) continue;
670 
671  reco::Muon nearMuon;
672  reco::Muon farMuon;
673  for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
674  if ( !photonSelection (*iPho) ) continue;
675 
677  double dr1 = deltaR(*iMu, *iPho);
678  double dr2 = deltaR(*iMu2,*iPho);
679  double drNear = dr1;
680  if (dr1 < dr2) {
681  nearMuon =*iMu ; farMuon = *iMu2; drNear = dr1;
682  } else {
683  nearMuon = *iMu2; farMuon = *iMu; drNear = dr2;
684  }
685 
686  if ( nearMuon.isolationR03().hadEt > nearMuonHcalIso_ ) continue;
687  if ( farMuon.isolationR03().sumPt > farMuonTrackIso_ ) continue;
688  if ( farMuon.isolationR03().emEt > farMuonEcalIso_ ) continue;
689  if ( farMuon.pt() < farMuonMinPt_ ) continue;
690  if ( drNear > nearMuonDr_) continue;
691 
692  float mumuGammaMass = mumuGammaInvMass(*iMu,*iMu2,*iPho) ;
693  if ( mumuGammaMass < minMumuGammaInvMass_ || mumuGammaMass > maxMumuGammaInvMass_ ) continue;
694 
695  //counter: number of photons
696  nPho++;
697 
698  //PHOTON RELATED HISTOGRAMS
699  h1_mumuGammaInvMass_ ->Fill (mumuGammaMass);
700 
701  //ENERGY
702  h_phoE_ ->Fill ((*iPho).energy());
703  h_phoEt_ ->Fill ((*iPho).et());
704 
705  //GEOMETRICAL
706  h_phoEta_ ->Fill ((*iPho).eta());
707  h_phoPhi_ ->Fill ((*iPho).phi());
708 
709  h_scEta_ ->Fill ((*iPho).superCluster()->eta());
710  h_scPhi_ ->Fill ((*iPho).superCluster()->phi());
711 
712  //SHOWER SHAPE
713  h_r9_ ->Fill ((*iPho).r9());
714 
715  h_phoSigmaIetaIeta_ ->Fill((*iPho).sigmaIetaIeta());
716 
717  //TRACK ISOLATION
718 
719  h_nTrackIsolSolid_ ->Fill((*iPho).nTrkSolidConeDR04());
720 
721  h_nTrackIsolHollow_ ->Fill((*iPho).nTrkHollowConeDR04());
722 
723  h_trackPtSumSolid_ ->Fill((*iPho).trkSumPtSolidConeDR04());
724 
725  h_trackPtSumHollow_ ->Fill((*iPho).trkSumPtSolidConeDR04());
726 
727  //CALORIMETER ISOLATION
728 
729  h_ecalSum_ ->Fill((*iPho).ecalRecHitSumEtConeDR04());
730 
731  h_hcalSum_ ->Fill((*iPho).hcalTowerSumEtConeDR04());
732 
733  h_hOverE_ ->Fill((*iPho).hadTowOverEm());
734  h_h1OverE_ ->Fill((*iPho).hadTowDepth1OverEm());
735  h_h2OverE_ ->Fill((*iPho).hadTowDepth2OverEm());
736 
737 
739 
740  if(use2DHistos_){
741 
742  //SHOWER SHAPE
743  h_r9VsEt_ ->Fill ((*iPho).et(),(*iPho).r9());
744  p_r9VsEt_ ->Fill ((*iPho).et(),(*iPho).r9());
745  h_r9VsEta_->Fill ((*iPho).eta(),(*iPho).r9());
746  p_r9VsEta_->Fill ((*iPho).eta(),(*iPho).r9());
747 
748  h_e1x5VsEta_->Fill((*iPho).eta(),(*iPho).e1x5());
749  p_e1x5VsEta_->Fill((*iPho).eta(),(*iPho).e1x5());
750  h_e1x5VsEt_ ->Fill((*iPho).et(), (*iPho).e1x5());
751  p_e1x5VsEt_ ->Fill((*iPho).et(), (*iPho).e1x5());
752 
753  h_e2x5VsEta_->Fill((*iPho).eta(),(*iPho).e2x5());
754  p_e2x5VsEta_->Fill((*iPho).eta(),(*iPho).e2x5());
755  h_e2x5VsEt_ ->Fill((*iPho).et(), (*iPho).e2x5());
756  p_e2x5VsEt_ ->Fill((*iPho).et(), (*iPho).e2x5());
757 
758  h_r1x5VsEta_->Fill((*iPho).eta(),(*iPho).r1x5());
759  p_r1x5VsEta_->Fill((*iPho).eta(),(*iPho).r1x5());
760  h_r1x5VsEt_ ->Fill((*iPho).et(), (*iPho).r1x5());
761  p_r1x5VsEt_ ->Fill((*iPho).et(), (*iPho).r1x5());
762 
763  h_r2x5VsEta_->Fill((*iPho).eta(),(*iPho).r2x5());
764  p_r2x5VsEta_->Fill((*iPho).eta(),(*iPho).r2x5());
765  h_r2x5VsEt_ ->Fill((*iPho).et(), (*iPho).r2x5());
766  p_r2x5VsEt_ ->Fill((*iPho).et(), (*iPho).r2x5());
767 
768  h_maxEXtalOver3x3VsEta_->Fill((*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3());
769  p_maxEXtalOver3x3VsEta_->Fill((*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3());
770  h_maxEXtalOver3x3VsEt_ ->Fill((*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3());
771  p_maxEXtalOver3x3VsEt_ ->Fill((*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3());
772 
773  h_sigmaIetaIetaVsEta_ ->Fill((*iPho).eta(),(*iPho).sigmaIetaIeta());
774  p_sigmaIetaIetaVsEta_ ->Fill((*iPho).eta(),(*iPho).sigmaIetaIeta());
775 
776  //TRACK ISOLATION
777  h_nTrackIsolSolidVsEt_ ->Fill((*iPho).et(), (*iPho).nTrkSolidConeDR04());
778  p_nTrackIsolSolidVsEt_ ->Fill((*iPho).et(), (*iPho).nTrkSolidConeDR04());
779  h_nTrackIsolSolidVsEta_ ->Fill((*iPho).eta(),(*iPho).nTrkSolidConeDR04());
780  p_nTrackIsolSolidVsEta_ ->Fill((*iPho).eta(),(*iPho).nTrkSolidConeDR04());
781 
782  h_nTrackIsolHollowVsEt_ ->Fill((*iPho).et(), (*iPho).nTrkHollowConeDR04());
783  p_nTrackIsolHollowVsEt_ ->Fill((*iPho).et(), (*iPho).nTrkHollowConeDR04());
784  h_nTrackIsolHollowVsEta_ ->Fill((*iPho).eta(),(*iPho).nTrkHollowConeDR04());
785  p_nTrackIsolHollowVsEta_ ->Fill((*iPho).eta(),(*iPho).nTrkHollowConeDR04());
786 
787  h_trackPtSumSolidVsEt_ ->Fill((*iPho).et(), (*iPho).trkSumPtSolidConeDR04());
788  p_trackPtSumSolidVsEt_ ->Fill((*iPho).et(), (*iPho).trkSumPtSolidConeDR04());
789  h_trackPtSumSolidVsEta_ ->Fill((*iPho).eta(),(*iPho).trkSumPtSolidConeDR04());
790  p_trackPtSumSolidVsEta_ ->Fill((*iPho).eta(),(*iPho).trkSumPtSolidConeDR04());
791 
792  h_trackPtSumHollowVsEt_ ->Fill((*iPho).et(), (*iPho).trkSumPtHollowConeDR04());
793  p_trackPtSumHollowVsEt_ ->Fill((*iPho).et(), (*iPho).trkSumPtHollowConeDR04());
794  h_trackPtSumHollowVsEta_ ->Fill((*iPho).eta(),(*iPho).trkSumPtHollowConeDR04());
795  p_trackPtSumHollowVsEta_ ->Fill((*iPho).eta(),(*iPho).trkSumPtHollowConeDR04());
796 
797  //CALORIMETER ISOLATION
798  h_ecalSumVsEt_ ->Fill((*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04());
799  p_ecalSumVsEt_ ->Fill((*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04());
800  h_ecalSumVsEta_ ->Fill((*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04());
801  p_ecalSumVsEta_ ->Fill((*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04());
802 
803  h_hcalSumVsEt_ ->Fill((*iPho).et(), (*iPho).hcalTowerSumEtConeDR04());
804  p_hcalSumVsEt_ ->Fill((*iPho).et(), (*iPho).hcalTowerSumEtConeDR04());
805  h_hcalSumVsEta_ ->Fill((*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04());
806  p_hcalSumVsEta_ ->Fill((*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04());
807 
808  p_hOverEVsEt_ ->Fill((*iPho).et(), (*iPho).hadTowOverEm());
809  p_hOverEVsEta_ ->Fill((*iPho).eta(),(*iPho).hadTowOverEm());
810 
811  }
812 
813 
815 
816  if(iPho->isEB() && splitHistosEBEE_){
817  //EB photon counter
818  nPhoBarrel++;
819 
820  //EB ENERGY
821  h_phoEBarrel_ ->Fill ((*iPho).energy());
822  h_phoEtBarrel_ ->Fill ((*iPho).et());
823 
824  //EB GEOMETRICAL
825  h_phoEtaBarrel_ ->Fill ((*iPho).eta());
826  h_phoPhiBarrel_ ->Fill ((*iPho).phi());
827 
828  h_scEtaBarrel_ ->Fill ((*iPho).superCluster()->eta());
829  h_scPhiBarrel_ ->Fill ((*iPho).superCluster()->phi());
830 
831  //EB SHOWER SHAPE
832  h_r9Barrel_ ->Fill ((*iPho).r9());
833  h_r9VsEtBarrel_ ->Fill ((*iPho).et(),(*iPho).r9());
834  p_r9VsEtBarrel_ ->Fill ((*iPho).et(),(*iPho).r9());
835  h_r9VsEtaBarrel_ ->Fill ((*iPho).eta(),(*iPho).r9());
836  p_r9VsEtaBarrel_ ->Fill ((*iPho).eta(),(*iPho).r9());
837 
838  h_e1x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).e1x5());
839  p_e1x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).e1x5());
840  h_e1x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).e1x5());
841  p_e1x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).e1x5());
842 
843  h_e2x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).e2x5());
844  p_e2x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).e2x5());
845  h_e2x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).e2x5());
846  p_e2x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).e2x5());
847 
848  h_r1x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).r1x5());
849  p_r1x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).r1x5());
850  h_r1x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).r1x5());
851  p_r1x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).r1x5());
852 
853  h_r2x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).r2x5());
854  p_r2x5VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).r2x5());
855  h_r2x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).r2x5());
856  p_r2x5VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).r2x5());
857 
858  h_maxEXtalOver3x3VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3());
859  p_maxEXtalOver3x3VsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3());
860  h_maxEXtalOver3x3VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3());
861  p_maxEXtalOver3x3VsEtBarrel_ ->Fill((*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3());
862 
863  h_phoSigmaIetaIetaBarrel_ ->Fill((*iPho).sigmaIetaIeta());
864  h_sigmaIetaIetaVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).sigmaIetaIeta());
865  p_sigmaIetaIetaVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).sigmaIetaIeta());
866 
867  //EB TRACK ISOLATION
868 
869  h_nTrackIsolSolidBarrel_ ->Fill((*iPho).nTrkSolidConeDR04());
870  h_nTrackIsolSolidVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).nTrkSolidConeDR04());
871  p_nTrackIsolSolidVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).nTrkSolidConeDR04());
872  h_nTrackIsolSolidVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).nTrkSolidConeDR04());
873  p_nTrackIsolSolidVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).nTrkSolidConeDR04());
874 
875  h_nTrackIsolHollowBarrel_ ->Fill((*iPho).nTrkHollowConeDR04());
876  h_nTrackIsolHollowVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).nTrkHollowConeDR04());
877  p_nTrackIsolHollowVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).nTrkHollowConeDR04());
878  h_nTrackIsolHollowVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).nTrkHollowConeDR04());
879  p_nTrackIsolHollowVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).nTrkHollowConeDR04());
880 
881  h_trackPtSumSolidBarrel_ ->Fill((*iPho).trkSumPtSolidConeDR04());
882  h_trackPtSumSolidVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).trkSumPtSolidConeDR04());
883  p_trackPtSumSolidVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).trkSumPtSolidConeDR04());
884  h_trackPtSumSolidVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).trkSumPtSolidConeDR04());
885  p_trackPtSumSolidVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).trkSumPtSolidConeDR04());
886 
887  h_trackPtSumHollowBarrel_ ->Fill((*iPho).trkSumPtSolidConeDR04());
888  h_trackPtSumHollowVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).trkSumPtHollowConeDR04());
889  p_trackPtSumHollowVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).trkSumPtHollowConeDR04());
890  h_trackPtSumHollowVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).trkSumPtHollowConeDR04());
891  p_trackPtSumHollowVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).trkSumPtHollowConeDR04());
892 
893  //EB CALORIMETER ISOLATION
894 
895  h_ecalSumBarrel_ ->Fill((*iPho).ecalRecHitSumEtConeDR04());
896  h_ecalSumVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04());
897  p_ecalSumVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04());
898  h_ecalSumVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04());
899  p_ecalSumVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04());
900 
901  h_hcalSumBarrel_ ->Fill((*iPho).hcalTowerSumEtConeDR04());
902  h_hcalSumVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).hcalTowerSumEtConeDR04());
903  p_hcalSumVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).hcalTowerSumEtConeDR04());
904  h_hcalSumVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04());
905  p_hcalSumVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04());
906 
907  h_hOverEBarrel_ ->Fill((*iPho).hadTowOverEm());
908  p_hOverEVsEtBarrel_ ->Fill((*iPho).et(), (*iPho).hadTowOverEm());
909  p_hOverEVsEtaBarrel_ ->Fill((*iPho).eta(),(*iPho).hadTowOverEm());
910  h_h1OverEBarrel_ ->Fill((*iPho).hadTowDepth1OverEm());
911  h_h2OverEBarrel_ ->Fill((*iPho).hadTowDepth2OverEm());
912 
913  }
914 
916 
917  if(iPho->isEE() && splitHistosEBEE_){
918  //EE photon counter
919  nPhoEndcap++;
920 
921  //EE ENERGY
922  h_phoEEndcap_ ->Fill ((*iPho).energy());
923  h_phoEtEndcap_ ->Fill ((*iPho).et());
924 
925  //EE GEOMETRICAL
926  h_phoEtaEndcap_ ->Fill ((*iPho).eta());
927  h_phoPhiEndcap_ ->Fill ((*iPho).phi());
928 
929  h_scEtaEndcap_ ->Fill ((*iPho).superCluster()->eta());
930  h_scPhiEndcap_ ->Fill ((*iPho).superCluster()->phi());
931 
932  //EE SHOWER SHAPE
933  h_r9Endcap_ ->Fill ((*iPho).r9());
934  h_r9VsEtEndcap_ ->Fill ((*iPho).et(),(*iPho).r9());
935  p_r9VsEtEndcap_ ->Fill ((*iPho).et(),(*iPho).r9());
936  h_r9VsEtaEndcap_ ->Fill ((*iPho).eta(),(*iPho).r9());
937  p_r9VsEtaEndcap_ ->Fill ((*iPho).eta(),(*iPho).r9());
938 
939  h_e1x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).e1x5());
940  p_e1x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).e1x5());
941  h_e1x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).e1x5());
942  p_e1x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).e1x5());
943 
944  h_e2x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).e2x5());
945  p_e2x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).e2x5());
946  h_e2x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).e2x5());
947  p_e2x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).e2x5());
948 
949  h_r1x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).r1x5());
950  p_r1x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).r1x5());
951  h_r1x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).r1x5());
952  p_r1x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).r1x5());
953 
954  h_r2x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).r2x5());
955  p_r2x5VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).r2x5());
956  h_r2x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).r2x5());
957  p_r2x5VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).r2x5());
958 
959  h_maxEXtalOver3x3VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3());
960  p_maxEXtalOver3x3VsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).maxEnergyXtal()/(*iPho).e3x3());
961  h_maxEXtalOver3x3VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3());
962  p_maxEXtalOver3x3VsEtEndcap_ ->Fill((*iPho).et(), (*iPho).maxEnergyXtal()/(*iPho).e3x3());
963 
964  h_phoSigmaIetaIetaEndcap_ ->Fill((*iPho).sigmaIetaIeta());
965  h_sigmaIetaIetaVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).sigmaIetaIeta());
966  p_sigmaIetaIetaVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).sigmaIetaIeta());
967 
968  //EE TRACK ISOLATION
969 
970  h_nTrackIsolSolidEndcap_ ->Fill((*iPho).nTrkSolidConeDR04());
971  h_nTrackIsolSolidVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).nTrkSolidConeDR04());
972  p_nTrackIsolSolidVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).nTrkSolidConeDR04());
973  h_nTrackIsolSolidVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).nTrkSolidConeDR04());
974  p_nTrackIsolSolidVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).nTrkSolidConeDR04());
975 
976  h_nTrackIsolHollowEndcap_ ->Fill((*iPho).nTrkHollowConeDR04());
977  h_nTrackIsolHollowVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).nTrkHollowConeDR04());
978  p_nTrackIsolHollowVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).nTrkHollowConeDR04());
979  h_nTrackIsolHollowVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).nTrkHollowConeDR04());
980  p_nTrackIsolHollowVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).nTrkHollowConeDR04());
981 
982  h_trackPtSumSolidEndcap_ ->Fill((*iPho).trkSumPtSolidConeDR04());
983  h_trackPtSumSolidVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).trkSumPtSolidConeDR04());
984  p_trackPtSumSolidVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).trkSumPtSolidConeDR04());
985  h_trackPtSumSolidVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).trkSumPtSolidConeDR04());
986  p_trackPtSumSolidVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).trkSumPtSolidConeDR04());
987 
988  h_trackPtSumHollowEndcap_ ->Fill((*iPho).trkSumPtSolidConeDR04());
989  h_trackPtSumHollowVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).trkSumPtHollowConeDR04());
990  p_trackPtSumHollowVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).trkSumPtHollowConeDR04());
991  h_trackPtSumHollowVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).trkSumPtHollowConeDR04());
992  p_trackPtSumHollowVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).trkSumPtHollowConeDR04());
993 
994  //EE CALORIMETER ISOLATION
995 
996  h_ecalSumEndcap_ ->Fill((*iPho).ecalRecHitSumEtConeDR04());
997  h_ecalSumVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04());
998  p_ecalSumVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).ecalRecHitSumEtConeDR04());
999  h_ecalSumVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04());
1000  p_ecalSumVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).ecalRecHitSumEtConeDR04());
1001 
1002  h_hcalSumEndcap_ ->Fill((*iPho).hcalTowerSumEtConeDR04());
1003  h_hcalSumVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).hcalTowerSumEtConeDR04());
1004  p_hcalSumVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).hcalTowerSumEtConeDR04());
1005  h_hcalSumVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04());
1006  p_hcalSumVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).hcalTowerSumEtConeDR04());
1007 
1008  h_hOverEEndcap_ ->Fill((*iPho).hadTowOverEm());
1009  p_hOverEVsEtEndcap_ ->Fill((*iPho).et(), (*iPho).hadTowOverEm());
1010  p_hOverEVsEtaEndcap_ ->Fill((*iPho).eta(),(*iPho).hadTowOverEm());
1011  h_h1OverEEndcap_ ->Fill((*iPho).hadTowDepth1OverEm());
1012  h_h2OverEEndcap_ ->Fill((*iPho).hadTowDepth2OverEm());
1013 
1014  }
1015 
1016 
1017  } //end photon loop
1018 
1019  h_nPho_ ->Fill (float(nPho));
1020 
1021  if(splitHistosEBEE_){
1022  h_nPhoBarrel_ ->Fill (float(nPhoBarrel));
1023  h_nPhoEndcap_ ->Fill (float(nPhoEndcap));
1024  }
1025  } //end inner muon loop
1026 
1027  } //end outer muon loop
1028 
1029 }//End of Analyze method
1030 
1032 {
1033  if(!standAlone_){dbe_->setCurrentFolder("Egamma/PhotonAnalyzer/ZToMuMuGamma");}
1034 }
1035 
1037 {
1038  //dbe_->showDirStructure();
1039  if(standAlone_){
1040  dbe_->setCurrentFolder("Egamma/PhotonAnalyzer/ZToMuMuGamma");
1041  dbe_->save(outputFileName_);
1042  }
1043 }
1044 
1046  bool result=true;
1047  if (!mu.innerTrack().isNonnull()) result=false;
1048  if (!mu.globalTrack().isNonnull()) result=false;
1049  if ( !mu.isGlobalMuon() ) result=false;
1050  if ( mu.pt() < muonMinPt_ ) result=false;
1051  if ( fabs(mu.eta())>2.4 ) result=false;
1052 
1053  int pixHits=0;
1054  int tkHits=0;
1055  if ( mu.innerTrack().isNonnull() ) {
1056  pixHits=mu.innerTrack()->hitPattern().numberOfValidPixelHits();
1057  tkHits=mu.innerTrack()->hitPattern().numberOfValidStripHits();
1058  }
1059 
1060  if ( pixHits+tkHits < minPixStripHits_ ) result=false;
1061 
1062  return result;
1063 }
1064 
1066  bool result=true;
1067  if ( mu.globalTrack()->normalizedChi2() > muonMaxChi2_ ) result=false;
1068  if ( fabs( mu.globalTrack()->dxy(beamSpot)) > muonMaxDxy_ ) result=false;
1069  if ( mu.numberOfMatches() < muonMatches_ ) result=false;
1070 
1071  if ( mu.track()-> hitPattern().numberOfValidPixelHits() < validPixHits_ ) result=false;
1072  if ( mu.globalTrack()->hitPattern().numberOfValidMuonHits() < validMuonHits_ ) result=false;
1073  if ( !mu.isTrackerMuon() ) result=false;
1074  // track isolation
1075  if ( mu.isolationR03().sumPt > muonTrackIso_ ) result=false;
1076  if ( fabs(mu.eta())> muonTightEta_ ) result=false;
1077 
1078  return result;
1079 }
1080 
1082  bool result=true;
1083  if ( pho.pt() < photonMinEt_ ) result=false;
1084  if ( fabs(pho.eta())> photonMaxEta_ ) result=false;
1085  if ( pho.isEBEEGap() ) result=false;
1086  // if ( pho.trkSumPtHollowConeDR04() > photonTrackIso_ ) result=false; // check how to exclude the muon track (which muon track).
1087 
1088  return result;
1089 }
1090 
1092  {
1093  math::XYZTLorentzVector p12 = mu1.p4()+mu2.p4() ;
1094  float mumuMass2 = p12.Dot(p12) ;
1095  float invMass = sqrt(mumuMass2) ;
1096  return invMass ;
1097  }
1098 
1100  {
1101  math::XYZTLorentzVector p12 = mu1.p4()+mu2.p4()+pho.p4() ;
1102  float Mass2 = p12.Dot(p12) ;
1103  float invMass = sqrt(Mass2) ;
1104  return invMass ;
1105  }
1106 
float hadEt
hcal sum-Et
Definition: MuonIsolation.h:9
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
float sumPt
sum-pt of tracks
Definition: MuonIsolation.h:7
bool muonSelection(const reco::Muon &m, const reco::BeamSpot &bs)
The single EDProduct to be saved for each event (AOD case)
Definition: TriggerEvent.h:25
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
virtual const LorentzVector & p4() const GCC11_FINAL
four-momentum Lorentz vector
Definition: deltaR.h:79
virtual TrackRef innerTrack() const
Definition: Muon.h:48
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
bool isTrackerMuon() const
Definition: Muon.h:219
bool isEBEEGap() const
true if photon is in boundary between EB and EE
Definition: Photon.h:132
virtual TrackRef track() const
reference to a Track
Definition: Muon.h:49
bool isGlobalMuon() const
Definition: Muon.h:218
std::vector< Muon > MuonCollection
collection of Muon objects
Definition: MuonFwd.h:9
virtual void analyze(const edm::Event &, const edm::EventSetup &)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:250
const LorentzVector & p4(P4type type) const
Definition: Photon.cc:196
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T sqrt(T t)
Definition: SSEVec.h:48
float emEt
ecal sum-Et
Definition: MuonIsolation.h:8
tuple result
Definition: query.py:137
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2296
float mumuInvMass(const reco::Muon &m1, const reco::Muon &m2)
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1186
const int mu
Definition: Constants.h:22
ZToMuMuGammaAnalyzer(const edm::ParameterSet &)
DQMStore * dbe_
int numberOfMatches(ArbitrationType type=SegmentAndTrackArbitration) const
get number of chambers with matched segments
Definition: Muon.cc:60
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
bool photonSelection(const reco::Photon &p)
std::vector< size_type > Keys
std::vector< Photon > PhotonCollection
collectin of Photon objects
Definition: PhotonFwd.h:9
edm::EventID id() const
Definition: EventBase.h:56
bool basicMuonSelection(const reco::Muon &m)
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:1000
virtual float pt() const GCC11_FINAL
transverse momentum
virtual void endRun(const edm::Run &, const edm::EventSetup &)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
float mumuGammaInvMass(const reco::Muon &mu1, const reco::Muon &mu2, const reco::Photon &pho)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
const MuonIsolation & isolationR03() const
Definition: Muon.h:158
Definition: Run.h:41
virtual TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector
Definition: Muon.h:54