332 edm::LogInfo(
"SUSY_HLT_SingleLepton") <<
"SUSY_HLT_SingleLepton::analyze\n";
356 if (!HLTJetCollection.
isValid()) {
365 if (!HLTJetTagCollection.
isValid()) {
375 if (!VertexCollection.
isValid()) {
385 if (!ConversionCollection.
isValid()) {
404 if (!pfMETCollection.
isValid()) {
413 if (!pfJetCollection.
isValid()) {
422 if (!jetTagCollection.
isValid()) {
431 if (!ElectronCollection.
isValid()) {
440 if (!MuonCollection.
isValid()) {
456 if (!triggerSummary.
isValid()) {
462 std::vector<float> ptLepton, etaLepton, phiLepton;
463 if (triggerSummary.
isValid()) {
467 if (!(filterIndex >= triggerSummary->
sizeFilters())) {
468 size_t ilep = 0, num_keys = triggerSummary->
filterKeys(filterIndex).size();
469 ptLepton.resize(num_keys);
470 etaLepton.resize(num_keys);
471 phiLepton.resize(num_keys);
472 for (
const auto &
key : triggerSummary->
filterKeys(filterIndex)) {
482 ptLepton.at(ilep) = foundObject.
pt();
483 etaLepton.at(ilep) = foundObject.
eta();
484 phiLepton.at(ilep) = foundObject.
phi();
491 const float hlt_ht = ((HLTHT.
isValid() && !HLTHT->empty()) ? HLTHT->front().sumEt() : -1.0);
494 const float hlt_met = ((HLTMET.
isValid() && !HLTMET->empty()) ? HLTMET->front().pt() : -1.0);
499 float hlt_csv = -1.0;
500 if (HLTJetCollection.
isValid() && HLTJetTagCollection.
isValid()) {
501 for (
const auto &
jet : *HLTJetTagCollection) {
502 if (
jet.second > hlt_csv)
503 hlt_csv =
jet.second;
510 bool hasFired =
false;
511 bool hasFiredAuxiliary =
false;
512 bool hasFiredLeptonAuxiliary =
false;
515 for (
unsigned int hltIndex = 0; hltIndex < trigNames.
size(); ++hltIndex) {
516 if (hltresults->
wasrun(hltIndex) && hltresults->
accept(hltIndex)) {
521 hasFiredAuxiliary =
true;
523 hasFiredLeptonAuxiliary =
true;
530 if (pfJetCollection.
isValid()) {
532 for (
const auto &pfjet : *pfJetCollection) {
543 if (pfMETCollection.
isValid() && !pfMETCollection->empty()) {
544 pfMET = pfMETCollection->front().et();
549 unsigned num_csvl = 0;
550 unsigned num_csvm = 0;
551 unsigned num_csvt = 0;
552 if (jetTagCollection.
isValid()) {
553 for (
const auto &
jet : *jetTagCollection) {
554 const float CSV =
jet.second;
575 double lep_max_pt = -1.0;
576 if (VertexCollection.
isValid() && !VertexCollection->empty()) {
579 for (
const auto &
electron : *ElectronCollection) {
588 if (MuonCollection.
isValid()) {
589 for (
const auto &
muon : *MuonCollection) {
590 if (IsGood(
muon, VertexCollection->front().position())) {
591 if (
muon.pt() > lep_max_pt) {
592 lep_max_pt =
muon.pt();
607 if (ht_plateau && met_plateau && csv_plateau && (pfMET >
metCut_ ||
metCut_ < 0.0) &&
619 if (lep_plateau && met_plateau && csv_plateau) {
627 if (lep_plateau && ht_plateau && csv_plateau) {
635 if (lep_plateau && ht_plateau && met_plateau) {
edm::InputTag theElectronTag_
bool wasrun() const
Was at least one path run?
edm::EDGetTokenT< edm::TriggerResults > theTriggerResults_
edm::InputTag theLeptonFilterTag_
std::string triggerPathLeptonAuxiliary_
edm::InputTag theConversionCollectionTag_
trigger::size_type sizeFilters() const
edm::InputTag theMuonTag_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< reco::MuonCollection > theMuonCollection_
edm::EDGetTokenT< reco::METCollection > theHLTMET_
edm::InputTag theTriggerResultsTag_
bool accept() const
Has at least one path accepted the event?
const Keys & filterKeys(trigger::size_type index) const
trigger::size_type filterIndex(const edm::InputTag &filterTag) const
find index of filter in data-member vector from filter tag
MonitorElement * h_triggerLepPt_
std::vector< Vertex > VertexCollection
collection of Vertex objects
MonitorElement * h_pfMetTurnOn_den_
MonitorElement * h_leptonTurnOn_num_
MonitorElement * h_CSVTurnOn_num_
Strings::size_type size() const
MonitorElement * h_pfHTTurnOn_num_
edm::EDGetTokenT< reco::JetTagCollection > theJetTagCollection_
MonitorElement * h_CSVTurnOn_den_
edm::EDGetTokenT< reco::CaloJetCollection > theHLTJetCollection_
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
std::vector< Muon > MuonCollection
collection of Muon objects
edm::InputTag theHLTMETTag_
Single trigger physics object (e.g., an isolated muon)
edm::EDGetTokenT< reco::GsfElectronCollection > theElectronCollection_
edm::InputTag theJetTagTag_
edm::InputTag thePfMETTag_
const TriggerObjectCollection & getObjects() const
edm::EDGetTokenT< reco::ConversionCollection > theConversionCollection_
MonitorElement * h_btagTurnOn_den_
MonitorElement * h_triggerLepPhi_
edm::InputTag thePfJetTag_
std::vector< Electron > ElectronCollection
collectin of Electron objects
edm::EDGetTokenT< reco::JetTagCollection > theHLTJetTagCollection_
edm::InputTag theHLTJetCollectionTag_
edm::EDGetTokenT< reco::BeamSpot > theBeamSpot_
edm::InputTag theTrigSummaryTag_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
edm::EDGetTokenT< reco::PFJetCollection > thePfJetCollection_
static const char *const trigNames[]
edm::InputTag theBeamSpotTag_
MonitorElement * h_pfHTTurnOn_den_
std::string const & triggerName(unsigned int index) const
MonitorElement * h_triggerLepEta_
MonitorElement * h_pfMetTurnOn_num_
edm::EDGetTokenT< reco::PFMETCollection > thePfMETCollection_
edm::EDGetTokenT< reco::VertexCollection > theVertexCollection_
edm::InputTag theHLTHTTag_
std::string triggerPathAuxiliary_
MonitorElement * h_btagTurnOn_num_
const Point & position() const
position
MonitorElement * h_maxCSV_
MonitorElement * h_leptonTurnOn_den_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
edm::EDGetTokenT< reco::METCollection > theHLTHT_
edm::InputTag theVertexCollectionTag_
edm::EDGetTokenT< trigger::TriggerEvent > theTrigSummary_
edm::InputTag theHLTJetTagCollectionTag_