26 #include <Math/GenVector/VectorUtil.h> 35 #include "TDirectory.h" 155 double deltaPhi(
double v1,
double v2);
156 double deltaR(
double eta1,
double phi1,
double eta2,
double phi2);
166 std::map<std::pair<unsigned int, std::string>,
int>
l1AlgoMap_;
305 myverbose_(iConfig.getUntrackedParameter<
int>(
"verbosity", 5)),
306 pvTracksPtMin_(iConfig.getUntrackedParameter<double>(
"pvTracksPtMin", 1.0)),
307 debugTrks_(iConfig.getUntrackedParameter<
int>(
"debugTracks", 0)),
309 minTrackP_(iConfig.getUntrackedParameter<double>(
"minTrackP", 1.0)),
310 maxTrackEta_(iConfig.getUntrackedParameter<double>(
"maxTrackEta", 5.0)),
313 tMinE_(iConfig.getUntrackedParameter<double>(
"timeMinCutECAL", -500.)),
314 tMaxE_(iConfig.getUntrackedParameter<double>(
"timeMaxCutECAL", 500.)),
315 tMinH_(iConfig.getUntrackedParameter<double>(
"timeMinCutHCAL", -500.)),
316 tMaxH_(iConfig.getUntrackedParameter<double>(
"timeMaxCutHCAL", 500.)),
508 tok_L1extTauJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraTauJetSource_);
509 tok_L1extCenJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraCenJetSource_);
510 tok_L1extFwdJet_ = consumes<l1extra::L1JetParticleCollection>(L1extraFwdJetSource_);
511 tok_L1extMu_ = consumes<l1extra::L1MuonParticleCollection>(L1extraMuonSource_);
512 tok_L1extIsoEm_ = consumes<l1extra::L1EmParticleCollection>(L1extraIsoEmSource_);
513 tok_L1extNoIsoEm_ = consumes<l1extra::L1EmParticleCollection>(L1extraNonIsoEmSource_);
514 tok_jets_ = consumes<reco::CaloJetCollection>(JetSrc_);
515 tok_hbhe_ = consumes<HBHERecHitCollection>(HBHERecHitSource_);
531 <<
" doMC " <<
doMC_ <<
"\t myverbose " <<
myverbose_ <<
"\t minTrackP " 744 descriptions.
add(
"isolatedTracksNxN", desc);
748 bool haveIsoTrack =
false;
767 edm::LogVerbatim(
"IsoTrack") <<
"Number of Tracks " << trkCollection->size();
781 <<
"\nL1 configuration code:" << l1ConfCode <<
"\nNo valid L1 trigger configuration available." 782 <<
"\nSee text above for error code interpretation" 783 <<
"\nNo return here, in order to test each method, protected against configuration error.";
793 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
795 int algBitNumber = (itAlgo->second).algoBitNumber();
796 l1AlgoMap_.insert(std::pair<std::pair<unsigned int, std::string>,
int>(
797 std::pair<unsigned int, std::string>(algBitNumber, algName), 0));
799 std::map<std::pair<unsigned int, std::string>,
int>::iterator itr;
801 edm::LogVerbatim(
"IsoTrack") <<
" ********** " << (itr->first).
first <<
" " << (itr->first).second <<
" " 806 std::vector<int> algbits;
807 for (
CItAlgo itAlgo = algorithmMap.begin(); itAlgo != algorithmMap.end(); itAlgo++) {
809 int algBitNumber = (itAlgo->second).algoBitNumber();
815 l1AlgoMap_[std::pair<unsigned int, std::string>(algBitNumber, algName)] += 1;
820 algbits.push_back(algBitNumber);
829 for (
int i = 0;
i < 128; ++
i) {
837 l1extra::L1JetParticleCollection::const_iterator itr;
839 for (itr = l1TauHandle->begin(), iL1Obj = 0; itr != l1TauHandle->end(); ++itr, iL1Obj++) {
846 edm::LogVerbatim(
"IsoTrack") <<
"tauJ p/pt " << itr->momentum() <<
" " << itr->pt() <<
" eta/phi " 847 << itr->eta() <<
" " << itr->phi();
854 for (itr = l1CenJetHandle->begin(), iL1Obj = 0; itr != l1CenJetHandle->end(); ++itr, iL1Obj++) {
861 edm::LogVerbatim(
"IsoTrack") <<
"cenJ p/pt " << itr->momentum() <<
" " << itr->pt() <<
" eta/phi " 862 << itr->eta() <<
" " << itr->phi();
869 for (itr = l1FwdJetHandle->begin(), iL1Obj = 0; itr != l1FwdJetHandle->end(); ++itr, iL1Obj++) {
876 edm::LogVerbatim(
"IsoTrack") <<
"fwdJ p/pt " << itr->momentum() <<
" " << itr->pt() <<
" eta/phi " 877 << itr->eta() <<
" " << itr->phi();
882 l1extra::L1EmParticleCollection::const_iterator itrEm;
885 for (itrEm = l1IsoEmHandle->begin(), iL1Obj = 0; itrEm != l1IsoEmHandle->end(); ++itrEm, iL1Obj++) {
892 edm::LogVerbatim(
"IsoTrack") <<
"isoEm p/pt " << itrEm->momentum() <<
" " << itrEm->pt() <<
" eta/phi " 893 << itrEm->eta() <<
" " << itrEm->phi();
900 for (itrEm = l1NonIsoEmHandle->begin(), iL1Obj = 0; itrEm != l1NonIsoEmHandle->end(); ++itrEm, iL1Obj++) {
907 edm::LogVerbatim(
"IsoTrack") <<
"nonIsoEm p/pt " << itrEm->momentum() <<
" " << itrEm->pt() <<
" eta/phi " 908 << itrEm->eta() <<
" " << itrEm->phi();
913 l1extra::L1MuonParticleCollection::const_iterator itrMu;
916 for (itrMu = l1MuHandle->begin(), iL1Obj = 0; itrMu != l1MuHandle->end(); ++itrMu, iL1Obj++) {
923 edm::LogVerbatim(
"IsoTrack") <<
"l1muon p/pt " << itrMu->momentum() <<
" " << itrMu->pt() <<
" eta/phi " 924 << itrMu->eta() <<
" " << itrMu->phi();
934 std::vector<reco::Track> svTracks;
936 double sumPtMax = -1.0;
937 for (
unsigned int ind = 0; ind < recVtxs->size(); ind++) {
938 if (!((*recVtxs)[ind].isFake())) {
939 double vtxTrkSumPt = 0.0, vtxTrkSumPtWt = 0.0;
941 double vtxTrkSumPtHP = 0.0, vtxTrkSumPtHPWt = 0.0;
942 int vtxTrkNHP = 0, vtxTrkNHPWt = 0;
946 for (vtxTrack = (*recVtxs)[ind].tracks_begin(); vtxTrack != (*recVtxs)[ind].tracks_end(); vtxTrack++) {
950 bool trkQuality = (*vtxTrack)->quality(trackQuality_);
952 vtxTrkSumPt += (*vtxTrack)->pt();
954 vtxTrkSumPt += (*vtxTrack)->pt();
956 vtxTrkSumPtHP += (*vtxTrack)->pt();
960 double weight = (*recVtxs)[ind].trackWeight(*vtxTrack);
963 vtxTrkSumPtWt += (*vtxTrack)->pt();
966 vtxTrkSumPtHPWt += (*vtxTrack)->pt();
972 if (vtxTrkSumPt > sumPtMax) {
973 sumPtMax = vtxTrkSumPt;
974 leadPV =
math::XYZPoint((*recVtxs)[ind].
x(), (*recVtxs)[ind].
y(), (*recVtxs)[ind].
z());
977 t_PVx->push_back((*recVtxs)[ind].
x());
978 t_PVy->push_back((*recVtxs)[ind].
y());
979 t_PVz->push_back((*recVtxs)[ind].
z());
981 t_PVNTracks->push_back((*recVtxs)[ind].tracksSize());
993 edm::LogVerbatim(
"IsoTrack") <<
"PV " << ind <<
" isValid " << (*recVtxs)[ind].isValid() <<
" isFake " 994 << (*recVtxs)[ind].isFake() <<
" hasRefittedTracks() " << ind <<
" " 995 << (*recVtxs)[ind].hasRefittedTracks() <<
" refittedTrksSize " 996 << (*recVtxs)[ind].refittedTracks().size() <<
" tracksSize() " 997 << (*recVtxs)[ind].tracksSize() <<
" sumPt " << vtxTrkSumPt;
1016 for (
unsigned int ijet = 0; ijet < (*jets).size(); ijet++) {
1087 std::unique_ptr<TrackerHitAssociator> associate;
1100 std::vector<spr::propagatedTrackID> trkCaloDets;
1102 std::vector<spr::propagatedTrackID>::const_iterator trkDetItr;
1105 for (trkDetItr = trkCaloDets.begin(); trkDetItr != trkCaloDets.end(); trkDetItr++) {
1106 edm::LogVerbatim(
"IsoTrack") << trkDetItr->trkItr->p() <<
" " << trkDetItr->trkItr->eta() <<
" " 1107 << trkDetItr->okECAL <<
" " << trkDetItr->okHCAL;
1108 if (trkDetItr->okECAL) {
1109 if (trkDetItr->detIdECAL.subdetId() ==
EcalBarrel)
1114 if (trkDetItr->okHCAL)
1120 for (trkDetItr = trkCaloDets.begin(), nTracks = 0; trkDetItr != trkCaloDets.end(); trkDetItr++, nTracks++) {
1121 const reco::Track *pTrack = &(*(trkDetItr->trkItr));
1125 for (
unsigned int ind = 0; ind < recVtxs->size(); ind++) {
1126 if (!((*recVtxs)[ind].isFake())) {
1128 for (vtxTrack = (*recVtxs)[ind].tracks_begin(); vtxTrack != (*recVtxs)[ind].tracks_end(); vtxTrack++) {
1130 if (pTrack == pvtxTrack.
get()) {
1134 if (pTrack->
pt() > 1.0) {
1135 edm::LogVerbatim(
"IsoTrack") <<
"Debug the track association with vertex ";
1138 <<
" trkVtxIndex " << nvtxTracks <<
" vtx " << ind <<
" pt " << pTrack->
pt() <<
" eta " 1139 << pTrack->
eta() <<
" " << pTrack->
pt() - pvtxTrack->
pt() <<
" " 1140 << pTrack->
eta() - pvtxTrack->
eta();
1153 bool ifGood = pTrack->
quality(trackQuality_);
1154 double pt1 = pTrack->
pt();
1155 double p1 = pTrack->
p();
1157 double phi1 = pTrack->
momentum().phi();
1158 double etaEcal1 = trkDetItr->etaECAL;
1159 double phiEcal1 = trkDetItr->phiECAL;
1160 double etaHcal1 = trkDetItr->etaHCAL;
1161 double phiHcal1 = trkDetItr->phiHCAL;
1162 double dxy1 = pTrack->
dxy();
1163 double dz1 = pTrack->
dz();
1165 double dxybs1 = beamSpotH.
isValid() ? pTrack->
dxy(bspot) : pTrack->
dxy();
1166 double dzbs1 = beamSpotH.
isValid() ? pTrack->
dz(bspot) : pTrack->
dz();
1167 double dxypv1 = pTrack->
dxy();
1168 double dzpv1 = pTrack->
dz();
1169 if (pVtxTkId >= 0) {
1171 math::XYZPoint((*recVtxs)[pVtxTkId].
x(), (*recVtxs)[pVtxTkId].
y(), (*recVtxs)[pVtxTkId].
z());
1172 dxypv1 = pTrack->
dxy(thisTkPV);
1173 dzpv1 = pTrack->
dz(thisTkPV);
1183 if (ifGood && nLayersCrossed > 7) {
1207 edm::SimTrackContainer::const_iterator matchedSimTrkAll =
1214 double maxNearP31x31 = 999.0, maxNearP25x25 = 999.0, maxNearP21x21 = 999.0, maxNearP15x15 = 999.0;
1220 int iTrkEtaBin = -1, iTrkMomBin = -1;
1225 for (
unsigned int ipt = 0; ipt <
NPBins; ipt++) {
1229 if (iTrkMomBin >= 0 && iTrkEtaBin >= 0) {
1235 if (maxNearP31x31 < 0.0 && nLayersCrossed > 7 && nOuterHits > 4) {
1245 if (maxNearP31x31 < 1.0) {
1246 haveIsoTrack =
true;
1249 double simTrackP = -1;
1251 edm::SimTrackContainer::const_iterator matchedSimTrk =
1253 if (matchedSimTrk != SimTk->end())
1254 simTrackP = matchedSimTrk->momentum().P();
1261 std::pair<double, bool> e7x7P, e9x9P, e11x11P, e15x15P;
1262 std::pair<double, bool> e7x7_10SigP, e9x9_10SigP, e11x11_10SigP, e15x15_10SigP;
1263 std::pair<double, bool> e7x7_15SigP, e9x9_15SigP, e11x11_15SigP, e15x15_15SigP;
1264 std::pair<double, bool> e7x7_20SigP, e9x9_20SigP, e11x11_20SigP, e15x15_20SigP;
1265 std::pair<double, bool> e7x7_25SigP, e9x9_25SigP, e11x11_25SigP, e15x15_25SigP;
1266 std::pair<double, bool> e7x7_30SigP, e9x9_30SigP, e11x11_30SigP, e15x15_30SigP;
1269 spr::caloSimInfo simInfo11x11, simInfo13x13, simInfo15x15, simInfo21x21, simInfo25x25, simInfo31x31;
1270 double trkEcalEne = 0;
1272 const DetId isoCell = trkDetItr->detIdECAL;
1274 barrelRecHitsHandle,
1275 endcapRecHitsHandle,
1287 barrelRecHitsHandle,
1288 endcapRecHitsHandle,
1300 barrelRecHitsHandle,
1301 endcapRecHitsHandle,
1313 barrelRecHitsHandle,
1314 endcapRecHitsHandle,
1327 barrelRecHitsHandle,
1328 endcapRecHitsHandle,
1340 barrelRecHitsHandle,
1341 endcapRecHitsHandle,
1353 barrelRecHitsHandle,
1354 endcapRecHitsHandle,
1366 barrelRecHitsHandle,
1367 endcapRecHitsHandle,
1380 barrelRecHitsHandle,
1381 endcapRecHitsHandle,
1394 barrelRecHitsHandle,
1395 endcapRecHitsHandle,
1408 barrelRecHitsHandle,
1409 endcapRecHitsHandle,
1422 barrelRecHitsHandle,
1423 endcapRecHitsHandle,
1438 barrelRecHitsHandle,
1439 endcapRecHitsHandle,
1451 barrelRecHitsHandle,
1452 endcapRecHitsHandle,
1464 barrelRecHitsHandle,
1465 endcapRecHitsHandle,
1477 barrelRecHitsHandle,
1478 endcapRecHitsHandle,
1491 barrelRecHitsHandle,
1492 endcapRecHitsHandle,
1504 barrelRecHitsHandle,
1505 endcapRecHitsHandle,
1517 barrelRecHitsHandle,
1518 endcapRecHitsHandle,
1530 barrelRecHitsHandle,
1531 endcapRecHitsHandle,
1544 barrelRecHitsHandle,
1545 endcapRecHitsHandle,
1557 barrelRecHitsHandle,
1558 endcapRecHitsHandle,
1570 barrelRecHitsHandle,
1571 endcapRecHitsHandle,
1583 barrelRecHitsHandle,
1584 endcapRecHitsHandle,
1597 edm::LogVerbatim(
"IsoTrack") <<
"e7x7 " << e7x7P.first <<
" e9x9 " << e9x9P.first <<
" e11x11 " 1598 << e11x11P.first <<
" e15x15 " << e15x15P.first;
1599 edm::LogVerbatim(
"IsoTrack") <<
"e7x7_10Sig " << e7x7_10SigP.first <<
" e11x11_10Sig " << e11x11_10SigP.first
1600 <<
" e15x15_10Sig " << e15x15_10SigP.first;
1606 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 1, 1, simInfo3x3);
1608 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 2, 2, simInfo5x5);
1610 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 3, 3, simInfo7x7);
1612 iEvent, isoCell, geo, caloTopology, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate, 4, 4, simInfo9x9);
1694 trkEcalEne =
spr::eCaloSimInfo(iEvent, geo, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate);
1699 << simInfo3x3.
eMatched <<
" eRest " << simInfo3x3.
eRest <<
" eGamma " 1703 << simInfo5x5.
eMatched <<
" eRest " << simInfo5x5.
eRest <<
" eGamma " 1707 << simInfo7x7.
eMatched <<
" eRest " << simInfo7x7.
eRest <<
" eGamma " 1711 << simInfo9x9.
eMatched <<
" eRest " << simInfo9x9.
eRest <<
" eGamma " 1715 << simInfo11x11.
eMatched <<
" eRest " << simInfo11x11.
eRest <<
" eGamma " 1719 << simInfo15x15.
eMatched <<
" eRest " << simInfo15x15.
eRest <<
" eGamma " 1723 << simInfo31x31.
eMatched <<
" eRest " << simInfo31x31.
eRest <<
" eGamma " 1731 double hcalScale = 1.0;
1738 double maxNearHcalP3x3 = -1, maxNearHcalP5x5 = -1, maxNearHcalP7x7 = -1;
1743 double h3x3 = 0, h5x5 = 0, h7x7 = 0;
1744 double h3x3Sig = 0, h5x5Sig = 0, h7x7Sig = 0;
1745 double trkHcalEne = 0;
1748 if (trkDetItr->okHCAL) {
1749 const DetId ClosestCell(trkDetItr->detIdHCAL);
1752 theHBHETopology, ClosestCell, hbhe, 1, 1,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1754 theHBHETopology, ClosestCell, hbhe, 2, 2,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1756 theHBHETopology, ClosestCell, hbhe, 3, 3,
false,
true, -100.0, -100.0, -100.0, -100.0,
tMinH_,
tMaxH_);
1758 theHBHETopology, ClosestCell, hbhe, 1, 1,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1760 theHBHETopology, ClosestCell, hbhe, 2, 2,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1762 theHBHETopology, ClosestCell, hbhe, 3, 3,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_);
1765 edm::LogVerbatim(
"IsoTrack") <<
"HCAL 3x3 " << h3x3 <<
" " << h3x3Sig <<
" 5x5 " << h5x5 <<
" " << h5x5Sig
1766 <<
" 7x7 " << h7x7 <<
" " << h7x7Sig;
1771 iEvent, theHBHETopology, ClosestCell, geo, pcalohh, SimTk, SimVtx, pTrack, *associate, 1, 1, hsimInfo3x3);
1773 iEvent, theHBHETopology, ClosestCell, geo, pcalohh, SimTk, SimVtx, pTrack, *associate, 2, 2, hsimInfo5x5);
1789 trkHcalEne =
spr::eCaloSimInfo(iEvent, geo, pcalohh, SimTk, SimVtx, pTrack, *associate);
1793 <<
"hsimInfo3x3: eTotal " << hsimInfo3x3.
eTotal <<
" eMatched " << hsimInfo3x3.
eMatched <<
" eRest " 1797 <<
"hsimInfo5x5: eTotal " << hsimInfo5x5.
eTotal <<
" eMatched " << hsimInfo5x5.
eMatched <<
" eRest " 1801 <<
"hsimInfo7x7: eTotal " << hsimInfo7x7.
eTotal <<
" eMatched " << hsimInfo7x7.
eMatched <<
" eRest " 1811 std::vector<std::pair<DetId, double> > v7x7 =
1815 for (
unsigned int iv = 0; iv < v7x7.size(); iv++) {
1816 sumv += v7x7[iv].second;
1818 edm::LogVerbatim(
"IsoTrack") <<
"h7x7 " << h7x7 <<
" v7x7 " << sumv <<
" in " << v7x7.size();
1819 for (
unsigned int iv = 0; iv < v7x7.size(); iv++) {
1822 <<
id <<
" Energy " << v7x7[iv].second;
1827 trkHcalEne =
spr::eCaloSimInfo(iEvent, geo, pcalohh, SimTk, SimVtx, pTrack, *associate);
1836 double trackOutPosOutHitDr =
diff.R();
1837 double trackL = point2_TK0.second;
1839 edm::LogVerbatim(
"IsoTrack") <<
" propagted " << point2_TK0.first <<
" " << point2_TK0.first.eta() <<
" " 1840 << point2_TK0.first.phi();
1844 <<
diff.R() / point2_TK0.second;
1847 for (
unsigned int ind = 0; ind < recVtxs->size(); ind++) {
1848 if (!((*recVtxs)[ind].isFake())) {
1850 if (
deltaR(eta1, phi1, (*vtxTrack)->eta(), (*vtxTrack)->phi()) < 0.01)
1908 t_e7x7->push_back(e7x7P.first);
1909 t_e9x9->push_back(e9x9P.first);
1910 t_e11x11->push_back(e11x11P.first);
1911 t_e15x15->push_back(e15x15P.first);
2023 double tempgen_TH[
NPBins + 1] = {
2024 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};
2026 for (
unsigned int i = 0;
i <
NPBins + 1;
i++)
2029 double tempgen_Eta[
NEtaBins + 1] = {0.0, 1.131, 1.653, 2.172};
2040 std::map<std::pair<unsigned int, std::string>,
int>::iterator itr;
2042 edm::LogVerbatim(
"IsoTrack") <<
" ****endjob**** " << (itr->first).
first <<
" " << (itr->first).second <<
" " 2044 int ibin = (itr->first).
first;
2045 TString
name((itr->first).second);
2069 for (
int i = 0;
i < 128;
i++)
2258 char hname[100], htit[100];
2264 double lowEta = -5.0, highEta = 5.0;
2268 for (
unsigned int ipt = 0; ipt <
NPBins; ipt++) {
2269 double lowP = 0.0, highP = 300.0;
2272 sprintf(hname,
"h_maxNearP31x31_ptBin%i_etaBin%i", ipt,
ieta);
2273 sprintf(htit,
"maxNearP in 31x31 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2276 sprintf(hname,
"h_maxNearP25x25_ptBin%i_etaBin%i", ipt,
ieta);
2277 sprintf(htit,
"maxNearP in 25x25 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2280 sprintf(hname,
"h_maxNearP21x21_ptBin%i_etaBin%i", ipt,
ieta);
2281 sprintf(htit,
"maxNearP in 21x21 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2284 sprintf(hname,
"h_maxNearP15x15_ptBin%i_etaBin%i", ipt,
ieta);
2285 sprintf(htit,
"maxNearP in 15x15 (%3.2f<|#eta|<%3.2f), (%2.0f<trkP<%3.0f)", lowEta, highEta, lowP, highP);
2291 h_L1AlgoNames = fs->
make<TH1I>(
"h_L1AlgoNames",
"h_L1AlgoNames:Bin Labels", 128, -0.5, 127.5);
2295 h_PVTracksWt = fs->
make<TH1F>(
"h_PVTracksWt",
"h_PVTracksWt", 600, -0.1, 1.1);
2297 h_nTracks = fs->
make<TH1F>(
"h_nTracks",
"h_nTracks", 1000, -0.5, 999.5);
2299 sprintf(hname,
"h_recEtaPt_0");
2300 sprintf(htit,
"h_recEtaPt (all tracks Eta vs pT)");
2303 sprintf(hname,
"h_recEtaP_0");
2304 sprintf(htit,
"h_recEtaP (all tracks Eta vs pT)");
2309 h_recEta_0 = fs->
make<TH1F>(
"h_recEta_0",
"Eta (all tracks)", 60, -3.0, 3.0);
2310 h_recPhi_0 = fs->
make<TH1F>(
"h_recPhi_0",
"Phi (all tracks)", 100, -3.2, 3.2);
2312 sprintf(hname,
"h_recEtaPt_1");
2313 sprintf(htit,
"h_recEtaPt (all good tracks Eta vs pT)");
2316 sprintf(hname,
"h_recEtaP_1");
2317 sprintf(htit,
"h_recEtaP (all good tracks Eta vs pT)");
2322 h_recEta_1 = fs->
make<TH1F>(
"h_recEta_1",
"Eta (all good tracks)", 60, -3.0, 3.0);
2323 h_recPhi_1 = fs->
make<TH1F>(
"h_recPhi_1",
"Phi (all good tracks)", 100, -3.2, 3.2);
2325 sprintf(hname,
"h_recEtaPt_2");
2326 sprintf(htit,
"h_recEtaPt (charge isolation Eta vs pT)");
2329 sprintf(hname,
"h_recEtaP_2");
2330 sprintf(htit,
"h_recEtaP (charge isolation Eta vs pT)");
2335 h_recEta_2 = fs->
make<TH1F>(
"h_recEta_2",
"Eta (charge isolation)", 60, -3.0, 3.0);
2336 h_recPhi_2 = fs->
make<TH1F>(
"h_recPhi_2",
"Phi (charge isolation)", 100, -3.2, 3.2);
2338 tree_ = fs->
make<TTree>(
"tree",
"tree");
2339 tree_->SetAutoSave(10000);
2346 t_PVx =
new std::vector<double>();
2347 t_PVy =
new std::vector<double>();
2348 t_PVz =
new std::vector<double>();
2360 tree_->Branch(
"PVx",
"std::vector<double>", &
t_PVx);
2361 tree_->Branch(
"PVy",
"std::vector<double>", &t_PVy);
2362 tree_->Branch(
"PVz",
"std::vector<double>", &t_PVz);
2363 tree_->Branch(
"PVisValid",
"std::vector<int>", &t_PVisValid);
2364 tree_->Branch(
"PVndof",
"std::vector<int>", &t_PVndof);
2365 tree_->Branch(
"PVNTracks",
"std::vector<int>", &t_PVNTracks);
2366 tree_->Branch(
"PVNTracksWt",
"std::vector<int>", &t_PVNTracksWt);
2367 tree_->Branch(
"t_PVTracksSumPt",
"std::vector<double>", &t_PVTracksSumPt);
2368 tree_->Branch(
"t_PVTracksSumPtWt",
"std::vector<double>", &t_PVTracksSumPtWt);
2369 tree_->Branch(
"PVNTracksHP",
"std::vector<int>", &t_PVNTracksHP);
2370 tree_->Branch(
"PVNTracksHPWt",
"std::vector<int>", &t_PVNTracksHPWt);
2371 tree_->Branch(
"t_PVTracksSumPtHP",
"std::vector<double>", &t_PVTracksSumPtHP);
2372 tree_->Branch(
"t_PVTracksSumPtHPWt",
"std::vector<double>", &t_PVTracksSumPtHPWt);
2375 for (
int i = 0;
i < 128;
i++)
2403 tree_->Branch(
"t_L1PreScale",
"std::vector<int>", &t_L1PreScale);
2404 tree_->Branch(
"t_L1CenJetPt",
"std::vector<double>", &t_L1CenJetPt);
2405 tree_->Branch(
"t_L1CenJetEta",
"std::vector<double>", &t_L1CenJetEta);
2406 tree_->Branch(
"t_L1CenJetPhi",
"std::vector<double>", &t_L1CenJetPhi);
2407 tree_->Branch(
"t_L1FwdJetPt",
"std::vector<double>", &t_L1FwdJetPt);
2408 tree_->Branch(
"t_L1FwdJetEta",
"std::vector<double>", &t_L1FwdJetEta);
2409 tree_->Branch(
"t_L1FwdJetPhi",
"std::vector<double>", &t_L1FwdJetPhi);
2410 tree_->Branch(
"t_L1TauJetPt",
"std::vector<double>", &t_L1TauJetPt);
2411 tree_->Branch(
"t_L1TauJetEta",
"std::vector<double>", &t_L1TauJetEta);
2412 tree_->Branch(
"t_L1TauJetPhi",
"std::vector<double>", &t_L1TauJetPhi);
2413 tree_->Branch(
"t_L1MuonPt",
"std::vector<double>", &t_L1MuonPt);
2414 tree_->Branch(
"t_L1MuonEta",
"std::vector<double>", &t_L1MuonEta);
2415 tree_->Branch(
"t_L1MuonPhi",
"std::vector<double>", &t_L1MuonPhi);
2416 tree_->Branch(
"t_L1IsoEMPt",
"std::vector<double>", &t_L1IsoEMPt);
2417 tree_->Branch(
"t_L1IsoEMEta",
"std::vector<double>", &t_L1IsoEMEta);
2418 tree_->Branch(
"t_L1IsoEMPhi",
"std::vector<double>", &t_L1IsoEMPhi);
2419 tree_->Branch(
"t_L1NonIsoEMPt",
"std::vector<double>", &t_L1NonIsoEMPt);
2420 tree_->Branch(
"t_L1NonIsoEMEta",
"std::vector<double>", &t_L1NonIsoEMEta);
2421 tree_->Branch(
"t_L1NonIsoEMPhi",
"std::vector<double>", &t_L1NonIsoEMPhi);
2422 tree_->Branch(
"t_L1METPt",
"std::vector<double>", &t_L1METPt);
2423 tree_->Branch(
"t_L1METEta",
"std::vector<double>", &t_L1METEta);
2424 tree_->Branch(
"t_L1METPhi",
"std::vector<double>", &t_L1METPhi);
2426 t_jetPt =
new std::vector<double>();
2427 t_jetEta =
new std::vector<double>();
2428 t_jetPhi =
new std::vector<double>();
2431 tree_->Branch(
"t_jetPt",
"std::vector<double>", &
t_jetPt);
2432 tree_->Branch(
"t_jetEta",
"std::vector<double>", &t_jetEta);
2433 tree_->Branch(
"t_jetPhi",
"std::vector<double>", &t_jetPhi);
2434 tree_->Branch(
"t_nTrksJetCalo",
"std::vector<double>", &t_nTrksJetCalo);
2435 tree_->Branch(
"t_nTrksJetVtx",
"std::vector<double>", &t_nTrksJetVtx);
2448 tree_->Branch(
"t_trackPhiAll",
"std::vector<double>", &t_trackPhiAll);
2449 tree_->Branch(
"t_trackEtaAll",
"std::vector<double>", &t_trackEtaAll);
2450 tree_->Branch(
"t_trackPtAll",
"std::vector<double>", &t_trackPtAll);
2451 tree_->Branch(
"t_trackDxyAll",
"std::vector<double>", &t_trackDxyAll);
2452 tree_->Branch(
"t_trackDzAll",
"std::vector<double>", &t_trackDzAll);
2453 tree_->Branch(
"t_trackDxyPVAll",
"std::vector<double>", &t_trackDxyPVAll);
2454 tree_->Branch(
"t_trackDzPVAll",
"std::vector<double>", &t_trackDzPVAll);
2455 tree_->Branch(
"t_trackChiSqAll",
"std::vector<double>", &t_trackChiSqAll);
2458 t_trackP =
new std::vector<double>();
2487 t_trackHitOutMissTOB =
new std::vector<int>();
2488 t_trackHitOutMissTEC =
new std::vector<int>();
2489 t_trackHitOutMissTIB =
new std::vector<int>();
2490 t_trackHitOutMissTID =
new std::vector<int>();
2501 t_trackL =
new std::vector<double>();
2503 tree_->Branch(
"t_trackP",
"std::vector<double>", &
t_trackP);
2504 tree_->Branch(
"t_trackPt",
"std::vector<double>", &t_trackPt);
2505 tree_->Branch(
"t_trackEta",
"std::vector<double>", &t_trackEta);
2506 tree_->Branch(
"t_trackPhi",
"std::vector<double>", &t_trackPhi);
2507 tree_->Branch(
"t_trackEcalEta",
"std::vector<double>", &t_trackEcalEta);
2508 tree_->Branch(
"t_trackEcalPhi",
"std::vector<double>", &t_trackEcalPhi);
2509 tree_->Branch(
"t_trackHcalEta",
"std::vector<double>", &t_trackHcalEta);
2510 tree_->Branch(
"t_trackHcalPhi",
"std::vector<double>", &t_trackHcalPhi);
2512 tree_->Branch(
"t_trackNOuterHits",
"std::vector<int>", &t_trackNOuterHits);
2513 tree_->Branch(
"t_NLayersCrossed",
"std::vector<int>", &t_NLayersCrossed);
2514 tree_->Branch(
"t_trackHitsTOB",
"std::vector<int>", &t_trackHitsTOB);
2515 tree_->Branch(
"t_trackHitsTEC",
"std::vector<int>", &t_trackHitsTEC);
2516 tree_->Branch(
"t_trackHitInMissTOB",
"std::vector<int>", &t_trackHitInMissTOB);
2517 tree_->Branch(
"t_trackHitInMissTEC",
"std::vector<int>", &t_trackHitInMissTEC);
2518 tree_->Branch(
"t_trackHitInMissTIB",
"std::vector<int>", &t_trackHitInMissTIB);
2519 tree_->Branch(
"t_trackHitInMissTID",
"std::vector<int>", &t_trackHitInMissTID);
2520 tree_->Branch(
"t_trackHitInMissTIBTID",
"std::vector<int>", &t_trackHitInMissTIBTID);
2521 tree_->Branch(
"t_trackHitOutMissTOB",
"std::vector<int>", &t_trackHitOutMissTOB);
2522 tree_->Branch(
"t_trackHitOutMissTEC",
"std::vector<int>", &t_trackHitOutMissTEC);
2523 tree_->Branch(
"t_trackHitOutMissTIB",
"std::vector<int>", &t_trackHitOutMissTIB);
2524 tree_->Branch(
"t_trackHitOutMissTID",
"std::vector<int>", &t_trackHitOutMissTID);
2525 tree_->Branch(
"t_trackHitOutMissTOBTEC",
"std::vector<int>", &t_trackHitOutMissTOBTEC);
2526 tree_->Branch(
"t_trackHitInMeasTOB",
"std::vector<int>", &t_trackHitInMeasTOB);
2527 tree_->Branch(
"t_trackHitInMeasTEC",
"std::vector<int>", &t_trackHitInMeasTEC);
2528 tree_->Branch(
"t_trackHitInMeasTIB",
"std::vector<int>", &t_trackHitInMeasTIB);
2529 tree_->Branch(
"t_trackHitInMeasTID",
"std::vector<int>", &t_trackHitInMeasTID);
2530 tree_->Branch(
"t_trackHitOutMeasTOB",
"std::vector<int>", &t_trackHitOutMeasTOB);
2531 tree_->Branch(
"t_trackHitOutMeasTEC",
"std::vector<int>", &t_trackHitOutMeasTEC);
2532 tree_->Branch(
"t_trackHitOutMeasTIB",
"std::vector<int>", &t_trackHitOutMeasTIB);
2533 tree_->Branch(
"t_trackHitOutMeasTID",
"std::vector<int>", &t_trackHitOutMeasTID);
2534 tree_->Branch(
"t_trackOutPosOutHitDr",
"std::vector<double>", &t_trackOutPosOutHitDr);
2535 tree_->Branch(
"t_trackL",
"std::vector<double>", &t_trackL);
2537 tree_->Branch(
"t_trackDxy",
"std::vector<double>", &t_trackDxy);
2538 tree_->Branch(
"t_trackDxyBS",
"std::vector<double>", &t_trackDxyBS);
2539 tree_->Branch(
"t_trackDz",
"std::vector<double>", &t_trackDz);
2540 tree_->Branch(
"t_trackDzBS",
"std::vector<double>", &t_trackDzBS);
2541 tree_->Branch(
"t_trackDxyPV",
"std::vector<double>", &t_trackDxyPV);
2542 tree_->Branch(
"t_trackDzPV",
"std::vector<double>", &t_trackDzPV);
2543 tree_->Branch(
"t_trackChiSq",
"std::vector<double>", &t_trackChiSq);
2544 tree_->Branch(
"t_trackPVIdx",
"std::vector<int>", &t_trackPVIdx);
2550 tree_->Branch(
"t_maxNearP21x21",
"std::vector<double>", &t_maxNearP21x21);
2553 t_e7x7 =
new std::vector<double>();
2554 t_e9x9 =
new std::vector<double>();
2555 t_e11x11 =
new std::vector<double>();
2556 t_e15x15 =
new std::vector<double>();
2559 tree_->Branch(
"t_e7x7",
"std::vector<double>", &t_e7x7);
2560 tree_->Branch(
"t_e9x9",
"std::vector<double>", &t_e9x9);
2561 tree_->Branch(
"t_e11x11",
"std::vector<double>", &t_e11x11);
2562 tree_->Branch(
"t_e15x15",
"std::vector<double>", &t_e15x15);
2586 tree_->Branch(
"t_e9x9_10Sig",
"std::vector<double>", &t_e9x9_10Sig);
2587 tree_->Branch(
"t_e11x11_10Sig",
"std::vector<double>", &t_e11x11_10Sig);
2588 tree_->Branch(
"t_e15x15_10Sig",
"std::vector<double>", &t_e15x15_10Sig);
2589 tree_->Branch(
"t_e7x7_15Sig",
"std::vector<double>", &t_e7x7_15Sig);
2590 tree_->Branch(
"t_e9x9_15Sig",
"std::vector<double>", &t_e9x9_15Sig);
2591 tree_->Branch(
"t_e11x11_15Sig",
"std::vector<double>", &t_e11x11_15Sig);
2592 tree_->Branch(
"t_e15x15_15Sig",
"std::vector<double>", &t_e15x15_15Sig);
2593 tree_->Branch(
"t_e7x7_20Sig",
"std::vector<double>", &t_e7x7_20Sig);
2594 tree_->Branch(
"t_e9x9_20Sig",
"std::vector<double>", &t_e9x9_20Sig);
2595 tree_->Branch(
"t_e11x11_20Sig",
"std::vector<double>", &t_e11x11_20Sig);
2596 tree_->Branch(
"t_e15x15_20Sig",
"std::vector<double>", &t_e15x15_20Sig);
2597 tree_->Branch(
"t_e7x7_25Sig",
"std::vector<double>", &t_e7x7_25Sig);
2598 tree_->Branch(
"t_e9x9_25Sig",
"std::vector<double>", &t_e9x9_25Sig);
2599 tree_->Branch(
"t_e11x11_25Sig",
"std::vector<double>", &t_e11x11_25Sig);
2600 tree_->Branch(
"t_e15x15_25Sig",
"std::vector<double>", &t_e15x15_25Sig);
2601 tree_->Branch(
"t_e7x7_30Sig",
"std::vector<double>", &t_e7x7_30Sig);
2602 tree_->Branch(
"t_e9x9_30Sig",
"std::vector<double>", &t_e9x9_30Sig);
2603 tree_->Branch(
"t_e11x11_30Sig",
"std::vector<double>", &t_e11x11_30Sig);
2604 tree_->Branch(
"t_e15x15_30Sig",
"std::vector<double>", &t_e15x15_30Sig);
2642 tree_->Branch(
"t_esim9x9",
"std::vector<double>", &t_esim9x9);
2643 tree_->Branch(
"t_esim11x11",
"std::vector<double>", &t_esim11x11);
2644 tree_->Branch(
"t_esim15x15",
"std::vector<double>", &t_esim15x15);
2646 tree_->Branch(
"t_esim7x7Matched",
"std::vector<double>", &t_esim7x7Matched);
2647 tree_->Branch(
"t_esim9x9Matched",
"std::vector<double>", &t_esim9x9Matched);
2648 tree_->Branch(
"t_esim11x11Matched",
"std::vector<double>", &t_esim11x11Matched);
2649 tree_->Branch(
"t_esim15x15Matched",
"std::vector<double>", &t_esim15x15Matched);
2651 tree_->Branch(
"t_esim7x7Rest",
"std::vector<double>", &t_esim7x7Rest);
2652 tree_->Branch(
"t_esim9x9Rest",
"std::vector<double>", &t_esim9x9Rest);
2653 tree_->Branch(
"t_esim11x11Rest",
"std::vector<double>", &t_esim11x11Rest);
2654 tree_->Branch(
"t_esim15x15Rest",
"std::vector<double>", &t_esim15x15Rest);
2656 tree_->Branch(
"t_esim7x7Photon",
"std::vector<double>", &t_esim7x7Photon);
2657 tree_->Branch(
"t_esim9x9Photon",
"std::vector<double>", &t_esim9x9Photon);
2658 tree_->Branch(
"t_esim11x11Photon",
"std::vector<double>", &t_esim11x11Photon);
2659 tree_->Branch(
"t_esim15x15Photon",
"std::vector<double>", &t_esim15x15Photon);
2661 tree_->Branch(
"t_esim7x7NeutHad",
"std::vector<double>", &t_esim7x7NeutHad);
2662 tree_->Branch(
"t_esim9x9NeutHad",
"std::vector<double>", &t_esim9x9NeutHad);
2663 tree_->Branch(
"t_esim11x11NeutHad",
"std::vector<double>", &t_esim11x11NeutHad);
2664 tree_->Branch(
"t_esim15x15NeutHad",
"std::vector<double>", &t_esim15x15NeutHad);
2666 tree_->Branch(
"t_esim7x7CharHad",
"std::vector<double>", &t_esim7x7CharHad);
2667 tree_->Branch(
"t_esim9x9CharHad",
"std::vector<double>", &t_esim9x9CharHad);
2668 tree_->Branch(
"t_esim11x11CharHad",
"std::vector<double>", &t_esim11x11CharHad);
2669 tree_->Branch(
"t_esim15x15CharHad",
"std::vector<double>", &t_esim15x15CharHad);
2671 tree_->Branch(
"t_trkEcalEne",
"std::vector<double>", &t_trkEcalEne);
2672 tree_->Branch(
"t_simTrackP",
"std::vector<double>", &t_simTrackP);
2673 tree_->Branch(
"t_esimPdgId",
"std::vector<double>", &t_esimPdgId);
2679 t_h3x3 =
new std::vector<double>();
2680 t_h5x5 =
new std::vector<double>();
2681 t_h7x7 =
new std::vector<double>();
2710 tree_->Branch(
"t_maxNearHcalP5x5",
"std::vector<double>", &t_maxNearHcalP5x5);
2711 tree_->Branch(
"t_maxNearHcalP7x7",
"std::vector<double>", &t_maxNearHcalP7x7);
2712 tree_->Branch(
"t_h3x3",
"std::vector<double>", &t_h3x3);
2713 tree_->Branch(
"t_h5x5",
"std::vector<double>", &t_h5x5);
2714 tree_->Branch(
"t_h7x7",
"std::vector<double>", &t_h7x7);
2715 tree_->Branch(
"t_h3x3Sig",
"std::vector<double>", &t_h3x3Sig);
2716 tree_->Branch(
"t_h5x5Sig",
"std::vector<double>", &t_h5x5Sig);
2717 tree_->Branch(
"t_h7x7Sig",
"std::vector<double>", &t_h7x7Sig);
2718 tree_->Branch(
"t_infoHcal",
"std::vector<int>", &t_infoHcal);
2749 return ((diff <
M_PI) ? diff : corr);
2753 double deta = eta1 -
eta2;
2754 double dphi =
deltaPhi(phi1, phi2);
2755 return std::sqrt(deta * deta + dphi * dphi);
2763 << pTrack->
momentum() <<
" (pt,eta,phi)(" << pTrack->
pt() <<
"," << pTrack->
eta() <<
"," 2764 << pTrack->
phi() <<
")" 2765 <<
" p " << pTrack->
p() <<
"\n Normalized chi2 " << pTrack->
normalizedChi2()
2766 <<
" charge " << pTrack->
charge() <<
" qoverp() " << pTrack->
qoverp() <<
"+-" 2767 << pTrack->
qoverpError() <<
" d0 " << pTrack->
d0() <<
"\n NValidHits " 2769 <<
" TrackQuality " << pTrack->
qualityName(trackQuality_) <<
" " 2770 << pTrack->
quality(trackQuality_);
std::vector< double > * t_hsim7x7CharHad
double qoverp() const
q / p
static const std::string kSharedResource
double p() const
momentum vector magnitude
std::vector< double > * t_hsim3x3Matched
int stripTOBLayersWithMeasurement() const
std::vector< double > * t_esim7x7CharHad
edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
std::vector< double > * t_e15x15
value_type const * get() const
std::vector< double > * t_nTrksJetCalo
const bool L1TriggerAlgoInfo_
T getParameter(std::string const &) const
EventNumber_t event() const
std::vector< double > * t_maxNearHcalP7x7
double deltaPhi(double v1, double v2)
const Point & referencePoint() const
Reference point on the track.
std::vector< double > * t_trackPt
std::vector< double > * t_trackPAll
const bool printTrkHitPattern_
std::vector< double > * t_e7x7
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
std::vector< double > * t_trackDxyPVAll
const unsigned int nTracks(const reco::Vertex &sv)
~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
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
std::vector< int > * t_trackHitInMissTOB
std::vector< double > * t_trackDz
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
std::vector< double > * t_trackEcalEta
int stripTIBLayersWithMeasurement() const
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
std::vector< double > * t_trackEtaAll
std::vector< double > * t_esim11x11Matched
std::vector< double > * t_L1IsoEMEta
std::vector< double > * t_PVTracksSumPt
bool getByToken(EDGetToken token, Handle< PROD > &result) const
std::vector< double > * t_e9x9_10Sig
TH1F * h_maxNearP25x25[NPBins][NEtaBins]
TrackQuality
track quality
std::vector< double > * t_hsim3x3CharHad
int stripTOBLayersWithoutMeasurement(HitCategory category) const
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
std::vector< double > * t_L1TauJetPhi
std::vector< double > * t_PVTracksSumPtWt
const bool availableL1Configuration(int &errorCode, int &l1ConfCode) const
std::vector< int > * t_infoHcal
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
int bunchCrossing() const
std::vector< double > * t_h3x3
edm::LuminosityBlockNumber_t luminosityBlock() const
std::vector< double > * t_L1MuonPhi
double phi() const
azimuthal angle of momentum vector
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
const bool decision(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
std::vector< double > * t_trackDxyAll
T * make(const Args &...args) const
make new ROOT object
std::vector< double > * t_maxNearHcalP3x3
IsolatedTracksNxN(const edm::ParameterSet &)
edm::EDGetTokenT< edm::SimVertexContainer > tok_simVtx_
std::vector< double > * t_hsim3x3Photon
edm::EDGetTokenT< reco::BeamSpot > tok_bs_
int pixelLayersWithMeasurement() const
const Vector & momentum() const
track momentum vector
std::vector< double > * t_PVTracksSumPtHP
const math::XYZPoint & outerPosition() const
position of the outermost hit
std::vector< double > * t_esim11x11Rest
int trackerLayersWithMeasurement() const
int pixelEndcapLayersWithMeasurement() const
const double maxTrackEta_
std::vector< int > * t_trackNOuterHits
std::vector< double > * t_h7x7Sig
std::vector< double > * t_e15x15_30Sig
std::vector< double > * t_trackPhiAll
std::vector< double > * t_e7x7_25Sig
double genPartPBins[NPBins+1]
std::vector< double > * t_trkHcalEne
double deltaR(double eta1, double phi1, double eta2, double phi2)
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
void printHitPattern(HitCategory category, int position, std::ostream &stream) const
std::vector< double > * t_e11x11_20Sig
std::vector< double > * t_jetEta
std::vector< double > * t_maxNearP31x31
std::vector< int > * t_trackHitInMissTEC
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
#define DEFINE_FWK_MODULE(type)
std::vector< double > * t_esim9x9Photon
std::vector< int > * t_trackHitInMeasTID
double eta() const
pseudorapidity of momentum vector
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
int stripTIDLayersWithMeasurement() const
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< int > * t_trackHitOutMissTID
std::vector< int > * t_trackHitOutMissTOBTEC
double pt() const
track transverse momentum
std::vector< int > * t_trackHitsTEC
std::vector< double > * t_e9x9_30Sig
edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEB_
std::vector< double > * t_L1CenJetPhi
int numberOfAllHits(HitCategory category) const
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_
std::vector< double > * t_esim15x15NeutHad
std::vector< double > * t_e9x9_20Sig
std::vector< int > * t_trackHitOutMeasTOB
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)
unsigned short numberOfValidHits() const
number of valid hits found
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
T * make(const Args &...args) const
make new ROOT object
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_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< double > * t_nTrksJetVtx
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_
std::vector< double > * t_esim7x7Matched
std::vector< double > * t_esim9x9
std::vector< double > * t_hsim5x5
std::vector< double > * t_h5x5
double qoverpError() const
error on signed transverse curvature
std::vector< double > * t_trackDxyPV
std::vector< double > * t_hsim5x5NeutHad
std::vector< double > * t_trackChiSq
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...
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
int stripTIDLayersWithoutMeasurement(HitCategory category) const
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
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
std::vector< double > * t_e9x9_15Sig
std::vector< double > * t_e7x7_15Sig
std::vector< double > * t_trackPhi
T const * product() const
std::vector< double > * t_e7x7_10Sig
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
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
int stripLayersWithMeasurement() const
int pixelBarrelLayersWithMeasurement() const
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
bool quality(const TrackQuality) const
Track quality.
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::vector< double > * t_e15x15_20Sig
void getL1GtRunCache(const edm::Run &, const edm::EventSetup &, const bool, const bool)
get all the run-constant quantities for L1 trigger and cache them
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
int stripTECLayersWithMeasurement() const
TH1F * h_maxNearP21x21[NPBins][NEtaBins]
int stripTECLayersWithoutMeasurement(HitCategory category) const
std::vector< double > * t_jetPhi
std::vector< double > * t_trackL
std::vector< double > * t_esim7x7Rest
std::vector< double > * t_trackDxyBS
int charge() const
track electric charge
const Point & position() const
position
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_
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
const L1GtTriggerMenu * ptrL1TriggerMenuEventSetup(int &errorCode)
return a pointer to the L1 trigger menu from event setup
double genPartEtaBins[NEtaBins+1]
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< 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
T const * product() const
std::vector< int > * t_trackHitOutMissTEC
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
int stripTIBLayersWithoutMeasurement(HitCategory category) const
std::vector< double > * t_h5x5Sig
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_
std::vector< double > * t_esim15x15CharHad
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const int prescaleFactor(const edm::Event &iEvent, const std::string &nameAlgoTechTrig, int &errorCode) const
return prescale factor for a given algorithm or technical trigger