28 #include <Math/GenVector/VectorUtil.h> 37 #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_);
2764 std::ostringstream st1;
2770 std::ostringstream st2;
2771 st2 <<
"trackerMissingInnerHits() ";
2776 std::ostringstream st3;
2777 st3 <<
"trackerMissingOuterHits() ";
2783 edm::LogVerbatim(
"IsoTrack") <<
"\n \t trackerLayersWithMeasurement() " <<
p.trackerLayersWithMeasurement()
2784 <<
"\n \t pixelLayersWithMeasurement() " <<
p.pixelLayersWithMeasurement()
2785 <<
"\n \t stripLayersWithMeasurement() " <<
p.stripLayersWithMeasurement()
2786 <<
"\n \t pixelBarrelLayersWithMeasurement() " <<
p.pixelBarrelLayersWithMeasurement()
2787 <<
"\n \t pixelEndcapLayersWithMeasurement() " <<
p.pixelEndcapLayersWithMeasurement()
2788 <<
"\n \t stripTIBLayersWithMeasurement() " <<
p.stripTIBLayersWithMeasurement()
2789 <<
"\n \t stripTIDLayersWithMeasurement() " <<
p.stripTIDLayersWithMeasurement()
2790 <<
"\n \t stripTOBLayersWithMeasurement() " <<
p.stripTOBLayersWithMeasurement()
2791 <<
"\n \t stripTECLayersWithMeasurement() " <<
p.stripTECLayersWithMeasurement();
bool quality(const TrackQuality) const
Track quality.
std::vector< double > * t_hsim7x7CharHad
static const std::string kSharedResource
std::vector< double > * t_hsim3x3Matched
Log< level::Info, true > LogVerbatim
std::vector< double > * t_esim7x7CharHad
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
std::vector< double > * t_e15x15
std::vector< double > * t_nTrksJetCalo
const bool L1TriggerAlgoInfo_
double qoverp() const
q / p
std::vector< double > * t_maxNearHcalP7x7
std::vector< double > * t_trackPt
std::vector< double > * t_trackPAll
const bool printTrkHitPattern_
std::vector< double > * t_e7x7
static constexpr size_t NEtaBins
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
std::vector< double > * t_trackHcalPhi
T getParameter(std::string const &) const
std::vector< double > * t_trackDxyPVAll
~IsolatedTracksNxN() override
static std::string qualityName(TrackQuality)
std::vector< int > * t_trackHitOutMeasTEC
std::vector< double > * t_trackPdgIdAll
void eCaloSimInfo(std::vector< DetId > vdets, const CaloGeometry *geo, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, edm::SimTrackContainer::const_iterator trkInfo, caloSimInfo &info, double timeCut=150, bool debug=false)
std::vector< double > * t_trackOutPosOutHitDr
std::vector< double > * t_maxNearHcalP5x5
std::vector< double > * t_L1NonIsoEMPt
std::vector< int > * t_trackHitOutMeasTIB
std::vector< double > * t_esim7x7
std::vector< int > * t_trackHitInMissTOB
std::vector< double > * t_trackDz
double qoverpError() const
error on signed transverse curvature
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
unsigned short numberOfValidHits() const
number of valid hits found
const math::XYZPoint & outerPosition() const
position of the outermost hit
const Point & position() const
position
std::vector< double > * t_trackEcalEta
std::vector< double > * t_trackEtaAll
std::vector< double > * t_esim11x11Matched
std::vector< double > * t_L1IsoEMEta
std::vector< double > * t_PVTracksSumPt
std::vector< double > * t_e9x9_10Sig
TH1F * h_maxNearP25x25[NPBins][NEtaBins]
TrackQuality
track quality
std::vector< double > * t_hsim3x3CharHad
std::vector< int > * t_PVndof
std::vector< std::pair< DetId, double > > eHCALmatrixCell(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, bool debug=false)
std::vector< double > * t_hsim7x7Rest
double p() const
momentum vector magnitude
int trackerLayersWithMeasurement() const
std::vector< double > * t_L1TauJetPhi
std::vector< double > * t_PVTracksSumPtWt
std::vector< int > * t_infoHcal
static constexpr size_t nL1BitsMax
std::vector< double > * t_e11x11_15Sig
std::vector< double > * t_L1TauJetPt
std::vector< int > * t_PVNTracksWt
std::vector< double > * t_trackEcalPhi
std::vector< double > * t_esim11x11NeutHad
std::vector< double > * t_L1TauJetEta
std::vector< double > * t_e15x15_15Sig
std::vector< double > * t_L1MuonEta
std::vector< double > * t_L1MuonPt
std::vector< double > * t_h3x3
std::vector< double > * t_L1MuonPhi
int stripTIDLayersWithMeasurement() const
std::vector< double > * t_trackDxyAll
edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_ecalChStatus_
std::vector< double > * t_maxNearHcalP3x3
IsolatedTracksNxN(const edm::ParameterSet &)
edm::EDGetTokenT< edm::SimVertexContainer > tok_simVtx_
const Point & referencePoint() const
Reference point on the track.
std::vector< double > * t_hsim3x3Photon
int stripTIBLayersWithoutMeasurement(HitCategory category) const
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
static constexpr size_t NPBins
std::vector< double > * t_PVTracksSumPtHP
std::vector< double > * t_esim11x11Rest
const double maxTrackEta_
std::vector< int > * t_trackNOuterHits
std::vector< double > * t_h7x7Sig
std::vector< double > * t_e15x15_30Sig
int stripTECLayersWithMeasurement() const
std::vector< double > * t_trackPhiAll
std::vector< double > * t_e7x7_25Sig
double genPartPBins[NPBins+1]
std::vector< double > * t_trkHcalEne
std::vector< double > * t_e7x7_20Sig
std::vector< double > * t_e11x11_10Sig
std::vector< double > * t_trackPtAll
std::vector< double > * t_h3x3Sig
std::vector< double > * t_esimPdgId
double pt() const
track transverse momentum
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
std::vector< double > * t_e11x11_20Sig
std::vector< double > * t_jetEta
std::vector< double > * t_maxNearP31x31
std::vector< int > * t_trackHitInMissTEC
int charge() const
track electric charge
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
std::vector< double > * t_trkEcalEne
std::vector< double > * t_trackEta
std::vector< double > * t_esim9x9Photon
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tok_magField_
std::vector< int > * t_trackHitInMeasTID
std::vector< double > * t_hsim5x5Rest
std::vector< double > * t_e11x11
std::vector< double > * t_esim15x15
std::map< std::string, double > eHCALSimInfo(const edm::Event &, const HcalTopology *topology, const DetId &det, const CaloGeometry *geo, edm::Handle< T > &hits, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, double timeCut=150, bool includeHO=false, bool debug=false)
edm::EDGetTokenT< edm::SimTrackContainer > tok_simTk_
std::vector< double > * t_L1CenJetPt
std::vector< double > * t_trackChiSqAll
std::vector< double > * t_e15x15_25Sig
std::vector< int > * t_trackHitOutMissTIB
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloHH_
std::vector< double > * t_esim15x15Rest
std::vector< double > * t_esim11x11
std::vector< double > * t_hsim7x7
std::vector< int > * t_PVNTracksHPWt
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< int > * t_trackHitOutMissTID
std::vector< int > * t_trackHitOutMissTOBTEC
std::vector< int > * t_trackHitsTEC
std::vector< double > * t_e9x9_30Sig
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEB_
int stripTOBLayersWithoutMeasurement(HitCategory category) const
std::vector< double > * t_L1CenJetPhi
std::vector< double > * t_L1FwdJetEta
std::vector< double > * t_h7x7
Abs< T >::type abs(const T &t)
void analyze(const edm::Event &, const edm::EventSetup &) override
std::vector< int > * t_ecalSpike11x11
const bool writeAllTracks_
int stripTOBLayersWithMeasurement() const
std::vector< double > * t_esim15x15NeutHad
std::vector< double > * t_e9x9_20Sig
double phi() const
azimuthal angle of momentum vector
std::vector< int > * t_trackHitOutMeasTOB
#define DEFINE_FWK_MODULE(type)
std::vector< int > * t_trackHitInMeasTIB
edm::SimTrackContainer::const_iterator matchedSimTrack(const edm::Event &iEvent, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, bool debug=false)
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
int stripTECLayersWithoutMeasurement(HitCategory category) const
edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_caloTopology_
bool getData(T &iHolder) const
std::vector< double > * t_trackDzPV
std::vector< int > * t_PVNTracksHP
std::vector< double > * t_L1FwdJetPhi
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1extIsoEm_
std::vector< double > * t_nTrksJetVtx
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
std::vector< double > * t_esim7x7NeutHad
std::vector< double > * t_hsim3x3NeutHad
std::vector< double > * t_L1NonIsoEMPhi
std::vector< double > * t_trackDzBS
std::vector< int > * t_trackHitOutMissTOB
std::vector< double > * t_L1CenJetEta
std::vector< double > * t_trackDzPVAll
edm::EDGetTokenT< l1extra::L1MuonParticleCollection > tok_L1extMu_
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_topo_
std::vector< double > * t_esim7x7Matched
std::vector< double > * t_esim9x9
std::vector< double > * t_hsim5x5
std::vector< double > * t_h5x5
std::vector< double > * t_trackDxyPV
std::vector< double > * t_hsim5x5NeutHad
std::vector< double > * t_trackChiSq
std::vector< double > * t_hsim5x5Photon
std::vector< double > * t_PVy
std::vector< unsigned int > m_triggerMaskAlgoTrig
std::vector< int > * t_L1PreScale
std::vector< double > * t_hsim3x3Rest
edm::ESGetToken< EcalTrigTowerConstituentsMap, IdealGeometryRecord > tok_htmap_
double eta() const
pseudorapidity of momentum vector
std::vector< int > * t_PVisValid
static TrackQuality qualityByName(const std::string &name)
std::vector< double > * t_esim9x9Rest
std::vector< double > * t_L1METPhi
std::vector< int > * t_trackHitInMissTIB
std::vector< double > * t_e9x9_15Sig
std::vector< double > * t_e7x7_15Sig
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
std::vector< double > * t_trackPhi
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
std::vector< double > * t_e7x7_10Sig
XYZPointD XYZPoint
point in space with cartesian internal representation
const double pvTracksPtMin_
edm::EDGetTokenT< l1extra::L1EmParticleCollection > tok_L1extNoIsoEm_
std::vector< double > * t_trackDzAll
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
TH1F * h_maxNearP31x31[NPBins][NEtaBins]
std::vector< double > * t_esim11x11CharHad
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEE_
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
TH1F * h_maxNearP15x15[NPBins][NEtaBins]
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< double > * t_e9x9_25Sig
void eECALSimInfo(const edm::Event &, const DetId &det, const CaloGeometry *geo, const CaloTopology *caloTopology, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, edm::Handle< edm::SimTrackContainer > &SimTk, edm::Handle< edm::SimVertexContainer > &SimVtx, const reco::Track *pTrack, TrackerHitAssociator &associate, int ieta, int iphi, caloSimInfo &info, double timeCut=150, bool debug=false)
std::vector< double > * t_esim7x7Photon
static const bool useL1GtTriggerMenuLite(true)
std::vector< double > * t_esim9x9NeutHad
std::vector< double > * t_L1FwdJetPt
std::vector< double > * t_simTrackP
std::vector< double > * t_hsim7x7Matched
std::vector< int > * t_trackPVIdx
const Vector & momentum() const
track momentum vector
std::vector< int > * t_trackHitsTOB
std::vector< double > * t_esim9x9Matched
std::vector< double > * t_hsim7x7NeutHad
std::vector< double > * t_L1IsoEMPhi
std::vector< int > * t_PVNTracks
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
std::vector< double > * t_maxNearP21x21
TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::vector< double > * t_L1NonIsoEMEta
std::vector< double > * t_PVz
std::pair< math::XYZPoint, double > propagateTrackerEnd(const reco::Track *, const MagneticField *, bool debug=false)
void printTrack(const reco::Track *pTrack)
std::unique_ptr< L1GtUtils > m_l1GtUtils
std::vector< double > * t_e15x15_20Sig
std::vector< double > * t_PVTracksSumPtHPWt
std::vector< double > * t_trackDxy
std::vector< std::string > * t_L1AlgoNames
std::vector< double > * t_hsim5x5CharHad
std::vector< double > * t_e15x15_10Sig
TH1F * h_maxNearP21x21[NPBins][NEtaBins]
std::vector< double > * t_jetPhi
std::vector< double > * t_trackL
std::vector< double > * t_esim7x7Rest
std::vector< double > * t_trackDxyBS
int stripTIDLayersWithoutMeasurement(HitCategory category) const
std::vector< double > * t_trackHcalEta
std::vector< double > * t_L1METPt
std::map< std::pair< unsigned int, std::string >, int > l1AlgoMap_
std::vector< int > * t_NLayersCrossed
edm::EDGetTokenT< reco::CaloJetCollection > tok_jets_
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_
std::vector< int > * t_trackHitInMeasTOB
std::vector< double > * t_PVx
std::vector< int > * t_trackHitInMeasTEC
std::vector< double > * t_esim15x15Photon
std::vector< double > * t_e9x9
std::vector< double > * t_hsim5x5Matched
double genPartEtaBins[NEtaBins+1]
std::vector< double > * t_esim15x15Matched
double chargeIsolationHcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const HcalTopology *topology, int ieta, int iphi, bool debug=false)
std::vector< int > * t_trackHitOutMeasTID
std::vector< double > * t_L1METEta
std::vector< double > * t_e7x7_30Sig
std::vector< int > * t_trackHitOutMissTEC
value_type const * get() const
std::vector< double > * t_e11x11_25Sig
std::vector< double > * t_hsim3x3
std::vector< double > * t_trackP
std::vector< double > * t_hsim7x7Photon
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
std::vector< double > * t_jetPt
static const bool useL1EventSetup(true)
std::vector< double > * t_L1IsoEMPt
std::vector< double > * t_esim11x11Photon
std::vector< double > * t_h5x5Sig
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
std::vector< int > * t_trackHitInMissTID
std::vector< double > * t_e11x11_30Sig
std::vector< int > * t_trackHitInMissTIBTID
std::vector< double > * t_esim9x9CharHad
double eECALmatrix(const DetId &detId, edm::Handle< T > &hitsEB, edm::Handle< T > &hitsEE, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
double eHCALmatrix(const HcalTopology *topology, const DetId &det, edm::Handle< T > &hits, int ieta, int iphi, bool includeHO=false, bool algoNew=true, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int useRaw=0, bool debug=false)
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extTauJet_
int stripTIBLayersWithMeasurement() const
std::vector< double > * t_esim15x15CharHad
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)