27 #include <Math/GenVector/VectorUtil.h>
36 #include "TDirectory.h"
166 std::map<std::pair<unsigned int, std::string>,
int>
l1AlgoMap_;
308 : trackerHitAssociatorConfig_(consumesCollector()),
309 doMC_(iConfig.getUntrackedParameter<
bool>(
"doMC",
false)),
310 writeAllTracks_(iConfig.getUntrackedParameter<
bool>(
"writeAllTracks",
false)),
311 myverbose_(iConfig.getUntrackedParameter<
int>(
"verbosity", 5)),
312 pvTracksPtMin_(iConfig.getUntrackedParameter<double>(
"pvTracksPtMin", 1.0)),
313 debugTrks_(iConfig.getUntrackedParameter<
int>(
"debugTracks", 0)),
314 printTrkHitPattern_(iConfig.getUntrackedParameter<
bool>(
"printTrkHitPattern",
false)),
315 minTrackP_(iConfig.getUntrackedParameter<double>(
"minTrackP", 1.0)),
316 maxTrackEta_(iConfig.getUntrackedParameter<double>(
"maxTrackEta", 5.0)),
317 debugL1Info_(iConfig.getUntrackedParameter<
bool>(
"debugL1Info",
false)),
318 L1TriggerAlgoInfo_(iConfig.getUntrackedParameter<
bool>(
"l1TriggerAlgoInfo",
false)),
319 tMinE_(iConfig.getUntrackedParameter<double>(
"timeMinCutECAL", -500.)),
320 tMaxE_(iConfig.getUntrackedParameter<double>(
"timeMaxCutECAL", 500.)),
321 tMinH_(iConfig.getUntrackedParameter<double>(
"timeMinCutHCAL", -500.)),
322 tMaxH_(iConfig.getUntrackedParameter<double>(
"timeMaxCutHCAL", 500.)),
323 t_L1AlgoNames(nullptr),
324 t_L1PreScale(nullptr),
325 t_L1CenJetPt(nullptr),
326 t_L1CenJetEta(nullptr),
327 t_L1CenJetPhi(nullptr),
328 t_L1FwdJetPt(nullptr),
329 t_L1FwdJetEta(nullptr),
330 t_L1FwdJetPhi(nullptr),
331 t_L1TauJetPt(nullptr),
332 t_L1TauJetEta(nullptr),
333 t_L1TauJetPhi(nullptr),
335 t_L1MuonEta(nullptr),
336 t_L1MuonPhi(nullptr),
337 t_L1IsoEMPt(nullptr),
338 t_L1IsoEMEta(nullptr),
339 t_L1IsoEMPhi(nullptr),
340 t_L1NonIsoEMPt(nullptr),
341 t_L1NonIsoEMEta(nullptr),
342 t_L1NonIsoEMPhi(nullptr),
349 t_PVTracksSumPt(nullptr),
350 t_PVTracksSumPtWt(nullptr),
351 t_PVTracksSumPtHP(nullptr),
352 t_PVTracksSumPtHPWt(nullptr),
353 t_PVisValid(nullptr),
354 t_PVNTracks(nullptr),
355 t_PVNTracksWt(nullptr),
357 t_PVNTracksHP(nullptr),
358 t_PVNTracksHPWt(nullptr),
362 t_nTrksJetCalo(nullptr),
363 t_nTrksJetVtx(nullptr),
364 t_trackPAll(nullptr),
365 t_trackEtaAll(nullptr),
366 t_trackPhiAll(nullptr),
367 t_trackPdgIdAll(nullptr),
368 t_trackPtAll(nullptr),
369 t_trackDxyAll(nullptr),
370 t_trackDzAll(nullptr),
371 t_trackDxyPVAll(nullptr),
372 t_trackDzPVAll(nullptr),
373 t_trackChiSqAll(nullptr),
378 t_trackEcalEta(nullptr),
379 t_trackEcalPhi(nullptr),
380 t_trackHcalEta(nullptr),
381 t_trackHcalPhi(nullptr),
383 t_trackDxyBS(nullptr),
385 t_trackDzBS(nullptr),
386 t_trackDxyPV(nullptr),
387 t_trackDzPV(nullptr),
388 t_trackChiSq(nullptr),
389 t_trackPVIdx(nullptr),
390 t_NLayersCrossed(nullptr),
391 t_trackNOuterHits(nullptr),
392 t_trackHitsTOB(nullptr),
393 t_trackHitsTEC(nullptr),
394 t_trackHitInMissTOB(nullptr),
395 t_trackHitInMissTEC(nullptr),
396 t_trackHitInMissTIB(nullptr),
397 t_trackHitInMissTID(nullptr),
398 t_trackHitInMissTIBTID(nullptr),
399 t_trackHitOutMissTOB(nullptr),
400 t_trackHitOutMissTEC(nullptr),
401 t_trackHitOutMissTIB(nullptr),
402 t_trackHitOutMissTID(nullptr),
403 t_trackHitOutMissTOBTEC(nullptr),
404 t_trackHitInMeasTOB(nullptr),
405 t_trackHitInMeasTEC(nullptr),
406 t_trackHitInMeasTIB(nullptr),
407 t_trackHitInMeasTID(nullptr),
408 t_trackHitOutMeasTOB(nullptr),
409 t_trackHitOutMeasTEC(nullptr),
410 t_trackHitOutMeasTIB(nullptr),
411 t_trackHitOutMeasTID(nullptr),
412 t_trackOutPosOutHitDr(nullptr),
414 t_maxNearP31x31(nullptr),
415 t_maxNearP21x21(nullptr),
416 t_ecalSpike11x11(nullptr),
421 t_e7x7_10Sig(nullptr),
422 t_e9x9_10Sig(nullptr),
423 t_e11x11_10Sig(nullptr),
424 t_e15x15_10Sig(nullptr),
425 t_e7x7_15Sig(nullptr),
426 t_e9x9_15Sig(nullptr),
427 t_e11x11_15Sig(nullptr),
428 t_e15x15_15Sig(nullptr),
429 t_e7x7_20Sig(nullptr),
430 t_e9x9_20Sig(nullptr),
431 t_e11x11_20Sig(nullptr),
432 t_e15x15_20Sig(nullptr),
433 t_e7x7_25Sig(nullptr),
434 t_e9x9_25Sig(nullptr),
435 t_e11x11_25Sig(nullptr),
436 t_e15x15_25Sig(nullptr),
437 t_e7x7_30Sig(nullptr),
438 t_e9x9_30Sig(nullptr),
439 t_e11x11_30Sig(nullptr),
440 t_e15x15_30Sig(nullptr),
441 t_esimPdgId(nullptr),
442 t_simTrackP(nullptr),
443 t_trkEcalEne(nullptr),
446 t_esim11x11(nullptr),
447 t_esim15x15(nullptr),
448 t_esim7x7Matched(nullptr),
449 t_esim9x9Matched(nullptr),
450 t_esim11x11Matched(nullptr),
451 t_esim15x15Matched(nullptr),
452 t_esim7x7Rest(nullptr),
453 t_esim9x9Rest(nullptr),
454 t_esim11x11Rest(nullptr),
455 t_esim15x15Rest(nullptr),
456 t_esim7x7Photon(nullptr),
457 t_esim9x9Photon(nullptr),
458 t_esim11x11Photon(nullptr),
459 t_esim15x15Photon(nullptr),
460 t_esim7x7NeutHad(nullptr),
461 t_esim9x9NeutHad(nullptr),
462 t_esim11x11NeutHad(nullptr),
463 t_esim15x15NeutHad(nullptr),
464 t_esim7x7CharHad(nullptr),
465 t_esim9x9CharHad(nullptr),
466 t_esim11x11CharHad(nullptr),
467 t_esim15x15CharHad(nullptr),
468 t_maxNearHcalP3x3(nullptr),
469 t_maxNearHcalP5x5(nullptr),
470 t_maxNearHcalP7x7(nullptr),
478 t_trkHcalEne(nullptr),
482 t_hsim3x3Matched(nullptr),
483 t_hsim5x5Matched(nullptr),
484 t_hsim7x7Matched(nullptr),
485 t_hsim3x3Rest(nullptr),
486 t_hsim5x5Rest(nullptr),
487 t_hsim7x7Rest(nullptr),
488 t_hsim3x3Photon(nullptr),
489 t_hsim5x5Photon(nullptr),
490 t_hsim7x7Photon(nullptr),
491 t_hsim3x3NeutHad(nullptr),
492 t_hsim5x5NeutHad(nullptr),
493 t_hsim7x7NeutHad(nullptr),
494 t_hsim3x3CharHad(nullptr),
495 t_hsim5x5CharHad(nullptr),
496 t_hsim7x7CharHad(nullptr) {
519 tok_L1extTauJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraTauJetSource_);
520 tok_L1extCenJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraCenJetSource_);
521 tok_L1extFwdJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraFwdJetSource_);
522 tok_L1extMu_ = consumes<l1extra::L1MuonParticleCollection>(L1extraMuonSource_);
523 tok_L1extIsoEm_ = consumes<l1extra::L1EmParticleCollection>(L1extraIsoEmSource_);
524 tok_L1extNoIsoEm_ = consumes<l1extra::L1EmParticleCollection>(L1extraNonIsoEmSource_);
525 tok_jets_ = consumes<reco::CaloJetCollection>(JetSrc_);
526 tok_hbhe_ = consumes<HBHERecHitCollection>(HBHERecHitSource_);
542 <<
" doMC " <<
doMC_ <<
"\t myverbose " <<
myverbose_ <<
"\t minTrackP "
549 tok_geom_ = esConsumes<CaloGeometry, CaloGeometryRecord>();
551 tok_topo_ = esConsumes<HcalTopology, HcalRecNumberingRecord>();
552 tok_magField_ = esConsumes<MagneticField, IdealMagneticFieldRecord>();
554 tok_sevlv_ = esConsumes<EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd>();
555 tok_htmap_ = esConsumes<EcalTrigTowerConstituentsMap, IdealGeometryRecord>();
737 desc.addUntracked<
bool>(
"doMC",
false);
738 desc.addUntracked<
bool>(
"writeAllTracks",
false);
739 desc.addUntracked<
int>(
"verbosity", 1);
740 desc.addUntracked<
double>(
"pvTracksPtMin", 0.200);
741 desc.addUntracked<
int>(
"debugTracks", 0);
742 desc.addUntracked<
bool>(
"printTrkHitPattern",
true);
743 desc.addUntracked<
double>(
"minTrackP", 1.0);
744 desc.addUntracked<
double>(
"maxTrackEta", 2.6);
745 desc.addUntracked<
bool>(
"debugL1Info",
false);
746 desc.addUntracked<
bool>(
"l1TriggerAlgoInfo",
false);
758 desc.addUntracked<
double>(
"maxNearTrackPT", 1.0);
759 desc.addUntracked<
double>(
"timeMinCutECAL", -500.0);
760 desc.addUntracked<
double>(
"timeMaxCutECAL", 500.0);
761 desc.addUntracked<
double>(
"timeMinCutHCAL", -500.0);
762 desc.addUntracked<
double>(
"timeMaxCutHCAL", 500.0);
763 descriptions.
add(
"isolatedTracksNxN",
desc);
767 bool haveIsoTrack =
false;
784 edm::LogVerbatim(
"IsoTrack") <<
"Number of Tracks " << trkCollection->size();
795 const bool l1Conf =
m_l1GtUtils->availableL1Configuration(iErrorCode, l1ConfCode);
798 <<
"\nL1 configuration code:" << l1ConfCode <<
"\nNo valid L1 trigger configuration available."
799 <<
"\nSee text above for error code interpretation"
800 <<
"\nNo return here, in order to test each method, protected against configuration error.";
810 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
812 int algBitNumber = (itAlgo->second).algoBitNumber();
813 l1AlgoMap_.insert(std::pair<std::pair<unsigned int, std::string>,
int>(
814 std::pair<unsigned int, std::string>(algBitNumber, algName), 0));
816 std::map<std::pair<unsigned int, std::string>,
int>::iterator itr;
818 edm::LogVerbatim(
"IsoTrack") <<
" ********** " << (itr->first).
first <<
" " << (itr->first).second <<
" "
823 std::vector<int> algbits;
824 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
826 int algBitNumber = (itAlgo->second).algoBitNumber();
832 l1AlgoMap_[std::pair<unsigned int, std::string>(algBitNumber, algName)] += 1;
837 algbits.push_back(algBitNumber);
846 for (
int i = 0;
i < 128; ++
i) {
854 l1extra::L1JetParticleCollection::const_iterator itr;
856 for (itr = l1TauHandle->begin(), iL1Obj = 0; itr != l1TauHandle->end(); ++itr, iL1Obj++) {
863 edm::LogVerbatim(
"IsoTrack") <<
"tauJ p/pt " << itr->momentum() <<
" " << itr->pt() <<
" eta/phi "
864 << itr->eta() <<
" " << itr->phi();
871 for (itr = l1CenJetHandle->begin(), iL1Obj = 0; itr != l1CenJetHandle->end(); ++itr, iL1Obj++) {
878 edm::LogVerbatim(
"IsoTrack") <<
"cenJ p/pt " << itr->momentum() <<
" " << itr->pt() <<
" eta/phi "
879 << itr->eta() <<
" " << itr->phi();
886 for (itr = l1FwdJetHandle->begin(), iL1Obj = 0; itr != l1FwdJetHandle->end(); ++itr, iL1Obj++) {
893 edm::LogVerbatim(
"IsoTrack") <<
"fwdJ p/pt " << itr->momentum() <<
" " << itr->pt() <<
" eta/phi "
894 << itr->eta() <<
" " << itr->phi();
899 l1extra::L1EmParticleCollection::const_iterator itrEm;
902 for (itrEm = l1IsoEmHandle->begin(), iL1Obj = 0; itrEm != l1IsoEmHandle->end(); ++itrEm, iL1Obj++) {
909 edm::LogVerbatim(
"IsoTrack") <<
"isoEm p/pt " << itrEm->momentum() <<
" " << itrEm->pt() <<
" eta/phi "
910 << itrEm->eta() <<
" " << itrEm->phi();
917 for (itrEm = l1NonIsoEmHandle->begin(), iL1Obj = 0; itrEm != l1NonIsoEmHandle->end(); ++itrEm, iL1Obj++) {
924 edm::LogVerbatim(
"IsoTrack") <<
"nonIsoEm p/pt " << itrEm->momentum() <<
" " << itrEm->pt() <<
" eta/phi "
925 << itrEm->eta() <<
" " << itrEm->phi();
930 l1extra::L1MuonParticleCollection::const_iterator itrMu;
933 for (itrMu = l1MuHandle->begin(), iL1Obj = 0; itrMu != l1MuHandle->end(); ++itrMu, iL1Obj++) {
940 edm::LogVerbatim(
"IsoTrack") <<
"l1muon p/pt " << itrMu->momentum() <<
" " << itrMu->pt() <<
" eta/phi "
941 << itrMu->eta() <<
" " << itrMu->phi();
951 std::vector<reco::Track> svTracks;
953 double sumPtMax = -1.0;
954 for (
unsigned int ind = 0; ind < recVtxs->size(); ind++) {
955 if (!((*recVtxs)[ind].isFake())) {
956 double vtxTrkSumPt = 0.0, vtxTrkSumPtWt = 0.0;
958 double vtxTrkSumPtHP = 0.0, vtxTrkSumPtHPWt = 0.0;
959 int vtxTrkNHP = 0, vtxTrkNHPWt = 0;
963 for (vtxTrack = (*recVtxs)[ind].tracks_begin(); vtxTrack != (*recVtxs)[ind].tracks_end(); vtxTrack++) {
967 bool trkQuality = (*vtxTrack)->quality(trackQuality_);
969 vtxTrkSumPt += (*vtxTrack)->pt();
971 vtxTrkSumPt += (*vtxTrack)->pt();
973 vtxTrkSumPtHP += (*vtxTrack)->pt();
977 double weight = (*recVtxs)[ind].trackWeight(*vtxTrack);
980 vtxTrkSumPtWt += (*vtxTrack)->pt();
983 vtxTrkSumPtHPWt += (*vtxTrack)->pt();
989 if (vtxTrkSumPt > sumPtMax) {
990 sumPtMax = vtxTrkSumPt;
991 leadPV =
math::XYZPoint((*recVtxs)[ind].
x(), (*recVtxs)[ind].
y(), (*recVtxs)[ind].
z());
994 t_PVx->push_back((*recVtxs)[ind].
x());
995 t_PVy->push_back((*recVtxs)[ind].
y());
996 t_PVz->push_back((*recVtxs)[ind].
z());
998 t_PVNTracks->push_back((*recVtxs)[ind].tracksSize());
1010 edm::LogVerbatim(
"IsoTrack") <<
"PV " << ind <<
" isValid " << (*recVtxs)[ind].isValid() <<
" isFake "
1011 << (*recVtxs)[ind].isFake() <<
" hasRefittedTracks() " << ind <<
" "
1012 << (*recVtxs)[ind].hasRefittedTracks() <<
" refittedTrksSize "
1013 << (*recVtxs)[ind].refittedTracks().size() <<
" tracksSize() "
1014 << (*recVtxs)[ind].tracksSize() <<
" sumPt " << vtxTrkSumPt;
1033 for (
unsigned int ijet = 0; ijet < (*jets).size(); ijet++) {
1062 if (!
hbhe.isValid()) {
1093 std::unique_ptr<TrackerHitAssociator> associate;
1106 std::vector<spr::propagatedTrackID> trkCaloDets;
1108 std::vector<spr::propagatedTrackID>::const_iterator trkDetItr;
1111 for (trkDetItr = trkCaloDets.begin(); trkDetItr != trkCaloDets.end(); trkDetItr++) {
1112 edm::LogVerbatim(
"IsoTrack") << trkDetItr->trkItr->p() <<
" " << trkDetItr->trkItr->eta() <<
" "
1113 << trkDetItr->okECAL <<
" " << trkDetItr->okHCAL;
1114 if (trkDetItr->okECAL) {
1115 if (trkDetItr->detIdECAL.subdetId() ==
EcalBarrel)
1120 if (trkDetItr->okHCAL)
1126 for (trkDetItr = trkCaloDets.begin(),
nTracks = 0; trkDetItr != trkCaloDets.end(); trkDetItr++,
nTracks++) {
1127 const reco::Track *pTrack = &(*(trkDetItr->trkItr));
1131 for (
unsigned int ind = 0; ind < recVtxs->size(); ind++) {
1132 if (!((*recVtxs)[ind].isFake())) {
1134 for (vtxTrack = (*recVtxs)[ind].tracks_begin(); vtxTrack != (*recVtxs)[ind].tracks_end(); vtxTrack++) {
1136 if (pTrack == pvtxTrack.
get()) {
1140 if (pTrack->
pt() > 1.0) {
1141 edm::LogVerbatim(
"IsoTrack") <<
"Debug the track association with vertex ";
1144 <<
" trkVtxIndex " << nvtxTracks <<
" vtx " << ind <<
" pt " << pTrack->
pt() <<
" eta "
1145 << pTrack->
eta() <<
" " << pTrack->
pt() - pvtxTrack->
pt() <<
" "
1146 << pTrack->
eta() - pvtxTrack->
eta();
1159 bool ifGood = pTrack->
quality(trackQuality_);
1160 double pt1 = pTrack->
pt();
1161 double p1 = pTrack->
p();
1163 double phi1 = pTrack->
momentum().phi();
1164 double etaEcal1 = trkDetItr->etaECAL;
1165 double phiEcal1 = trkDetItr->phiECAL;
1166 double etaHcal1 = trkDetItr->etaHCAL;
1167 double phiHcal1 = trkDetItr->phiHCAL;
1168 double dxy1 = pTrack->
dxy();
1169 double dz1 = pTrack->
dz();
1171 double dxybs1 = beamSpotH.
isValid() ? pTrack->
dxy(bspot) : pTrack->
dxy();
1172 double dzbs1 = beamSpotH.
isValid() ? pTrack->
dz(bspot) : pTrack->
dz();
1173 double dxypv1 = pTrack->
dxy();
1174 double dzpv1 = pTrack->
dz();
1175 if (pVtxTkId >= 0) {
1177 math::XYZPoint((*recVtxs)[pVtxTkId].
x(), (*recVtxs)[pVtxTkId].
y(), (*recVtxs)[pVtxTkId].
z());
1178 dxypv1 = pTrack->
dxy(thisTkPV);
1179 dzpv1 = pTrack->
dz(thisTkPV);
1189 if (ifGood && nLayersCrossed > 7) {
1213 edm::SimTrackContainer::const_iterator matchedSimTrkAll =
1220 double maxNearP31x31 = 999.0, maxNearP25x25 = 999.0, maxNearP21x21 = 999.0, maxNearP15x15 = 999.0;
1226 int iTrkEtaBin = -1, iTrkMomBin = -1;
1231 for (
unsigned int ipt = 0; ipt <
NPBins; ipt++) {
1235 if (iTrkMomBin >= 0 && iTrkEtaBin >= 0) {
1241 if (maxNearP31x31 < 0.0 && nLayersCrossed > 7 && nOuterHits > 4) {
1251 if (maxNearP31x31 < 1.0) {
1252 haveIsoTrack =
true;
1255 double simTrackP = -1;
1257 edm::SimTrackContainer::const_iterator matchedSimTrk =
1259 if (matchedSimTrk != SimTk->end())
1260 simTrackP = matchedSimTrk->momentum().P();
1264 std::pair<double, bool> e7x7P, e9x9P, e11x11P, e15x15P;
1265 std::pair<double, bool> e7x7_10SigP, e9x9_10SigP, e11x11_10SigP, e15x15_10SigP;
1266 std::pair<double, bool> e7x7_15SigP, e9x9_15SigP, e11x11_15SigP, e15x15_15SigP;
1267 std::pair<double, bool> e7x7_20SigP, e9x9_20SigP, e11x11_20SigP, e15x15_20SigP;
1268 std::pair<double, bool> e7x7_25SigP, e9x9_25SigP, e11x11_25SigP, e15x15_25SigP;
1269 std::pair<double, bool> e7x7_30SigP, e9x9_30SigP, e11x11_30SigP, e15x15_30SigP;
1272 spr::caloSimInfo simInfo11x11, simInfo13x13, simInfo15x15, simInfo21x21, simInfo25x25, simInfo31x31;
1273 double trkEcalEne = 0;
1275 const DetId isoCell = trkDetItr->detIdECAL;
1277 barrelRecHitsHandle,
1278 endcapRecHitsHandle,
1290 barrelRecHitsHandle,
1291 endcapRecHitsHandle,
1303 barrelRecHitsHandle,
1304 endcapRecHitsHandle,
1316 barrelRecHitsHandle,
1317 endcapRecHitsHandle,
1330 barrelRecHitsHandle,
1331 endcapRecHitsHandle,
1343 barrelRecHitsHandle,
1344 endcapRecHitsHandle,
1356 barrelRecHitsHandle,
1357 endcapRecHitsHandle,
1369 barrelRecHitsHandle,
1370 endcapRecHitsHandle,
1383 barrelRecHitsHandle,
1384 endcapRecHitsHandle,
1397 barrelRecHitsHandle,
1398 endcapRecHitsHandle,
1411 barrelRecHitsHandle,
1412 endcapRecHitsHandle,
1425 barrelRecHitsHandle,
1426 endcapRecHitsHandle,
1441 barrelRecHitsHandle,
1442 endcapRecHitsHandle,
1454 barrelRecHitsHandle,
1455 endcapRecHitsHandle,
1467 barrelRecHitsHandle,
1468 endcapRecHitsHandle,
1480 barrelRecHitsHandle,
1481 endcapRecHitsHandle,
1494 barrelRecHitsHandle,
1495 endcapRecHitsHandle,
1507 barrelRecHitsHandle,
1508 endcapRecHitsHandle,
1520 barrelRecHitsHandle,
1521 endcapRecHitsHandle,
1533 barrelRecHitsHandle,
1534 endcapRecHitsHandle,
1547 barrelRecHitsHandle,
1548 endcapRecHitsHandle,
1560 barrelRecHitsHandle,
1561 endcapRecHitsHandle,
1573 barrelRecHitsHandle,
1574 endcapRecHitsHandle,
1586 barrelRecHitsHandle,
1587 endcapRecHitsHandle,
1600 edm::LogVerbatim(
"IsoTrack") <<
"e7x7 " << e7x7P.first <<
" e9x9 " << e9x9P.first <<
" e11x11 "
1601 << e11x11P.first <<
" e15x15 " << e15x15P.first;
1602 edm::LogVerbatim(
"IsoTrack") <<
"e7x7_10Sig " << e7x7_10SigP.first <<
" e11x11_10Sig " << e11x11_10SigP.first
1603 <<
" e15x15_10Sig " << e15x15_10SigP.first;
1609 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 1, 1, simInfo3x3);
1611 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 2, 2, simInfo5x5);
1613 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 3, 3, simInfo7x7);
1615 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 4, 4, simInfo9x9);
1702 << simInfo3x3.
eMatched <<
" eRest " << simInfo3x3.
eRest <<
" eGamma "
1706 << simInfo5x5.
eMatched <<
" eRest " << simInfo5x5.
eRest <<
" eGamma "
1710 << simInfo7x7.
eMatched <<
" eRest " << simInfo7x7.
eRest <<
" eGamma "
1714 << simInfo9x9.
eMatched <<
" eRest " << simInfo9x9.
eRest <<
" eGamma "
1718 << simInfo11x11.
eMatched <<
" eRest " << simInfo11x11.
eRest <<
" eGamma "
1722 << simInfo15x15.
eMatched <<
" eRest " << simInfo15x15.
eRest <<
" eGamma "
1726 << simInfo31x31.
eMatched <<
" eRest " << simInfo31x31.
eRest <<
" eGamma "
1734 double hcalScale = 1.0;
1741 double maxNearHcalP3x3 = -1, maxNearHcalP5x5 = -1, maxNearHcalP7x7 = -1;
1746 double h3x3 = 0, h5x5 = 0, h7x7 = 0;
1747 double h3x3Sig = 0, h5x5Sig = 0, h7x7Sig = 0;
1748 double trkHcalEne = 0;
1751 if (trkDetItr->okHCAL) {
1752 const DetId ClosestCell(trkDetItr->detIdHCAL);
1755 theHBHETopology, ClosestCell,
hbhe, 1, 1,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1757 theHBHETopology, ClosestCell,
hbhe, 2, 2,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1759 theHBHETopology, ClosestCell,
hbhe, 3, 3,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1761 theHBHETopology, ClosestCell,
hbhe, 1, 1,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1763 theHBHETopology, ClosestCell,
hbhe, 2, 2,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1765 theHBHETopology, ClosestCell,
hbhe, 3, 3,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1768 edm::LogVerbatim(
"IsoTrack") <<
"HCAL 3x3 " << h3x3 <<
" " << h3x3Sig <<
" 5x5 " << h5x5 <<
" " << h5x5Sig
1769 <<
" 7x7 " << h7x7 <<
" " << h7x7Sig;
1774 iEvent, theHBHETopology, ClosestCell, geo, pcalohh, SimTk, SimVtx, pTrack, *associate, 1, 1, hsimInfo3x3);
1776 iEvent, theHBHETopology, ClosestCell, geo, pcalohh, SimTk, SimVtx, pTrack, *associate, 2, 2, hsimInfo5x5);
1796 <<
"hsimInfo3x3: eTotal " << hsimInfo3x3.
eTotal <<
" eMatched " << hsimInfo3x3.
eMatched <<
" eRest "
1800 <<
"hsimInfo5x5: eTotal " << hsimInfo5x5.
eTotal <<
" eMatched " << hsimInfo5x5.
eMatched <<
" eRest "
1804 <<
"hsimInfo7x7: eTotal " << hsimInfo7x7.
eTotal <<
" eMatched " << hsimInfo7x7.
eMatched <<
" eRest "
1814 std::vector<std::pair<DetId, double> > v7x7 =
1818 for (
unsigned int iv = 0;
iv < v7x7.size();
iv++) {
1819 sumv += v7x7[
iv].second;
1821 edm::LogVerbatim(
"IsoTrack") <<
"h7x7 " << h7x7 <<
" v7x7 " << sumv <<
" in " << v7x7.size();
1822 for (
unsigned int iv = 0;
iv < v7x7.size();
iv++) {
1825 <<
id <<
" Energy " << v7x7[
iv].second;
1839 double trackOutPosOutHitDr =
diff.R();
1840 double trackL = point2_TK0.second;
1842 edm::LogVerbatim(
"IsoTrack") <<
" propagted " << point2_TK0.first <<
" " << point2_TK0.first.eta() <<
" "
1843 << point2_TK0.first.phi();
1847 <<
diff.R() / point2_TK0.second;
1850 for (
unsigned int ind = 0; ind < recVtxs->size(); ind++) {
1851 if (!((*recVtxs)[ind].isFake())) {
1853 if (
reco::deltaR(
eta1, phi1, (*vtxTrack)->eta(), (*vtxTrack)->phi()) < 0.01)
1911 t_e7x7->push_back(e7x7P.first);
1912 t_e9x9->push_back(e9x9P.first);
1913 t_e11x11->push_back(e11x11P.first);
1914 t_e15x15->push_back(e15x15P.first);
2026 double tempgen_TH[
NPBins + 1] = {
2027 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 9.0, 11.0, 15.0, 20.0, 30.0, 50.0, 75.0, 100.0};
2029 for (
unsigned int i = 0;
i <
NPBins + 1;
i++)
2032 double tempgen_Eta[
NEtaBins + 1] = {0.0, 1.131, 1.653, 2.172};
2043 std::map<std::pair<unsigned int, std::string>,
int>::iterator itr;
2045 edm::LogVerbatim(
"IsoTrack") <<
" ****endjob**** " << (itr->first).
first <<
" " << (itr->first).second <<
" "
2047 int ibin = (itr->first).
first;
2048 TString
name((itr->first).second);
2072 for (
int i = 0;
i < 128;
i++)
2261 char hname[100], htit[100];
2267 double lowEta = -5.0, highEta = 5.0;
2271 for (
unsigned int ipt = 0; ipt <
NPBins; ipt++) {
2272 double lowP = 0.0, highP = 300.0;
2275 sprintf(hname,
"h_maxNearP31x31_ptBin%i_etaBin%i", ipt,
ieta);
2276 sprintf(htit,
"maxNearP in 31x31 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2279 sprintf(hname,
"h_maxNearP25x25_ptBin%i_etaBin%i", ipt,
ieta);
2280 sprintf(htit,
"maxNearP in 25x25 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2283 sprintf(hname,
"h_maxNearP21x21_ptBin%i_etaBin%i", ipt,
ieta);
2284 sprintf(htit,
"maxNearP in 21x21 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2287 sprintf(hname,
"h_maxNearP15x15_ptBin%i_etaBin%i", ipt,
ieta);
2288 sprintf(htit,
"maxNearP in 15x15 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2294 h_L1AlgoNames = fs->
make<TH1I>(
"h_L1AlgoNames",
"h_L1AlgoNames:Bin Labels", 128, -0.5, 127.5);
2298 h_PVTracksWt = fs->
make<TH1F>(
"h_PVTracksWt",
"h_PVTracksWt", 600, -0.1, 1.1);
2300 h_nTracks = fs->
make<TH1F>(
"h_nTracks",
"h_nTracks", 1000, -0.5, 999.5);
2302 sprintf(hname,
"h_recEtaPt_0");
2303 sprintf(htit,
"h_recEtaPt (all tracks Eta vs pT)");
2306 sprintf(hname,
"h_recEtaP_0");
2307 sprintf(htit,
"h_recEtaP (all tracks Eta vs pT)");
2312 h_recEta_0 = fs->
make<TH1F>(
"h_recEta_0",
"Eta (all tracks)", 60, -3.0, 3.0);
2313 h_recPhi_0 = fs->
make<TH1F>(
"h_recPhi_0",
"Phi (all tracks)", 100, -3.2, 3.2);
2315 sprintf(hname,
"h_recEtaPt_1");
2316 sprintf(htit,
"h_recEtaPt (all good tracks Eta vs pT)");
2319 sprintf(hname,
"h_recEtaP_1");
2320 sprintf(htit,
"h_recEtaP (all good tracks Eta vs pT)");
2325 h_recEta_1 = fs->
make<TH1F>(
"h_recEta_1",
"Eta (all good tracks)", 60, -3.0, 3.0);
2326 h_recPhi_1 = fs->
make<TH1F>(
"h_recPhi_1",
"Phi (all good tracks)", 100, -3.2, 3.2);
2328 sprintf(hname,
"h_recEtaPt_2");
2329 sprintf(htit,
"h_recEtaPt (charge isolation Eta vs pT)");
2332 sprintf(hname,
"h_recEtaP_2");
2333 sprintf(htit,
"h_recEtaP (charge isolation Eta vs pT)");
2338 h_recEta_2 = fs->
make<TH1F>(
"h_recEta_2",
"Eta (charge isolation)", 60, -3.0, 3.0);
2339 h_recPhi_2 = fs->
make<TH1F>(
"h_recPhi_2",
"Phi (charge isolation)", 100, -3.2, 3.2);
2341 tree_ = fs->
make<TTree>(
"tree",
"tree");
2342 tree_->SetAutoSave(10000);
2349 t_PVx =
new std::vector<double>();
2350 t_PVy =
new std::vector<double>();
2351 t_PVz =
new std::vector<double>();
2363 tree_->Branch(
"PVx",
"std::vector<double>", &
t_PVx);
2364 tree_->Branch(
"PVy",
"std::vector<double>", &
t_PVy);
2365 tree_->Branch(
"PVz",
"std::vector<double>", &
t_PVz);
2378 for (
int i = 0;
i < 128;
i++)
2429 t_jetPt =
new std::vector<double>();
2430 t_jetEta =
new std::vector<double>();
2431 t_jetPhi =
new std::vector<double>();
2434 tree_->Branch(
"t_jetPt",
"std::vector<double>", &
t_jetPt);
2435 tree_->Branch(
"t_jetEta",
"std::vector<double>", &
t_jetEta);
2436 tree_->Branch(
"t_jetPhi",
"std::vector<double>", &
t_jetPhi);
2461 t_trackP =
new std::vector<double>();
2504 t_trackL =
new std::vector<double>();
2506 tree_->Branch(
"t_trackP",
"std::vector<double>", &
t_trackP);
2538 tree_->Branch(
"t_trackL",
"std::vector<double>", &
t_trackL);
2556 t_e7x7 =
new std::vector<double>();
2557 t_e9x9 =
new std::vector<double>();
2558 t_e11x11 =
new std::vector<double>();
2559 t_e15x15 =
new std::vector<double>();
2562 tree_->Branch(
"t_e7x7",
"std::vector<double>", &
t_e7x7);
2563 tree_->Branch(
"t_e9x9",
"std::vector<double>", &
t_e9x9);
2564 tree_->Branch(
"t_e11x11",
"std::vector<double>", &
t_e11x11);
2565 tree_->Branch(
"t_e15x15",
"std::vector<double>", &
t_e15x15);
2682 t_h3x3 =
new std::vector<double>();
2683 t_h5x5 =
new std::vector<double>();
2684 t_h7x7 =
new std::vector<double>();
2715 tree_->Branch(
"t_h3x3",
"std::vector<double>", &
t_h3x3);
2716 tree_->Branch(
"t_h5x5",
"std::vector<double>", &
t_h5x5);
2717 tree_->Branch(
"t_h7x7",
"std::vector<double>", &
t_h7x7);
2752 << pTrack->
momentum() <<
" (pt,eta,phi)(" << pTrack->
pt() <<
"," << pTrack->
eta() <<
","
2753 << pTrack->
phi() <<
")"
2754 <<
" p " << pTrack->
p() <<
"\n Normalized chi2 " << pTrack->
normalizedChi2()
2755 <<
" charge " << pTrack->
charge() <<
" qoverp() " << pTrack->
qoverp() <<
"+-"
2756 << pTrack->
qoverpError() <<
" d0 " << pTrack->
d0() <<
"\n NValidHits "
2758 <<
" TrackQuality " << pTrack->
qualityName(trackQuality_) <<
" "
2759 << pTrack->
quality(trackQuality_);
2777 edm::LogVerbatim(
"IsoTrack") <<
"\n \t trackerLayersWithMeasurement() " <<
p.trackerLayersWithMeasurement()
2778 <<
"\n \t pixelLayersWithMeasurement() " <<
p.pixelLayersWithMeasurement()
2779 <<
"\n \t stripLayersWithMeasurement() " <<
p.stripLayersWithMeasurement()
2780 <<
"\n \t pixelBarrelLayersWithMeasurement() " <<
p.pixelBarrelLayersWithMeasurement()
2781 <<
"\n \t pixelEndcapLayersWithMeasurement() " <<
p.pixelEndcapLayersWithMeasurement()
2782 <<
"\n \t stripTIBLayersWithMeasurement() " <<
p.stripTIBLayersWithMeasurement()
2783 <<
"\n \t stripTIDLayersWithMeasurement() " <<
p.stripTIDLayersWithMeasurement()
2784 <<
"\n \t stripTOBLayersWithMeasurement() " <<
p.stripTOBLayersWithMeasurement()
2785 <<
"\n \t stripTECLayersWithMeasurement() " <<
p.stripTECLayersWithMeasurement();