99 void fillTrack(
int,
double,
double,
double,
double);
101 void fillEnergy(
int,
int,
double,
double,
double,
double,
double);
158 verbosity_(iConfig.getUntrackedParameter<
int>(
"verbosity",0)),
162 minTrackP_(iConfig.getUntrackedParameter<double>(
"minTrackP",1.0)),
163 maxTrackEta_(iConfig.getUntrackedParameter<double>(
"maxTrackEta",2.5)),
164 tMinE_(iConfig.getUntrackedParameter<double>(
"timeMinCutECAL",-500.)),
165 tMaxE_(iConfig.getUntrackedParameter<double>(
"timeMaxCutECAL",500.)),
166 tMinH_(iConfig.getUntrackedParameter<double>(
"timeMinCutHCAL",-500.)),
167 tMaxH_(iConfig.getUntrackedParameter<double>(
"timeMaxCutHCAL",500.)),
171 puWeights_(iConfig.getUntrackedParameter<
std::vector<double> >(
"puWeights")),
228 double pBins[
nPBin_+1] = {1.0,2.0,3.0,4.0,5.0,6.0,7.0,9.0,11.0,15.0,20.0,
229 25.0,30.0,40.0,60.0,100.0};
230 int etaBins[
nEtaBin_+1] = {1, 7, 13, 17, 23};
231 int pvBins[
nPVBin_+1] = {1, 2, 3, 5, 100};
241 std::vector<std::string> trig;
243 std::vector<std::string> newNames = {
"HLT",
"PixelTracks_Multiplicity",
244 "HLT_Physics_",
"HLT_JetE",
249 desc.
addUntracked<std::vector<std::string> >(
"triggers",trig);
250 desc.
addUntracked<std::vector<std::string> >(
"newNames",newNames);
271 descriptions.
add(
"studyHLT",desc);
276 int counter0[1000] = {0};
277 int counter1[1000] = {0};
278 int counter2[1000] = {0};
279 int counter3[1000] = {0};
280 int counter4[1000] = {0};
281 int counter5[1000] = {0};
282 int counter6[1000] = {0};
283 int counter7[1000] = {0};
285 edm::LogInfo(
"IsoTrack") <<
"Event starts====================================";
286 int RunNo = iEvent.
id().
run();
287 int EvtNo = iEvent.
id().
event();
291 std::vector<int> newAccept(
newNames_.size()+1,0);
299 edm::LogInfo(
"IsoTrack") <<
"RunNo " << RunNo <<
" EvtNo " << EvtNo
300 <<
" Lumi " << Lumi <<
" Bunch " << Bunch
301 <<
" mybxlumi " << mybxlumi;
308 if (!triggerEventHandle.
isValid()) {
312 triggerEvent = *(triggerEventHandle.
product());
318 if (triggerResults.
isValid()) {
323 const std::vector<std::string> & triggerNames_ = triggerNames.
triggerNames();
324 for (
unsigned int iHLT=0; iHLT<triggerResults->
size(); iHLT++) {
336 if (ipos <= h_HLTAccept->GetNbinsX())
337 h_HLTAccept->GetXaxis()->SetBinLabel(ipos,newtriggerName.c_str());
340 edm::LogInfo(
"IsoTrack") <<
"Wrong trigger " << RunNo <<
" Event " 341 << EvtNo <<
" Hlt " << iHLT;
354 if (newtriggerName.find(
trigNames_[
i]) != std::string::npos) {
365 if (newtriggerName.find(
newNames_[
i]) != std::string::npos) {
368 <<
" : " << newtriggerName;
369 if (hlt > 0) newAccept[
i] = 1;
374 int iflg(0), indx(1);
376 iflg += (indx*newAccept[
i]); indx *= 2;
409 int ntrk(0), ngoodPV(0), nPV(-1);
410 int nvtxs = (
int)(recVtxs->size());
411 for (
int ind=0; ind<nvtxs; ind++) {
412 if (!((*recVtxs)[ind].isFake()) && (*recVtxs)[ind].ndof() > 4) ngoodPV++;
426 edm::LogInfo(
"IsoTrack") <<
"Number of vertices: " << nvtxs
427 <<
" Good " << ngoodPV <<
" Bin " << nPV
430 h_goodPV->Fill(ngoodPV,tr_eventWeight);
434 int npbin =
h_goodPV->FindBin(ngoodPV);
435 if (npbin > 0 && npbin <= (
int)(
puWeights_.size()))
449 double pt1 =
p.momentum().Rho();
450 double p1 =
p.momentum().R();
451 double eta1 =
p.momentum().Eta();
452 double phi1 =
p.momentum().Phi();
456 if (phi2 < 0) phi2 += 2.0*
M_PI;
460 double dEta = trk.eta() - eta1;
461 double phi0 = trk.phi();
462 if (phi0 < 0) phi0 += 2.0*
M_PI;
463 double dPhi = phi0-phi2;
465 else if (dPhi < -
M_PI) dPhi += 2.*
M_PI;
466 double dR =
sqrt(dEta*dEta+dPhi*dPhi);
467 if (dR < 0.01) { match =
true;
break;}
474 reco::TrackCollection::const_iterator trkItr;
475 for (trkItr=trkCollection->begin(); trkItr != trkCollection->end(); ++trkItr,++ntrk) {
477 double pt1 = pTrack->
pt();
478 double p1 = pTrack->
p();
479 double eta1 = pTrack->
momentum().eta();
480 double phi1 = pTrack->
momentum().phi();
483 if (quality)
fillTrack(1, pt1,p1,eta1,phi1);
486 ++counter0[(
int)(p1)];
489 h_ntrk[0]->Fill(ntrk,tr_eventWeight);
491 std::vector<spr::propagatedTrackID> trkCaloDets;
493 std::vector<spr::propagatedTrackID>::const_iterator trkDetItr;
494 for (trkDetItr = trkCaloDets.begin(),ntrk=0; trkDetItr != trkCaloDets.end(); trkDetItr++,ntrk++) {
495 const reco::Track* pTrack = &(*(trkDetItr->trkItr));
496 double pt1 = pTrack->
pt();
497 double p1 = pTrack->
p();
498 double eta1 = pTrack->
momentum().eta();
499 double phi1 = pTrack->
momentum().phi();
501 edm::LogInfo(
"IsoTrack") <<
"track: p " << p1 <<
" pt " << pt1
502 <<
" eta " << eta1 <<
" phi " << phi1
503 <<
" okEcal " << trkDetItr->okECAL;
517 std::pair<double, bool> e7x7P, e11x11P, e15x15P;
518 const DetId isoCell = trkDetItr->detIdECAL;
519 e7x7P =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),3,3, 0.030, 0.150,
tMinE_,
tMaxE_, ((
verbosity_/10000)%10 > 0));
520 e11x11P =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),5,5, 0.030, 0.150,
tMinE_,
tMaxE_, ((
verbosity_/10000)%10 > 0));
521 e15x15P =
spr::eECALmatrix(isoCell,barrelRecHitsHandle,endcapRecHitsHandle, *theEcalChStatus, geo, caloTopology,sevlv.
product(),7,7, 0.030, 0.150,
tMinE_,
tMaxE_, ((
verbosity_/10000)%10 > 0));
525 double h3x3(0), h5x5(0), h7x7(0);
528 edm::LogInfo(
"IsoTrack") <<
"Accepted Tracks reaching Ecal maxNearP31x31 " 529 << maxNearP31x31 <<
" e11x11P " 530 << e11x11P.first <<
" e15x15P " 531 << e15x15P.first <<
" okHCAL " 532 << trkDetItr->okHCAL;
534 int trackID =
trackPID(pTrack,genParticles);
535 if (trkDetItr->okHCAL) {
538 const DetId ClosestCell(trkDetItr->detIdHCAL);
539 ieta = ((
HcalDetId)(ClosestCell)).ietaAbs();
540 h3x3 =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,1,1,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_, ((
verbosity_/10000)%10 > 0));
541 h5x5 =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,2,2,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_, ((
verbosity_/10000)%10 > 0) );
542 h7x7 =
spr::eHCALmatrix(theHBHETopology, ClosestCell, hbhe,3,3,
false,
true, 0.7, 0.8, -100.0, -100.0,
tMinH_,
tMaxH_, ((
verbosity_/10000)%10 > 0) );
545 edm::LogInfo(
"IsoTrack") <<
"Tracks Reaching Hcal maxNearHcalP7x7/h5x5/h7x7 " 546 << maxNearHcalP7x7 <<
"/" << h5x5 <<
"/" << h7x7;
565 if (maxNearP31x31 < 0) {
567 fillEnergy(0,ieta,p1,e7x7P.first,h3x3,e11x11P.first,h5x5);
568 if (maxNearHcalP7x7 < 0) {
570 fillEnergy(1,ieta,p1,e7x7P.first,h3x3,e11x11P.first,h5x5);
571 if ((e11x11P.second) && (e15x15P.second) &&
572 (e15x15P.first-e11x11P.first)<2.0) {
574 fillEnergy(2,ieta,p1,e7x7P.first,h3x3,e11x11P.first,h5x5);
575 if (h7x7-h5x5 < 2.0) {
577 fillEnergy(3,ieta,p1,e7x7P.first,h3x3,e11x11P.first,h5x5);
580 fillEnergy(nPV+4,ieta,p1,e7x7P.first,h3x3,e11x11P.first,h5x5);
583 fillTrack(nPVBin_+trackID+7, pt1,p1,eta1,phi1);
584 fillEnergy(nPVBin_+trackID+3,ieta,p1,e7x7P.first,h3x3,e11x11P.first,h5x5);
588 ++counter7[(
int)(p1)];
593 ++counter6[(
int)(p1)];
598 ++counter5[(
int)(p1)];
603 ++counter4[(
int)(p1)];
608 ++counter3[(
int)(p1)];
613 ++counter2[(
int)(p1)];
618 ++counter1[(
int)(p1)];
621 h_ntrk[1]->Fill(ntrk,tr_eventWeight);
623 for (
int i=0;
i <1000; ++
i) {
624 if (counter0[
i])
h_counter[0]->Fill(i, counter0[i]);
625 if (counter1[i])
h_counter[1]->Fill(i, counter1[i]);
626 if (counter2[i])
h_counter[2]->Fill(i, counter2[i]);
627 if (counter3[i])
h_counter[3]->Fill(i, counter3[i]);
628 if (counter4[i])
h_counter[4]->Fill(i, counter4[i]);
629 if (counter5[i])
h_counter[5]->Fill(i, counter5[i]);
630 if (counter6[i])
h_counter[6]->Fill(i, counter6[i]);
631 if (counter7[i])
h_counter[7]->Fill(i, counter7[i]);
639 h_nHLT =
fs_->
make<TH1I>(
"h_nHLT" ,
"size of trigger Names", 1000, 0, 1000);
640 h_HLTAccept =
fs_->
make<TH1I>(
"h_HLTAccept",
"HLT Accepts for all runs", 500, 0, 500);
641 for (
int i=1;
i<=500; ++
i) h_HLTAccept->GetXaxis()->SetBinLabel(
i,
" ");
642 h_nHLTvsRN =
fs_->
make<TH2I>(
"h_nHLTvsRN" ,
"size of trigger Names vs RunNo", 2168, 190949, 193116, 100, 400, 500);
643 h_HLTCorr =
fs_->
make<TH1I>(
"h_HLTCorr",
"Correlation among different paths", 100, 0, 100);
644 h_numberPV =
fs_->
make<TH1I>(
"h_numberPV",
"Number of Primary Vertex", 100, 0, 100);
645 h_goodPV =
fs_->
make<TH1I>(
"h_goodPV",
"Number of good Primary Vertex", 100, 0, 100);
646 h_goodRun =
fs_->
make<TH1I>(
"h_goodRun",
"Number of accepted events for Run", 4000, 190000, 1940000);
647 char hname[60], htit[200];
648 std::string CollectionNames[2] = {
"Reco",
"Propagated"};
649 for (
unsigned int i=0;
i<2;
i++) {
650 sprintf(hname,
"h_nTrk_%s", CollectionNames[
i].c_str());
651 sprintf(htit,
"Number of %s tracks", CollectionNames[
i].c_str());
654 std::string TrkNames[8] = {
"All",
"Quality",
"NoIso",
"okEcal",
"EcalCharIso",
"HcalCharIso",
"EcalNeutIso",
"HcalNeutIso"};
655 std::string particle[4] = {
"Electron",
"Pion",
"Kaon",
"Proton"};
656 for (
unsigned int i=0;
i<=
nGen_+1;
i++) {
658 sprintf(hname,
"h_pt_%s", TrkNames[
i].c_str());
659 sprintf(htit,
"p_{T} of %s tracks", TrkNames[
i].c_str());
661 sprintf(hname,
"h_pt_%s_%d", TrkNames[7].c_str(),
i-8);
662 sprintf(htit,
"p_{T} of %s tracks (PV=%d:%d)", TrkNames[7].c_str(),
pvBin_[
i-8],
pvBin_[
i-7]-1);
664 sprintf(hname,
"h_pt_%s_%d", TrkNames[0].c_str(),
i-
nGen_);
665 sprintf(htit,
"p_{T} of %s Generator tracks", TrkNames[0].c_str());
667 sprintf(hname,
"h_pt_%s_%s", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
668 sprintf(htit,
"p_{T} of %s tracks (%s)", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
674 sprintf(hname,
"h_p_%s", TrkNames[
i].c_str());
675 sprintf(htit,
"Momentum of %s tracks", TrkNames[
i].c_str());
677 sprintf(hname,
"h_p_%s_%d", TrkNames[7].c_str(),
i-8);
678 sprintf(htit,
"Momentum of %s tracks (PV=%d:%d)", TrkNames[7].c_str(),
pvBin_[
i-8],
pvBin_[
i-7]-1);
680 sprintf(hname,
"h_p_%s_%d", TrkNames[0].c_str(),
i-
nGen_);
681 sprintf(htit,
"Momentum of %s Generator tracks", TrkNames[0].c_str());
683 sprintf(hname,
"h_p_%s_%s", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
684 sprintf(htit,
"Momentum of %s tracks (%s)", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
686 h_p[
i] =
fs_->
make<TH1D>(hname, htit, 400, 0, 200.0);
690 sprintf(hname,
"h_eta_%s", TrkNames[
i].c_str());
691 sprintf(htit,
"Eta of %s tracks", TrkNames[
i].c_str());
693 sprintf(hname,
"h_eta_%s_%d", TrkNames[7].c_str(),
i-8);
694 sprintf(htit,
"Eta of %s tracks (PV=%d:%d)", TrkNames[7].c_str(),
pvBin_[
i-8],
pvBin_[
i-7]-1);
696 sprintf(hname,
"h_eta_%s_%d", TrkNames[0].c_str(),
i-
nGen_);
697 sprintf(htit,
"Eta of %s Generator tracks", TrkNames[0].c_str());
699 sprintf(hname,
"h_eta_%s_%s", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
700 sprintf(htit,
"Eta of %s tracks (%s)", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
706 sprintf(hname,
"h_phi_%s", TrkNames[
i].c_str());
707 sprintf(htit,
"Phi of %s tracks", TrkNames[
i].c_str());
709 sprintf(hname,
"h_phi_%s_%d", TrkNames[7].c_str(),
i-8);
710 sprintf(htit,
"Phi of %s tracks (PV=%d:%d)", TrkNames[7].c_str(),
pvBin_[
i-8],
pvBin_[
i-7]-1);
712 sprintf(hname,
"h_phi_%s_%d", TrkNames[0].c_str(),
i-
nGen_);
713 sprintf(htit,
"Phi of %s Generator tracks", TrkNames[0].c_str());
715 sprintf(hname,
"h_phi_%s_%s", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
716 sprintf(htit,
"Phi of %s tracks (%s)", TrkNames[7].c_str(), particle[
i-8-
nPVBin_].c_str());
722 for (
unsigned int i=0;
i<2;
i++) {
723 sprintf(hname,
"h_maxNearP_%s", IsolationNames[
i].c_str());
724 sprintf(htit,
"Energy in ChargeIso region for %s", IsolationNames[
i].c_str());
728 sprintf(hname,
"h_ene1_%s", IsolationNames[
i].c_str());
729 sprintf(htit,
"Energy in smaller cone for %s", IsolationNames[
i].c_str());
733 sprintf(hname,
"h_ene2_%s", IsolationNames[
i].c_str());
734 sprintf(htit,
"Energy in bigger cone for %s", IsolationNames[
i].c_str());
738 sprintf(hname,
"h_ediff_%s", IsolationNames[
i].c_str());
739 sprintf(htit,
"Energy in NeutralIso region for %s", IsolationNames[
i].c_str());
743 std::string energyNames[6]={
"E_{7x7}",
"H_{3x3}",
"(E_{7x7}+H_{3x3})",
744 "E_{11x11}",
"H_{5x5}",
"{E_{11x11}+H_{5x5})"};
746 for (
int ip=0; ip<
nPBin_; ++ip) {
748 for (
int j=0; j<6; ++j) {
749 sprintf(hname,
"h_energy_%d_%d_%d_%d",
i, ip, ie, j);
751 sprintf(htit,
"%s/p (p=%4.1f:%4.1f; i#eta=%d:%d) for tracks with %s",
753 (
etaBin_[ie+1]-1), TrkNames[
i+4].c_str());
754 }
else if (
i < 4+nPVBin_) {
755 sprintf(htit,
"%s/p (p=%4.1f:%4.1f, i#eta=%d:%d, PV=%d:%d) for tracks with %s",
758 TrkNames[7].c_str());
760 sprintf(htit,
"%s/p (p=%4.1f:%4.1f, i#eta=%d:%d %s) for tracks with %s",
762 (
etaBin_[ie+1]-1), particle[
i-4-nPVBin_].c_str(),
763 TrkNames[7].c_str());
772 for (
int i=0;
i<8; ++
i) {
773 sprintf(hname,
"counter%d",
i);
774 sprintf(htit,
"Counter with cut %d",
i);
776 sprintf(hname,
"h_pTNew%d",
i);
777 sprintf(htit,
"Track momentum with cut %d",
i);
810 char hname[100], htit[400];
813 sprintf(hname,
"h_HLTAccepts_%i", iRun.
run());
814 sprintf(htit,
"HLT Accepts for Run No %i", iRun.
run());
815 TH1I *hnew =
fs_->
make<TH1I>(hname, htit, 500, 0, 500);
816 for (
int i=1;
i<=500; ++
i) hnew->GetXaxis()->SetBinLabel(
i,
" ");
854 double enHcal1,
double enEcal2,
double enHcal2) {
862 if (ip >= 0 && ie >= 0 && enEcal1 > 0.02 && enHcal1 > 0.1) {
874 int length = str.length();
875 for (
int i=0;
i<length-2;
i++){
876 if (str[
i]==
'_' && str[
i+1]==
'v' && isdigit(str.at(
i+2))) {
878 truncated_str = str.substr(0,z);
881 return(truncated_str);
888 reco::GenParticleCollection::const_iterator
p;
890 for (p=genParticles->begin(),indx=0; p!=genParticles->end(); ++
p,++indx) {
892 int idx = (pdgId == 11) ? 1 :
893 ((pdgId == 211) ? 2 : ((pdgId == 321) ? 3 : ((pdgId == 2212) ? 4 : 0)));
895 double dEta = pTrack->
eta() - p->momentum().Eta();
896 double phi1 = pTrack->
phi();
897 double phi2 = p->momentum().Phi();
898 if (phi1 < 0) phi1 += 2.0*
M_PI;
899 if (phi2 < 0) phi2 += 2.0*
M_PI;
900 double dPhi = phi1-phi2;
902 else if (dPhi < -
M_PI) dPhi += 2.*
M_PI;
903 double dR =
sqrt(dEta*dEta+dPhi*dPhi);
905 mindR =
dR;
id =
idx;
const edm::InputTag theTriggerResultsLabel_
static const std::string kSharedResource
void fillEnergy(int, int, double, double, double, double, double)
double p() const
momentum vector magnitude
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
T getParameter(std::string const &) const
EventNumber_t event() const
edm::EDGetTokenT< EcalRecHitCollection > tok_EE_
T getUntrackedParameter(std::string const &, T const &) const
std::vector< double > tr_TrkPt
std::vector< double > tr_H3x3
std::vector< spr::propagatedTrackID > propagateCALO(edm::Handle< reco::TrackCollection > &trkCollection, const CaloGeometry *geo, const MagneticField *bField, const std::string &theTrackQuality, bool debug=false)
const std::string theTrackQuality_
const edm::InputTag triggerEvent_
void analyze(edm::Event const &, edm::EventSetup const &) override
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
The single EDProduct to be saved for each event (AOD case)
std::vector< double > tr_MaxNearP31X31
bool getByToken(EDGetToken token, Handle< PROD > &result) const
TrackQuality
track quality
#define DEFINE_FWK_MODULE(type)
std::vector< TH1I * > h_HLTAccepts
std::vector< std::string > tr_TrigName
std::vector< bool > tr_SE7x7P
bool accept() const
Has at least one path accepted the event?
edm::EDGetTokenT< GenEventInfoProduct > tok_ew_
std::vector< Track > TrackCollection
collection of Tracks
edm::EDGetTokenT< reco::GenParticleCollection > tok_parts_
int bunchCrossing() const
edm::LuminosityBlockNumber_t luminosityBlock() const
double phi() const
azimuthal angle of momentum vector
T * make(const Args &...args) const
make new ROOT object
const Vector & momentum() const
track momentum vector
std::vector< std::string > HLTNames_
virtual void beginLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
Strings const & triggerNames() const
std::vector< double > tr_TrkEta
edm::EDGetTokenT< reco::TrackCollection > tok_genTrack_
void fillIsolation(int, double, double, double)
edm::EDGetTokenT< HBHERecHitCollection > tok_hbhe_
TH1D * h_energy[nPVBin_+8][nPBin_][nEtaBin_][6]
double chargeIsolationEcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const CaloGeometry *geo, const CaloTopology *caloTopology, int ieta, int iphi, bool debug=false)
double eta() const
pseudorapidity of momentum vector
std::vector< int > tr_iEta
spr::trackSelectionParameters selectionParameters_
edm::EDGetTokenT< reco::VertexCollection > tok_recVtx_
void fillTrack(int, double, double, double, double)
std::vector< double > tr_MaxNearHcalP7x7
std::string truncate_str(const std::string &)
const std::vector< double > puWeights_
unsigned int size() const
Get number of paths stored.
double pt() const
track transverse momentum
static const int nEtaBin_
Abs< T >::type abs(const T &t)
HLTConfigProvider hltConfig_
std::vector< bool > tr_SE11x11P
static std::string const triggerResults
ParameterDescriptionBase * add(U const &iLabel, T const &value)
std::vector< double > tr_FE11x11P
static TrackQuality qualityByName(const std::string &name)
edm::Service< TFileService > fs_
T const * product() const
edm::EDGetTokenT< EcalRecHitCollection > tok_EB_
std::vector< int > tr_TrkID
int trackPID(const reco::Track *, const edm::Handle< reco::GenParticleCollection > &)
const double maxTrackEta_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d'tor
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< LumiDetails > tok_lumi
bool quality(const TrackQuality) const
Track quality.
std::vector< double > tr_H7x7
void beginRun(edm::Run const &, edm::EventSetup const &) override
std::vector< double > tr_FE15x15P
edm::EDGetTokenT< edm::TriggerResults > tok_trigRes
reco::TrackBase::TrackQuality minQuality
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
StudyHLT(const edm::ParameterSet &)
std::vector< double > tr_FE7x7P
virtual void endLuminosityBlock(edm::LuminosityBlock const &, edm::EventSetup const &)
std::vector< double > tr_TrkPhi
double chargeIsolationHcal(unsigned int trkIndex, std::vector< spr::propagatedTrackID > &vdetIds, const HcalTopology *topology, int ieta, int iphi, bool debug=false)
std::vector< double > tr_TrkP
T const * product() const
std::vector< bool > tr_SE15x15P
const std::vector< std::string > trigNames_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
std::vector< double > tr_H5x5
void endRun(edm::Run const &, edm::EventSetup const &) override
edm::EDGetTokenT< trigger::TriggerEvent > tok_trigEvt
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 std::vector< std::string > newNames_
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)