27 #include <Math/GenVector/VectorUtil.h> 112 #include "TProfile.h" 113 #include "TDirectory.h" 135 double deltaPhi(
double v1,
double v2);
136 double deltaR(
double eta1,
double phi1,
double eta2,
double phi2);
212 std::unique_ptr<std::vector<double> >
t_trkP;
213 std::unique_ptr<std::vector<double> >
t_simP;
214 std::unique_ptr<std::vector<double> >
t_trkPt;
217 std::unique_ptr<std::vector<double> >
t_e3x3;
219 std::unique_ptr<std::vector<std::vector<double> > >
t_v_eDR;
220 std::unique_ptr<std::vector<std::vector<double> > >
t_v_eMipDR;
222 std::unique_ptr<std::vector<double> >
t_h3x3;
223 std::unique_ptr<std::vector<double> >
t_h5x5;
285 std::unique_ptr<std::vector<std::vector<double> > >
t_v_hCone;
324 std::unique_ptr<std::vector<unsigned int> >
t_irun;
325 std::unique_ptr<std::vector<unsigned int> >
t_ievt;
326 std::unique_ptr<std::vector<unsigned int> >
t_ilum;
332 myverbose_(iConfig.getUntrackedParameter<
int>(
"verbosity",5)),
334 drLeadJetVeto_(iConfig.getUntrackedParameter<double>(
"drLeadJetVeto",1.2)),
335 ptMinLeadJet_(iConfig.getUntrackedParameter<double>(
"ptMinLeadJet",15.0)),
336 debugTrks_(iConfig.getUntrackedParameter<
int>(
"debugTracks")),
352 minTrackP_(iConfig.getUntrackedParameter<double>(
"minTrackP",10.0)),
353 maxTrackEta_(iConfig.getUntrackedParameter<double>(
"maxTrackEta",5.0)),
354 maxNearTrackP_(iConfig.getUntrackedParameter<double>(
"maxNearTrackP",1.0)),
401 desc_TrackAssoc.
add<
double>(
"muonMaxDistanceSigmaX",0.0);
402 desc_TrackAssoc.add<
double>(
"muonMaxDistanceSigmaY",0.0);
404 desc_TrackAssoc.add<
double>(
"dRHcal",9999.0);
405 desc_TrackAssoc.add<
double>(
"dREcal",9999.0);
407 desc_TrackAssoc.add<
bool>(
"useEcal",
true);
408 desc_TrackAssoc.add<
double>(
"dREcalPreselection",0.05);
410 desc_TrackAssoc.add<
double>(
"dRMuon",9999.0);
411 desc_TrackAssoc.add<
std::string>(
"crossedEnergyType",
"SinglePointAlongTrajectory");
412 desc_TrackAssoc.add<
double>(
"muonMaxDistanceX",5.0);
413 desc_TrackAssoc.add<
double>(
"muonMaxDistanceY",5.0);
414 desc_TrackAssoc.add<
bool>(
"useHO",
false);
415 desc_TrackAssoc.add<
bool>(
"accountForTrajectoryChangeCalo",
false);
418 desc_TrackAssoc.add<
double>(
"dRHcalPreselection",0.2);
419 desc_TrackAssoc.add<
bool>(
"useMuon",
false);
420 desc_TrackAssoc.add<
bool>(
"useCalo",
true);
422 desc_TrackAssoc.add<
double>(
"dRMuonPreselection",0.2);
423 desc_TrackAssoc.add<
bool>(
"truthMatch",
false);
425 desc_TrackAssoc.add<
bool>(
"useHcal",
true);
426 desc_TrackAssoc.add<
bool>(
"usePreshower",
false);
427 desc_TrackAssoc.add<
double>(
"dRPreshowerPreselection",0.2);
428 desc_TrackAssoc.add<
double>(
"trajectoryUncertaintyTolerance",1.0);
430 descriptions.
add(
"isolatedTracksCone",desc);
436 unsigned int irun = (
unsigned int)iEvent.
id().
run();
438 unsigned int ievt = (
unsigned int)iEvent.
id().
event();
452 l1extra::L1JetParticleCollection::const_iterator itr;
453 for(itr = l1TauHandle->begin(); itr != l1TauHandle->end(); ++itr)
463 for( itr = l1CenJetHandle->begin(); itr != l1CenJetHandle->end(); ++itr)
473 for( itr = l1FwdJetHandle->begin(); itr != l1FwdJetHandle->end(); ++itr)
539 reco::TrackCollection::const_iterator trkItr;
542 edm::LogVerbatim(
"IsoTrack") <<
"Number of Tracks "<< trkCollection->size();
551 edm::SimTrackContainer::const_iterator simTrkItr;
577 std::vector<int> v_hlTriggers;
580 int hltL1Jet15 (-99);
587 int hltL1SingleEG5 (-99);
588 int hltZeroBias (-99);
589 int hltMinBiasHcal (-99);
590 int hltMinBiasEcal (-99);
591 int hltMinBiasPixel (-99);
592 int hltSingleIsoTau30_Trk5 (-99);
593 int hltDoubleLooseIsoTau15_Trk5(-99);
595 if (triggerResults.
isValid()) {
601 for (
unsigned int i=0;
i<triggerResults->
size();
i++){
603 if (triggerNames.
triggerName(
i) ==
"HLT_IsoTrackHE_1E31") hltHE = triggerResults->
accept(
i);
604 if (triggerNames.
triggerName(
i) ==
"HLT_IsoTrackHB_1E31") hltHB = triggerResults->
accept(
i);
612 if (triggerNames.
triggerName(
i) ==
"HLT_L1SingleEG5") hltL1SingleEG5 = triggerResults->
accept(
i);
613 if (triggerNames.
triggerName(
i) ==
"HLT_ZeroBias") hltZeroBias = triggerResults->
accept(
i);
614 if (triggerNames.
triggerName(
i) ==
"HLT_MinBiasHcal") hltMinBiasHcal = triggerResults->
accept(
i);
615 if (triggerNames.
triggerName(
i) ==
"HLT_MinBiasEcal") hltMinBiasEcal = triggerResults->
accept(
i);
616 if (triggerNames.
triggerName(
i) ==
"HLT_MinBiasPixel") hltMinBiasPixel = triggerResults->
accept(
i);
617 if (triggerNames.
triggerName(
i) ==
"HLT_SingleIsoTau30_Trk5") hltSingleIsoTau30_Trk5 = triggerResults->
accept(
i);
618 if (triggerNames.
triggerName(
i) ==
"HLT_DoubleLooseIsoTau15_Trk5") hltDoubleLooseIsoTau15_Trk5 = triggerResults->
accept(
i);
628 std::unique_ptr<TrackerHitAssociator> associate;
640 for( trkItr = trkCollection->begin();
641 trkItr != trkCollection->end(); ++trkItr)
652 bool trkQual = pTrack->
quality(trackQuality_);
656 double eta1 = pTrack->
momentum().eta();
657 double phi1 = pTrack->
momentum().phi();
658 double pt1 = pTrack->
pt();
659 double p1 = pTrack->
p();
677 if( !goodEta || !goodPt || !trkQual)
continue;
717 int nOuterHits = hitp.stripTOBLayersWithMeasurement()
718 +hitp.stripTECLayersWithMeasurement() ;
723 edm::SimTrackContainer::const_iterator matchedSimTrk =
725 simP = matchedSimTrk->momentum().P();
756 double drFromLeadJet = 999.0;
760 drFromLeadJet =
sqrt(dphi*dphi + deta*deta);
769 const int a_size = 7;
770 double a_coneR[a_size];
771 double a_charIsoR[a_size];
772 double a_neutIsoR[a_size];
782 for (
int i=0;
i<a_size;
i++){
783 a_charIsoR[
i] = a_coneR[
i]+28.9;
784 a_neutIsoR[
i] = a_charIsoR[
i]*0.726;
793 double trkEcalEne =-999.0;
799 e3x3 =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology, sevlv.
product(),1,1).
first;
800 trkEcalEne =
spr::eCaloSimInfo(iEvent, geo, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate);
803 e3x3 =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology, sevlv.
product(),1,1).
first;
804 trkEcalEne =
spr::eCaloSimInfo(iEvent, geo, pcaloeb, pcaloee, SimTk, SimVtx, pTrack, *associate);
810 const int a_mip_size = 5;
811 double a_mipR[a_mip_size];
818 std::vector<double> v_eDR;
819 for (
int i = 0 ;
i < a_size ;
i++){
828 trackMomAtEcal, nRH_eDR);
829 v_eDR.push_back(eDR);
833 std::vector<double> v_eMipDR;
834 for (
int i = 0 ;
i < a_mip_size ;
i++){
839 a_mipR[
i], trackMomAtEcal, nRH_eMipDR);
841 v_eMipDR.push_back(eMipDR);
850 std::vector<double> v_hmaxNearP_goodTrk;
851 std::vector<double> v_hmaxNearP ;
852 std::vector<int> v_hnNearTRKs ;
853 std::vector<int> v_hnLayers_maxNearP;
854 std::vector<int> v_htrkQual_maxNearP;
856 std::vector<double> v_cone_hmaxNearP_goodTrk;
857 std::vector<double> v_cone_hmaxNearP ;
858 std::vector<int> v_cone_hnNearTRKs ;
859 std::vector<int> v_cone_hnLayers_maxNearP;
860 std::vector<int> v_cone_htrkQual_maxNearP;
862 for (
int i = 0 ;
i < a_size ;
i++){
864 double hmaxNearP = -999.0;
866 int hnLayers_maxNearP = 0;
867 int htrkQual_maxNearP = -1;
868 double hmaxNearP_goodTrk = -999.0;
870 double conehmaxNearP = -999.0;
871 int conehnNearTRKs = 0;
872 int conehnLayers_maxNearP = 0;
873 int conehtrkQual_maxNearP = -1;
874 double conehmaxNearP_goodTrk = -999.0;
877 trkItr, trkCollection,
879 theTrackQuality, conehnNearTRKs,
880 conehnLayers_maxNearP,
881 conehtrkQual_maxNearP,
882 conehmaxNearP_goodTrk,
883 hpoint1, trackMomAtHcal,
886 v_hmaxNearP_goodTrk.push_back(hmaxNearP_goodTrk);
887 v_hmaxNearP .push_back(hmaxNearP );
888 v_hnNearTRKs .push_back(hnNearTRKs );
889 v_hnLayers_maxNearP.push_back(hnLayers_maxNearP);
890 v_htrkQual_maxNearP.push_back(htrkQual_maxNearP);
892 v_cone_hmaxNearP_goodTrk.push_back(conehmaxNearP_goodTrk);
893 v_cone_hmaxNearP .push_back(conehmaxNearP );
894 v_cone_hnNearTRKs .push_back(conehnNearTRKs );
895 v_cone_hnLayers_maxNearP.push_back(conehnLayers_maxNearP);
896 v_cone_htrkQual_maxNearP.push_back(conehtrkQual_maxNearP);
900 double h3x3=-999.0, h5x5=-999.0;
901 double hsim3x3=-999.0, hsim5x5=-999.0, trkHcalEne=-999.0;
902 std::map<std::string, double> hsimInfo3x3, hsimInfo5x5;
903 double distFromHotCell_h3x3 = -99.;
904 int ietaFromHotCell_h3x3 = -99;
905 int iphiFromHotCell_h3x3 = -99;
906 double distFromHotCell_h5x5 = -99.;
907 int ietaFromHotCell_h5x5 = -99;
908 int iphiFromHotCell_h5x5 = -99;
913 int nRH_h3x3(0), nRH_h5x5(0);
928 std::vector<int> v_RH_h3x3_ieta;
929 std::vector<int> v_RH_h3x3_iphi;
930 std::vector<double> v_RH_h3x3_ene;
931 std::vector<int> v_RH_h5x5_ieta;
932 std::vector<int> v_RH_h5x5_iphi;
933 std::vector<double> v_RH_h5x5_ene;
937 nRH_h3x3, v_RH_h3x3_ieta, v_RH_h3x3_iphi, v_RH_h3x3_ene,
942 nRH_h5x5, v_RH_h5x5_ieta, v_RH_h5x5_iphi, v_RH_h5x5_ene,
949 std::vector<int> multiplicity3x3;
950 std::vector<int> multiplicity5x5;
957 hsimInfo3x3 =
spr::eHCALSimInfo(iEvent, theHBHETopology, ClosestCell, pcalohh, SimTk, SimVtx, pTrack, *associate, 1,1, multiplicity3x3);
958 hsimInfo5x5 =
spr::eHCALSimInfo(iEvent, theHBHETopology, ClosestCell, pcalohh, SimTk, SimVtx, pTrack, *associate, 2,2, multiplicity5x5);
961 trkHcalEne =
spr::eCaloSimInfo(iEvent, geo, pcalohh, SimTk, SimVtx, pTrack, *associate);
965 std::vector<double> v_hsimInfoConeMatched;
966 std::vector<double> v_hsimInfoConeRest ;
967 std::vector<double> v_hsimInfoConePhoton ;
968 std::vector<double> v_hsimInfoConeNeutHad;
969 std::vector<double> v_hsimInfoConeCharHad;
970 std::vector<double> v_hsimInfoConePdgMatched;
971 std::vector<double> v_hsimInfoConeTotal ;
973 std::vector<int> v_hsimInfoConeNMatched;
974 std::vector<int> v_hsimInfoConeNTotal ;
975 std::vector<int> v_hsimInfoConeNNeutHad;
976 std::vector<int> v_hsimInfoConeNCharHad;
977 std::vector<int> v_hsimInfoConeNPhoton ;
978 std::vector<int> v_hsimInfoConeNRest ;
980 std::vector<double> v_hsimCone ;
981 std::vector<double> v_hCone ;
983 std::vector<int> v_nRecHitsCone ;
984 std::vector<int> v_nSimHitsCone ;
986 std::vector<double> v_distFromHotCell;
987 std::vector<int> v_ietaFromHotCell;
988 std::vector<int> v_iphiFromHotCell;
992 std::vector<int> v_RH_r26_ieta;
993 std::vector<int> v_RH_r26_iphi;
994 std::vector<double> v_RH_r26_ene;
995 std::vector<int> v_RH_r44_ieta;
996 std::vector<int> v_RH_r44_iphi;
997 std::vector<double> v_RH_r44_ene;
1001 for (
int i = 0 ;
i < a_size ;
i++){
1004 std::map<std::string, double> hsimInfoCone;
1005 double hsimCone = -999.0, hCone = -999.0;
1006 double distFromHotCell = -99.0;
1007 int ietaFromHotCell = -99;
1008 int iphiFromHotCell = -99;
1009 int ietaHotCell = -99;
1010 int iphiHotCell = -99;
1011 int nRecHitsCone = -999;
1012 int nSimHitsCone = -999;
1014 std::vector<int> multiplicityCone;
1015 std::vector<DetId> coneRecHitDetIds;
1018 a_coneR[
i], trackMomAtHcal, nSimHitsCone);
1022 bool makeHitmaps =
false;
1023 if (a_coneR[i] == 26.23 && makeHitmaps)
1027 a_coneR[i], trackMomAtHcal,nRecHitsCone,
1028 v_RH_r26_ieta, v_RH_r26_iphi, v_RH_r26_ene,
1029 coneRecHitDetIds, distFromHotCell,
1030 ietaHotCell, iphiHotCell, gposHotCell);
1032 else if (a_coneR[i] == 43.72 && makeHitmaps)
1036 a_coneR[i], trackMomAtHcal,nRecHitsCone,
1037 v_RH_r44_ieta, v_RH_r44_iphi, v_RH_r44_ene,
1038 coneRecHitDetIds, distFromHotCell,
1039 ietaHotCell, iphiHotCell, gposHotCell);
1045 a_coneR[i], trackMomAtHcal, nRecHitsCone,
1046 coneRecHitDetIds, distFromHotCell,
1047 ietaHotCell, iphiHotCell, gposHotCell);
1052 if (ietaHotCell != 99){
1053 ietaFromHotCell = ietaHotCell-ClosestCell_HcalDetId.ieta();
1054 iphiFromHotCell = iphiHotCell-ClosestCell_HcalDetId.iphi();
1059 hsimInfoCone = spr::eHCALSimInfoCone(iEvent,pcalohh, SimTk, SimVtx, pTrack, *associate, geo, hpoint1, point1, a_coneR[i], trackMomAtHcal, multiplicityCone);
1071 v_hsimInfoConeMatched .push_back(hsimInfoCone[
"eMatched" ]);
1072 v_hsimInfoConeRest .push_back(hsimInfoCone[
"eRest" ]);
1073 v_hsimInfoConePhoton .push_back(hsimInfoCone[
"eGamma" ]);
1074 v_hsimInfoConeNeutHad .push_back(hsimInfoCone[
"eNeutralHad"]);
1075 v_hsimInfoConeCharHad .push_back(hsimInfoCone[
"eChargedHad"]);
1076 v_hsimInfoConePdgMatched.push_back(hsimInfoCone[
"pdgMatched" ]);
1077 v_hsimInfoConeTotal .push_back(hsimInfoCone[
"eTotal" ]);
1079 v_hsimInfoConeNMatched .push_back(multiplicityCone.at(0));
1081 v_hsimInfoConeNTotal .push_back(multiplicityCone.at(1));
1082 v_hsimInfoConeNNeutHad .push_back(multiplicityCone.at(2));
1083 v_hsimInfoConeNCharHad .push_back(multiplicityCone.at(3));
1084 v_hsimInfoConeNPhoton .push_back(multiplicityCone.at(4));
1085 v_hsimInfoConeNRest .push_back(multiplicityCone.at(5));
1087 v_hsimCone .push_back(hsimCone );
1088 v_nSimHitsCone .push_back(nSimHitsCone );
1090 v_hCone .push_back(hCone );
1091 v_nRecHitsCone .push_back(nRecHitsCone );
1093 v_distFromHotCell .push_back(distFromHotCell );
1094 v_ietaFromHotCell .push_back(ietaFromHotCell );
1095 v_iphiFromHotCell .push_back(iphiFromHotCell );
1126 t_e3x3 ->push_back(e3x3 );
1130 t_h3x3 ->push_back(h3x3 );
1131 t_h5x5 ->push_back(h5x5 );
1143 t_simP ->push_back(simP );
1266 5.0, 6.0, 7.0, 8.0, 9.0,
1267 10.0, 12.0, 15.0, 20.0, 25.0,
1268 30.0, 40.0, 50.0, 60.0, 70.0,
1274 t_v_hnNearTRKs = std::make_unique<std::vector<std::vector<int> > >();
1278 t_v_hmaxNearP = std::make_unique<std::vector<std::vector<double> > >();
1290 t_trkP = std::make_unique<std::vector<double> >();
1291 t_trkPt = std::make_unique<std::vector<double> >();
1292 t_trkEta = std::make_unique<std::vector<double> >();
1293 t_trkPhi = std::make_unique<std::vector<double> >();
1295 t_e3x3 = std::make_unique<std::vector<double> >();
1296 t_v_eDR = std::make_unique<std::vector<std::vector<double> > >();
1297 t_v_eMipDR = std::make_unique<std::vector<std::vector<double> > >();
1299 t_h3x3 = std::make_unique<std::vector<double> >();
1300 t_h5x5 = std::make_unique<std::vector<double> >();
1302 t_nRH_h3x3 = std::make_unique<std::vector<double> >();
1303 t_nRH_h5x5 = std::make_unique<std::vector<double> >();
1306 t_simP = std::make_unique<std::vector<double> >();
1307 t_hsim3x3 = std::make_unique<std::vector<double> >();
1308 t_hsim5x5 = std::make_unique<std::vector<double> >();
1339 t_trkHcalEne = std::make_unique<std::vector<double> >();
1340 t_trkEcalEne = std::make_unique<std::vector<double> >();
1366 t_v_hsimCone = std::make_unique<std::vector<std::vector<double> > >();
1369 t_v_hCone = std::make_unique<std::vector<std::vector<double> > >();
1379 t_v_RH_h3x3_ene = std::make_unique<std::vector<std::vector<double> > >();
1382 t_v_RH_h5x5_ene = std::make_unique<std::vector<std::vector<double> > >();
1383 t_v_RH_r26_ieta = std::make_unique<std::vector<std::vector<int> > >();
1384 t_v_RH_r26_iphi = std::make_unique<std::vector<std::vector<int> > >();
1385 t_v_RH_r26_ene = std::make_unique<std::vector<std::vector<double> > >();
1386 t_v_RH_r44_ieta = std::make_unique<std::vector<std::vector<int> > >();
1387 t_v_RH_r44_iphi = std::make_unique<std::vector<std::vector<int> > >();
1388 t_v_RH_r44_ene = std::make_unique<std::vector<std::vector<double> > >();
1391 t_v_hlTriggers = std::make_unique<std::vector<std::vector<int> > >();
1393 t_hltHE = std::make_unique<std::vector<int> >();
1394 t_hltHB = std::make_unique<std::vector<int> >();
1396 t_hltJet30 = std::make_unique<std::vector<int> >();
1397 t_hltJet50 = std::make_unique<std::vector<int> >();
1398 t_hltJet80 = std::make_unique<std::vector<int> >();
1399 t_hltJet110 = std::make_unique<std::vector<int> >();
1400 t_hltJet140 = std::make_unique<std::vector<int> >();
1401 t_hltJet180 = std::make_unique<std::vector<int> >();
1411 t_irun = std::make_unique<std::vector<unsigned int> >();
1412 t_ievt = std::make_unique<std::vector<unsigned int> >();
1413 t_ilum = std::make_unique<std::vector<unsigned int> >();
1567 h_RawPt = fs->
make<TH1F>(
"hRawPt",
"hRawPt", 100, 0.0, 100.0);
1568 h_RawP = fs->
make<TH1F>(
"hRawP",
"hRawP", 100, 0.0, 100.0);
1569 h_RawEta = fs->
make<TH1F>(
"hRawEta",
"hRawEta", 15, 0.0, 3.0);
1570 h_RawPhi = fs->
make<TH1F>(
"hRawPhi",
"hRawPhi", 100, -3.2, 3.2);
1572 ntp_ = fs->
make<TTree>(
"ntp",
"ntp");
1575 ntp_->Branch(
"nEVT" , &
nEVT ,
"nEVT/I" );
1579 ntp_->Branch(
"nTRK", &
nTRK,
"nTRK/I");
1603 ntp_->Branch(
"trkP" ,
"std::vector<double>", &
t_trkP );
1604 ntp_->Branch(
"trkPt" ,
"std::vector<double>", &
t_trkPt );
1605 ntp_->Branch(
"trkEta" ,
"std::vector<double>", &
t_trkEta );
1606 ntp_->Branch(
"trkPhi" ,
"std::vector<double>", &
t_trkPhi );
1607 ntp_->Branch(
"e3x3" ,
"std::vector<double>", &
t_e3x3 );
1609 ntp_->Branch(
"e3x3" ,
"std::vector<double>" , &
t_e3x3);
1610 ntp_->Branch(
"v_eDR" ,
"std::vector<std::vector<double> >", &
t_v_eDR);
1611 ntp_->Branch(
"v_eMipDR" ,
"std::vector<std::vector<double> >", &
t_v_eMipDR);
1613 ntp_->Branch(
"h3x3" ,
"std::vector<double>", &
t_h3x3);
1614 ntp_->Branch(
"h5x5" ,
"std::vector<double>", &
t_h5x5);
1619 ntp_->Branch(
"simP" ,
"std::vector<double>", &
t_simP);
1620 ntp_->Branch(
"hsim3x3" ,
"std::vector<double>", &
t_hsim3x3);
1621 ntp_->Branch(
"hsim5x5" ,
"std::vector<double>", &
t_hsim5x5);
1679 ntp_->Branch(
"v_hsimCone" ,
"std::vector<std::vector<double> >",&
t_v_hsimCone );
1682 ntp_->Branch(
"v_hCone" ,
"std::vector<std::vector<double> >",&
t_v_hCone );
1704 ntp_->Branch(
"v_hltHB",
"std::vector<int>", &
t_hltHB);
1705 ntp_->Branch(
"v_hltHE",
"std::vector<int>", &
t_hltHE);
1721 ntp_->Branch(
"irun",
"std::vector<unsigned int>", &
t_irun);
1722 ntp_->Branch(
"ievt",
"std::vector<unsigned int>", &
t_ievt);
1723 ntp_->Branch(
"ilum",
"std::vector<unsigned int>", &
t_ilum);
1735 <<
" TrackMmentum " << pTrack->
momentum()
1736 <<
" (pt,eta,phi)(" << pTrack->
pt()
1737 <<
"," << pTrack->
eta() <<
"," << pTrack->
phi()
1738 <<
")" <<
" p " << pTrack->
p() <<
"\n" 1740 <<
" charge " << pTrack->
charge()
1741 <<
" qoverp() " << pTrack->
qoverp() <<
"+-" 1743 <<
"\n" <<
" NValidHits " 1747 << pTrack->
quality(trackQuality_);
1763 return ((diff <
M_PI) ? diff : corr);
1768 double eta2,
double phi2) {
1769 double deta = eta1 - eta2;
1770 double dphi =
deltaPhi(phi1, phi2);
1771 return std::sqrt(deta*deta + dphi*dphi);
double qoverp() const
q / p
std::unique_ptr< std::vector< int > > t_hltJet30
double p() const
momentum vector magnitude
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)
std::unique_ptr< std::vector< int > > t_hsim3x3NCharHad
std::unique_ptr< std::vector< double > > t_trkPt
T getParameter(std::string const &) const
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
EventNumber_t event() const
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::array< double, nPBins_+1 > genPartPBins_
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 Point & referencePoint() const
Reference point on the track.
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
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
std::unique_ptr< std::vector< int > > t_hsim5x5NTotal
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
const edm::EDGetTokenT< edm::SimTrackContainer > tok_simTk_
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
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_
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< int > > t_hsim5x5NNeutHad
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
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
bool getByToken(EDGetToken token, Handle< PROD > &result) const
TrackQuality
track quality
#define DEFINE_FWK_MODULE(type)
std::unique_ptr< std::vector< int > > t_hsim5x5NRest
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
bool accept() const
Has at least one path accepted the event?
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
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 TrackerHitAssociator::Config trackerHitAssociatorConfig_
std::unique_ptr< std::vector< double > > t_hsim3x3
T * make(const Args &...args) const
make new ROOT object
std::unique_ptr< std::vector< int > > t_hltHE
std::unique_ptr< std::vector< int > > t_hsim5x5NPhoton
std::unique_ptr< std::vector< int > > t_iphiFromHotCell_h5x5
std::unique_ptr< std::vector< int > > t_hltJet110
const double drLeadJetVeto_
const Vector & momentum() const
track momentum vector
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
int trackerLayersWithMeasurement() const
std::unique_ptr< std::vector< double > > t_hsim3x3Rest
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
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::unique_ptr< std::vector< std::vector< double > > > t_v_hmaxNearP
std::unique_ptr< std::vector< int > > t_hltJet50
LuminosityBlockNumber_t luminosityBlock() const
uint32_t rawId() const
get the raw id
std::unique_ptr< std::vector< int > > t_hltMinBiasHcal
void printHitPattern(HitCategory category, int position, std::ostream &stream) const
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
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_
double eta() const
pseudorapidity of momentum vector
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.
unsigned int size() const
Get number of paths stored.
double pt() const
track transverse momentum
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_
int numberOfAllHits(HitCategory category) const
std::unique_ptr< std::vector< unsigned int > > t_ievt
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeTotal
Abs< T >::type abs(const T &t)
const edm::EDGetTokenT< l1extra::L1JetParticleCollection > tok_L1extFwdJet_
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)
LuminosityBlock const & getLuminosityBlock() const
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
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
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
std::unique_ptr< std::vector< double > > t_nRH_h5x5
double qoverpError() const
error on signed transverse curvature
std::unique_ptr< std::vector< std::vector< int > > > t_v_hsimInfoConeNPhoton
virtual DetId getClosestCell(const GlobalPoint &r) const
std::unique_ptr< std::vector< std::vector< double > > > t_v_hsimInfoConeMatched
std::unique_ptr< std::vector< double > > t_hsim5x5PdgMatched
std::unique_ptr< std::vector< double > > t_hsim3x3PdgMatched
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_r44_ieta
static TrackQuality qualityByName(const std::string &name)
std::unique_ptr< std::vector< std::vector< int > > > t_v_nSimHitsCone
std::unique_ptr< std::vector< int > > t_hltL1SingleEG5
T const * product() const
std::unique_ptr< std::vector< int > > t_hltJet180
GlobalVector trkMomAtEcal
std::unique_ptr< std::vector< double > > t_hsim3x3CharHad
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
std::string const & triggerName(unsigned int index) const
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_
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_
std::unique_ptr< std::vector< std::vector< int > > > t_v_RH_h3x3_ieta
bool quality(const TrackQuality) const
Track quality.
std::array< double, nEtaBins_+1 > genPartEtaBins
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
double deltaPhi(double v1, double v2)
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
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.
int charge() const
track electric charge
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
double deltaR(double eta1, double phi1, double eta2, double phi2)
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
T const * product() const
std::vector< SimTrack > SimTrackContainer
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
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
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