CMS 3D CMS Logo

Public Member Functions | Private Attributes

HLTEgammaEtFilterPairs Class Reference

#include <HLTEgammaEtFilterPairs.h>

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

List of all members.

Public Member Functions

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

Private Attributes

double etcutEB1_
double etcutEB2_
double etcutEE1_
double etcutEE2_
edm::InputTag inputTag_
edm::InputTag L1IsoCollTag_
edm::InputTag L1NonIsoCollTag_
bool relaxed_
bool store_

Detailed Description

Author:
Alessio Ghezzi
Id:
HLTEgammaEtFilterPairs.cc,v 1.2 2009/01/27 13:57:07 ghezzi Exp
Author:
Alessio Ghezzi

Definition at line 16 of file HLTEgammaEtFilterPairs.h.


Constructor & Destructor Documentation

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

Definition at line 22 of file HLTEgammaEtFilterPairs.cc.

References etcutEB1_, etcutEB2_, etcutEE1_, etcutEE2_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), inputTag_, L1IsoCollTag_, L1NonIsoCollTag_, relaxed_, and store_.

{
   inputTag_ = iConfig.getParameter< edm::InputTag > ("inputTag");
   etcutEB1_  = iConfig.getParameter<double> ("etcut1EB");
   etcutEE1_  = iConfig.getParameter<double> ("etcut1EE");
   etcutEB2_  = iConfig.getParameter<double> ("etcut2EB");
   etcutEE2_  = iConfig.getParameter<double> ("etcut2EE");
   store_ = iConfig.getUntrackedParameter<bool> ("SaveTag",false) ;
   relaxed_ = iConfig.getUntrackedParameter<bool> ("relaxed",true) ;
   L1IsoCollTag_= iConfig.getParameter< edm::InputTag > ("L1IsoCand"); 
   L1NonIsoCollTag_= iConfig.getParameter< edm::InputTag > ("L1NonIsoCand"); 

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

Definition at line 38 of file HLTEgammaEtFilterPairs.cc.

{}

Member Function Documentation

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

Implements HLTFilter.

Definition at line 43 of file HLTEgammaEtFilterPairs.cc.

References accept(), etcutEB1_, etcutEB2_, etcutEE1_, etcutEE2_, first, edm::Event::getByLabel(), i, inputTag_, L1IsoCollTag_, L1NonIsoCollTag_, module(), n, path(), edm::Event::put(), relaxed_, edm::second(), store_, and trigger::TriggerCluster.

{
  using namespace trigger;
  // The filter object
    std::auto_ptr<trigger::TriggerFilterObjectWithRefs> filterproduct (new trigger::TriggerFilterObjectWithRefs(path(),module()));
    if( store_ ){filterproduct->addCollectionTag(L1IsoCollTag_);}
    if( store_ && relaxed_){filterproduct->addCollectionTag(L1NonIsoCollTag_);}

  edm::Handle<trigger::TriggerFilterObjectWithRefs> PrevFilterOutput;
  iEvent.getByLabel (inputTag_,PrevFilterOutput);

  std::vector<edm::Ref<reco::RecoEcalCandidateCollection> > recoecalcands;                // vref with your specific C++ collection type
  PrevFilterOutput->getObjects(TriggerCluster, recoecalcands);
  // they list should be interpreted as pairs:
  // <recoecalcands[0],recoecalcands[1]>
  // <recoecalcands[2],recoecalcands[3]>
  // <recoecalcands[4],recoecalcands[5]>
  // .......

  // Should I check that the size of recoecalcands is even ?
  int n(0);

  for (unsigned int i=0; i<recoecalcands.size(); i=i+2) {
    
     edm::Ref<reco::RecoEcalCandidateCollection> r1 = recoecalcands[i];
     edm::Ref<reco::RecoEcalCandidateCollection> r2 = recoecalcands[i+1];
     //  std::cout<<"EtFilter: 1) Et Eta phi: "<<r1->et()<<" "<<r1->eta()<<" "<<r1->phi()<<" 2) Et eta phi: "<<r2->et()<<" "<<r2->eta()<<" "<<r2->phi()<<std::endl;
     bool first  = (fabs(r1->eta()) < 1.479 &&  r1->et()  >= etcutEB1_) || (fabs(r1->eta()) >= 1.479 &&  r1->et()  >= etcutEE1_);
     bool second = (fabs(r2->eta()) < 1.479 &&  r2->et()  >= etcutEB2_) || (fabs(r2->eta()) >= 1.479 &&  r2->et()  >= etcutEE2_);

    if ( first && second ) {
      n++;
      filterproduct->addObject(TriggerCluster,r1 );
      filterproduct->addObject(TriggerCluster,r2 );
    }
  }

  
  // filter decision
  bool accept(n>=1);
  
  // put filter object into the Event
  iEvent.put(filterproduct);
  
  return accept;
}

Member Data Documentation

Definition at line 25 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 26 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 27 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 28 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 24 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 31 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 32 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 30 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().

Definition at line 29 of file HLTEgammaEtFilterPairs.h.

Referenced by filter(), and HLTEgammaEtFilterPairs().