35 #include "CLHEP/Units/GlobalPhysicalConstants.h" 111 photonCollectionPr_Token_ = consumes<reco::PhotonCollection> (
117 conversionCollectionPr_Token_ = consumes<reco::ConversionCollection> (
119 conversionCollection_));
123 minPhoEtCut_ = pset.
getParameter<
double>(
"minPhoEtCut");
124 generalTracksOnly_ = pset.
getParameter<
bool>(
"generalTracksOnly");
125 arbitratedMerged_ = pset.
getParameter<
bool>(
"arbitratedMerged");
126 arbitratedEcalSeeded_ = pset.
getParameter<
bool>(
"arbitratedEcalSeeded");
127 ecalalgotracks_ = pset.
getParameter<
bool>(
"ecalalgotracks");
132 isRunCentrally_= pset.
getParameter<
bool>(
"isRunCentrally");
134 offline_pvToken_ = consumes<reco::VertexCollection>(
137 beamspotToken_ = consumes<reco::BeamSpot>(
143 tpSelForEff_Token_ = consumes<TrackingParticleRefVector> (
145 tpSelForFake_Token_ = consumes<TrackingParticleRefVector> (
151 trackAssociator_Token_ = consumes<reco::TrackToTrackingParticleAssociator>(
edm::InputTag(
"trackAssociatorByHitsForConversionValidation"));
167 nRecConvAssWithEcal_=0;
175 double etMin = parameters_.getParameter<
double>(
"etMin");
176 double etMax = parameters_.getParameter<
double>(
"etMax");
177 int etBin = parameters_.getParameter<
int>(
"etBin");
180 double resMin = parameters_.getParameter<
double>(
"resMin");
181 double resMax = parameters_.getParameter<
double>(
"resMax");
182 int resBin = parameters_.getParameter<
int>(
"resBin");
184 double etaMin = parameters_.getParameter<
double>(
"etaMin");
185 double etaMax = parameters_.getParameter<
double>(
"etaMax");
186 int etaBin = parameters_.getParameter<
int>(
"etaBin");
187 int etaBin2 = parameters_.getParameter<
int>(
"etaBin2");
190 double phiMin = parameters_.getParameter<
double>(
"phiMin");
191 double phiMax = parameters_.getParameter<
double>(
"phiMax");
192 int phiBin = parameters_.getParameter<
int>(
"phiBin");
195 double rMin = parameters_.getParameter<
double>(
"rMin");
196 double rMax = parameters_.getParameter<
double>(
"rMax");
197 int rBin = parameters_.getParameter<
int>(
"rBin");
199 double zMin = parameters_.getParameter<
double>(
"zMin");
200 double zMax = parameters_.getParameter<
double>(
"zMax");
201 int zBin = parameters_.getParameter<
int>(
"zBin");
203 double dPhiTracksMin = parameters_.getParameter<
double>(
"dPhiTracksMin");
204 double dPhiTracksMax = parameters_.getParameter<
double>(
"dPhiTracksMax");
205 int dPhiTracksBin = parameters_.getParameter<
int>(
"dPhiTracksBin");
207 double eoverpMin = parameters_.getParameter<
double>(
"eoverpMin");
208 double eoverpMax = parameters_.getParameter<
double>(
"eoverpMax");
209 int eoverpBin = parameters_.getParameter<
int>(
"eoverpBin");
216 double dCotTracksMin = parameters_.getParameter<
double>(
"dCotTracksMin");
217 double dCotTracksMax = parameters_.getParameter<
double>(
"dCotTracksMax");
218 int dCotTracksBin = parameters_.getParameter<
int>(
"dCotTracksBin");
221 double chi2Min = parameters_.getParameter<
double>(
"chi2Min");
222 double chi2Max = parameters_.getParameter<
double>(
"chi2Max");
225 double rMinForXray = parameters_.getParameter<
double>(
"rMinForXray");
226 double rMaxForXray = parameters_.getParameter<
double>(
"rMaxForXray");
227 int rBinForXray = parameters_.getParameter<
int>(
"rBinForXray");
228 double zMinForXray = parameters_.getParameter<
double>(
"zMinForXray");
229 double zMaxForXray = parameters_.getParameter<
double>(
"zMaxForXray");
230 int zBinForXray = parameters_.getParameter<
int>(
"zBinForXray");
231 int zBin2ForXray = parameters_.getParameter<
int>(
"zBin2ForXray");
255 h_nSimConv_[0] = iBooker.
book1D(histname,
"# of Sim conversions per event ",20,-0.5,19.5);
257 histname =
"h_AllSimConvEta";
258 h_AllSimConv_[0] = iBooker.
book1D(histname,
" All conversions: simulated #eta",etaBin2,etaMin,etaMax);
259 histname =
"h_AllSimConvPhi";
260 h_AllSimConv_[1] = iBooker.
book1D(histname,
" All conversions: simulated #phi",phiBin,phiMin,phiMax);
261 histname =
"h_AllSimConvR";
262 h_AllSimConv_[2] = iBooker.
book1D(histname,
" All conversions: simulated R",rBin,rMin,rMax);
263 histname =
"h_AllSimConvZ";
264 h_AllSimConv_[3] = iBooker.
book1D(histname,
" All conversions: simulated Z",zBin,zMin,zMax);
265 histname =
"h_AllSimConvEt";
266 h_AllSimConv_[4] = iBooker.
book1D(histname,
" All conversions: simulated Et",etBin,etMin,etMax);
268 histname =
"nOfVisSimConversions";
269 h_nSimConv_[1] = iBooker.
book1D(histname,
"# of Sim conversions per event ",20,-0.5,19.5);
270 histname =
"h_VisSimConvEta";
271 h_VisSimConv_[0] = iBooker.
book1D(histname,
" All vis conversions: simulated #eta",etaBin2,etaMin, etaMax);
272 histname =
"h_VisSimConvPhi";
273 h_VisSimConv_[1] = iBooker.
book1D(histname,
" All vis conversions: simulated #phi",phiBin,phiMin, phiMax);
274 histname =
"h_VisSimConvR";
275 h_VisSimConv_[2] = iBooker.
book1D(histname,
" All vis conversions: simulated R",rBin,rMin,rMax);
276 histname =
"h_VisSimConvZ";
277 h_VisSimConv_[3] = iBooker.
book1D(histname,
" All vis conversions: simulated Z",zBin,zMin, zMax);
278 histname =
"h_VisSimConvEt";
279 h_VisSimConv_[4] = iBooker.
book1D(histname,
" All vis conversions: simulated Et",etBin,etMin, etMax);
282 histname =
"h_SimConvTwoMTracksEta";
283 h_SimConvTwoMTracks_[0] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated #eta",etaBin2,etaMin, etaMax);
284 histname =
"h_SimConvTwoMTracksPhi";
285 h_SimConvTwoMTracks_[1] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated #phi",phiBin,phiMin, phiMax);
286 histname =
"h_SimConvTwoMTracksR";
287 h_SimConvTwoMTracks_[2] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated R",rBin,rMin, rMax);
288 histname =
"h_SimConvTwoMTracksZ";
289 h_SimConvTwoMTracks_[3] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated Z",zBin,zMin, zMax);
290 histname =
"h_SimConvTwoMTracksEt";
291 h_SimConvTwoMTracks_[4] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated Et",etBin,etMin, etMax);
293 histname =
"h_SimConvTwoTracksEta";
294 h_SimConvTwoTracks_[0] = iBooker.
book1D(histname,
" All vis conversions with 2 reco tracks: simulated #eta",etaBin2,etaMin, etaMax);
295 histname =
"h_SimConvTwoTracksPhi";
296 h_SimConvTwoTracks_[1] = iBooker.
book1D(histname,
" All vis conversions with 2 reco tracks: simulated #phi",phiBin,phiMin, phiMax);
297 histname =
"h_SimConvTwoTracksR";
298 h_SimConvTwoTracks_[2] = iBooker.
book1D(histname,
" All vis conversions with 2 reco tracks: simulated R",rBin,rMin, rMax);
299 histname =
"h_SimConvTwoTracksZ";
300 h_SimConvTwoTracks_[3] = iBooker.
book1D(histname,
" All vis conversions with 2 reco tracks: simulated Z",zBin,zMin, zMax);
301 histname =
"h_SimConvTwoTracksEt";
302 h_SimConvTwoTracks_[4] = iBooker.
book1D(histname,
" All vis conversions with 2 reco tracks: simulated Et",etBin,etMin, etMax);
304 histname =
"h_SimConvTwoMTracksEtaAndVtxPGT0";
305 h_SimConvTwoMTracksAndVtxPGT0_[0] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated #eta",etaBin2,etaMin, etaMax);
306 histname =
"h_SimConvTwoMTracksPhiAndVtxPGT0";
307 h_SimConvTwoMTracksAndVtxPGT0_[1] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated #phi",phiBin,phiMin, phiMax);
308 histname =
"h_SimConvTwoMTracksRAndVtxPGT0";
309 h_SimConvTwoMTracksAndVtxPGT0_[2] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated R",rBin,rMin, rMax);
310 histname =
"h_SimConvTwoMTracksZAndVtxPGT0";
311 h_SimConvTwoMTracksAndVtxPGT0_[3] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated Z",zBin,zMin, zMax);
312 histname =
"h_SimConvTwoMTracksEtAndVtxPGT0";
313 h_SimConvTwoMTracksAndVtxPGT0_[4] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated Et",etBin,etMin, etMax);
316 histname =
"h_SimConvTwoMTracksEtaAndVtxPGT0005";
317 h_SimConvTwoMTracksAndVtxPGT0005_[0] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated #eta",etaBin2,etaMin, etaMax);
318 histname =
"h_SimConvTwoMTracksPhiAndVtxPGT0005";
319 h_SimConvTwoMTracksAndVtxPGT0005_[1] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated #phi",phiBin,phiMin, phiMax);
320 histname =
"h_SimConvTwoMTracksRAndVtxPGT0005";
321 h_SimConvTwoMTracksAndVtxPGT0005_[2] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated R",rBin,rMin, rMax);
322 histname =
"h_SimConvTwoMTracksZAndVtxPGT0005";
323 h_SimConvTwoMTracksAndVtxPGT0005_[3] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated Z",zBin,zMin, zMax);
324 histname =
"h_SimConvTwoMTracksEtAndVtxPGT0005";
325 h_SimConvTwoMTracksAndVtxPGT0005_[4] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks + vertex: simulated Et",etBin,etMin, etMax);
327 histname =
"h_SimRecConvTwoMTracksEta";
328 h_SimRecConvTwoMTracks_[0] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated #eta",etaBin2,etaMin, etaMax);
329 histname =
"h_SimRecConvTwoMTracksPhi";
330 h_SimRecConvTwoMTracks_[1] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated #phi",phiBin,phiMin, phiMax);
331 histname =
"h_SimRecConvTwoMTracksR";
332 h_SimRecConvTwoMTracks_[2] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated R",rBin,rMin, rMax);
333 histname =
"h_SimRecConvTwoMTracksZ";
334 h_SimRecConvTwoMTracks_[3] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated Z",zBin,zMin, zMax);
335 histname =
"h_SimRecConvTwoMTracksEt";
336 h_SimRecConvTwoMTracks_[4] = iBooker.
book1D(histname,
" All vis conversions with 2 reco-matching tracks: simulated Et",etBin,etMin, etMax);
340 h_SimConvEtaPix_[0] = iBooker.
book1D(
"simConvEtaPix",
" sim converted Photon Eta: Pix ",etaBin,etaMin, etaMax) ;
341 h_simTkPt_ = iBooker.
book1D(
"simTkPt",
"Sim conversion tracks pt ",etBin*3,0.,etMax);
342 h_simTkEta_ = iBooker.
book1D(
"simTkEta",
"Sim conversion tracks eta ",etaBin,etaMin,etaMax);
344 h_simConvVtxRvsZ_[0] = iBooker.
book2D(
"simConvVtxRvsZAll",
" Photon Sim conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
345 h_simConvVtxRvsZ_[1] = iBooker.
book2D(
"simConvVtxRvsZBarrel",
" Photon Sim conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
346 h_simConvVtxRvsZ_[2] = iBooker.
book2D(
"simConvVtxRvsZEndcap",
" Photon Sim conversion vtx position",zBin2ForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
347 h_simConvVtxRvsZ_[3] = iBooker.
book2D(
"simConvVtxRvsZBarrel2",
" Photon Sim conversion vtx position when reco R<4cm",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
348 h_simConvVtxYvsX_ = iBooker.
book2D(
"simConvVtxYvsXTrkBarrel",
" Photon Sim conversion vtx position, (x,y) eta<1 ",100, -80., 80., 100, -80., 80.);
350 std::string convpath = dqmpath_ +
"ConversionInfo";
354 h_nConv_[0][0] = iBooker.
book1D(histname+
"All",
"Number Of Conversions per isolated candidates per events: All Ecal ",10,-0.5, 9.5);
355 h_nConv_[0][1] = iBooker.
book1D(histname+
"Barrel",
"Number Of Conversions per isolated candidates per events: Ecal Barrel ",10,-0.5, 9.5);
356 h_nConv_[0][2] = iBooker.
book1D(histname+
"Endcap",
"Number Of Conversions per isolated candidates per events: Ecal Endcap ",10,-0.5, 9.5);
357 h_nConv_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"Number Of associated Conversions per isolated candidates per events: All Ecal ",10,-0.5, 9.5);
359 h_convEta_[0][0] = iBooker.
book1D(
"convEta",
" converted Photon Eta ",etaBin,etaMin, etaMax) ;
360 h_convEtaMatchSC_[0][0] = iBooker.
book1D(
"convEtaMatchSC",
" converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ;
361 h_convEta2_[0][0] = iBooker.
book1D(
"convEta2",
" converted Photon Eta ",etaBin2,etaMin, etaMax) ;
362 h_convPhi_[0][0] = iBooker.
book1D(
"convPhi",
" converted Photon Phi ",phiBin,phiMin,phiMax) ;
363 h_convR_[0][0] = iBooker.
book1D(
"convR",
" converted photon R",rBin,rMin, rMax);
364 h_convZ_[0][0] = iBooker.
book1D(
"convZ",
" converted photon Z",zBin,zMin, zMax);
365 h_convPt_[0][0] = iBooker.
book1D(
"convPt",
" conversions Transverse Energy: all eta ", etBin,etMin, etMax);
367 h_convEta_[1][0] = iBooker.
book1D(
"convEtaAss2",
" Matched converted Photon Eta ",etaBin2,etaMin, etaMax) ;
368 h_convEta_[1][1] = iBooker.
book1D(
"convEtaAss",
" Matched converted Photon Eta ",etaBin,etaMin, etaMax) ;
369 h_convEtaMatchSC_[1][0] = iBooker.
book1D(
"convEtaMatchSCAss",
" converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ;
370 h_convPhi_[1][0] = iBooker.
book1D(
"convPhiAss",
" Matched converted Photon Phi ",phiBin,phiMin,phiMax) ;
371 h_convR_[1][0] = iBooker.
book1D(
"convRAss",
" Matched converted photon R",rBin,rMin, rMax);
372 h_convZ_[1][0] = iBooker.
book1D(
"convZAss",
" Matched converted photon Z",zBin,zMin, zMax);
373 h_convPt_[1][0] = iBooker.
book1D(
"convPtAss",
"Matched conversions Transverse Energy: all eta ", etBin,etMin, etMax);
375 h_convEta_[2][0] = iBooker.
book1D(
"convEtaFake2",
" Fake converted Photon Eta ",etaBin2,etaMin, etaMax) ;
376 h_convEta_[2][1] = iBooker.
book1D(
"convEtaFake",
" Fake converted Photon Eta ",etaBin,etaMin, etaMax) ;
377 h_convEtaMatchSC_[2][0] = iBooker.
book1D(
"convEtaMatchSCFake",
" converted Photon Eta when SC is matched ",etaBin,etaMin, etaMax) ;
378 h_convPhi_[2][0] = iBooker.
book1D(
"convPhiFake",
" Fake converted Photon Phi ",phiBin,phiMin,phiMax) ;
379 h_convR_[2][0] = iBooker.
book1D(
"convRFake",
" Fake converted photon R",rBin,rMin, rMax);
380 h_convZ_[2][0] = iBooker.
book1D(
"convZFake",
" Fake converted photon Z",zBin,zMin, zMax);
381 h_convPt_[2][0] = iBooker.
book1D(
"convPtFake",
"Fake conversions Transverse Energy: all eta ", etBin,etMin, etMax);
383 h_convRplot_ = iBooker.
book1D(
"convRplot",
" converted photon R",600, 0.,120.);
384 h_convZplot_ = iBooker.
book1D(
"convZplot",
" converted photon Z",320,-160.,160.);
386 histname =
"convSCdPhi";
387 h_convSCdPhi_[0][0] = iBooker.
book1D(histname+
"All",
"dPhi between SC and conversion",100, -0.1,0.1);
388 h_convSCdPhi_[0][1] = iBooker.
book1D(histname+
"Barrel",
" dPhi between SC and conversion: Barrel",100, -0.1,0.1);
389 h_convSCdPhi_[0][2] = iBooker.
book1D(histname+
"Endcap",
" dPhi between SC and conversion: Endcap",100, -0.1,0.1);
390 h_convSCdPhi_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"dPhi between SC and conversion",100, -0.1,0.1);
391 h_convSCdPhi_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
" dPhi between SC and conversion: Barrel",100, -0.1,0.1);
392 h_convSCdPhi_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
" dPhi between SC and conversion: Endcap",100, -0.1,0.1);
393 h_convSCdPhi_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"dPhi between SC and conversion",100, -0.1,0.1);
394 h_convSCdPhi_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
" dPhi between SC and conversion: Barrel",100, -0.1,0.1);
395 h_convSCdPhi_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
" dPhi between SC and conversion: Endcap",100, -0.1,0.1);
396 histname =
"convSCdEta";
397 h_convSCdEta_[0][0] = iBooker.
book1D(histname+
"All",
" dEta between SC and conversion",100, -0.1,0.1);
398 h_convSCdEta_[0][1] = iBooker.
book1D(histname+
"Barrel",
" dEta between SC and conversion: Barrel",100, -0.1,0.1);
399 h_convSCdEta_[0][2] = iBooker.
book1D(histname+
"Endcap",
" dEta between SC and conversion: Endcap",100, -0.1,0.1);
400 h_convSCdEta_[1][0] = iBooker.
book1D(histname+
"All_Ass",
" dEta between SC and conversion",100, -0.1,0.1);
401 h_convSCdEta_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
" dEta between SC and conversion: Barrel",100, -0.1,0.1);
402 h_convSCdEta_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
" dEta between SC and conversion: Endcap",100, -0.1,0.1);
403 h_convSCdEta_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
" dEta between SC and conversion",100, -0.1,0.1);
404 h_convSCdEta_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
" dEta between SC and conversion: Barrel",100, -0.1,0.1);
405 h_convSCdEta_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
" dEta between SC and conversion: Endcap",100, -0.1,0.1);
407 histname =
"convPtRes";
408 h_convPtRes_[0] = iBooker.
book1D(histname+
"All",
" Conversion Pt rec/true : All ecal ", resBin,resMin, resMax);
409 h_convPtRes_[1] = iBooker.
book1D(histname+
"Barrel",
" Conversion Pt rec/true : Barrel ",resBin,resMin, resMax);
410 h_convPtRes_[2] = iBooker.
book1D(histname+
"Endcap",
" Conversion Pt rec/true : Endcap ",resBin,resMin, resMax);
414 h_invMass_[0][0]= iBooker.
book1D(histname+
"All_AllTracks",
" Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5);
415 h_invMass_[0][1]= iBooker.
book1D(histname+
"Barrel_AllTracks",
" Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5);
416 h_invMass_[0][2]= iBooker.
book1D(histname+
"Endcap_AllTracks",
" Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5);
418 h_invMass_[1][0]= iBooker.
book1D(histname+
"All_AssTracks",
" Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5);
419 h_invMass_[1][1]= iBooker.
book1D(histname+
"Barrel_AssTracks",
" Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5);
420 h_invMass_[1][2]= iBooker.
book1D(histname+
"Endcap_AssTracks",
" Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5);
422 h_invMass_[2][0]= iBooker.
book1D(histname+
"All_FakeTracks",
" Photons:Tracks from conversion: Pair invariant mass: all Ecal ",100, 0., 1.5);
423 h_invMass_[2][1]= iBooker.
book1D(histname+
"Barrel_FakeTracks",
" Photons:Tracks from conversion: Pair invariant mass: Barrel Ecal ",100, 0., 1.5);
424 h_invMass_[2][2]= iBooker.
book1D(histname+
"Endcap_FaleTracks",
" Photons:Tracks from conversion: Pair invariant mass: Endcap Ecal ",100, 0., 1.5);
428 histname=
"hDPhiTracksAtVtx";
429 h_DPhiTracksAtVtx_[0][0] =iBooker.
book1D(histname+
"All",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
430 h_DPhiTracksAtVtx_[0][1] =iBooker.
book1D(histname+
"Barrel",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
431 h_DPhiTracksAtVtx_[0][2] =iBooker.
book1D(histname+
"Endcap",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
432 h_DPhiTracksAtVtx_[1][0] =iBooker.
book1D(histname+
"All_Ass",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
433 h_DPhiTracksAtVtx_[1][1] =iBooker.
book1D(histname+
"Barrel_Ass",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
434 h_DPhiTracksAtVtx_[1][2] =iBooker.
book1D(histname+
"Endcap_Ass",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
435 h_DPhiTracksAtVtx_[2][0] =iBooker.
book1D(histname+
"All_Fakes",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: all Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
436 h_DPhiTracksAtVtx_[2][1] =iBooker.
book1D(histname+
"Barrel_Fakes",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: Barrel Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
437 h_DPhiTracksAtVtx_[2][2] =iBooker.
book1D(histname+
"Endcap_Fakes",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex: Endcap Ecal",dPhiTracksBin,dPhiTracksMin,dPhiTracksMax);
441 histname=
"hDPhiTracksAtVtxVsEta";
442 h2_DPhiTracksAtVtxVsEta_ = iBooker.
book2D(histname+
"All",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta",etaBin2,etaMin, etaMax,100, -0.5, 0.5);
443 histname=
"pDPhiTracksAtVtxVsEta";
444 p_DPhiTracksAtVtxVsEta_ = iBooker.
bookProfile(histname+
"All",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex vs #eta ",etaBin2,etaMin, etaMax, 100, -0.5, 0.5,
"");
446 histname=
"hDPhiTracksAtVtxVsR";
447 h2_DPhiTracksAtVtxVsR_ = iBooker.
book2D(histname+
"All",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R",rBin,rMin, rMax,100, -0.5, 0.5);
448 histname=
"pDPhiTracksAtVtxVsR";
449 p_DPhiTracksAtVtxVsR_ = iBooker.
bookProfile(histname+
"All",
" Photons:Tracks from conversions: #delta#phi Tracks at vertex vs R ",rBin,rMin, rMax,100, -0.5, 0.5,
"");
452 histname=
"hDCotTracks";
453 h_DCotTracks_[0][0]= iBooker.
book1D(histname+
"All",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
454 h_DCotTracks_[0][1]= iBooker.
book1D(histname+
"Barrel",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
455 h_DCotTracks_[0][2]= iBooker.
book1D(histname+
"Endcap",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
456 h_DCotTracks_[1][0]= iBooker.
book1D(histname+
"All_Ass",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
457 h_DCotTracks_[1][1]= iBooker.
book1D(histname+
"Barrel_Ass",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
458 h_DCotTracks_[1][2]= iBooker.
book1D(histname+
"Endcap_Ass",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
459 h_DCotTracks_[2][0]= iBooker.
book1D(histname+
"All_Fakes",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: all Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
460 h_DCotTracks_[2][1]= iBooker.
book1D(histname+
"Barrel_Fakes",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Barrel Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
461 h_DCotTracks_[2][2]= iBooker.
book1D(histname+
"Endcap_Fakes",
" Photons:Tracks from conversions #delta cotg(#Theta) Tracks: Endcap Ecal ",dCotTracksBin,dCotTracksMin,dCotTracksMax);
464 histname=
"hDCotTracksVsEta";
465 h2_DCotTracksVsEta_ = iBooker.
book2D(histname+
"All",
" Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta",etaBin2,etaMin, etaMax,100, -0.2, 0.2);
466 histname=
"pDCotTracksVsEta";
467 p_DCotTracksVsEta_ = iBooker.
bookProfile(histname+
"All",
" Photons:Tracks from conversions: #delta cotg(#Theta) Tracks vs #eta ",etaBin2,etaMin, etaMax, 100, -0.2, 0.2,
"");
469 histname=
"hDCotTracksVsR";
470 h2_DCotTracksVsR_ = iBooker.
book2D(histname+
"All",
" Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R",rBin,rMin, rMax,100, -0.2, 0.2);
471 histname=
"pDCotTracksVsR";
472 p_DCotTracksVsR_ = iBooker.
bookProfile(histname+
"All",
" Photons:Tracks from conversions: #delta cotg(#Theta) Tracks at vertex vs R ",rBin,rMin, rMax,100, -0.2, 0.2,
"");
475 histname=
"hDistMinAppTracks";
476 h_distMinAppTracks_[0][0]= iBooker.
book1D(histname+
"All",
" Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0);
477 h_distMinAppTracks_[0][1]= iBooker.
book1D(histname+
"Barrel",
" Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0);
478 h_distMinAppTracks_[0][2]= iBooker.
book1D(histname+
"Endcap",
" Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0);
479 h_distMinAppTracks_[1][0]= iBooker.
book1D(histname+
"All_Ass",
" Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0);
480 h_distMinAppTracks_[1][1]= iBooker.
book1D(histname+
"Barrel_Ass",
" Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0);
481 h_distMinAppTracks_[1][2]= iBooker.
book1D(histname+
"Endcap_Ass",
" Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0);
482 h_distMinAppTracks_[2][0]= iBooker.
book1D(histname+
"All_Fakes",
" Photons:Tracks from conversions Min Approach Dist Tracks: all Ecal ",120, -0.5, 1.0);
483 h_distMinAppTracks_[2][1]= iBooker.
book1D(histname+
"Barrel_Fakes",
" Photons:Tracks from conversions Min Approach Dist Tracks: Barrel Ecal ",120, -0.5, 1.0);
484 h_distMinAppTracks_[2][2]= iBooker.
book1D(histname+
"Endcap_Fakes",
" Photons:Tracks from conversions Min Approach Dist Tracks: Endcap Ecal ",120, -0.5, 1.0);
487 h_convVtxRvsZ_[0] = iBooker.
book2D(
"convVtxRvsZAll",
" Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
488 h_convVtxRvsZ_[1] = iBooker.
book2D(
"convVtxRvsZBarrel",
" Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
489 h_convVtxRvsZ_[2] = iBooker.
book2D(
"convVtxRvsZEndcap",
" Photon Reco conversion vtx position",zBin2ForXray, zMinForXray, zMaxForXray, rBinForXray, rMinForXray, rMaxForXray);
490 h_convVtxYvsX_ = iBooker.
book2D(
"convVtxYvsXTrkBarrel",
" Photon Reco conversion vtx position, (x,y) eta<1 ", 1000, -60., 60., 1000, -60., 60.);
492 h_convVtxRvsZ_zoom_[0] = iBooker.
book2D(
"convVtxRvsZBarrelZoom1",
" Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, -10., 40.);
493 h_convVtxRvsZ_zoom_[1] = iBooker.
book2D(
"convVtxRvsZBarrelZoom2",
" Photon Reco conversion vtx position",zBinForXray, zMinForXray, zMaxForXray, rBinForXray, -10., 20.);
494 h_convVtxYvsX_zoom_[0] = iBooker.
book2D(
"convVtxYvsXTrkBarrelZoom1",
" Photon Reco conversion vtx position, (x,y) eta<1 ",100, -40., 40., 100, -40., 40.);
495 h_convVtxYvsX_zoom_[1] = iBooker.
book2D(
"convVtxYvsXTrkBarrelZoom2",
" Photon Reco conversion vtx position, (x,y) eta<1 ",100, -20., 20., 100, -20., 20.);
497 h_convVtxdR_ = iBooker.
book1D(
"convVtxdR",
" Photon Reco conversion vtx dR",100, -10.,10.);
498 h_convVtxdX_ = iBooker.
book1D(
"convVtxdX",
" Photon Reco conversion vtx dX",100, -10.,10.);
499 h_convVtxdY_ = iBooker.
book1D(
"convVtxdY",
" Photon Reco conversion vtx dY",100, -10.,10.);
500 h_convVtxdZ_ = iBooker.
book1D(
"convVtxdZ",
" Photon Reco conversion vtx dZ",100, -20.,20.);
502 h_convVtxdPhi_ = iBooker.
book1D(
"convVtxdPhi",
" Photon Reco conversion vtx dPhi",100, -0.01,0.01);
503 h_convVtxdEta_ = iBooker.
book1D(
"convVtxdEta",
" Photon Reco conversion vtx dEta",100, -0.5,0.5);
505 h_convVtxdR_barrel_ = iBooker.
book1D(
"convVtxdR_barrel",
" Photon Reco conversion vtx dR, |eta|<=1.2",100, -10.,10.);
506 h_convVtxdX_barrel_ = iBooker.
book1D(
"convVtxdX_barrel",
" Photon Reco conversion vtx dX, |eta|<=1.2",100, -10.,10.);
507 h_convVtxdY_barrel_ = iBooker.
book1D(
"convVtxdY_barrel",
" Photon Reco conversion vtx dY, |eta|<=1.2 ",100, -10.,10.);
508 h_convVtxdZ_barrel_ = iBooker.
book1D(
"convVtxdZ_barrel",
" Photon Reco conversion vtx dZ, |eta|<=1.2,",100, -20.,20.);
510 h_convVtxdR_endcap_ = iBooker.
book1D(
"convVtxdR_endcap",
" Photon Reco conversion vtx dR, |eta|>1.2 ",100, -10.,10.);
511 h_convVtxdX_endcap_ = iBooker.
book1D(
"convVtxdX_endcap",
" Photon Reco conversion vtx dX, |eta|>1.2",100, -10.,10.);
512 h_convVtxdY_endcap_ = iBooker.
book1D(
"convVtxdY_endcap",
" Photon Reco conversion vtx dY, |eta|>1.2",100, -10.,10.);
513 h_convVtxdZ_endcap_ = iBooker.
book1D(
"convVtxdZ_endcap",
" Photon Reco conversion vtx dZ, |eta|>1.2",100, -20.,20.);
517 h2_convVtxdRVsR_ = iBooker.
book2D(
"h2ConvVtxdRVsR",
" Conversion vtx dR vsR" ,rBin,rMin, rMax,100, -20.,20.);
518 h2_convVtxdRVsEta_ = iBooker.
book2D(
"h2ConvVtxdRVsEta",
"Conversion vtx dR vs Eta" ,etaBin2,etaMin, etaMax,100, -20.,20.);
520 p_convVtxdRVsR_ = iBooker.
bookProfile(
"pConvVtxdRVsR",
" Conversion vtx dR vsR" ,rBin,rMin, rMax ,100, -20.,20.,
"");
521 p_convVtxdRVsEta_ = iBooker.
bookProfile(
"pConvVtxdRVsEta",
"Conversion vtx dR vs Eta" ,etaBin2,etaMin, etaMax, 100, -20.,20.,
"");
522 p_convVtxdXVsX_ = iBooker.
bookProfile(
"pConvVtxdXVsX",
"Conversion vtx dX vs X" ,120,-60, 60 ,100, -20.,20.,
"");
523 p_convVtxdYVsY_ = iBooker.
bookProfile(
"pConvVtxdYVsY",
"Conversion vtx dY vs Y" ,120,-60, 60 ,100, -20.,20.,
"");
524 p_convVtxdZVsZ_ = iBooker.
bookProfile(
"pConvVtxdZVsZ",
"Conversion vtx dZ vs Z" ,zBin,zMin,zMax ,100, -20.,20.,
"");
526 p_convVtxdZVsR_ = iBooker.
bookProfile(
"pConvVtxdZVsR",
"Conversion vtx dZ vs R" ,rBin,rMin,rMax ,100, -20.,20.,
"");
527 p2_convVtxdRVsRZ_ = iBooker.
bookProfile2D(
"p2ConvVtxdRVsRZ",
"Conversion vtx dR vs RZ" ,zBin,zMin, zMax,rBin,rMin,rMax,100, 0.,20.,
"s");
528 p2_convVtxdZVsRZ_ = iBooker.
bookProfile2D(
"p2ConvVtxdZVsRZ",
"Conversion vtx dZ vs RZ" ,zBin,zMin, zMax,rBin,rMin,rMax,100, 0.,20.,
"s");
531 histname=
"EoverPtracks";
532 h_EoverPTracks_[0][0] = iBooker.
book1D(histname+
"All",
" photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax );
533 h_EoverPTracks_[0][1] = iBooker.
book1D(histname+
"Barrel",
" photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
534 h_EoverPTracks_[0][2] = iBooker.
book1D(histname+
"Endcap",
" photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
535 h_EoverPTracks_[1][0] = iBooker.
book1D(histname+
"All_Ass",
" photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax);
536 h_EoverPTracks_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
" photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
537 h_EoverPTracks_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
" photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
538 h_EoverPTracks_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
" photons conversion E/p: all Ecal ", eoverpBin, eoverpMin, eoverpMax);
539 h_EoverPTracks_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
" photons conversion E/p: Barrel Ecal", eoverpBin, eoverpMin, eoverpMax);
540 h_EoverPTracks_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
" photons conversion E/p: Endcap Ecal ", eoverpBin, eoverpMin, eoverpMax);
543 h2_convVtxRrecVsTrue_ = iBooker.
book2D(
"h2ConvVtxRrecVsTrue",
"Photon Reco conversion vtx R rec vs true" ,rBin,rMin, rMax,rBin,rMin, rMax);
545 histname=
"vtxChi2Prob";
546 h_vtxChi2Prob_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 100, 0., 1.);
547 h_vtxChi2Prob_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 100, 0., 1.);
548 h_vtxChi2Prob_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 100, 0., 1.);
549 h_vtxChi2Prob_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 100, 0., 1.);
550 h_vtxChi2Prob_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 100, 0., 1.);
551 h_vtxChi2Prob_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 100, 0., 1.);
552 h_vtxChi2Prob_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 100, 0., 1.);
553 h_vtxChi2Prob_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 100, 0., 1.);
554 h_vtxChi2Prob_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 100, 0., 1.);
557 h_zPVFromTracks_[1] = iBooker.
book1D(
"zPVFromTracks",
" Photons: PV z from conversion tracks",100, -25., 25.);
558 h_dzPVFromTracks_[1] = iBooker.
book1D(
"dzPVFromTracks",
" Photons: PV Z_rec - Z_true from conversion tracks",100, -5., 5.);
559 h2_dzPVVsR_ = iBooker.
book2D(
"h2dzPVVsR",
"Photon Reco conversions: dz(PV) vs R" ,rBin,rMin, rMax,100, -3.,3.);
560 p_dzPVVsR_ = iBooker.
bookProfile(
"pdzPVVsR",
"Photon Reco conversions: dz(PV) vs R" ,rBin,rMin, rMax, 100, -3.,3.,
"");
564 h_lxybs_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 200, -100., 100.);
565 h_lxybs_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 200, -100., 100.);
566 h_lxybs_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 200, -100., 100.);
567 h_lxybs_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 200, -100., 100.);
568 h_lxybs_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 200, -100., 100.);
569 h_lxybs_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 200, -100., 100.);
570 h_lxybs_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 200, -100., 100.);
571 h_lxybs_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 200, -100., 100.);
572 h_lxybs_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 200, -100., 100.);
574 histname=
"maxNHitsBeforeVtx";
575 h_maxNHitsBeforeVtx_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 16, -0.5, 15.5);
576 h_maxNHitsBeforeVtx_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
577 h_maxNHitsBeforeVtx_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
578 h_maxNHitsBeforeVtx_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 16, -0.5, 15.5);
579 h_maxNHitsBeforeVtx_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
580 h_maxNHitsBeforeVtx_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
581 h_maxNHitsBeforeVtx_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 16, -0.5, 15.5);
582 h_maxNHitsBeforeVtx_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
583 h_maxNHitsBeforeVtx_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
585 histname=
"leadNHitsBeforeVtx";
586 h_leadNHitsBeforeVtx_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 16, -0.5, 15.5);
587 h_leadNHitsBeforeVtx_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
588 h_leadNHitsBeforeVtx_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
589 h_leadNHitsBeforeVtx_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 16, -0.5, 15.5);
590 h_leadNHitsBeforeVtx_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
591 h_leadNHitsBeforeVtx_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
592 h_leadNHitsBeforeVtx_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 16, -0.5, 15.5);
593 h_leadNHitsBeforeVtx_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
594 h_leadNHitsBeforeVtx_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
596 histname=
"trailNHitsBeforeVtx";
597 h_trailNHitsBeforeVtx_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 16, -0.5, 15.5);
598 h_trailNHitsBeforeVtx_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
599 h_trailNHitsBeforeVtx_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
600 h_trailNHitsBeforeVtx_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 16, -0.5, 15.5);
601 h_trailNHitsBeforeVtx_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
602 h_trailNHitsBeforeVtx_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
603 h_trailNHitsBeforeVtx_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 16, -0.5, 15.5);
604 h_trailNHitsBeforeVtx_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
605 h_trailNHitsBeforeVtx_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
607 histname=
"sumNHitsBeforeVtx";
608 h_sumNHitsBeforeVtx_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 16, -0.5, 15.5);
609 h_sumNHitsBeforeVtx_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
610 h_sumNHitsBeforeVtx_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
611 h_sumNHitsBeforeVtx_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 16, -0.5, 15.5);
612 h_sumNHitsBeforeVtx_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
613 h_sumNHitsBeforeVtx_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
614 h_sumNHitsBeforeVtx_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 16, -0.5, 15.5);
615 h_sumNHitsBeforeVtx_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
616 h_sumNHitsBeforeVtx_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
618 histname=
"maxDlClosestHitToVtx";
619 h_maxDlClosestHitToVtx_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 100, -10., 10.);
620 h_maxDlClosestHitToVtx_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 100, -10., 10.);
621 h_maxDlClosestHitToVtx_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 100, -10., 10.);
622 h_maxDlClosestHitToVtx_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 100, -10., 10.);
623 h_maxDlClosestHitToVtx_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 100, -10., 10.);
624 h_maxDlClosestHitToVtx_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 100, -10., 10.);
625 h_maxDlClosestHitToVtx_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 100, -10., 10.);
626 h_maxDlClosestHitToVtx_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 100, -10., 10.);
627 h_maxDlClosestHitToVtx_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 100, -10., 10.);
629 histname=
"maxDlClosestHitToVtxSig";
630 h_maxDlClosestHitToVtxSig_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 100, -8., 8.);
631 h_maxDlClosestHitToVtxSig_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 100, -8., 8.);
632 h_maxDlClosestHitToVtxSig_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 100, -8., 8.);
633 h_maxDlClosestHitToVtxSig_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 100, -8., 8.);
634 h_maxDlClosestHitToVtxSig_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 100, -8., 8.);
635 h_maxDlClosestHitToVtxSig_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 100, -8., 8.);
636 h_maxDlClosestHitToVtxSig_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 100, -8., 8.);
637 h_maxDlClosestHitToVtxSig_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 100, -8., 8.);
638 h_maxDlClosestHitToVtxSig_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 100, -8., 8.);
640 histname=
"deltaExpectedHitsInner";
641 h_deltaExpectedHitsInner_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 31, -15.5, 15.5);
642 h_deltaExpectedHitsInner_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 31, -15.5, 15.5);
643 h_deltaExpectedHitsInner_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 31, -15.5, 15.5);
644 h_deltaExpectedHitsInner_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 31, -15.5, 15.5);
645 h_deltaExpectedHitsInner_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 31, -15.5, 15.5);
646 h_deltaExpectedHitsInner_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 31, -15.5, 15.5);
647 h_deltaExpectedHitsInner_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 31, -15.5, 15.5);
648 h_deltaExpectedHitsInner_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 31, -15.5, 15.5);
649 h_deltaExpectedHitsInner_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 31, -15.5, 15.5);
651 histname=
"leadExpectedHitsInner";
652 h_leadExpectedHitsInner_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 16, -0.5, 15.5);
653 h_leadExpectedHitsInner_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
654 h_leadExpectedHitsInner_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
655 h_leadExpectedHitsInner_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 16, -0.5, 15.5);
656 h_leadExpectedHitsInner_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
657 h_leadExpectedHitsInner_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
658 h_leadExpectedHitsInner_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 16, -0.5, 15.5);
659 h_leadExpectedHitsInner_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
660 h_leadExpectedHitsInner_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
662 histname=
"nSharedHits";
663 h_nSharedHits_[0][0] = iBooker.
book1D(histname+
"All",
"vertex #chi^{2} all", 16, -0.5, 15.5);
664 h_nSharedHits_[0][1] = iBooker.
book1D(histname+
"Barrel",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
665 h_nSharedHits_[0][2] = iBooker.
book1D(histname+
"Endcap",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
666 h_nSharedHits_[1][0] = iBooker.
book1D(histname+
"All_Ass",
"vertex #chi^{2} all", 16, -0.5, 15.5);
667 h_nSharedHits_[1][1] = iBooker.
book1D(histname+
"Barrel_Ass",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
668 h_nSharedHits_[1][2] = iBooker.
book1D(histname+
"Endcap_Ass",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
669 h_nSharedHits_[2][0] = iBooker.
book1D(histname+
"All_Fakes",
"vertex #chi^{2} all", 16, -0.5, 15.5);
670 h_nSharedHits_[2][1] = iBooker.
book1D(histname+
"Barrel_Fakes",
"vertex #chi^{2} barrel", 16, -0.5, 15.5);
671 h_nSharedHits_[2][2] = iBooker.
book1D(histname+
"Endcap_Fakes",
"vertex #chi^{2} endcap", 16, -0.5, 15.5);
675 nHits_[0] = iBooker.
book2D(histname+
"AllTracks",
"Photons:Tracks from conversions: # of hits all tracks",etaBin,etaMin, etaMax,30,0., 30.);
676 nHits_[1] = iBooker.
book2D(histname+
"AllTracks_Ass",
"Photons:Tracks from conversions: # of hits all tracks ass",etaBin,etaMin, etaMax,30,0., 30.);
677 nHits_[2] = iBooker.
book2D(histname+
"AllTracks_Fakes",
"Photons:Tracks from conversions: # of hits all tracks fakes",etaBin,etaMin, etaMax,30,0., 30.);
680 histname=
"nHitsVsEta";
681 nHitsVsEta_[0] = iBooker.
book2D(histname+
"AllTracks",
"Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.);
682 nHitsVsEta_[1] = iBooker.
book2D(histname+
"AllTracks_Ass",
"Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.);
683 nHitsVsEta_[2] = iBooker.
book2D(histname+
"AllTracks_Fakes",
"Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax,30,0., 30.);
684 histname=
"h_nHitsVsEta";
685 p_nHitsVsEta_[0] = iBooker.
bookProfile(histname+
"AllTracks",
"Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,
"");
686 p_nHitsVsEta_[1] = iBooker.
bookProfile(histname+
"AllTracks_Ass",
"Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,
"");
687 p_nHitsVsEta_[2] = iBooker.
bookProfile(histname+
"AllTracks_Fakes",
"Photons:Tracks from conversions: # of hits vs #eta all tracks",etaBin,etaMin, etaMax, 30,-0.5, 29.5,
"");
691 nHitsVsR_[0] = iBooker.
book2D(histname+
"AllTracks",
"Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.);
692 nHitsVsR_[1] = iBooker.
book2D(histname+
"AllTracks_Ass",
"Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.);
693 nHitsVsR_[2] = iBooker.
book2D(histname+
"AllTracks_Fakes",
"Photons:Tracks from conversions: # of hits vs radius all tracks" ,rBin,rMin, rMax,30,0., 30.);
695 histname=
"h_nHitsVsR";
696 p_nHitsVsR_[0] = iBooker.
bookProfile(histname+
"AllTracks",
"Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,
"");
697 p_nHitsVsR_[1] = iBooker.
bookProfile(histname+
"AllTracks_Ass",
"Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,
"");
698 p_nHitsVsR_[2] = iBooker.
bookProfile(histname+
"AllTracks_Fakes",
"Photons:Tracks from conversions: # of hits vs radius all tracks",rBin,rMin, rMax, 30,-0.5, 29.5,
"");
701 h_tkChi2_[0] = iBooker.
book1D(histname+
"AllTracks",
"Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max);
702 h_tkChi2_[1] = iBooker.
book1D(histname+
"AllTracks_Ass",
"Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max);
703 h_tkChi2_[2] = iBooker.
book1D(histname+
"AllTracks_Fakes",
"Photons:Tracks from conversions: #chi^{2} of all tracks", 100, chi2Min, chi2Max);
705 histname=
"tkChi2Large";
706 h_tkChi2Large_[0] = iBooker.
book1D(histname+
"AllTracks",
"Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0);
707 h_tkChi2Large_[1] = iBooker.
book1D(histname+
"AllTracks_Ass",
"Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0);
708 h_tkChi2Large_[2] = iBooker.
book1D(histname+
"AllTracks_Fakes",
"Photons:Tracks from conversions: #chi^{2} of all tracks", 1000, 0., 5000.0);
711 histname=
"h2Chi2VsEta";
712 h2_Chi2VsEta_[0]=iBooker.
book2D(histname+
"All",
" Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max);
713 h2_Chi2VsEta_[1]=iBooker.
book2D(histname+
"All_Ass",
" Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max);
714 h2_Chi2VsEta_[2]=iBooker.
book2D(histname+
"All_Fakes",
" Reco Track #chi^{2} vs #eta: All ",etaBin2,etaMin, etaMax,100, chi2Min, chi2Max);
715 histname=
"pChi2VsEta";
716 p_Chi2VsEta_[0]=iBooker.
bookProfile(histname+
"All",
" Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,
"");
717 p_Chi2VsEta_[1]=iBooker.
bookProfile(histname+
"All_Ass",
" Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,
"");
718 p_Chi2VsEta_[2]=iBooker.
bookProfile(histname+
"All_Fakes",
" Reco Track #chi^{2} vs #eta : All ",etaBin2,etaMin, etaMax, 100, chi2Min, chi2Max,
"");
720 histname=
"h2Chi2VsR";
721 h2_Chi2VsR_[0]=iBooker.
book2D(histname+
"All",
" Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max);
722 h2_Chi2VsR_[1]=iBooker.
book2D(histname+
"All_Ass",
" Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max);
723 h2_Chi2VsR_[2]=iBooker.
book2D(histname+
"All_Fakes",
" Reco Track #chi^{2} vs R: All ",rBin,rMin, rMax,100,chi2Min, chi2Max);
725 p_Chi2VsR_[0]=iBooker.
bookProfile(histname+
"All",
" Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,
"");
726 p_Chi2VsR_[1]=iBooker.
bookProfile(histname+
"All_Ass",
" Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,
"");
727 p_Chi2VsR_[2]=iBooker.
bookProfile(histname+
"All_Fakes",
" Reco Track #chi^{2} vas R : All ",rBin,rMin,rMax, 100,chi2Min, chi2Max,
"");
730 h_TkD0_[0]=iBooker.
book1D(histname+
"All",
" Reco Track D0*q: All ",200,-0.1,60);
731 h_TkD0_[1]=iBooker.
book1D(histname+
"All_Ass",
" Reco Track D0*q: Barrel ",200,-0.1,60);
732 h_TkD0_[2]=iBooker.
book1D(histname+
"All_Fakes",
" Reco Track D0*q: Endcap ",200,-0.1,60);
736 histname=
"hTkPtPull";
737 h_TkPtPull_[0]=iBooker.
book1D(histname+
"All",
" Reco Track Pt pull: All ",100, -20., 10.);
738 histname=
"hTkPtPull";
739 h_TkPtPull_[1]=iBooker.
book1D(histname+
"Barrel",
" Reco Track Pt pull: Barrel ",100, -20., 10.);
740 histname=
"hTkPtPull";
741 h_TkPtPull_[2]=iBooker.
book1D(histname+
"Endcap",
" Reco Track Pt pull: Endcap ",100, -20., 10.);
743 histname=
"h2TkPtPullEta";
744 h2_TkPtPull_[0]=iBooker.
book2D(histname+
"All",
" Reco Track Pt pull: All ",etaBin2,etaMin, etaMax,100, -20., 10.);
745 histname=
"pTkPtPullEta";
746 p_TkPtPull_[0]=iBooker.
bookProfile(histname+
"All",
" Reco Track Pt pull: All ",etaBin2,etaMin, etaMax, 100, -20., 10.,
" ");
749 histname=
"PtRecVsPtSim";
750 h2_PtRecVsPtSim_[0]=iBooker.
book2D(histname+
"All",
"Pt Rec vs Pt sim: All ", etBin,etMin,etMax,etBin,etMin, etMax);
751 h2_PtRecVsPtSim_[1]=iBooker.
book2D(histname+
"Barrel",
"Pt Rec vs Pt sim: Barrel ", etBin,etMin,etMax,etBin,etMin, etMax);
752 h2_PtRecVsPtSim_[2]=iBooker.
book2D(histname+
"Endcap",
"Pt Rec vs Pt sim: Endcap ", etBin,etMin,etMax,etBin,etMin, etMax);
754 histname=
"photonPtRecVsPtSim";
755 h2_photonPtRecVsPtSim_=iBooker.
book2D(histname+
"All",
"Pt Rec vs Pt sim: All ", etBin,etMin,etMax,etBin,etMin, etMax);
757 histname=
"nHitsBeforeVtx";
758 h_nHitsBeforeVtx_[0]=iBooker.
book1D(histname+
"All",
"Pt Rec vs Pt sim: All ", 16, -0.5, 15.5);
759 h_nHitsBeforeVtx_[1]=iBooker.
book1D(histname+
"Barrel",
"Pt Rec vs Pt sim: Barrel ", 16, -0.5, 15.5);
760 h_nHitsBeforeVtx_[2]=iBooker.
book1D(histname+
"Endcap",
"Pt Rec vs Pt sim: Endcap ", 16, -0.5, 15.5);
762 histname=
"dlClosestHitToVtx";
763 h_dlClosestHitToVtx_[0]=iBooker.
book1D(histname+
"All",
"Pt Rec vs Pt sim: All ", 100, -10., 10.);
764 h_dlClosestHitToVtx_[1]=iBooker.
book1D(histname+
"Barrel",
"Pt Rec vs Pt sim: Barrel ", 100, -10., 10.);
765 h_dlClosestHitToVtx_[2]=iBooker.
book1D(histname+
"Endcap",
"Pt Rec vs Pt sim: Endcap ", 100, -10., 10.);
767 histname=
"dlClosestHitToVtxSig";
768 h_dlClosestHitToVtxSig_[0]=iBooker.
book1D(histname+
"All",
"Pt Rec vs Pt sim: All ", 100, -8., 8.);
769 h_dlClosestHitToVtxSig_[1]=iBooker.
book1D(histname+
"Barrel",
"Pt Rec vs Pt sim: Barrel ", 100, -8., 8.);
770 h_dlClosestHitToVtxSig_[2]=iBooker.
book1D(histname+
"Endcap",
"Pt Rec vs Pt sim: Endcap ", 100, -8., 8.);
772 h_match_= iBooker.
book1D(
"h_match",
" ", 3, -0.5,2.5);
786 edm::LogInfo(
"ConvertedPhotonProducer") <<
" get magnetic field" <<
"\n";
795 delete thePhotonMCTruthFinder_;
802 thePhotonMCTruthFinder_->clear();
807 const float BARL = 1.4442;
809 const float END_HI = 2.5;
814 e.
getByToken(trackAssociator_Token_,theTrackAssociator);
818 LogInfo(
"TkConvValidator") <<
"TkConvValidator Analyzing event number: " << e.
id() <<
" Global Counter " << nEvt_ <<
"\n";
833 e.
getByToken(conversionCollectionPr_Token_, convHandle);
836 edm::LogError(
"ConversionsProducer") <<
"Error! Can't get the collection "<< std::endl;
842 e.
getByToken(photonCollectionPr_Token_, photonHandle);
845 edm::LogError(
"PhotonProducer") <<
"Error! Can't get the Photon collection "<< std::endl;
855 edm::LogError(
"TrackerOnlyConversionProducer") <<
"Error! Can't get the product primary Vertex Collection "<<
"\n";
857 vertexCollection = *(vertexHandle.
product());
860 bool valid_pvtx =
false;
861 if (!vertexCollection.empty()){
862 the_pvtx = *(vertexCollection.begin());
873 <<
"Error! Can't get the product primary Vertex Collection "<<
"\n";
895 bool useTP = parameters_.getParameter<
bool>(
"useTP");
900 e.
getByToken(tpSelForEff_Token_, TPHandleForEff);
901 e.
getByToken(tpSelForFake_Token_, TPHandleForFakeRate);
907 const std::vector<SimTrack> &theSimTracks= *SimTk;
908 const std::vector<SimVertex> &theSimVertices= *SimVtx;
912 std::vector<PhotonMCTruth> mcPhotons=thePhotonMCTruthFinder_->find (theSimTracks, theSimVertices);
927 std::map<const reco::Track*,TrackingParticleRef> myAss;
928 std::map<const reco::Track*,TrackingParticleRef>::const_iterator itAss;
930 for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) {
932 mcConvPt_= (*mcPho).fourMomentum().et();
933 float mcPhi= (*mcPho).fourMomentum().phi();
934 mcPhi_= phiNormalization(mcPhi);
935 mcEta_= (*mcPho).fourMomentum().pseudoRapidity();
936 mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() );
937 mcConvR_= (*mcPho).vertex().perp();
938 mcConvX_= (*mcPho).vertex().x();
939 mcConvY_= (*mcPho).vertex().y();
940 mcConvZ_= (*mcPho).vertex().z();
941 mcConvEta_= (*mcPho).vertex().eta();
942 mcConvPhi_= (*mcPho).vertex().phi();
944 if ( fabs(mcEta_) > END_HI )
continue;
952 bool goodSimConversion=
false;
953 bool visibleConversion=
false;
954 bool visibleConversionsWithTwoSimTracks=
false;
955 if ( (*mcPho).isAConversion() == 1 ) {
957 h_AllSimConv_[0]->Fill( mcEta_ ) ;
958 h_AllSimConv_[1]->Fill( mcPhi_ );
959 h_AllSimConv_[2]->Fill( mcConvR_ );
960 h_AllSimConv_[3]->Fill( mcConvZ_ );
961 h_AllSimConv_[4]->Fill( (*mcPho).fourMomentum().et());
963 if ( mcConvR_ <15) h_SimConvEtaPix_[0]->Fill( mcEta_ ) ;
965 if ( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) ||
966 ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) visibleConversion=
true;
972 if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 &&
973 fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 &&
974 fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) {
975 theConvTP_.push_back( tp );
980 if ( theConvTP_.size() == 2 ) visibleConversionsWithTwoSimTracks=
true;
981 goodSimConversion=
false;
983 if ( visibleConversion && visibleConversionsWithTwoSimTracks ) goodSimConversion=
true;
984 if ( goodSimConversion ) {
986 h_VisSimConv_[0]->Fill( mcEta_ ) ;
987 h_VisSimConv_[1]->Fill( mcPhi_ );
988 h_VisSimConv_[2]->Fill( mcConvR_ );
989 h_VisSimConv_[3]->Fill( mcConvZ_ );
990 h_VisSimConv_[4]->Fill( (*mcPho).fourMomentum().et());
995 h_simTkPt_ ->
Fill ( (*iTrk)->pt() );
996 h_simTkEta_ ->
Fill ( (*iTrk)->eta() );
1002 if ( ! (visibleConversion && visibleConversionsWithTwoSimTracks ) )
continue;
1004 h_simConvVtxRvsZ_[0] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ;
1005 if ( fabs(mcEta_) <=1.) {
1006 h_simConvVtxRvsZ_[1] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ;
1007 h_simConvVtxYvsX_ ->Fill ( mcConvX_, mcConvY_ ) ;
1010 h_simConvVtxRvsZ_[2] ->Fill ( fabs (mcConvZ_), mcConvR_ ) ;
1018 bool recomatch =
false;
1019 float chi2Prob = 0.;
1022 for (reco::ConversionCollection::const_iterator
conv = convHandle->begin();
conv!=convHandle->end();++
conv) {
1033 const std::vector<edm::RefToBase<reco::Track> >&
tracks = aConv.
tracks();
1038 if (tracks.size() !=2 || !(vtx.
isValid()))
continue;
1049 double lxy = (themom.x()*dbsx + themom.y()*dbsy)/themom.rho();
1051 if (lxy<minLxy_)
continue;
1069 bool isAssociated =
false;
1073 std::vector<std::pair<RefToBase<reco::Track>,
double> > trackV1, trackV2;
1075 int tp_1 = 0, tp_2 = 1;
1076 if (q1.
find(theConvTP_[0])!=q1.
end()){
1077 trackV1 = (std::vector<std::pair<RefToBase<reco::Track>,
double> >) q1[theConvTP_[0]];
1078 }
else if (q1.
find(theConvTP_[1])!=q1.
end()){
1079 trackV1 = (std::vector<std::pair<RefToBase<reco::Track>,
double> >) q1[theConvTP_[1]];
1082 if (q2.
find(theConvTP_[1])!=q2.
end()){
1083 trackV2 = (std::vector<std::pair<RefToBase<reco::Track>,
double> >) q2[theConvTP_[1]];
1084 }
else if (q2.
find(theConvTP_[0])!=q2.
end()){
1085 trackV2 = (std::vector<std::pair<RefToBase<reco::Track>,
double> >) q2[theConvTP_[0]];
1088 if (!(!trackV1.empty()&&!trackV2.empty()))
1090 if (tp_1 == tp_2)
continue;
1096 myAss.insert( std::make_pair (tr1.
get(),theConvTP_[tp_1] ) );
1097 myAss.insert( std::make_pair (tr2.
get(),theConvTP_[tp_2]) );
1105 isAssociated =
true;
1110 h_SimRecConvTwoMTracks_[0]->Fill( mcEta_ ) ;
1111 h_SimRecConvTwoMTracks_[1]->Fill( mcPhi_ );
1112 h_SimRecConvTwoMTracks_[2]->Fill( mcConvR_ );
1113 h_SimRecConvTwoMTracks_[3]->Fill( mcConvZ_ );
1114 h_SimRecConvTwoMTracks_[4]->Fill( (*mcPho).fourMomentum().et());
1121 h_SimConvTwoMTracks_[0]->Fill( mcEta_ ) ;
1122 h_SimConvTwoMTracks_[1]->Fill( mcPhi_ );
1123 h_SimConvTwoMTracks_[2]->Fill( mcConvR_ );
1124 h_SimConvTwoMTracks_[3]->Fill( mcConvZ_ );
1125 h_SimConvTwoMTracks_[4]->Fill( (*mcPho).fourMomentum().et());
1128 if ( chi2Prob > 0) {
1129 h_SimConvTwoMTracksAndVtxPGT0_[0]->Fill( mcEta_ ) ;
1130 h_SimConvTwoMTracksAndVtxPGT0_[1]->Fill( mcPhi_ );
1131 h_SimConvTwoMTracksAndVtxPGT0_[2]->Fill( mcConvR_ );
1132 h_SimConvTwoMTracksAndVtxPGT0_[3]->Fill( mcConvZ_ );
1133 h_SimConvTwoMTracksAndVtxPGT0_[4]->Fill( (*mcPho).fourMomentum().et());
1135 if ( chi2Prob > 0.0005) {
1136 h_SimConvTwoMTracksAndVtxPGT0005_[0]->Fill( mcEta_ ) ;
1137 h_SimConvTwoMTracksAndVtxPGT0005_[1]->Fill( mcPhi_ );
1138 h_SimConvTwoMTracksAndVtxPGT0005_[2]->Fill( mcConvR_ );
1139 h_SimConvTwoMTracksAndVtxPGT0005_[3]->Fill( mcConvZ_ );
1140 h_SimConvTwoMTracksAndVtxPGT0005_[4]->Fill( (*mcPho).fourMomentum().et());
1150 for (reco::ConversionCollection::const_iterator
conv = convHandle->begin();
conv!=convHandle->end();++
conv) {
1160 std::vector<edm::RefToBase<reco::Track> >
tracks = aConv.
tracks();
1164 if (tracks.size() !=2 || !(vtx.
isValid()))
continue;
1175 double lxy = (themom.x()*dbsx + themom.y()*dbsy)/themom.rho();
1177 if (lxy<minLxy_)
continue;
1179 bool phoIsInBarrel=
false;
1180 bool phoIsInEndcap=
false;
1199 if (
sqrt(p1AtVtx.perp2()) >
sqrt(p2AtVtx.perp2()) )
1200 dPhiTracksAtVtx = p1AtVtx.phi() - p2AtVtx.phi();
1202 dPhiTracksAtVtx = p2AtVtx.phi() - p1AtVtx.phi();
1208 if (fabs(refittedMom.eta())< 1.479 ) {
1217 double Mindeltaeta = 999999;
1218 double Mindeltaphi = 999999;
1219 bool matchConvSC=
false;
1220 reco::PhotonCollection::const_iterator iMatchingSC;
1221 for( reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); iPho++) {
1225 double deltaeta =
abs( aPho.
superCluster()->position().eta() -ConvEta);
1226 if (
abs(deltaeta)<
abs(Mindeltaeta) &&
abs(deltaphi)<
abs(Mindeltaphi)) {
1227 Mindeltaphi=
abs(deltaphi);
1228 Mindeltaeta=
abs(deltaeta);
1229 iMatchingSC = iPho ;
1232 if (
abs(Mindeltaeta)<0.1 &&
abs(Mindeltaphi)<0.1) {
1246 int ilead = 0, itrail = 1;
1247 if (tk2->
pt() > tk1->
pt()) {
1261 h_convEta_[
match][0]->Fill( refittedMom.eta() );
1262 h_convEta2_[
match][0]->Fill( refittedMom.eta() );
1264 h_convPhi_[
match][0]->Fill( refittedMom.phi() );
1269 h_convPt_[
match][0]->Fill(
sqrt(refittedMom.perp2()) );
1270 h_invMass_[
match][0] ->Fill( invM);
1271 h_vtxChi2Prob_[
match][0] ->Fill (chi2Prob);
1272 h_lxybs_[
match][0] ->Fill (lxy);
1273 h_maxNHitsBeforeVtx_[
match][0] ->Fill (maxNHitsBeforeVtx);
1274 h_leadNHitsBeforeVtx_[
match][0] ->Fill (leadNHitsBeforeVtx);
1275 h_trailNHitsBeforeVtx_[
match][0] ->Fill (trailNHitsBeforeVtx);
1276 h_sumNHitsBeforeVtx_[
match][0] ->Fill (sumNHitsBeforeVtx);
1277 h_deltaExpectedHitsInner_[
match][0] ->Fill (deltaExpectedHitsInner);
1278 h_leadExpectedHitsInner_[
match][0] ->Fill (leadExpectedHitsInner);
1279 h_maxDlClosestHitToVtx_[
match][0] ->Fill (maxDlClosestHitToVtx);
1280 h_maxDlClosestHitToVtxSig_[
match][0] ->Fill (maxDlClosestHitToVtxSig);
1284 if ( matchConvSC ) {
1285 h_convEtaMatchSC_[
match][0]->Fill( refittedMom.eta() );
1286 h_EoverPTracks_[
match][0] ->Fill (iMatchingSC->superCluster()->energy()/
sqrt(refittedMom.mag2()));
1287 h_convSCdPhi_[
match][0]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1289 h_convSCdEta_[
match][0]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1293 h_DPhiTracksAtVtx_[
match][0]->Fill( dPhiTracksAtVtx);
1294 h2_DPhiTracksAtVtxVsEta_->Fill( mcEta_, dPhiTracksAtVtx);
1295 h2_DPhiTracksAtVtxVsR_->Fill( mcConvR_, dPhiTracksAtVtx);
1296 p_DPhiTracksAtVtxVsEta_->Fill( mcEta_, dPhiTracksAtVtx);
1297 p_DPhiTracksAtVtxVsR_->Fill( mcConvR_, dPhiTracksAtVtx);
1305 if ( phoIsInBarrel ) {
1306 h_invMass_[
match][1] ->Fill(invM);
1307 h_vtxChi2Prob_[
match][1] ->Fill (chi2Prob);
1309 h_DPhiTracksAtVtx_[
match][1]->Fill( dPhiTracksAtVtx);
1311 h_lxybs_[
match][1] ->Fill (lxy);
1312 h_maxNHitsBeforeVtx_[
match][1] ->Fill (maxNHitsBeforeVtx);
1313 h_leadNHitsBeforeVtx_[
match][1] ->Fill (leadNHitsBeforeVtx);
1314 h_trailNHitsBeforeVtx_[
match][1] ->Fill (trailNHitsBeforeVtx);
1315 h_sumNHitsBeforeVtx_[
match][1] ->Fill (sumNHitsBeforeVtx);
1316 h_deltaExpectedHitsInner_[
match][1] ->Fill (deltaExpectedHitsInner);
1317 h_leadExpectedHitsInner_[
match][1] ->Fill (leadExpectedHitsInner);
1318 h_maxDlClosestHitToVtx_[
match][1] ->Fill (maxDlClosestHitToVtx);
1319 h_maxDlClosestHitToVtxSig_[
match][1] ->Fill (maxDlClosestHitToVtxSig);
1330 if ( matchConvSC ) {
1331 h_EoverPTracks_[
match][1] ->
Fill(iMatchingSC->superCluster()->energy()/
sqrt(refittedMom.mag2()));
1332 h_convSCdPhi_[
match][1]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1334 h_convSCdEta_[
match][1]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1339 if ( phoIsInEndcap ) {
1340 h_invMass_[
match][2] ->Fill(invM);
1341 h_vtxChi2Prob_[
match][2] ->Fill (chi2Prob);
1343 h_DPhiTracksAtVtx_[
match][2]->Fill( dPhiTracksAtVtx);
1345 h_lxybs_[
match][2] ->Fill (lxy);
1346 h_maxNHitsBeforeVtx_[
match][2] ->Fill (maxNHitsBeforeVtx);
1347 h_leadNHitsBeforeVtx_[
match][2] ->Fill (leadNHitsBeforeVtx);
1348 h_trailNHitsBeforeVtx_[
match][2] ->Fill (trailNHitsBeforeVtx);
1349 h_sumNHitsBeforeVtx_[
match][2] ->Fill (sumNHitsBeforeVtx);
1350 h_deltaExpectedHitsInner_[
match][2] ->Fill (deltaExpectedHitsInner);
1351 h_leadExpectedHitsInner_[
match][2] ->Fill (leadExpectedHitsInner);
1352 h_maxDlClosestHitToVtx_[
match][2] ->Fill (maxDlClosestHitToVtx);
1353 h_maxDlClosestHitToVtxSig_[
match][2] ->Fill (maxDlClosestHitToVtxSig);
1355 if ( matchConvSC ) {
1356 h_EoverPTracks_[
match][2] ->Fill (iMatchingSC->superCluster()->energy()/
sqrt(refittedMom.mag2()));
1357 h_convSCdPhi_[
match][2]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1359 h_convSCdEta_[
match][2]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1371 for (
unsigned int i=0;
i<tracks.size();
i++) {
1374 d0 = - tracks[
i]->dxy(the_pvtx.
position());
1376 d0 = tracks[
i]->d0();
1383 nHitsVsEta_[
match] ->Fill (mcEta_,
float(tracks[
i]->numberOfValidHits()) );
1384 nHitsVsR_[
match] ->Fill (mcConvR_,
float(tracks[
i]->numberOfValidHits()) );
1385 p_nHitsVsEta_[
match] ->Fill (mcEta_,
float(tracks[
i]->numberOfValidHits()) -0.0001);
1386 p_nHitsVsR_[
match] ->Fill (mcConvR_,
float(tracks[
i]->numberOfValidHits()) -0.0001);
1387 h_tkChi2_[
match] ->Fill (tracks[
i]->normalizedChi2() );
1388 h_tkChi2Large_[
match] ->Fill (tracks[
i]->normalizedChi2() );
1389 h2_Chi2VsEta_[
match] ->Fill( mcEta_, tracks[
i]->normalizedChi2() );
1390 h2_Chi2VsR_[
match] ->Fill( mcConvR_, tracks[
i]->normalizedChi2() );
1391 p_Chi2VsEta_[
match] ->Fill( mcEta_, tracks[
i]->normalizedChi2() );
1392 p_Chi2VsR_[
match] ->Fill( mcConvR_, tracks[
i]->normalizedChi2() );
1396 bool associated =
false;
1397 float mcConvPt_= -99999999;
1400 for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) {
1401 mcConvPt_= (*mcPho).fourMomentum().et();
1402 float mcPhi= (*mcPho).fourMomentum().phi();
1403 simPV_Z = (*mcPho).primaryVertex().z();
1404 mcPhi_= phiNormalization(mcPhi);
1405 mcEta_= (*mcPho).fourMomentum().pseudoRapidity();
1406 mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() );
1407 mcConvR_= (*mcPho).vertex().perp();
1408 mcConvX_= (*mcPho).vertex().x();
1409 mcConvY_= (*mcPho).vertex().y();
1410 mcConvZ_= (*mcPho).vertex().z();
1411 mcConvEta_= (*mcPho).vertex().eta();
1412 mcConvPhi_= (*mcPho).vertex().phi();
1413 if ( fabs(mcEta_) > END_HI )
continue;
1419 if ( (*mcPho).isAConversion() != 1 )
continue;
1420 if (!( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) ||
1421 ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) )
1427 if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 &&
1428 fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 &&
1429 fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) {
1430 theConvTP_.push_back( tp );
1434 if ( theConvTP_.size() < 2 )
continue;
1440 auto itP1 = p1.
find(tk1);
1441 auto itP2 = p2.
find(tk2);
1442 bool good = (itP1 != p1.
end()) and (not itP1->val.empty()) and (itP2 != p2.
end()) and (not itP2->val.empty());
1444 itP1 = p1.
find(tk2);
1445 itP2 = p2.
find(tk1);
1446 good = (itP1 != p1.
end()) and (not itP1->val.empty()) and (itP2 != p2.
end()) and (not itP2->val.empty());
1450 std::vector<std::pair<TrackingParticleRef, double> >
const& tp1 = itP1->val;
1451 std::vector<std::pair<TrackingParticleRef, double> >
const& tp2 = itP2->val;
1454 if (
abs(tpr1->pdgId())==11&&
abs(tpr2->pdgId())==11&& tpr1->pdgId()*tpr2->pdgId()<0) {
1455 if ( (tpr1->parentVertex()->sourceTracks_end()-tpr1->parentVertex()->sourceTracks_begin()==1) &&
1456 (tpr2->parentVertex()->sourceTracks_end()-tpr2->parentVertex()->sourceTracks_begin()==1)) {
1457 if (tpr1->parentVertex().
key()==tpr2->parentVertex().
key() && ((*tpr1->parentVertex()->sourceTracks_begin())->
pdgId()==22)) {
1458 mcConvR_ =
sqrt(tpr1->parentVertex()->position().Perp2());
1459 mcConvZ_ = tpr1->parentVertex()->position().z();
1460 mcConvX_ = tpr1->parentVertex()->position().x();
1461 mcConvY_ = tpr1->parentVertex()->position().y();
1462 mcConvEta_ = tpr1->parentVertex()->position().eta();
1463 mcConvPhi_ = tpr1->parentVertex()->position().phi();
1464 mcConvPt_ =
sqrt((*tpr1->parentVertex()->sourceTracks_begin())->momentum().Perp2());
1480 theConvTP_ = tpForFakeRate;
1485 for ( std::vector<PhotonMCTruth>::const_iterator mcPho=mcPhotons.begin(); mcPho !=mcPhotons.end(); mcPho++) {
1486 mcConvPt_= (*mcPho).fourMomentum().et();
1487 float mcPhi= (*mcPho).fourMomentum().phi();
1488 simPV_Z = (*mcPho).primaryVertex().z();
1489 mcPhi_= phiNormalization(mcPhi);
1490 mcEta_= (*mcPho).fourMomentum().pseudoRapidity();
1491 mcEta_ = etaTransformation(mcEta_, (*mcPho).primaryVertex().z() );
1492 mcConvR_= (*mcPho).vertex().perp();
1493 mcConvX_= (*mcPho).vertex().x();
1494 mcConvY_= (*mcPho).vertex().y();
1495 mcConvZ_= (*mcPho).vertex().z();
1496 mcConvEta_= (*mcPho).vertex().eta();
1497 mcConvPhi_= (*mcPho).vertex().phi();
1498 if ( fabs(mcEta_) > END_HI )
continue;
1504 if ( (*mcPho).isAConversion() != 1 )
continue;
1505 if (!( ( fabs(mcEta_) <= BARL && mcConvR_ <85 ) ||
1506 ( fabs(mcEta_) > BARL && fabs(mcEta_) <=END_HI && fabs( (*mcPho).vertex().z() ) < 210 ) ) )
1512 if ( fabs( tp->vx() - (*mcPho).vertex().x() ) < 0.0001 &&
1513 fabs( tp->vy() - (*mcPho).vertex().y() ) < 0.0001 &&
1514 fabs( tp->vz() - (*mcPho).vertex().z() ) < 0.0001) {
1515 theConvTP_.push_back( tp );
1521 if ( theConvTP_.size() < 2 )
continue;
1533 std::vector<std::pair<TrackingParticleRef, double> > tp1 = p1incl[tk1];
1534 std::vector<std::pair<TrackingParticleRef, double> > tp2 = p2incl[tk2];
1535 if (!(!tp1.empty()&&!tp2.empty())){
1539 if (!tp1.empty()&&!tp2.empty()) {
1542 if (
abs(tpr1->pdgId())==11&&
abs(tpr2->pdgId())==11 && tpr1->pdgId()*tpr2->pdgId()<0) {
1543 if ( ((tpr1->parentVertex()->sourceTracks_end()-tpr1->parentVertex()->sourceTracks_begin()>=1) && (*tpr1->parentVertex()->sourceTracks_begin())->
pdgId()==22) &&
1544 ((tpr2->parentVertex()->sourceTracks_end()-tpr2->parentVertex()->sourceTracks_begin()>=1) && (*tpr2->parentVertex()->sourceTracks_begin())->
pdgId()==22) ) {
1575 if ( associated ) match=1;
1579 h_match_->Fill(
float(match));
1581 if ( match == 1) nRecConvAss_++;
1582 h_convEta_[
match][0]->Fill( refittedMom.eta() );
1583 h_convEta_[
match][1]->Fill( refittedMom.eta() );
1584 if (matchConvSC) h_convEtaMatchSC_[
match][0]->Fill( refittedMom.eta() );
1585 h_convPhi_[
match][0]->Fill( refittedMom.phi() );
1588 h_convPt_[
match][0]->Fill(
sqrt(refittedMom.perp2()) );
1589 h_invMass_[
match][0] ->Fill( invM);
1590 h_vtxChi2Prob_[
match][0] ->Fill (chi2Prob);
1591 h_DPhiTracksAtVtx_[
match][0]->Fill( dPhiTracksAtVtx);
1594 h_lxybs_[
match][0] ->Fill (lxy);
1595 h_maxNHitsBeforeVtx_[
match][0] ->Fill (maxNHitsBeforeVtx);
1596 h_leadNHitsBeforeVtx_[
match][0] ->Fill (leadNHitsBeforeVtx);
1597 h_trailNHitsBeforeVtx_[
match][0] ->Fill (trailNHitsBeforeVtx);
1598 h_sumNHitsBeforeVtx_[
match][0] ->Fill (sumNHitsBeforeVtx);
1599 h_deltaExpectedHitsInner_[
match][0] ->Fill (deltaExpectedHitsInner);
1600 h_leadExpectedHitsInner_[
match][0] ->Fill (leadExpectedHitsInner);
1601 h_maxDlClosestHitToVtx_[
match][0] ->Fill (maxDlClosestHitToVtx);
1602 h_maxDlClosestHitToVtxSig_[
match][0] ->Fill (maxDlClosestHitToVtxSig);
1604 if ( matchConvSC ) {
1606 h_EoverPTracks_[
match][0] ->Fill (iMatchingSC->superCluster()->energy()/
sqrt(refittedMom.mag2()));
1607 h_convSCdPhi_[
match][0]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1609 h_convSCdEta_[
match][0]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1613 h2_photonPtRecVsPtSim_->Fill ( mcConvPt_,
sqrt(refittedMom.perp2()) );
1614 h_convPtRes_[0]->Fill (
sqrt(refittedMom.perp2())/mcConvPt_);
1617 if ( phoIsInBarrel ) {
1618 h_invMass_[
match][1] ->Fill(invM);
1619 h_vtxChi2Prob_[
match][1] ->Fill (chi2Prob);
1620 h_DPhiTracksAtVtx_[
match][1]->Fill( dPhiTracksAtVtx);
1623 h_lxybs_[
match][1] ->Fill (lxy);
1624 h_maxNHitsBeforeVtx_[
match][1] ->Fill (maxNHitsBeforeVtx);
1625 h_leadNHitsBeforeVtx_[
match][1] ->Fill (leadNHitsBeforeVtx);
1626 h_trailNHitsBeforeVtx_[
match][1] ->Fill (trailNHitsBeforeVtx);
1627 h_sumNHitsBeforeVtx_[
match][1] ->Fill (sumNHitsBeforeVtx);
1628 h_deltaExpectedHitsInner_[
match][1] ->Fill (deltaExpectedHitsInner);
1629 h_leadExpectedHitsInner_[
match][1] ->Fill (leadExpectedHitsInner);
1630 h_maxDlClosestHitToVtx_[
match][1] ->Fill (maxDlClosestHitToVtx);
1631 h_maxDlClosestHitToVtxSig_[
match][1] ->Fill (maxDlClosestHitToVtxSig);
1633 if ( matchConvSC ) {
1635 h_EoverPTracks_[
match][1] ->Fill (iMatchingSC->superCluster()->energy()/
sqrt(refittedMom.mag2()));
1636 h_convSCdPhi_[
match][1]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1638 h_convSCdEta_[
match][1]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1641 if ( match==1) h_convPtRes_[1]->Fill (
sqrt(refittedMom.perp2())/mcConvPt_);
1645 if ( phoIsInEndcap ) {
1646 h_invMass_[
match][2] ->Fill(invM);
1647 h_vtxChi2Prob_[
match][2] ->Fill (chi2Prob);
1648 h_DPhiTracksAtVtx_[
match][2]->Fill( dPhiTracksAtVtx);
1651 h_lxybs_[
match][2] ->Fill (lxy);
1652 h_maxNHitsBeforeVtx_[
match][2] ->Fill (maxNHitsBeforeVtx);
1653 h_leadNHitsBeforeVtx_[
match][2] ->Fill (leadNHitsBeforeVtx);
1654 h_trailNHitsBeforeVtx_[
match][2] ->Fill (trailNHitsBeforeVtx);
1655 h_sumNHitsBeforeVtx_[
match][2] ->Fill (sumNHitsBeforeVtx);
1656 h_deltaExpectedHitsInner_[
match][2] ->Fill (deltaExpectedHitsInner);
1657 h_leadExpectedHitsInner_[
match][2] ->Fill (leadExpectedHitsInner);
1658 h_maxDlClosestHitToVtx_[
match][2] ->Fill (maxDlClosestHitToVtx);
1659 h_maxDlClosestHitToVtxSig_[
match][2] ->Fill (maxDlClosestHitToVtxSig);
1661 if ( matchConvSC ) {
1663 h_EoverPTracks_[
match][2] ->Fill (iMatchingSC->superCluster()->energy()/
sqrt(refittedMom.mag2()));
1664 h_convSCdPhi_[
match][2]->Fill( iMatchingSC->superCluster()->position().phi() - refittedMom.phi() );
1666 h_convSCdEta_[
match][2]->Fill( iMatchingSC->superCluster()->position().eta() - ConvEta );
1668 if ( match==1) h_convPtRes_[2]->Fill (
sqrt(refittedMom.perp2())/mcConvPt_);
1690 p2_convVtxdRVsRZ_ ->Fill (mcConvZ_,mcConvR_, dR );
1691 p2_convVtxdZVsRZ_ ->Fill (mcConvZ_,mcConvR_, dZ );
1704 if ( phoIsInBarrel ) {
1711 if ( phoIsInEndcap ) {
1723 for (
unsigned int i=0;
i<tracks.size();
i++) {
1726 itAss= myAss.find( tfrb.get() );
1728 nHitsVsEta_[
match] ->Fill (mcEta_,
float(tracks[
i]->numberOfValidHits()) );
1729 nHitsVsR_[
match] ->Fill (mcConvR_,
float(tracks[
i]->numberOfValidHits()) );
1730 p_nHitsVsEta_[
match] ->Fill (mcEta_,
float(tracks[
i]->numberOfValidHits()) -0.0001);
1731 p_nHitsVsR_[
match] ->Fill (mcConvR_,
float(tracks[
i]->numberOfValidHits()) -0.0001);
1732 h_tkChi2_[
match] ->Fill (tracks[
i]->normalizedChi2() );
1733 h_tkChi2Large_[
match] ->Fill (tracks[
i]->normalizedChi2() );
1734 h2_Chi2VsEta_[
match] ->Fill( mcEta_, tracks[
i]->normalizedChi2() );
1735 h2_Chi2VsR_[
match] ->Fill( mcConvR_, tracks[
i]->normalizedChi2() );
1736 p_Chi2VsEta_[
match] ->Fill( mcEta_, tracks[
i]->normalizedChi2() );
1737 p_Chi2VsR_[
match] ->Fill( mcConvR_, tracks[
i]->normalizedChi2() );
1740 d0 = - tracks[
i]->dxy(the_pvtx.
position());
1742 d0 = tracks[
i]->d0();
1750 if ( itAss == myAss.end() )
continue;
1753 float simPt =
sqrt( ((*itAss).second)->momentum().perp2() );
1755 float ptres= recPt - simPt ;
1758 h2_PtRecVsPtSim_[0]->Fill ( simPt, recPt);
1759 h_TkPtPull_[0] ->Fill(ptres/pterror);
1760 h2_TkPtPull_[0] ->Fill(mcEta_, ptres/pterror);
1762 if ( phoIsInBarrel ) {
1763 h_TkPtPull_[1] ->Fill(ptres/pterror);
1764 h2_PtRecVsPtSim_[1]->Fill ( simPt, recPt);
1766 if ( phoIsInEndcap ) {
1767 h_TkPtPull_[2] ->Fill(ptres/pterror);
1768 h2_PtRecVsPtSim_[2]->Fill ( simPt, recPt);
1777 h_nConv_[0][0]->Fill (
float(nRecConv_));
1778 h_nConv_[1][0]->Fill (
float(nRecConvAss_));
1792 if ( ! isRunCentrally_ ) {
1793 dbe_->save(outputFileName);
1796 edm::LogInfo(
"TkConvValidator") <<
"Analyzed " << nEvt_ <<
"\n";
1823 stateAtVtx = propag.
propagate(myTSOS, *theBarrel_);
1825 stateAtVtx = propag.
propagate(myTSOS, *theDisk_);
1841 const float PI = 3.1415927;
1845 if(phi > PI) {phi = phi -
TWOPI;}
1846 if(phi < -PI) {phi = phi +
TWOPI;}
1857 const float PI = 3.1415927;
1860 const float R_ECAL = 136.5;
1867 float ZEcal = R_ECAL*sinh(EtaParticle)+Zvertex;
1869 if(ZEcal != 0.0) Theta = atan(R_ECAL/ZEcal);
1870 if(Theta<0.0) Theta = Theta+
PI ;
1873 if( fabs(ETA) > etaBarrelEndcap )
1876 if(EtaParticle<0.0 ) Zend = -Zend ;
1877 float Zlen = Zend - Zvertex ;
1878 float RR = Zlen/sinh(EtaParticle);
1879 Theta = atan(RR/Zend);
1880 if(Theta<0.0) Theta = Theta+
PI ;
1881 ETA = -
log(
tan(0.5*Theta));
const reco::Vertex & conversionVertex() const
returns the reco conversion vertex
constexpr double deltaPhi(double phi1, double phi2)
value_type const * get() const
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const_iterator end() const
last iterator over the map (read only)
MonitorElement * bookProfile(Args &&...args)
static HepMC::IO_HEPEVT conv
bool getByToken(EDGetToken token, Handle< PROD > &result) const
bool quality(ConversionQuality q) const
double y() const
y coordinate
math::XYZVector recalculateMomentumAtFittedVertex(const MagneticField &mf, const TrackerGeometry &trackerGeom, const edm::RefToBase< reco::Track > &tk, const reco::Vertex &vtx)
bool isValid() const
Tells whether the vertex is valid.
bool empty() const
return true if empty
const std::vector< Measurement1DFloat > & dlClosestHitToVtx() const
Vector of signed decay length with uncertainty from nearest hit on track to the conversion vtx positi...
const_iterator find(const key_type &k) const
find element with specified reference key
double zOfPrimaryVertexFromTracks(const math::XYZPoint &myBeamSpot=math::XYZPoint()) const
double distOfMinimumApproach() const
double pairCotThetaSeparation() const
Delta cot(Theta) where Theta is the angle in the (y,z) plane between the two tracks. Original tracks are used.
std::vector< Vertex > VertexCollection
collection of Vertex objects
key_type key() const
Accessor for product key.
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
const std::vector< Track > & refittedTracks() const
Returns the container of refitted tracks.
double pairInvariantMass() const
if nTracks=2 returns the pair invariant mass. Original tracks are used here
const Point & position() const
position
math::XYZVectorF refittedPairMomentum() const
Conversion tracks momentum from the tracks refitted with vertex constraint.
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
TrackAlgorithm algo() const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void endRun(edm::Run const &r, edm::EventSetup const &es) override
float etaTransformation(float a, float b)
float phiNormalization(float &a)
MonitorElement * bookProfile2D(Args &&...args)
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
double pt() const
track transverse momentum
~TkConvValidator() override
TkConvValidator(const edm::ParameterSet &)
MonitorElement * book1D(Args &&...args)
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
double chi2() const
chi-squares
float ChiSquaredProbability(double chiSquared, double nrDOF)
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float > > XYZVectorF
spatial vector with cartesian internal representation
double x() const
x coordinate
uint8_t nSharedHits() const
number of shared hits btw the two track
void setCurrentFolder(const std::string &fullpath)
T const * product() const
MonitorElement * book2D(Args &&...args)
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
reco::RecoToSimCollection associateRecoToSim(const edm::Handle< edm::View< reco::Track > > &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
compare reco to sim the handle of reco::Track and TrackingParticle collections
XYZVectorD XYZVector
spatial vector with cartesian internal representation
std::vector< Photon > PhotonCollection
collectin of Photon objects
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
static const float etaBarrelEndcap
int numberOfLostHits(HitCategory category) const
static const float Z_Endcap
GlobalVector globalMomentum() const
static float computeRadius(Bounds const &bounds)
void push_back(const RefToBase< T > &)
const std::vector< uint8_t > & nHitsBeforeVtx() const
Vector of the number of hits before the vertex along each track trajector.
double y0() const
y coordinate
static const float R_ECAL
void analyze(const edm::Event &, const edm::EventSetup &) override
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
reco::SimToRecoCollection associateSimToReco(const edm::Handle< edm::View< reco::Track > > &tCH, const edm::Handle< TrackingParticleCollection > &tPCH) const
compare reco to sim the handle of reco::Track and TrackingParticle collections
T const * product() const
double dPhiTracksAtVtx() const
std::vector< edm::RefToBase< reco::Track > > const & tracks() const
vector of track to base references
double x0() const
x coordinate
void dqmBeginRun(edm::Run const &r, edm::EventSetup const &theEventSetup) override