28 #include <Math/GenVector/VectorUtil.h> 113 #include "TProfile.h" 114 #include "TDirectory.h" 215 std::unique_ptr<std::vector<double> >
t_trkP;
216 std::unique_ptr<std::vector<double> >
t_simP;
217 std::unique_ptr<std::vector<double> >
t_trkPt;
220 std::unique_ptr<std::vector<double> >
t_e3x3;
222 std::unique_ptr<std::vector<std::vector<double> > >
t_v_eDR;
223 std::unique_ptr<std::vector<std::vector<double> > >
t_v_eMipDR;
225 std::unique_ptr<std::vector<double> >
t_h3x3;
226 std::unique_ptr<std::vector<double> >
t_h5x5;
288 std::unique_ptr<std::vector<std::vector<double> > >
t_v_hCone;
327 std::unique_ptr<std::vector<unsigned int> >
t_irun;
328 std::unique_ptr<std::vector<unsigned int> >
t_ievt;
329 std::unique_ptr<std::vector<unsigned int> >
t_ilum;
333 : doMC_(iConfig.getUntrackedParameter<
bool>(
"doMC",
false)),
334 myverbose_(iConfig.getUntrackedParameter<
int>(
"verbosity", 5)),
335 useJetTrigger_(iConfig.getUntrackedParameter<
bool>(
"useJetTrigger",
false)),
336 drLeadJetVeto_(iConfig.getUntrackedParameter<double>(
"drLeadJetVeto", 1.2)),
337 ptMinLeadJet_(iConfig.getUntrackedParameter<double>(
"ptMinLeadJet", 15.0)),
338 debugTrks_(iConfig.getUntrackedParameter<
int>(
"debugTracks")),
339 printTrkHitPattern_(iConfig.getUntrackedParameter<
bool>(
"printTrkHitPattern")),
340 trackerHitAssociatorConfig_(consumesCollector()),
362 minTrackP_(iConfig.getUntrackedParameter<double>(
"minTrackP", 10.0)),
363 maxTrackEta_(iConfig.getUntrackedParameter<double>(
"maxTrackEta", 5.0)),
364 maxNearTrackP_(iConfig.getUntrackedParameter<double>(
"maxNearTrackP", 1.0)),
365 debugEcalSimInfo_(iConfig.getUntrackedParameter<
int>(
"debugEcalSimInfo")),
366 applyEcalIsolation_(iConfig.getUntrackedParameter<
bool>(
"applyEcalIsolation")) {
390 desc.addUntracked<
bool>(
"doMC",
false);
391 desc.addUntracked<
int>(
"verbosity", 1);
392 desc.addUntracked<
bool>(
"useJetTrigger",
false);
393 desc.addUntracked<
double>(
"drLeadJetVeto", 1.2);
394 desc.addUntracked<
double>(
"ptMinLeadJet", 15.0);
395 desc.addUntracked<
int>(
"debugTracks", 0);
396 desc.addUntracked<
bool>(
"printTrkHitPattern",
true);
397 desc.addUntracked<
double>(
"minTrackP", 1.0);
398 desc.addUntracked<
double>(
"maxTrackEta", 2.6);
399 desc.addUntracked<
double>(
"maxNearTrackP", 1.0);
400 desc.addUntracked<
bool>(
"debugEcalSimInfo",
false);
401 desc.addUntracked<
bool>(
"applyEcalIsolation",
true);
402 desc.addUntracked<
bool>(
"debugL1Info",
false);
408 desc_TrackAssoc.
add<
double>(
"muonMaxDistanceSigmaX", 0.0);
409 desc_TrackAssoc.add<
double>(
"muonMaxDistanceSigmaY", 0.0);
411 desc_TrackAssoc.add<
double>(
"dRHcal", 9999.0);
412 desc_TrackAssoc.add<
double>(
"dREcal", 9999.0);
414 desc_TrackAssoc.add<
bool>(
"useEcal",
true);
415 desc_TrackAssoc.add<
double>(
"dREcalPreselection", 0.05);
417 desc_TrackAssoc.add<
double>(
"dRMuon", 9999.0);
418 desc_TrackAssoc.add<
std::string>(
"crossedEnergyType",
"SinglePointAlongTrajectory");
419 desc_TrackAssoc.add<
double>(
"muonMaxDistanceX", 5.0);
420 desc_TrackAssoc.add<
double>(
"muonMaxDistanceY", 5.0);
421 desc_TrackAssoc.add<
bool>(
"useHO",
false);
422 desc_TrackAssoc.add<
bool>(
"accountForTrajectoryChangeCalo",
false);
425 desc_TrackAssoc.add<
double>(
"dRHcalPreselection", 0.2);
426 desc_TrackAssoc.add<
bool>(
"useMuon",
false);
427 desc_TrackAssoc.add<
bool>(
"useCalo",
true);
429 desc_TrackAssoc.add<
double>(
"dRMuonPreselection", 0.2);
430 desc_TrackAssoc.add<
bool>(
"truthMatch",
false);
432 desc_TrackAssoc.add<
bool>(
"useHcal",
true);
433 desc_TrackAssoc.add<
bool>(
"usePreshower",
false);
434 desc_TrackAssoc.add<
double>(
"dRPreshowerPreselection", 0.2);
435 desc_TrackAssoc.add<
double>(
"trajectoryUncertaintyTolerance", 1.0);
437 descriptions.
add(
"isolatedTracksCone",
desc);
441 unsigned int irun = (
unsigned int)
iEvent.id().run();
442 unsigned int ilum = (
unsigned int)
iEvent.getLuminosityBlock().luminosityBlock();
443 unsigned int ievt = (
unsigned int)
iEvent.id().event();
455 l1extra::L1JetParticleCollection::const_iterator itr;
456 for (itr = l1TauHandle->begin(); itr != l1TauHandle->end(); ++itr) {
465 for (itr = l1CenJetHandle->begin(); itr != l1CenJetHandle->end(); ++itr) {
474 for (itr = l1FwdJetHandle->begin(); itr != l1FwdJetHandle->end(); ++itr) {
522 reco::TrackCollection::const_iterator trkItr;
525 edm::LogVerbatim(
"IsoTrack") <<
"Number of Tracks " << trkCollection->size();
559 std::vector<int> v_hlTriggers;
569 int hltL1SingleEG5(-99);
570 int hltZeroBias(-99);
571 int hltMinBiasHcal(-99);
572 int hltMinBiasEcal(-99);
573 int hltMinBiasPixel(-99);
574 int hltSingleIsoTau30_Trk5(-99);
575 int hltDoubleLooseIsoTau15_Trk5(-99);
611 if (
triggerNames.triggerName(
i) ==
"HLT_SingleIsoTau30_Trk5")
613 if (
triggerNames.triggerName(
i) ==
"HLT_DoubleLooseIsoTau15_Trk5")
621 std::unique_ptr<TrackerHitAssociator> associate;
634 for (trkItr = trkCollection->begin(); trkItr != trkCollection->end(); ++trkItr) {
643 bool trkQual = pTrack->
quality(trackQuality_);
648 double phi1 = pTrack->
momentum().phi();
649 double pt1 = pTrack->
pt();
650 double p1 = pTrack->
p();
667 if (!goodEta || !goodPt || !trkQual)
696 int nOuterHits = hitp.stripTOBLayersWithMeasurement() + hitp.stripTECLayersWithMeasurement();
700 edm::SimTrackContainer::const_iterator matchedSimTrk =
702 simP = matchedSimTrk->momentum().P();
727 double drFromLeadJet = 999.0;
731 drFromLeadJet =
sqrt(dphi * dphi + deta * deta);
739 const int a_size = 7;
740 double a_coneR[a_size];
741 double a_charIsoR[a_size];
742 double a_neutIsoR[a_size];
752 for (
int i = 0;
i < a_size;
i++) {
753 a_charIsoR[
i] = a_coneR[
i] + 28.9;
754 a_neutIsoR[
i] = a_charIsoR[
i] * 0.726;
762 double e3x3 = -999.0;
763 double trkEcalEne = -999.0;
765 if (
std::abs(point1.eta()) < 1.479) {
768 isoCell, barrelRecHitsHandle, endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology, sevlv, 1, 1)
774 isoCell, barrelRecHitsHandle, endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology, sevlv, 1, 1)
782 const int a_mip_size = 5;
783 double a_mipR[a_mip_size];
790 std::vector<double> v_eDR;
791 for (
int i = 0;
i < a_size;
i++) {
796 geo, barrelRecHitsHandle, endcapRecHitsHandle, hpoint1, point1, a_neutIsoR[
i], trackMomAtEcal, nRH_eDR);
797 v_eDR.push_back(eDR);
800 std::vector<double> v_eMipDR;
801 for (
int i = 0;
i < a_mip_size;
i++) {
804 geo, barrelRecHitsHandle, endcapRecHitsHandle, hpoint1, point1, a_mipR[
i], trackMomAtEcal, nRH_eMipDR);
806 v_eMipDR.push_back(eMipDR);
814 std::vector<double> v_hmaxNearP_goodTrk;
815 std::vector<double> v_hmaxNearP;
816 std::vector<int> v_hnNearTRKs;
817 std::vector<int> v_hnLayers_maxNearP;
818 std::vector<int> v_htrkQual_maxNearP;
820 std::vector<double> v_cone_hmaxNearP_goodTrk;
821 std::vector<double> v_cone_hmaxNearP;
822 std::vector<int> v_cone_hnNearTRKs;
823 std::vector<int> v_cone_hnLayers_maxNearP;
824 std::vector<int> v_cone_htrkQual_maxNearP;
826 for (
int i = 0;
i < a_size;
i++) {
827 double hmaxNearP = -999.0;
829 int hnLayers_maxNearP = 0;
830 int htrkQual_maxNearP = -1;
831 double hmaxNearP_goodTrk = -999.0;
833 double conehmaxNearP = -999.0;
834 int conehnNearTRKs = 0;
835 int conehnLayers_maxNearP = 0;
836 int conehtrkQual_maxNearP = -1;
837 double conehmaxNearP_goodTrk = -999.0;
847 conehnLayers_maxNearP,
848 conehtrkQual_maxNearP,
849 conehmaxNearP_goodTrk,
854 v_hmaxNearP_goodTrk.push_back(hmaxNearP_goodTrk);
855 v_hmaxNearP.push_back(hmaxNearP);
856 v_hnNearTRKs.push_back(hnNearTRKs);
857 v_hnLayers_maxNearP.push_back(hnLayers_maxNearP);
858 v_htrkQual_maxNearP.push_back(htrkQual_maxNearP);
860 v_cone_hmaxNearP_goodTrk.push_back(conehmaxNearP_goodTrk);
861 v_cone_hmaxNearP.push_back(conehmaxNearP);
862 v_cone_hnNearTRKs.push_back(conehnNearTRKs);
863 v_cone_hnLayers_maxNearP.push_back(conehnLayers_maxNearP);
864 v_cone_htrkQual_maxNearP.push_back(conehtrkQual_maxNearP);
867 double h3x3 = -999.0, h5x5 = -999.0;
868 double hsim3x3 = -999.0, hsim5x5 = -999.0, trkHcalEne = -999.0;
869 std::map<std::string, double> hsimInfo3x3, hsimInfo5x5;
870 double distFromHotCell_h3x3 = -99.;
871 int ietaFromHotCell_h3x3 = -99;
872 int iphiFromHotCell_h3x3 = -99;
873 double distFromHotCell_h5x5 = -99.;
874 int ietaFromHotCell_h5x5 = -99;
875 int iphiFromHotCell_h5x5 = -99;
880 int nRH_h3x3(0), nRH_h5x5(0);
895 std::vector<int> v_RH_h3x3_ieta;
896 std::vector<int> v_RH_h3x3_iphi;
897 std::vector<double> v_RH_h3x3_ene;
898 std::vector<int> v_RH_h5x5_ieta;
899 std::vector<int> v_RH_h5x5_iphi;
900 std::vector<double> v_RH_h5x5_ene;
930 std::vector<int> multiplicity3x3;
931 std::vector<int> multiplicity5x5;
937 iEvent, theHBHETopology, ClosestCell, pcalohh, SimTk, SimVtx, pTrack, *associate, 1, 1, multiplicity3x3);
939 iEvent, theHBHETopology, ClosestCell, pcalohh, SimTk, SimVtx, pTrack, *associate, 2, 2, multiplicity5x5);
946 std::vector<double> v_hsimInfoConeMatched;
947 std::vector<double> v_hsimInfoConeRest;
948 std::vector<double> v_hsimInfoConePhoton;
949 std::vector<double> v_hsimInfoConeNeutHad;
950 std::vector<double> v_hsimInfoConeCharHad;
951 std::vector<double> v_hsimInfoConePdgMatched;
952 std::vector<double> v_hsimInfoConeTotal;
954 std::vector<int> v_hsimInfoConeNMatched;
955 std::vector<int> v_hsimInfoConeNTotal;
956 std::vector<int> v_hsimInfoConeNNeutHad;
957 std::vector<int> v_hsimInfoConeNCharHad;
958 std::vector<int> v_hsimInfoConeNPhoton;
959 std::vector<int> v_hsimInfoConeNRest;
961 std::vector<double> v_hsimCone;
962 std::vector<double> v_hCone;
964 std::vector<int> v_nRecHitsCone;
965 std::vector<int> v_nSimHitsCone;
967 std::vector<double> v_distFromHotCell;
968 std::vector<int> v_ietaFromHotCell;
969 std::vector<int> v_iphiFromHotCell;
972 std::vector<int> v_RH_r26_ieta;
973 std::vector<int> v_RH_r26_iphi;
974 std::vector<double> v_RH_r26_ene;
975 std::vector<int> v_RH_r44_ieta;
976 std::vector<int> v_RH_r44_iphi;
977 std::vector<double> v_RH_r44_ene;
979 for (
int i = 0;
i < a_size;
i++) {
980 std::map<std::string, double> hsimInfoCone;
981 double hsimCone = -999.0, hCone = -999.0;
982 double distFromHotCell = -99.0;
983 int ietaFromHotCell = -99;
984 int iphiFromHotCell = -99;
985 int ietaHotCell = -99;
986 int iphiHotCell = -99;
987 int nRecHitsCone = -999;
988 int nSimHitsCone = -999;
990 std::vector<int> multiplicityCone;
991 std::vector<DetId> coneRecHitDetIds;
993 hsimCone =
spr::eCone_hcal(geo, pcalohh, hpoint1, point1, a_coneR[
i], trackMomAtHcal, nSimHitsCone);
997 bool makeHitmaps =
false;
998 if (a_coneR[
i] == 26.23 && makeHitmaps) {
1014 }
else if (a_coneR[
i] == 43.72 && makeHitmaps) {
1045 if (ietaHotCell != 99) {
1046 ietaFromHotCell = ietaHotCell - ClosestCell_HcalDetId.ieta();
1047 iphiFromHotCell = iphiHotCell - ClosestCell_HcalDetId.iphi();
1052 hsimInfoCone = spr::eHCALSimInfoCone(
iEvent,
1073 v_hsimInfoConeMatched.push_back(hsimInfoCone[
"eMatched"]);
1074 v_hsimInfoConeRest.push_back(hsimInfoCone[
"eRest"]);
1075 v_hsimInfoConePhoton.push_back(hsimInfoCone[
"eGamma"]);
1076 v_hsimInfoConeNeutHad.push_back(hsimInfoCone[
"eNeutralHad"]);
1077 v_hsimInfoConeCharHad.push_back(hsimInfoCone[
"eChargedHad"]);
1078 v_hsimInfoConePdgMatched.push_back(hsimInfoCone[
"pdgMatched"]);
1079 v_hsimInfoConeTotal.push_back(hsimInfoCone[
"eTotal"]);
1081 v_hsimInfoConeNMatched.push_back(multiplicityCone.at(0));
1083 v_hsimInfoConeNTotal.push_back(multiplicityCone.at(1));
1084 v_hsimInfoConeNNeutHad.push_back(multiplicityCone.at(2));
1085 v_hsimInfoConeNCharHad.push_back(multiplicityCone.at(3));
1086 v_hsimInfoConeNPhoton.push_back(multiplicityCone.at(4));
1087 v_hsimInfoConeNRest.push_back(multiplicityCone.at(5));
1089 v_hsimCone.push_back(hsimCone);
1090 v_nSimHitsCone.push_back(nSimHitsCone);
1092 v_hCone.push_back(hCone);
1093 v_nRecHitsCone.push_back(nRecHitsCone);
1095 v_distFromHotCell.push_back(distFromHotCell);
1096 v_ietaFromHotCell.push_back(ietaFromHotCell);
1097 v_iphiFromHotCell.push_back(iphiFromHotCell);
1258 genPartPBins_ = {{0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0,
1259 12.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0, 70.0, 80.0, 100.0}};
1263 t_v_hnNearTRKs = std::make_unique<std::vector<std::vector<int> > >();
1267 t_v_hmaxNearP = std::make_unique<std::vector<std::vector<double> > >();
1279 t_trkP = std::make_unique<std::vector<double> >();
1280 t_trkPt = std::make_unique<std::vector<double> >();
1281 t_trkEta = std::make_unique<std::vector<double> >();
1282 t_trkPhi = std::make_unique<std::vector<double> >();
1284 t_e3x3 = std::make_unique<std::vector<double> >();
1285 t_v_eDR = std::make_unique<std::vector<std::vector<double> > >();
1286 t_v_eMipDR = std::make_unique<std::vector<std::vector<double> > >();
1288 t_h3x3 = std::make_unique<std::vector<double> >();
1289 t_h5x5 = std::make_unique<std::vector<double> >();
1291 t_nRH_h3x3 = std::make_unique<std::vector<double> >();
1292 t_nRH_h5x5 = std::make_unique<std::vector<double> >();
1295 t_simP = std::make_unique<std::vector<double> >();
1296 t_hsim3x3 = std::make_unique<std::vector<double> >();
1297 t_hsim5x5 = std::make_unique<std::vector<double> >();
1328 t_trkHcalEne = std::make_unique<std::vector<double> >();
1329 t_trkEcalEne = std::make_unique<std::vector<double> >();
1355 t_v_hsimCone = std::make_unique<std::vector<std::vector<double> > >();
1358 t_v_hCone = std::make_unique<std::vector<std::vector<double> > >();
1368 t_v_RH_h3x3_ene = std::make_unique<std::vector<std::vector<double> > >();
1371 t_v_RH_h5x5_ene = std::make_unique<std::vector<std::vector<double> > >();
1372 t_v_RH_r26_ieta = std::make_unique<std::vector<std::vector<int> > >();
1373 t_v_RH_r26_iphi = std::make_unique<std::vector<std::vector<int> > >();
1374 t_v_RH_r26_ene = std::make_unique<std::vector<std::vector<double> > >();
1375 t_v_RH_r44_ieta = std::make_unique<std::vector<std::vector<int> > >();
1376 t_v_RH_r44_iphi = std::make_unique<std::vector<std::vector<int> > >();
1377 t_v_RH_r44_ene = std::make_unique<std::vector<std::vector<double> > >();
1379 t_v_hlTriggers = std::make_unique<std::vector<std::vector<int> > >();
1381 t_hltHE = std::make_unique<std::vector<int> >();
1382 t_hltHB = std::make_unique<std::vector<int> >();
1384 t_hltJet30 = std::make_unique<std::vector<int> >();
1385 t_hltJet50 = std::make_unique<std::vector<int> >();
1386 t_hltJet80 = std::make_unique<std::vector<int> >();
1387 t_hltJet110 = std::make_unique<std::vector<int> >();
1388 t_hltJet140 = std::make_unique<std::vector<int> >();
1389 t_hltJet180 = std::make_unique<std::vector<int> >();
1398 t_irun = std::make_unique<std::vector<unsigned int> >();
1399 t_ievt = std::make_unique<std::vector<unsigned int> >();
1400 t_ilum = std::make_unique<std::vector<unsigned int> >();
1548 h_RawPt =
fs->make<TH1F>(
"hRawPt",
"hRawPt", 100, 0.0, 100.0);
1549 h_RawP =
fs->make<TH1F>(
"hRawP",
"hRawP", 100, 0.0, 100.0);
1550 h_RawEta =
fs->make<TH1F>(
"hRawEta",
"hRawEta", 15, 0.0, 3.0);
1551 h_RawPhi =
fs->make<TH1F>(
"hRawPhi",
"hRawPhi", 100, -3.2, 3.2);
1553 ntp_ =
fs->make<TTree>(
"ntp",
"ntp");
1556 ntp_->Branch(
"nEVT", &
nEVT,
"nEVT/I");
1560 ntp_->Branch(
"nTRK", &
nTRK,
"nTRK/I");
1584 ntp_->Branch(
"trkP",
"std::vector<double>", &
t_trkP);
1585 ntp_->Branch(
"trkPt",
"std::vector<double>", &
t_trkPt);
1586 ntp_->Branch(
"trkEta",
"std::vector<double>", &
t_trkEta);
1587 ntp_->Branch(
"trkPhi",
"std::vector<double>", &
t_trkPhi);
1588 ntp_->Branch(
"e3x3",
"std::vector<double>", &
t_e3x3);
1590 ntp_->Branch(
"e3x3",
"std::vector<double>", &
t_e3x3);
1591 ntp_->Branch(
"v_eDR",
"std::vector<std::vector<double> >", &
t_v_eDR);
1592 ntp_->Branch(
"v_eMipDR",
"std::vector<std::vector<double> >", &
t_v_eMipDR);
1594 ntp_->Branch(
"h3x3",
"std::vector<double>", &
t_h3x3);
1595 ntp_->Branch(
"h5x5",
"std::vector<double>", &
t_h5x5);
1600 ntp_->Branch(
"simP",
"std::vector<double>", &
t_simP);
1660 ntp_->Branch(
"v_hsimCone",
"std::vector<std::vector<double> >", &
t_v_hsimCone);
1663 ntp_->Branch(
"v_hCone",
"std::vector<std::vector<double> >", &
t_v_hCone);
1685 ntp_->Branch(
"v_hltHB",
"std::vector<int>", &
t_hltHB);
1686 ntp_->Branch(
"v_hltHE",
"std::vector<int>", &
t_hltHE);
1702 ntp_->Branch(
"irun",
"std::vector<unsigned int>", &
t_irun);
1703 ntp_->Branch(
"ievt",
"std::vector<unsigned int>", &
t_ievt);
1704 ntp_->Branch(
"ilum",
"std::vector<unsigned int>", &
t_ilum);
1712 <<
" TrackMmentum " << pTrack->
momentum() <<
" (pt,eta,phi)(" << pTrack->
pt() <<
"," 1713 << pTrack->
eta() <<
"," << pTrack->
phi() <<
")" 1714 <<
" p " << pTrack->
p() <<
"\n" 1717 << pTrack->
d0() <<
"\n" 1720 <<
" " << pTrack->
quality(trackQuality_);
1725 std::ostringstream st1;
bool quality(const TrackQuality) const
Track quality.
std::unique_ptr< std::vector< int > > t_hltJet30
constexpr double deltaPhi(double phi1, double phi2)
double eCone_hcal(const CaloGeometry *geo, edm::Handle< T > &hits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double hbThr=-100, double heThr=-100, double hfThr=-100, double hoThr=-100, double tMin=-500, double tMax=500, int detOnly=-1, int useRaw=0, bool debug=false)
Log< level::Info, true > LogVerbatim
std::unique_ptr< std::vector< int > > t_hsim3x3NCharHad
std::unique_ptr< std::vector< double > > t_trkPt
double qoverp() const
q / p
double coneChargeIsolation(const edm::Event &iEvent, const edm::EventSetup &iSetup, reco::TrackCollection::const_iterator trkItr, edm::Handle< reco::TrackCollection > trkCollection, TrackDetectorAssociator &associator, TrackAssociatorParameters ¶meters_, const std::string &theTrackQuality, int &nNearTRKs, int &nLayers_maxNearP, int &trkQual_maxNearP, double &maxNearP_goodTrk, const GlobalPoint &hpoint1, const GlobalVector &trackMom, double dR)
std::unique_ptr< std::vector< double > > t_trkPhi
std::unique_ptr< std::vector< double > > t_e3x3
std::unique_ptr< std::vector< double > > t_trkNLayersCrossed
const bool applyEcalIsolation_
std::unique_ptr< std::vector< double > > t_hsim5x5NeutHad
std::unique_ptr< std::vector< int > > t_hltZeroBias
std::unique_ptr< std::vector< int > > t_ietaFromHotCell_h3x3
T getParameter(std::string const &) const
TrackAssociatorParameters parameters_
std::vector< PCaloHit > PCaloHitContainer
static std::string qualityName(TrackQuality)
double getDistInPlaneTrackDir(const GlobalPoint &caloPoint, const GlobalVector &caloVector, const GlobalPoint &rechitPoint, bool debug=false)
std::unique_ptr< std::vector< int > > t_hltHB
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::unique_ptr< std::vector< int > > t_ietaFromHotCell_h5x5
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::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConePhoton
std::unique_ptr< std::vector< double > > t_simP
std::unique_ptr< std::vector< double > > t_hsim3x3NeutHad
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
std::unique_ptr< std::vector< int > > t_hsim5x5NTotal
const edm::EDGetTokenT< edm::SimTrackContainer > tok_simTk_
const edm::ESGetToken< EcalChannelStatus, EcalChannelStatusRcd > tok_ecalChStatus_
double qoverpError() const
error on signed transverse curvature
const edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extTauJet_
std::unique_ptr< std::vector< std::vector< int > > > t_v_cone_hnNearTRKs
std::unique_ptr< std::vector< double > > t_hsim5x5Total
const double ptMinLeadJet_
unsigned short numberOfValidHits() const
number of valid hits found
std::unique_ptr< std::vector< int > > t_hsim5x5NNeutHad
const double maxTrackEta_
std::unique_ptr< std::vector< std::vector< int > > > t_v_hnNearTRKs
const edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
std::unique_ptr< std::vector< int > > t_hsim3x3NTotal
TrackQuality
track quality
std::unique_ptr< std::vector< int > > t_hsim5x5NRest
double p() const
momentum vector magnitude
int trackerLayersWithMeasurement() const
std::unique_ptr< std::vector< double > > t_hsim5x5
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_h5x5_ene
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimCone
std::unique_ptr< std::vector< double > > t_distFromHotCell_h3x3
std::vector< Track > TrackCollection
collection of Tracks
std::unique_ptr< std::vector< std::vector< int > > > t_v_htrkQual_maxNearP
void loadParameters(const edm::ParameterSet &, edm::ConsumesCollector &)
std::unique_ptr< std::vector< std::vector< double > > > t_v_cone_hmaxNearP_goodTrk
std::unique_ptr< std::vector< double > > t_hsim5x5Photon
const TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::unique_ptr< std::vector< double > > t_hsim3x3
std::unique_ptr< std::vector< int > > t_hltHE
std::unique_ptr< std::vector< int > > t_hsim5x5NPhoton
const Point & referencePoint() const
Reference point on the track.
std::unique_ptr< std::vector< int > > t_iphiFromHotCell_h5x5
const edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > tok_topo_
std::unique_ptr< std::vector< int > > t_hltJet110
const double drLeadJetVeto_
std::unique_ptr< std::vector< double > > t_hsim5x5Rest
std::unique_ptr< std::vector< int > > t_hsim5x5NMatched
std::unique_ptr< std::vector< std::vector< int > > > t_v_hlTriggers
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNRest
std::unique_ptr< std::vector< double > > t_hsim3x3Rest
std::array< double, nPBins_+1 > genPartPBins_
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h5x5_iphi
std::unique_ptr< std::vector< int > > t_hltMinBiasPixel
math::XYZPoint trkGlobPosAtHcal
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r44_iphi
std::unique_ptr< std::vector< double > > t_hsim5x5Matched
std::unique_ptr< std::vector< std::vector< double > > > t_v_hmaxNearP
std::unique_ptr< std::vector< int > > t_hltJet50
std::unique_ptr< std::vector< int > > t_hltMinBiasHcal
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > tok_geom_
double pt() const
track transverse momentum
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeRest
std::unique_ptr< std::vector< int > > t_iphiFromHotCell_h3x3
const bool useJetTrigger_
std::unique_ptr< std::vector< double > > t_h3x3
int charge() const
track electric charge
std::unique_ptr< std::vector< int > > t_hltDoubleLooseIsoTau15_Trk5
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r26_iphi
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEE_
const edm::ESGetToken< CaloTopology, CaloTopologyRecord > tok_caloTopology_
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)
std::unique_ptr< std::vector< double > > t_dtFromLeadJet
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNNeutHad
std::unique_ptr< std::vector< std::vector< int > > > t_v_cone_htrkQual_maxNearP
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloHH_
std::unique_ptr< std::vector< double > > t_trkNOuterHits
std::unique_ptr< std::vector< std::vector< int > > > t_v_ietaFromHotCell
std::unique_ptr< std::vector< unsigned int > > t_ilum
std::unique_ptr< std::vector< int > > t_hltMinBiasEcal
const int debugEcalSimInfo_
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_r26_ene
std::unique_ptr< std::vector< std::vector< int > > > t_v_hnLayers_maxNearP
void analyze(const edm::Event &, const edm::EventSetup &) override
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::unique_ptr< std::vector< std::vector< int > > > t_v_cone_hnLayers_maxNearP
const edm::EDGetTokenT< edm::SimVertexContainer > tok_simVtx_
std::unique_ptr< std::vector< double > > t_hsim5x5CharHad
std::unique_ptr< std::vector< int > > t_hltL1Jet15
const edm::EDGetTokenT< edm::TriggerResults > tok_trigger_
std::unique_ptr< std::vector< unsigned int > > t_ievt
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeTotal
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bFieldToken
Abs< T >::type abs(const T &t)
const edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
double phi() const
azimuthal angle of momentum vector
double eCone_ecal(const CaloGeometry *geo, edm::Handle< T > &barrelhits, edm::Handle< T > &endcaphits, const GlobalPoint &hpoint1, const GlobalPoint &point1, double dR, const GlobalVector &trackMom, int &nRecHits, double ebThr=-100, double eeThr=-100, double tMin=-500, double tMax=500, bool debug=false)
#define DEFINE_FWK_MODULE(type)
std::array< double, nEtaBins_+1 > genPartEtaBins
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)
std::unique_ptr< std::vector< double > > t_hsim3x3Photon
std::unique_ptr< std::vector< std::vector< int > > > t_v_nRecHitsCone
static std::string const triggerResults
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::unique_ptr< std::vector< double > > t_hsim3x3Total
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h5x5_ieta
const edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
std::unique_ptr< std::vector< unsigned int > > t_irun
virtual DetId getClosestCell(const GlobalPoint &r) const
std::unique_ptr< std::vector< double > > t_nRH_h5x5
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNPhoton
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeMatched
std::unique_ptr< std::vector< double > > t_hsim5x5PdgMatched
static constexpr int nEtaBins_
std::unique_ptr< std::vector< double > > t_hsim3x3PdgMatched
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r44_ieta
double eta() const
pseudorapidity of momentum vector
static TrackQuality qualityByName(const std::string &name)
std::unique_ptr< std::vector< std::vector< int > > > t_v_nSimHitsCone
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
std::unique_ptr< std::vector< int > > t_hltL1SingleEG5
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
std::unique_ptr< std::vector< int > > t_hltJet180
GlobalVector trkMomAtEcal
std::unique_ptr< std::vector< double > > t_hsim3x3CharHad
constexpr uint32_t rawId() const
get the raw id
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeCharHad
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeNeutHad
std::vector< SimVertex > SimVertexContainer
const double maxNearTrackP_
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
IsolatedTracksCone(const edm::ParameterSet &)
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNMatched
std::unique_ptr< std::vector< double > > t_distFromHotCell_h5x5
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::unique_ptr< std::vector< double > > t_trkHcalEne
const edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
const edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > tok_sevlv_
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h3x3_ieta
const Vector & momentum() const
track momentum vector
std::unique_ptr< std::vector< std::vector< double > > > t_v_distFromHotCell
std::unique_ptr< std::vector< std::vector< double > > > t_v_hCone
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r26_ieta
std::unique_ptr< std::vector< std::vector< double > > > t_v_eDR
GlobalVector trkMomAtHcal
const edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extCenJet_
std::unique_ptr< std::vector< double > > t_hsim3x3Matched
std::unique_ptr< std::vector< double > > t_trkEcalEne
std::unique_ptr< std::vector< std::vector< int > > > t_v_iphiFromHotCell
std::unique_ptr< std::vector< int > > t_hsim3x3NPhoton
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNCharHad
std::unique_ptr< std::vector< double > > t_nRH_h3x3
static constexpr int nPBins_
std::unique_ptr< std::vector< int > > t_hsim3x3NRest
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNTotal
void printTrack(const reco::Track *pTrack)
math::XYZPoint trkGlobPosAtEcal
Track position at different parts of the calorimeter.
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h3x3_iphi
std::unique_ptr< std::vector< double > > t_h5x5
std::unique_ptr< std::vector< int > > t_hltJet80
std::unique_ptr< std::vector< double > > t_trkEta
std::unique_ptr< std::vector< std::vector< double > > > t_v_eMipDR
std::unique_ptr< std::vector< int > > t_hsim3x3NNeutHad
std::unique_ptr< std::vector< double > > t_trkP
std::vector< SimTrack > SimTrackContainer
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
const edm::EDGetTokenT< edm::PCaloHitContainer > tok_caloEB_
std::unique_ptr< std::vector< int > > t_hltSingleIsoTau30_Trk5
std::unique_ptr< std::vector< int > > t_hltJet140
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_h3x3_ene
std::unique_ptr< std::vector< std::vector< double > > > t_v_hmaxNearP_goodTrk
std::unique_ptr< std::vector< int > > t_hsim5x5NCharHad
std::unique_ptr< std::vector< int > > t_hsim3x3NMatched
std::unique_ptr< std::vector< std::vector< double > > > t_v_cone_hmaxNearP
~IsolatedTracksCone() override
std::unique_ptr< TrackDetectorAssociator > trackAssociator_
const edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
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)
const bool printTrkHitPattern_
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)
std::unique_ptr< std::vector< std::vector< double > > > t_v_RH_r44_ene
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConePdgMatched