CMS 3D CMS Logo

Public Member Functions | Private Attributes

HLTEgammaTriggerFilterObjectWrapper Class Reference

#include <HLTEgammaTriggerFilterObjectWrapper.h>

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

List of all members.

Public Member Functions

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

Private Attributes

edm::InputTag candIsolatedTag_
edm::InputTag candNonIsolatedTag_
bool doIsolated_

Detailed Description

Author:
Alessio Ghezzi

Definition at line 16 of file HLTEgammaTriggerFilterObjectWrapper.h.


Constructor & Destructor Documentation

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

Definition at line 27 of file HLTEgammaTriggerFilterObjectWrapper.cc.

References candIsolatedTag_, candNonIsolatedTag_, doIsolated_, and edm::ParameterSet::getParameter().

{
   candIsolatedTag_ = iConfig.getParameter< edm::InputTag > ("candIsolatedTag");
   candNonIsolatedTag_ = iConfig.getParameter< edm::InputTag > ("candNonIsolatedTag");
   doIsolated_   = iConfig.getParameter<bool>("doIsolated");
  
   //register your products
   produces<trigger::TriggerFilterObjectWithRefs>();
}
HLTEgammaTriggerFilterObjectWrapper::~HLTEgammaTriggerFilterObjectWrapper ( )

Definition at line 37 of file HLTEgammaTriggerFilterObjectWrapper.cc.

{}

Member Function Documentation

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

Implements HLTFilter.

Definition at line 41 of file HLTEgammaTriggerFilterObjectWrapper.cc.

References candIsolatedTag_, candNonIsolatedTag_, doIsolated_, edm::Event::getByLabel(), module(), path(), edm::Event::put(), and trigger::TriggerCluster.

{

  using namespace trigger;
  using namespace l1extra;
  //using namespace std;
  std::auto_ptr<trigger::TriggerFilterObjectWithRefs> filterobject (new trigger::TriggerFilterObjectWithRefs(path(),module()));

  // Get the recoEcalCandidates
  edm::Handle<reco::RecoEcalCandidateCollection> recoIsolecalcands;
  iEvent.getByLabel(candIsolatedTag_,recoIsolecalcands);
  
  edm::Ref<reco::RecoEcalCandidateCollection> ref;
  // transform the L1Iso_RecoEcalCandidate into the TriggerFilterObjectWithRefs
  for (reco::RecoEcalCandidateCollection::const_iterator recoecalcand= recoIsolecalcands->begin(); recoecalcand!=recoIsolecalcands->end(); recoecalcand++) {
    ref = edm::Ref<reco::RecoEcalCandidateCollection>(recoIsolecalcands, distance(recoIsolecalcands->begin(),recoecalcand) );       
    filterobject->addObject(TriggerCluster, ref);
  }
  
  if(!doIsolated_) {
    // transform the L1NonIso_RecoEcalCandidate into the TriggerFilterObjectWithRefs and add them to the L1Iso ones.  
    edm::Handle<reco::RecoEcalCandidateCollection> recoNonIsolecalcands;
    iEvent.getByLabel(candNonIsolatedTag_,recoNonIsolecalcands);
    for (reco::RecoEcalCandidateCollection::const_iterator recoecalcand= recoNonIsolecalcands->begin(); recoecalcand!=recoNonIsolecalcands->end(); recoecalcand++) {
      ref = edm::Ref<reco::RecoEcalCandidateCollection>(recoNonIsolecalcands, distance(recoNonIsolecalcands->begin(),recoecalcand) );       
      filterobject->addObject(TriggerCluster, ref);
    }
  }
  
  iEvent.put(filterobject);

  return true;  
 }

Member Data Documentation