1 #ifndef FOURVECTORHLTOFFLINE_H
2 #define FOURVECTORHLTOFFLINE_H
110 typedef std::multimap<float,int>
fimmap ;
111 typedef std::set<fimmap , std::less<fimmap> >
mmset;
570 PathInfo(
std::string denomPathName,
std::string pathName,
std::string l1pathName,
int l1ModuleIndex,
std::string filterName,
std::string processName,
size_t type,
float ptmin,
float ptmax,
float hltThreshold,
float l1Threshold):
628 float ptmin,
float ptmax
731 virtual void setPath(FourVectorHLTOffline::PathInfoCollection::iterator
v) = 0;
752 void setLimits(
float etaMax,
float etMin,
float drMatch,
float l1drMatch,
float dRRange,
float thresholdFactor)
765 void setPath(FourVectorHLTOffline::PathInfoCollection::iterator
v) {
v_ =
v; }
835 FourVectorHLTOffline::PathInfoCollection::iterator
v_;
845 for(std::vector<int>::const_iterator it = triggerType_.begin(); it != triggerType_.end(); ++it)
848 if(t == *it) { rc =
true;
break; }
864 for(std::vector<int>::const_iterator it = l1triggerType_.begin(); it != l1triggerType_.end(); ++it)
867 if(fabs(t) == fabs(*it)) { rc =
true;
break; }
882 if(! isTriggerType(v_->getObjectType()) )
return;
884 unsigned int NOff = 0;
886 if( offCollB_.isValid()) {
888 for( const_iterator
iter = offCollB_->begin(), iend = offCollB_->end();
iter != iend; ++
iter )
891 float recoEta = (*iter).first->eta();
892 float recoPhi = (*iter).first->phi();
893 float recoPt = (*iter).first->pt();
896 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
900 v_->getOffEtOffHisto()->Fill(recoPt);
901 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
902 v_->getOffEtaVsOffPhiOffHisto()->Fill(recoEta, recoPhi);
916 else if(offCollEle_.isValid()) {
918 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
919 for( const_iterator
iter = offCollEle_->begin(), iend = offCollEle_->end();
iter != iend; ++
iter )
922 if (fabs(
iter->eta()) <= EtaMax_ &&
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()) >= EtMin_ )
926 v_->getOffEtOffHisto()->Fill(
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()));
928 if(
iter->pt() >= thresholdFactor_*v_->getHltThreshold())
929 v_->getOffEtaVsOffPhiOffHisto()->Fill(
iter->eta(),
iter->phi());
943 else if(offColl_.isValid()) {
945 typedef typename T::const_iterator const_iterator;
946 for( const_iterator
iter = offColl_->begin(), iend = offColl_->end();
iter != iend; ++
iter )
949 if (fabs(
iter->eta()) <= EtaMax_ &&
iter->pt() >= EtMin_ )
953 v_->getOffEtOffHisto()->Fill(
iter->pt());
955 if(
iter->pt() >= thresholdFactor_*v_->getHltThreshold())
956 v_->getOffEtaVsOffPhiOffHisto()->Fill(
iter->eta(),
iter->phi());
971 if(NOff>0)v_->getNOffHisto()->Fill(NOff);
980 if ( l1Index >= fv->
fTriggerObj->sizeFilters() )
return;
983 unsigned int NL1OffUM=0;
988 bool l1accept = l1k.size() > 0;
990 if(!l1accept)
return;
992 trigger::Vids::const_iterator idtypeiter = idtype.begin();
994 for (trigger::Keys::const_iterator l1ki = l1k.begin(); l1ki !=l1k.end(); ++l1ki ) {
998 if(isL1TriggerType(*idtypeiter))
1003 v_->getL1EtL1Histo()->Fill(l1FV.
pt());
1004 v_->getL1EtaVsL1PhiL1Histo()->Fill(l1FV.
eta(), l1FV.
phi());
1006 matchL1Offline(l1FV, fv, NL1, NL1OffUM);
1014 if(NL1 > 0) v_->getNL1Histo()->Fill(NL1);
1015 if(NL1OffUM > 0) v_->getNL1OffUMHisto()->Fill(NL1OffUM);
1026 if (offCollB_.isValid()) {
1030 for( const_iterator
iter = offCollB_->begin(), iend = offCollB_->end();
iter != iend; ++
iter )
1033 float recoEta = (*iter).first->eta();
1034 float recoPhi = (*iter).first->phi();
1035 float recoPt = (*iter).first->pt();
1037 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1041 if (v_->getOffEtL1OffUMHisto() != 0) {
1045 v_->getOffEtL1OffUMHisto()->Fill(recoPt);
1047 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1048 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(recoEta,recoPhi);
1058 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1069 else if (offCollMu_.isValid()) {
1072 typedef typename reco::MuonCollection::const_iterator const_iterator;
1073 for( const_iterator
iter = offCollMu_->begin(), iend = offCollMu_->end();
iter != iend; ++
iter )
1079 float recoEta =
iter->outerTrack()->innerPosition().eta();
1080 float recoPhi =
iter->outerTrack()->innerPosition().phi();
1081 float recoPt =
iter->pt();
1083 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1087 if (v_->getOffEtL1OffUMHisto() != 0) {
1091 v_->getOffEtL1OffUMHisto()->Fill(recoPt);
1093 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1094 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(recoEta,recoPhi);
1104 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1115 else if (offCollEle_.isValid()) {
1118 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1119 for( const_iterator
iter = offCollEle_->begin(), iend = offCollEle_->end();
iter != iend; ++
iter )
1122 if (fabs(
iter->eta()) <= EtaMax_ &&
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()) >= EtMin_ )
1125 if ( v_->getOffEtL1OffUMHisto() != 0) {
1130 v_->getOffEtL1OffUMHisto()->Fill(
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()));
1132 if(
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()) >= thresholdFactor_*v_->getHltThreshold())
1133 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(
iter->eta(),
iter->phi());
1143 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1154 else if (offColl_.isValid()) {
1157 typedef typename T::const_iterator const_iterator;
1158 for( const_iterator
iter = offColl_->begin(), iend = offColl_->end();
iter != iend; ++
iter )
1161 if (fabs(
iter->eta()) <= EtaMax_ &&
iter->pt() >= EtMin_ )
1165 if (v_->getOffEtL1OffUMHisto()!= 0 ) {
1169 v_->getOffEtL1OffUMHisto()->Fill(
iter->pt());
1171 if(
iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1172 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(
iter->eta(),
iter->phi());
1182 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1193 if(! L1OffDRMatchMap.empty()) L1OffDRMatchSet.insert(L1OffDRMatchMap);
1202 if(! isTriggerType(v_->getObjectType()) )
return;
1212 for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
1218 v_->getOnEtOnHisto()->Fill(onlineFV.
pt());
1219 v_->getOnOneOverEtOnHisto()->Fill(1./onlineFV.
pt());
1220 v_->getOnEtaVsOnPhiOnHisto()->Fill(onlineFV.
eta(), onlineFV.
phi());
1222 matchOnlineL1(onlineFV,l1Index, fv, NOn);
1223 matchOnlineOffline(onlineFV,fv, NOn);
1227 if(NOn>0) v_->getNOnHisto()->Fill(NOn);
1235 if ( l1Index >= fv->
fTriggerObj->sizeFilters() )
return;
1237 unsigned int NOnL1UM=0;
1245 trigger::Vids::const_iterator idtypeiter = idtype.begin();
1246 for (trigger::Keys::const_iterator l1ki = l1k.begin(); l1ki !=l1k.end(); ++l1ki )
1249 if(isL1TriggerType(*idtypeiter))
1255 if (v_->getL1EtL1OnUMHisto() != 0) {
1259 v_->getL1EtL1OnUMHisto()->Fill(l1FV.
pt());
1260 v_->getL1EtaVsL1PhiL1OnUMHisto()->Fill(l1FV.
eta(),l1FV.
phi());
1270 OnL1DRMatchMap.insert(std::pair<float,int>(dR,j));
1281 if(! OnL1DRMatchMap.empty()) OnL1DRMatchSet.insert(OnL1DRMatchMap);
1290 unsigned int NOnOffUM=0;
1294 if (offCollB_.isValid()) {
1298 for( const_iterator
iter = offCollB_->begin(), iend = offCollB_->end();
iter != iend; ++
iter )
1301 float recoEta = (*iter).first->eta();
1302 float recoPhi = (*iter).first->phi();
1303 float recoPt = (*iter).first->pt();
1305 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1310 if (v_->getOffEtOnOffUMHisto() != 0) {
1314 v_->getOffEtOnOffUMHisto()->Fill(recoPt);
1316 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1317 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(recoEta,recoPhi);
1327 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1338 else if (offCollMu_.isValid() && fL2MuFlag) {
1341 typedef typename reco::MuonCollection::const_iterator const_iterator;
1342 for( const_iterator
iter = offCollMu_->begin(), iend = offCollMu_->end();
iter != iend; ++
iter )
1348 float recoEta =
iter->outerTrack()->innerPosition().eta();
1349 float recoPhi =
iter->outerTrack()->innerPosition().phi();
1350 float recoPt =
iter->pt();
1352 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1355 if (v_->getOffEtOnOffUMHisto() != 0) {
1359 v_->getOffEtOnOffUMHisto()->Fill(
iter->pt());
1361 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1362 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(
iter->eta(),
iter->phi());
1372 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1384 else if (offCollEle_.isValid()) {
1388 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1389 for( const_iterator
iter = offCollEle_->begin(), iend = offCollEle_->end();
iter != iend; ++
iter )
1392 if (fabs(
iter->eta()) <= EtaMax_ &&
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()) >= EtMin_ )
1396 if (v_->getOffEtOnOffUMHisto() != 0) {
1400 v_->getOffEtOnOffUMHisto()->Fill(
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()));
1402 if(
iter->superCluster()->energy()*
sin(
iter->superCluster()->position().Theta()) >= thresholdFactor_*v_->getHltThreshold())
1403 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(
iter->eta(),
iter->phi());
1413 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1425 else if (offColl_.isValid()) {
1429 typedef typename T::const_iterator const_iterator;
1430 for( const_iterator
iter = offColl_->begin(), iend = offColl_->end();
iter != iend; ++
iter )
1433 if (fabs(
iter->eta()) <= EtaMax_ &&
iter->pt() >= EtMin_ )
1437 if (v_->getOffEtOnOffUMHisto() != 0) {
1441 v_->getOffEtOnOffUMHisto()->Fill(
iter->pt());
1443 if(
iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1444 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(
iter->eta(),
iter->phi());
1454 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1467 if(! OnOffDRMatchMap.empty()) OnOffDRMatchSet.insert(OnOffDRMatchMap);
1477 if(L1OffDRMatchSet.size() > 1) {
1479 LogDebug(
"FourVectorHLTOffline") <<
" Cleaning L1Off mmset" << std::endl;
1485 for ( mmset::iterator setIter = L1OffDRMatchSet.begin( ); setIter != L1OffDRMatchSet.end( ); setIter++ )
1488 fimmap tempMap = *setIter;
1490 fimmap::iterator it = tempMap.begin();
1491 int i = (*it).second ;
1492 float dR = (*it).first;
1493 v_->getOffDRL1OffHisto()->Fill(dR);
1495 if (dR > L1DRMatch_)
continue;
1496 if( offCollB_.isValid()) {
1499 const_iterator
iter = offCollB_->begin();
1504 v_->getOffEtL1OffHisto()->Fill((*iter).first->pt());
1505 if((*iter).first->pt() >= thresholdFactor_*v_->getHltThreshold())
1506 v_->getOffEtaVsOffPhiL1OffHisto()->Fill((*iter).first->eta(),(*iter).first->phi());
1510 else if( offCollMu_.isValid()) {
1512 typedef typename reco::MuonCollection::const_iterator const_iterator;
1513 const_iterator
iter = offCollMu_->begin();
1518 v_->getOffEtL1OffHisto()->Fill(iter->pt());
1519 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1520 v_->getOffEtaVsOffPhiL1OffHisto()->Fill(iter->outerTrack()->innerPosition().eta(),iter->outerTrack()->innerPosition().phi());
1523 else if( offCollEle_.isValid()) {
1525 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1526 const_iterator
iter = offCollEle_->begin();
1531 v_->getOffEtL1OffHisto()->Fill(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()));
1532 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1533 v_->getOffEtaVsOffPhiL1OffHisto()->Fill(iter->eta(),iter->phi());
1536 else if( offColl_.isValid()) {
1538 typedef typename T::const_iterator const_iterator;
1539 const_iterator
iter = offColl_->begin();
1544 v_->getOffEtL1OffHisto()->Fill(iter->pt());
1545 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1546 v_->getOffEtaVsOffPhiL1OffHisto()->Fill(iter->eta(),iter->phi());
1552 if(NL1Off > 0) v_->getNL1OffHisto()->Fill(NL1Off);
1561 unsigned int NOnOff=0;
1564 if(OnOffDRMatchSet.size() > 1){
1566 LogDebug(
"FourVectorHLTOffline") <<
" Cleaning OnOff mmset" << std::endl;
1571 for ( mmset::iterator setIter = OnOffDRMatchSet.begin( ); setIter != OnOffDRMatchSet.end( ); setIter++ )
1575 fimmap tempMap = *setIter;
1577 fimmap::iterator it = tempMap.begin();
1578 int i = (*it).second ;
1579 float dR = (*it).first;
1580 v_->getOffDROnOffHisto()->Fill(dR);
1583 if (dR > DRMatch_)
continue;
1585 if( offCollB_.isValid()) {
1589 const_iterator
iter = offCollB_->begin();
1594 v_->getOffEtOnOffHisto()->Fill((*iter).first->pt());
1595 if((*iter).first->pt() >= thresholdFactor_*v_->getHltThreshold())
1596 v_->getOffEtaVsOffPhiOnOffHisto()->Fill((*iter).first->eta(),(*iter).first->phi());
1599 else if( offCollMu_.isValid() && fL2MuFlag) {
1601 typedef typename reco::MuonCollection::const_iterator const_iterator;
1602 const_iterator
iter = offCollMu_->begin();
1607 v_->getOffEtOnOffHisto()->Fill(iter->pt());
1608 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1609 v_->getOffEtaVsOffPhiOnOffHisto()->Fill(iter->outerTrack()->innerPosition().eta(),iter->outerTrack()->innerPosition().phi());
1612 else if( offCollEle_.isValid()) {
1614 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1615 const_iterator
iter = offCollEle_->begin();
1619 v_->getOffEtOnOffHisto()->Fill(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()));
1620 if(iter->superCluster()->energy()*fabs(
sin(iter->superCluster()->position().Theta())) >= thresholdFactor_*v_->getHltThreshold())
1621 v_->getOffEtaVsOffPhiOnOffHisto()->Fill(iter->eta(),iter->phi());
1624 else if( offColl_.isValid()) {
1626 typedef typename T::const_iterator const_iterator;
1627 const_iterator
iter = offColl_->begin();
1631 v_->getOffEtOnOffHisto()->Fill(iter->pt());
1632 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1633 v_->getOffEtaVsOffPhiOnOffHisto()->Fill(iter->eta(),iter->phi());
1639 v_->getNOnOffHisto()->Fill(NOnOff);
1651 unsigned int NOnL1=0;
1654 if(OnL1DRMatchSet.size() > 1) {
1656 LogDebug(
"FourVectorHLTOffline") <<
" Cleaning L1On mmset" << std::endl;
1661 for ( mmset::iterator setIter = OnL1DRMatchSet.begin( ); setIter != OnL1DRMatchSet.end( ); setIter++ )
1664 fimmap tempMap = *setIter;
1666 fimmap::iterator it = tempMap.begin();
1667 int i = (*it).second ;
1668 float dR = (*it).first;
1669 v_->getL1DROnL1Histo()->Fill(dR);
1671 if (dR > L1DRMatch_)
continue;
1673 trigger::Keys::const_iterator l1ki = l1k.begin();
1677 v_->getL1EtL1OnHisto()->Fill(toc[*l1ki].
pt());
1678 v_->getL1EtaVsL1PhiL1OnHisto()->Fill(toc[*l1ki].
eta(),toc[*l1ki].
phi());
1682 v_->getNL1OnHisto()->Fill(NOnL1);
1690 if(! isTriggerType(v_->getObjectType()) )
return;
1693 if ( l1Index >= fv->
fTriggerObj->sizeFilters() )
return;
1694 fillOnL1Match(l1Index, fv);
1710 L1OffDRMatchSet.clear();
1711 L1MCDRMatchSet.clear();
1712 OnOffDRMatchSet.clear();
1713 OnMCDRMatchSet.clear();
1714 OnL1DRMatchSet.clear();
1715 OffMCDRMatchSet.clear();
float sigmaIetaIetaSpikesEC_
MonitorElement * getL1EtaVsL1PhiL1OnUMHisto()
void setupHltMatrix(const std::string &label, std::vector< std::string > &paths)
reco::helper::JetIDHelper * jetID
MonitorElement * getOnOneOverEtOnHisto()
MonitorElement * NOnOffUM_
MonitorElement * getL1EtL1Histo()
float dr04EcalRecHitSumEtEC_
edm::Handle< T > offColl_
bool hasL1Passed(const std::string &pathname, const edm::TriggerNames &triggerNames)
std::string denomPathName_
virtual void fillL1Match(FourVectorHLTOffline *fv)=0
MonitorElement * NL1OffUM_
void selectPhotons(const edm::Handle< reco::PhotonCollection > &phoHandle)
std::vector< PFTau > PFTauCollection
collection of PFTau objects
void countHLTPathHitsEndLumiBlock(const int &lumi)
virtual void monitorOnline(const int hltIndex, const int l1Index, FourVectorHLTOnline *fv)=0
void countHLTGroupBXHitsEndLumiBlock(const int &lumi)
MonitorElement * getOffDROnOffHisto()
edm::Handle< reco::GsfElectronCollection > fSelElectronsHandle
edm::Handle< reco::CaloMETCollection > fSelMetHandle
FourVectorHLTOffline::PathInfoCollection::iterator v_
MonitorElement * offEtOnOffUM_
float deltaPhiSuperClusterTrackAtVtxEC_
virtual void fillOnlineMatch(const int l1Index, FourVectorHLTOnline *fv)=0
transient_vector_type::const_iterator const_iterator
float sigmaIetaIetaSpikesEB_
std::vector< std::vector< uint > > triggerFilterIndices_
bool isL1TriggerType(int t)
MonitorElement * getL1EtaVsL1PhiL1OnHisto()
std::string pathsSummaryFolder_
reco::CaloMETCollection * fSelectedMet
PathInfoCollection hltPaths_
MonitorElement * getOffEtaVsOffPhiL1OffUMHisto()
bool isTriggerType(int t)
MonitorElement * l1Etavsl1PhiL1On_
MonitorElement * getNL1OffHisto()
std::string muonRecoCollectionName_
reco::PFTauCollection * fSelectedTaus
std::vector< PathInfo >::iterator find(std::string pathName)
edm::EDGetTokenT< reco::PFTauDiscriminator > tauDscrmtr1Token
void endRun(const edm::Run &run, const edm::EventSetup &c)
EndRun.
std::string pathsSummaryFilterEfficiencyFolder_
void setRecoMu(edm::Handle< reco::MuonCollection > offCollMu)
MonitorElement * l1Etavsl1PhiL1OnUM_
std::string pathsSummaryHLTPathsPerLSFolder_
int getTriggerTypeParsePathName(const std::string &pathname)
void fillHltMatrix(const edm::TriggerNames &triggerNames)
std::vector< std::pair< std::string, std::vector< int > > > fPathBxTempCountPair
MonitorElement * getNOnOffHisto()
Sin< T >::type sin(const T &t)
MonitorElement * offEtavsoffPhiL1Off_
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit > > recHitsEBToken
std::vector< std::string > specialPaths_
MonitorElement * getL1EtaVsL1PhiL1Histo()
void matchOnlineL1(const trigger::TriggerObject &onlineFV, const int &l1Index, FourVectorHLTOnline *fv, const int &NOn)
MonitorElement * offDRL1Off_
MonitorElement * offEtavsoffPhiOnOffUM_
FourVectorHLTOffline(const edm::ParameterSet &)
std::vector< int > l1triggerType_
void cleanDRMatchSet(mmset &tempSet)
Clean DR Match Set.
std::multimap< float, int > fimmap
PathInfo(std::string denomPathName, std::string pathName, std::string l1pathName, std::string filterName, std::string processName, size_t type, MonitorElement *NOn, MonitorElement *onEtOn, MonitorElement *onOneOverEtOn, MonitorElement *onEtavsonPhiOn, MonitorElement *NOff, MonitorElement *offEtOff, MonitorElement *offEtavsoffPhiOff, MonitorElement *NL1, MonitorElement *l1EtL1, MonitorElement *l1Etavsl1PhiL1, MonitorElement *NL1On, MonitorElement *l1EtL1On, MonitorElement *l1Etavsl1PhiL1On, MonitorElement *NL1Off, MonitorElement *offEtL1Off, MonitorElement *offEtavsoffPhiL1Off, MonitorElement *NOnOff, MonitorElement *offEtOnOff, MonitorElement *offEtavsoffPhiOnOff, MonitorElement *NL1OnUM, MonitorElement *l1EtL1OnUM, MonitorElement *l1Etavsl1PhiL1OnUM, MonitorElement *NL1OffUM, MonitorElement *offEtL1OffUM, MonitorElement *offEtavsoffPhiL1OffUM, MonitorElement *NOnOffUM, MonitorElement *offEtOnOffUM, MonitorElement *offEtavsoffPhiOnOffUM, MonitorElement *offDRL1Off, MonitorElement *offDROnOff, MonitorElement *l1DRL1On, MonitorElement *filters, float ptmin, float ptmax)
std::vector< int > triggerType_
edm::Handle< reco::MuonCollection > fSelMuonsHandle
edm::Handle< reco::GsfElectronCollection > offCollEle_
edm::EDGetTokenT< reco::GsfElectronCollection > gsfElectronToken
double deltaR(const T1 &t1, const T2 &t2)
edm::EDGetTokenT< edm::TriggerResults > triggerResultsToken
edm::Handle< reco::BeamSpot > fBeamSpotHandle
double normalizedChi2Cut_
bool operator!=(const std::string &v)
virtual void monitorOffline(void)=0
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
edm::Handle< reco::PFTauCollection > fSelTausHandle
void fillOnlineMatch(const int l1Index, FourVectorHLTOnline *fv)
edm::EDGetTokenT< reco::PFTauDiscriminator > tauDscrmtr2Token
float emEnergyFractionJet_
edm::Handle< reco::JetTagCollection > offCollB_
MonitorElement * offEtavsoffPhiL1OffUM_
virtual void matchOnlineOffline(const trigger::TriggerObject &onlineFV, FourVectorHLTOffline *fv, const int &NOn)=0
MonitorElement * getL1DROnL1Histo()
const std::string & getPath(void) const
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
const edm::InputTag getTag(void) const
std::vector< TPRegexp > filters
edm::InputTag triggerSummaryLabel_
void countHLTGroupL1HitsEndLumiBlock(const int &lumi)
void setRecoB(edm::Handle< reco::JetTagCollection > offCollB)
virtual bool isTriggerType(int t)=0
void setL1TriggerType(const std::vector< int > &trigType)
PathInfoCollection hltPathsDiagonal_
std::vector< std::pair< std::string, std::string > > custompathnamepairs_
void setPath(FourVectorHLTOffline::PathInfoCollection::iterator v)
std::vector< Muon > MuonCollection
collection of Muon objects
std::set< fimmap, std::less< fimmap > > mmset
edm::Handle< reco::PhotonCollection > fSelPhotonsHandle
reco::GsfElectronCollection * fSelectedElectrons
MonitorElement * getOffEtL1OffUMHisto()
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryFUToken
MonitorElement * getOnEtOnHisto()
Single trigger physics object (e.g., an isolated muon)
MonitorElement * getNL1OnUMHisto()
float deltaEtaSuperClusterTrackAtVtxEC_
const int getL1ModuleIndex(void) const
MonitorElement * getOffEtaVsOffPhiOffHisto()
MonitorElement * NL1OnUM_
edm::EDGetTokenT< reco::TrackCollection > pixelTrackToken
MonitorElement * getL1EtL1OnUMHisto()
FourVectorHLTOnline::PathInfoCollection::iterator v_
void matchOnlineOffline(const trigger::TriggerObject &onlineFV, FourVectorHLTOffline *fv, const int &NOn)
const std::string getL1ConditionModuleName(const std::string &pathname)
unsigned int referenceBX_
MonitorElement * l1Etavsl1PhiL1_
float deltaEtaSuperClusterTrackAtVtxEB_
void pushTriggerType(int trigType)
edm::EDGetTokenT< reco::PhotonCollection > photonToken
MonitorElement * offEtavsoffPhiOnOff_
MonitorElement * l1EtL1On_
void monitorOnline(const int hltIndex, const int l1Index, FourVectorHLTOnline *fv)
edm::Handle< edm::TriggerResults > fTriggerResults
edm::EDGetTokenT< std::vector< reco::PFTau > > tauProdToken
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
void selectJets(const edm::Event &iEvent, const edm::Handle< reco::CaloJetCollection > &jetHandle)
MonitorElement * offDROnOff_
std::vector< MonitorElement * > v_ME_Total_BX
void matchL1Offline(const trigger::TriggerObject &l1FV, FourVectorHLTOffline *fv, const int &NL1, unsigned int &NL1OffUM)
std::string pathsSummaryHLTPathsPerBXFolder_
virtual void matchL1Offline(const trigger::TriggerObject &l1FV, FourVectorHLTOffline *fv, const int &NL1, unsigned int &NL1OffUM)=0
std::vector< std::pair< std::string, float > > fPathTempCountPair
MonitorElement * getFiltersHisto()
const std::string & getProcess(void) const
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryToken
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
HLTConfigProvider hltConfig_
MonitorElement * getNOffHisto()
std::string fCustomBXPath
edm::EDGetTokenT< reco::CaloJetCollection > iC5calojetToken
virtual void matchOnlineL1(const trigger::TriggerObject &onlineFV, const int &l1Index, FourVectorHLTOnline *fv, const int &NOn)=0
void setLabel(std::string labelName)
virtual void analyze(const edm::Event &, const edm::EventSetup &)
void setHistos(MonitorElement *const NOn, MonitorElement *const onEtOn, MonitorElement *const onOneOverEtOn, MonitorElement *const onEtavsonPhiOn, MonitorElement *const NOff, MonitorElement *const offEtOff, MonitorElement *const offEtavsoffPhiOff, MonitorElement *const NL1, MonitorElement *const l1EtL1, MonitorElement *const l1Etavsl1PhiL1, MonitorElement *const NL1On, MonitorElement *const l1EtL1On, MonitorElement *const l1Etavsl1PhiL1On, MonitorElement *const NL1Off, MonitorElement *const offEtL1Off, MonitorElement *const offEtavsoffPhiL1Off, MonitorElement *const NOnOff, MonitorElement *const offEtOnOff, MonitorElement *const offEtavsoffPhiOnOff, MonitorElement *const NL1OnUM, MonitorElement *const l1EtL1OnUM, MonitorElement *const l1Etavsl1PhiL1OnUM, MonitorElement *const NL1OffUM, MonitorElement *const offEtL1OffUM, MonitorElement *const offEtavsoffPhiL1OffUM, MonitorElement *const NOnOffUM, MonitorElement *const offEtOnOffUM, MonitorElement *const offEtavsoffPhiOnOffUM, MonitorElement *const offDRL1Off, MonitorElement *const offDROnOff, MonitorElement *const l1DRL1On)
MonitorElement * offEtOnOff_
reco::PhotonCollection * fSelectedPhotons
std::vector< MonitorElement * > v_ME_Total_BX_Norm
void fillL1OffMatch(FourVectorHLTOffline *fv)
void selectTaus(const edm::Event &iEvent)
MonitorElement * getNL1OffUMHisto()
std::vector< std::pair< std::string, unsigned int > > filtersAndIndices
bool operator==(const std::string &v)
const int getObjectType(void) const
bool isVBTFMuon(const reco::Muon &muon)
MonitorElement * ME_HLT_BX
double electronL1DRMatch_
void selectElectrons(const edm::Event &iEvent, const edm::EventSetup &iSetup, const edm::Handle< reco::GsfElectronCollection > &eleHandle)
edm::EDGetTokenT< reco::MuonCollection > muonRecoCollectionToken
reco::MuonCollection * fSelectedMuons
MonitorElement * getNL1Histo()
edm::InputTag triggerResultsLabel_
MonitorElement * onEtavsonPhiOn_
MonitorElement * onOneOverEtOn_
std::string tauDscrmtrLabel2_
edm::EDGetTokenT< reco::PFTauDiscriminator > tauDscrmtr3Token
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
virtual void clearSets(void)=0
MonitorElement * l1EtL1OnUM_
void monitorL1(const int l1Index, FourVectorHLTOnline *fv)
void setLimits(float etaMax, float etMin, float drMatch, float l1drMatch, float dRRange, float thresholdFactor)
edm::EDGetTokenT< reco::CaloMETCollection > METToken
void beginRun(const edm::Run &run, const edm::EventSetup &c)
std::vector< reco::CaloMET > CaloMETCollection
collection of CaloMET objects
edm::EDGetTokenT< std::vector< reco::PFTau > > hpsPFTauProdToken
MonitorElement * ME_HLT_CUSTOM_BX
std::vector< std::vector< std::string > > triggerFilters_
MonitorElement * filters_
void fillOnOffMatch(FourVectorHLTOffline *fv)
std::vector< size_type > Keys
MonitorElement * getOffEtaVsOffPhiOnOffUMHisto()
MonitorElement * offEtavsoffPhiOff_
edm::Handle< reco::CaloJetCollection > fSelJetsHandle
float dr04EcalRecHitSumEtEB_
const std::string getLabel(void) const
float dr04HcalTowerSumEtEB_
MonitorElement * getOffEtOnOffHisto()
MonitorElement * offEtOff_
std::vector< Photon > PhotonCollection
collectin of Photon objects
MonitorElement * getOffEtL1OffHisto()
std::vector< std::pair< std::string, float > > fGroupTempCountPair
std::vector< std::pair< std::string, std::vector< std::string > > > fGroupNamePathsPair
void setRecoEle(edm::Handle< reco::GsfElectronCollection > offCollEle)
std::string removeVersions(std::string histVersion)
void fillL1Match(FourVectorHLTOffline *fv)
unsigned int nBinsOneOverEt_
void setL2MuFlag(bool flag)
MonitorElement * getNL1OnHisto()
virtual void setPath(FourVectorHLTOnline::PathInfoCollection::iterator v)=0
MonitorElement * l1DRL1On_
void beginLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
edm::EDGetTokenT< reco::JetTagCollection > jlipBtagToken
std::string pathsSummaryHLTCorrelationsFolder_
MonitorElement * getOffEtOnOffUMHisto()
std::string pathsSummaryFilterCountsFolder_
MonitorElement * getOffDRL1OffHisto()
const std::string & getl1Path(void) const
MonitorElement * offEtL1OffUM_
std::string pathsIndividualHLTPathsPerLSFolder_
MonitorElement * getOffEtaVsOffPhiOnOffHisto()
void selectMet(const edm::Handle< reco::CaloMETCollection > &metHandle)
float dr04HcalTowerSumEtEC_
edm::InputTag recHitsEBTag_
std::string tauDscrmtrLabel1_
float getHltThreshold() const
edm::EDGetTokenT< reco::JetTagCollection > softMuBtagToken
MonitorElement * getOffEtaVsOffPhiL1OffHisto()
MonitorElement * ME_HLTAll_LS
void setTriggerType(const std::vector< int > &trigType)
std::vector< std::string > fGroupName
MonitorElement * getL1EtL1OnHisto()
void fillOnL1Match(const int l1Index, FourVectorHLTOnline *fv)
void countHLTGroupHitsEndLumiBlock(const int &lumi)
virtual void monitorL1(const int l1Index, FourVectorHLTOnline *fv)=0
std::string tauDscrmtrLabel3_
std::vector< std::pair< std::string, float > > fGroupL1TempCountPair
edm::EDGetTokenT< edm::SortedCollection< EcalRecHit > > recHitsEEToken
float getL1Threshold() const
edm::EDGetTokenT< edm::TriggerResults > triggerResultsFUToken
edm::InputTag recHitsEETag_
reco::CaloJetCollection * fSelectedJets
void pushL1TriggerType(int trigType)
PathInfo(std::string denomPathName, std::string pathName, std::string l1pathName, int l1ModuleIndex, std::string filterName, std::string processName, size_t type, float ptmin, float ptmax, float hltThreshold, float l1Threshold)
MonitorElement * getOffEtOffHisto()
int getHltThresholdFromName(const std::string &pathname)
edm::Handle< trigger::TriggerEvent > fTriggerObj
void setReco(edm::Handle< T > offColl)
MonitorElement * scalersSelect
MonitorElement * getOnEtaVsOnPhiOnHisto()
MonitorElement * getNOnHisto()
float deltaPhiSuperClusterTrackAtVtxEB_
std::vector< MonitorElement * > v_ME_HLTAll_LS
void setFilterHistos(MonitorElement *const filters)
MonitorElement * offEtL1Off_
MonitorElement * getNOnOffUMHisto()
edm::Handle< reco::MuonCollection > offCollMu_
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects
void selectMuons(const edm::Handle< reco::MuonCollection > &muonHandle)
bool hasHLTPassed(const std::string &pathname, const edm::TriggerNames &triggerNames)
const std::string & getDenomPath(void) const
void setBJetsFlag(bool flag)