1 #ifndef FOURVECTORHLTOFFLINE_H
2 #define FOURVECTORHLTOFFLINE_H
109 typedef std::multimap<float,int>
fimmap ;
110 typedef std::set<fimmap , std::less<fimmap> >
mmset;
546 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):
604 float ptmin,
float ptmax
707 virtual void setPath(FourVectorHLTOffline::PathInfoCollection::iterator
v) = 0;
728 void setLimits(
float etaMax,
float etMin,
float drMatch,
float l1drMatch,
float dRRange,
float thresholdFactor)
741 void setPath(FourVectorHLTOffline::PathInfoCollection::iterator
v) {
v_ =
v; }
811 FourVectorHLTOffline::PathInfoCollection::iterator
v_;
821 for(std::vector<int>::const_iterator it = triggerType_.begin(); it != triggerType_.end(); ++it)
824 if(t == *it) { rc =
true;
break; }
840 for(std::vector<int>::const_iterator it = l1triggerType_.begin(); it != l1triggerType_.end(); ++it)
843 if(fabs(t) == fabs(*it)) { rc =
true;
break; }
858 if(! isTriggerType(v_->getObjectType()) )
return;
860 unsigned int NOff = 0;
862 if( offCollB_.isValid()) {
864 for( const_iterator iter = offCollB_->begin(), iend = offCollB_->end(); iter != iend; ++iter )
867 float recoEta = (*iter).first->eta();
868 float recoPhi = (*iter).first->phi();
869 float recoPt = (*iter).first->pt();
872 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
876 v_->getOffEtOffHisto()->Fill(recoPt);
877 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
878 v_->getOffEtaVsOffPhiOffHisto()->Fill(recoEta, recoPhi);
892 else if(offCollEle_.isValid()) {
894 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
895 for( const_iterator iter = offCollEle_->begin(), iend = offCollEle_->end(); iter != iend; ++iter )
898 if (fabs(iter->eta()) <= EtaMax_ && iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()) >= EtMin_ )
902 v_->getOffEtOffHisto()->Fill(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()));
904 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
905 v_->getOffEtaVsOffPhiOffHisto()->Fill(iter->eta(), iter->phi());
919 else if(offColl_.isValid()) {
921 typedef typename T::const_iterator const_iterator;
922 for( const_iterator iter = offColl_->begin(), iend = offColl_->end(); iter != iend; ++iter )
925 if (fabs(iter->eta()) <= EtaMax_ && iter->pt() >= EtMin_ )
929 v_->getOffEtOffHisto()->Fill(iter->pt());
931 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
932 v_->getOffEtaVsOffPhiOffHisto()->Fill(iter->eta(), iter->phi());
947 if(NOff>0)v_->getNOffHisto()->Fill(NOff);
956 if ( l1Index >= fv->
fTriggerObj->sizeFilters() )
return;
959 unsigned int NL1OffUM=0;
964 bool l1accept = l1k.size() > 0;
966 if(!l1accept)
return;
968 trigger::Vids::const_iterator idtypeiter = idtype.begin();
970 for (trigger::Keys::const_iterator l1ki = l1k.begin(); l1ki !=l1k.end(); ++l1ki ) {
974 if(isL1TriggerType(*idtypeiter))
979 v_->getL1EtL1Histo()->Fill(l1FV.
pt());
980 v_->getL1EtaVsL1PhiL1Histo()->Fill(l1FV.
eta(), l1FV.
phi());
982 matchL1Offline(l1FV, fv, NL1, NL1OffUM);
990 if(NL1 > 0) v_->getNL1Histo()->Fill(NL1);
991 if(NL1OffUM > 0) v_->getNL1OffUMHisto()->Fill(NL1OffUM);
1002 if (offCollB_.isValid()) {
1006 for( const_iterator iter = offCollB_->begin(), iend = offCollB_->end(); iter != iend; ++iter )
1009 float recoEta = (*iter).first->eta();
1010 float recoPhi = (*iter).first->phi();
1011 float recoPt = (*iter).first->pt();
1013 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1017 if (v_->getOffEtL1OffUMHisto() != 0) {
1021 v_->getOffEtL1OffUMHisto()->Fill(recoPt);
1023 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1024 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(recoEta,recoPhi);
1034 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1045 else if (offCollMu_.isValid()) {
1048 typedef typename reco::MuonCollection::const_iterator const_iterator;
1049 for( const_iterator iter = offCollMu_->begin(), iend = offCollMu_->end(); iter != iend; ++iter )
1055 float recoEta = iter->outerTrack()->innerPosition().eta();
1056 float recoPhi = iter->outerTrack()->innerPosition().phi();
1057 float recoPt = iter->pt();
1059 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1063 if (v_->getOffEtL1OffUMHisto() != 0) {
1067 v_->getOffEtL1OffUMHisto()->Fill(recoPt);
1069 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1070 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(recoEta,recoPhi);
1080 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1091 else if (offCollEle_.isValid()) {
1094 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1095 for( const_iterator iter = offCollEle_->begin(), iend = offCollEle_->end(); iter != iend; ++iter )
1098 if (fabs(iter->eta()) <= EtaMax_ && iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()) >= EtMin_ )
1101 if ( v_->getOffEtL1OffUMHisto() != 0) {
1106 v_->getOffEtL1OffUMHisto()->Fill(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()));
1108 if(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()) >= thresholdFactor_*v_->getHltThreshold())
1109 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(iter->eta(),iter->phi());
1119 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1130 else if (offColl_.isValid()) {
1133 typedef typename T::const_iterator const_iterator;
1134 for( const_iterator iter = offColl_->begin(), iend = offColl_->end(); iter != iend; ++iter )
1137 if (fabs(iter->eta()) <= EtaMax_ && iter->pt() >= EtMin_ )
1141 if (v_->getOffEtL1OffUMHisto()!= 0 ) {
1145 v_->getOffEtL1OffUMHisto()->Fill(iter->pt());
1147 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1148 v_->getOffEtaVsOffPhiL1OffUMHisto()->Fill(iter->eta(),iter->phi());
1158 L1OffDRMatchMap.insert(std::pair<float,int>(dR,j));
1169 if(! L1OffDRMatchMap.empty()) L1OffDRMatchSet.insert(L1OffDRMatchMap);
1178 if(! isTriggerType(v_->getObjectType()) )
return;
1188 for (trigger::Keys::const_iterator ki = k.begin(); ki !=k.end(); ++ki ) {
1194 v_->getOnEtOnHisto()->Fill(onlineFV.
pt());
1195 v_->getOnOneOverEtOnHisto()->Fill(1./onlineFV.
pt());
1196 v_->getOnEtaVsOnPhiOnHisto()->Fill(onlineFV.
eta(), onlineFV.
phi());
1198 matchOnlineL1(onlineFV,l1Index, fv, NOn);
1199 matchOnlineOffline(onlineFV,fv, NOn);
1203 if(NOn>0) v_->getNOnHisto()->Fill(NOn);
1211 if ( l1Index >= fv->
fTriggerObj->sizeFilters() )
return;
1213 unsigned int NOnL1UM=0;
1221 trigger::Vids::const_iterator idtypeiter = idtype.begin();
1222 for (trigger::Keys::const_iterator l1ki = l1k.begin(); l1ki !=l1k.end(); ++l1ki )
1225 if(isL1TriggerType(*idtypeiter))
1231 if (v_->getL1EtL1OnUMHisto() != 0) {
1235 v_->getL1EtL1OnUMHisto()->Fill(l1FV.
pt());
1236 v_->getL1EtaVsL1PhiL1OnUMHisto()->Fill(l1FV.
eta(),l1FV.
phi());
1246 OnL1DRMatchMap.insert(std::pair<float,int>(dR,j));
1257 if(! OnL1DRMatchMap.empty()) OnL1DRMatchSet.insert(OnL1DRMatchMap);
1266 unsigned int NOnOffUM=0;
1270 if (offCollB_.isValid()) {
1274 for( const_iterator iter = offCollB_->begin(), iend = offCollB_->end(); iter != iend; ++iter )
1277 float recoEta = (*iter).first->eta();
1278 float recoPhi = (*iter).first->phi();
1279 float recoPt = (*iter).first->pt();
1281 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1286 if (v_->getOffEtOnOffUMHisto() != 0) {
1290 v_->getOffEtOnOffUMHisto()->Fill(recoPt);
1292 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1293 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(recoEta,recoPhi);
1303 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1314 else if (offCollMu_.isValid() && fL2MuFlag) {
1317 typedef typename reco::MuonCollection::const_iterator const_iterator;
1318 for( const_iterator iter = offCollMu_->begin(), iend = offCollMu_->end(); iter != iend; ++iter )
1324 float recoEta = iter->outerTrack()->innerPosition().eta();
1325 float recoPhi = iter->outerTrack()->innerPosition().phi();
1326 float recoPt = iter->pt();
1328 if (fabs(recoEta) <= EtaMax_ && recoPt >= EtMin_ )
1331 if (v_->getOffEtOnOffUMHisto() != 0) {
1335 v_->getOffEtOnOffUMHisto()->Fill(iter->pt());
1337 if(recoPt >= thresholdFactor_*v_->getHltThreshold())
1338 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(iter->eta(),iter->phi());
1348 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1360 else if (offCollEle_.isValid()) {
1364 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1365 for( const_iterator iter = offCollEle_->begin(), iend = offCollEle_->end(); iter != iend; ++iter )
1368 if (fabs(iter->eta()) <= EtaMax_ && iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()) >= EtMin_ )
1372 if (v_->getOffEtOnOffUMHisto() != 0) {
1376 v_->getOffEtOnOffUMHisto()->Fill(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()));
1378 if(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()) >= thresholdFactor_*v_->getHltThreshold())
1379 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(iter->eta(),iter->phi());
1389 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1401 else if (offColl_.isValid()) {
1405 typedef typename T::const_iterator const_iterator;
1406 for( const_iterator iter = offColl_->begin(), iend = offColl_->end(); iter != iend; ++iter )
1409 if (fabs(iter->eta()) <= EtaMax_ && iter->pt() >= EtMin_ )
1413 if (v_->getOffEtOnOffUMHisto() != 0) {
1417 v_->getOffEtOnOffUMHisto()->Fill(iter->pt());
1419 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1420 v_->getOffEtaVsOffPhiOnOffUMHisto()->Fill(iter->eta(),iter->phi());
1430 OnOffDRMatchMap.insert(std::pair<float,int>(dR,j));
1443 if(! OnOffDRMatchMap.empty()) OnOffDRMatchSet.insert(OnOffDRMatchMap);
1453 if(L1OffDRMatchSet.size() > 1) {
1455 LogDebug(
"FourVectorHLTOffline") <<
" Cleaning L1Off mmset" << std::endl;
1461 for ( mmset::iterator setIter = L1OffDRMatchSet.begin( ); setIter != L1OffDRMatchSet.end( ); setIter++ )
1464 fimmap tempMap = *setIter;
1466 fimmap::iterator it = tempMap.begin();
1467 int i = (*it).second ;
1468 float dR = (*it).first;
1469 v_->getOffDRL1OffHisto()->Fill(dR);
1471 if (dR > L1DRMatch_)
continue;
1472 if( offCollB_.isValid()) {
1475 const_iterator iter = offCollB_->begin();
1480 v_->getOffEtL1OffHisto()->Fill((*iter).first->pt());
1481 if((*iter).first->pt() >= thresholdFactor_*v_->getHltThreshold())
1482 v_->getOffEtaVsOffPhiL1OffHisto()->Fill((*iter).first->eta(),(*iter).first->phi());
1486 else if( offCollMu_.isValid()) {
1488 typedef typename reco::MuonCollection::const_iterator const_iterator;
1489 const_iterator iter = offCollMu_->begin();
1494 v_->getOffEtL1OffHisto()->Fill(iter->pt());
1495 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1496 v_->getOffEtaVsOffPhiL1OffHisto()->Fill(iter->outerTrack()->innerPosition().eta(),iter->outerTrack()->innerPosition().phi());
1499 else if( offCollEle_.isValid()) {
1501 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1502 const_iterator iter = offCollEle_->begin();
1507 v_->getOffEtL1OffHisto()->Fill(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()));
1508 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1509 v_->getOffEtaVsOffPhiL1OffHisto()->Fill(iter->eta(),iter->phi());
1512 else if( offColl_.isValid()) {
1514 typedef typename T::const_iterator const_iterator;
1515 const_iterator iter = offColl_->begin();
1520 v_->getOffEtL1OffHisto()->Fill(iter->pt());
1521 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1522 v_->getOffEtaVsOffPhiL1OffHisto()->Fill(iter->eta(),iter->phi());
1528 if(NL1Off > 0) v_->getNL1OffHisto()->Fill(NL1Off);
1537 unsigned int NOnOff=0;
1540 if(OnOffDRMatchSet.size() > 1){
1542 LogDebug(
"FourVectorHLTOffline") <<
" Cleaning OnOff mmset" << std::endl;
1547 for ( mmset::iterator setIter = OnOffDRMatchSet.begin( ); setIter != OnOffDRMatchSet.end( ); setIter++ )
1551 fimmap tempMap = *setIter;
1553 fimmap::iterator it = tempMap.begin();
1554 int i = (*it).second ;
1555 float dR = (*it).first;
1556 v_->getOffDROnOffHisto()->Fill(dR);
1559 if (dR > DRMatch_)
continue;
1561 if( offCollB_.isValid()) {
1565 const_iterator iter = offCollB_->begin();
1570 v_->getOffEtOnOffHisto()->Fill((*iter).first->pt());
1571 if((*iter).first->pt() >= thresholdFactor_*v_->getHltThreshold())
1572 v_->getOffEtaVsOffPhiOnOffHisto()->Fill((*iter).first->eta(),(*iter).first->phi());
1575 else if( offCollMu_.isValid() && fL2MuFlag) {
1577 typedef typename reco::MuonCollection::const_iterator const_iterator;
1578 const_iterator iter = offCollMu_->begin();
1583 v_->getOffEtOnOffHisto()->Fill(iter->pt());
1584 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1585 v_->getOffEtaVsOffPhiOnOffHisto()->Fill(iter->outerTrack()->innerPosition().eta(),iter->outerTrack()->innerPosition().phi());
1588 else if( offCollEle_.isValid()) {
1590 typedef typename reco::GsfElectronCollection::const_iterator const_iterator;
1591 const_iterator iter = offCollEle_->begin();
1595 v_->getOffEtOnOffHisto()->Fill(iter->superCluster()->energy()*
sin(iter->superCluster()->position().Theta()));
1596 if(iter->superCluster()->energy()*fabs(
sin(iter->superCluster()->position().Theta())) >= thresholdFactor_*v_->getHltThreshold())
1597 v_->getOffEtaVsOffPhiOnOffHisto()->Fill(iter->eta(),iter->phi());
1600 else if( offColl_.isValid()) {
1602 typedef typename T::const_iterator const_iterator;
1603 const_iterator iter = offColl_->begin();
1607 v_->getOffEtOnOffHisto()->Fill(iter->pt());
1608 if(iter->pt() >= thresholdFactor_*v_->getHltThreshold())
1609 v_->getOffEtaVsOffPhiOnOffHisto()->Fill(iter->eta(),iter->phi());
1615 v_->getNOnOffHisto()->Fill(NOnOff);
1627 unsigned int NOnL1=0;
1630 if(OnL1DRMatchSet.size() > 1) {
1632 LogDebug(
"FourVectorHLTOffline") <<
" Cleaning L1On mmset" << std::endl;
1637 for ( mmset::iterator setIter = OnL1DRMatchSet.begin( ); setIter != OnL1DRMatchSet.end( ); setIter++ )
1640 fimmap tempMap = *setIter;
1642 fimmap::iterator it = tempMap.begin();
1643 int i = (*it).second ;
1644 float dR = (*it).first;
1645 v_->getL1DROnL1Histo()->Fill(dR);
1647 if (dR > L1DRMatch_)
continue;
1649 trigger::Keys::const_iterator l1ki = l1k.begin();
1653 v_->getL1EtL1OnHisto()->Fill(toc[*l1ki].
pt());
1654 v_->getL1EtaVsL1PhiL1OnHisto()->Fill(toc[*l1ki].
eta(),toc[*l1ki].
phi());
1658 v_->getNL1OnHisto()->Fill(NOnL1);
1666 if(! isTriggerType(v_->getObjectType()) )
return;
1669 if ( l1Index >= fv->
fTriggerObj->sizeFilters() )
return;
1670 fillOnL1Match(l1Index, fv);
1686 L1OffDRMatchSet.clear();
1687 L1MCDRMatchSet.clear();
1688 OnOffDRMatchSet.clear();
1689 OnMCDRMatchSet.clear();
1690 OnL1DRMatchSet.clear();
1691 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)
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_
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::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)
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()
MonitorElement * getOnEtOnHisto()
Single trigger physics object (e.g., an isolated muon)
MonitorElement * getNL1OnUMHisto()
float deltaEtaSuperClusterTrackAtVtxEC_
const int getL1ModuleIndex(void) const
MonitorElement * getOffEtaVsOffPhiOffHisto()
MonitorElement * NL1OnUM_
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)
MonitorElement * offEtavsoffPhiOnOff_
MonitorElement * l1EtL1On_
void monitorOnline(const int hltIndex, const int l1Index, FourVectorHLTOnline *fv)
edm::Handle< edm::TriggerResults > fTriggerResults
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
auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
void endLuminosityBlock(const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
HLTConfigProvider hltConfig_
MonitorElement * getNOffHisto()
std::string fCustomBXPath
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)
reco::MuonCollection * fSelectedMuons
MonitorElement * getNL1Histo()
edm::InputTag triggerResultsLabel_
MonitorElement * onEtavsonPhiOn_
MonitorElement * onOneOverEtOn_
std::string tauDscrmtrLabel2_
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)
void beginRun(const edm::Run &run, const edm::EventSetup &c)
std::vector< reco::CaloMET > CaloMETCollection
collection of CaloMET objects
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)
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
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
float getL1Threshold() const
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)