CMS 3D CMS Logo

Public Member Functions | Private Attributes

HLTSummaryFilter Class Reference

#include <HLTSummaryFilter.h>

Inheritance diagram for HLTSummaryFilter:
HLTFilter edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

List of all members.

Public Member Functions

virtual bool filter (edm::Event &, const edm::EventSetup &)
 HLTSummaryFilter (const edm::ParameterSet &)
 ~HLTSummaryFilter ()

Private Attributes

std::string cut_
edm::InputTag memberTag_
int min_N_
StringCutObjectSelector
< trigger::TriggerObject
select_
edm::InputTag summaryTag_

Detailed Description

This class is an HLTFilter (-> EDFilter) implementing a smart HLT trigger cut, specified as a string such as "pt>15 && -3<eta<3", for objects in the TriggerSummaryAOD product, allowing to cut on variables relating to their 4-momentum representation

Date:
2009/09/25 13:04:00
Revision:
1.1
Author:
Martin Grunewald

See header file for documentation

Date:
2009/09/28 11:25:02
Revision:
1.2
Author:
Martin Grunewald

Definition at line 30 of file HLTSummaryFilter.h.


Constructor & Destructor Documentation

HLTSummaryFilter::HLTSummaryFilter ( const edm::ParameterSet iConfig) [explicit]

Definition at line 22 of file HLTSummaryFilter.cc.

References cut_, edm::InputTag::encode(), memberTag_, min_N_, and summaryTag_.

                                                                 :
  summaryTag_ (iConfig.getParameter<edm::InputTag>("summary")),
  memberTag_  (iConfig.getParameter<edm::InputTag>("member" )),
  cut_        (iConfig.getParameter<std::string>  ("cut"    )),
  min_N_      (iConfig.getParameter<int>          ("minN"   )),
  select_     (cut_                                          )
{
  edm::LogInfo("HLTSummaryFilter")
     << "Summary/member/cut/ncut : "
     << summaryTag_.encode() << " "
     << memberTag_.encode() << " " 
     << cut_<< " " << min_N_ ;

   //register your products
   //produces<trigger::TriggerFilterObjectWithRefs>();
}
HLTSummaryFilter::~HLTSummaryFilter ( )

Definition at line 39 of file HLTSummaryFilter.cc.

{
}

Member Function Documentation

bool HLTSummaryFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
) [virtual]

Implements HLTFilter.

Definition at line 49 of file HLTSummaryFilter.cc.

References accept(), edm::InputTag::encode(), edm::Event::getByLabel(), i, getHLTprescales::index, memberTag_, min_N_, n, n0, dt_dqm_sourceclient_common_cff::reco, select_, summarizeEdmComparisonLogfiles::summary, and summaryTag_.

{
   using namespace std;
   using namespace edm;
   using namespace reco;
   using namespace trigger;

   Handle<TriggerEvent> summary;
   iEvent.getByLabel(summaryTag_,summary);

   if (!summary.isValid()) {
     LogError("HLTSummaryFilter") << "Trigger summary product " 
                                  << summaryTag_.encode() 
                                  << " not found! Filter returns false always";
     return false;
   }

   size_type n(0);
   size_type index(0);

   // check if we want to look at a filter and its passing physics objects
   index=summary->filterIndex(memberTag_);
   if (index<summary->sizeFilters()) {
     const Keys& KEYS (summary->filterKeys(index));
     const size_type n1(KEYS.size());
     for (size_type i=0; i!=n1; ++i) {
       const TriggerObject& TO( summary->getObjects().at(KEYS[i]) );
       if (select_(TO)) n++;
     }
     const bool accept(n>=min_N_);
     LogInfo("HLTSummaryFilter")
       << " Filter objects: " << n << "/" << n1;
     return accept;
   }
   
   // check if we want to cut on all physics objects of a full "L3" collection
   index=summary->collectionIndex(memberTag_);
   if (index<summary->sizeCollections()) {
     const Keys& KEYS (summary->collectionKeys());
     const size_type n0 (index == 0? 0 : KEYS.at(index-1));
     const size_type n1 (KEYS.at(index));
     for (size_type i=n0; i!=n1; ++i) {
       const TriggerObject& TO( summary->getObjects().at(i) );
       if (select_(TO)) n++;
     }
     const bool accept(n>=min_N_);
     LogInfo("HLTSummaryFilter")
       << " Collection objects: " << n << "/" <<n1-n0;
     return accept;
   }

   // can't help you, bailing out!
   const bool accept (false);
   LogInfo("HLTSummaryFilter") << " Default decision: " << accept;
   return accept;

}

Member Data Documentation

std::string HLTSummaryFilter::cut_ [private]

Definition at line 41 of file HLTSummaryFilter.h.

Referenced by HLTSummaryFilter().

Definition at line 40 of file HLTSummaryFilter.h.

Referenced by filter(), and HLTSummaryFilter().

int HLTSummaryFilter::min_N_ [private]

Definition at line 42 of file HLTSummaryFilter.h.

Referenced by filter(), and HLTSummaryFilter().

Definition at line 44 of file HLTSummaryFilter.h.

Referenced by filter().

Definition at line 39 of file HLTSummaryFilter.h.

Referenced by filter(), and HLTSummaryFilter().