CMS 3D CMS Logo

Public Member Functions | Private Attributes

HLTPMDocaFilter Class Reference

#include <HLTPMDocaFilter.h>

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

List of all members.

Public Member Functions

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

Private Attributes

edm::InputTag candTag_
double docaDiffPerpCutHigh_
double docaDiffPerpCutLow_
int nZcandcut_

Detailed Description

Original Author: Jeremy Werner Institution: Princeton University, USA Contact: Jeremy.Werner@cern.ch Date: February 21, 2007

Original Author: Jeremy Werner Institution: Princeton University, USA * Contact: Jeremy.Werner@cern.ch Date: February 21, 2007

Id:
HLTPMDocaFilter.cc,v 1.7 2007/12/07 09:32:56 ghezzi Exp

Definition at line 19 of file HLTPMDocaFilter.h.


Constructor & Destructor Documentation

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

Definition at line 24 of file HLTPMDocaFilter.cc.

References candTag_, docaDiffPerpCutHigh_, docaDiffPerpCutLow_, edm::ParameterSet::getParameter(), and nZcandcut_.

{
  candTag_            = iConfig.getParameter< edm::InputTag > ("candTag");
  docaDiffPerpCutHigh_     = iConfig.getParameter<double> ("docaDiffPerpCutHigh");
  docaDiffPerpCutLow_     = iConfig.getParameter<double> ("docaDiffPerpCutLow");
  nZcandcut_           = iConfig.getParameter<int> ("nZcandcut");

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

Definition at line 35 of file HLTPMDocaFilter.cc.

{}

Member Function Documentation

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

Implements HLTFilter.

Definition at line 40 of file HLTPMDocaFilter.cc.

References accept(), candTag_, docaDiffPerpCutHigh_, docaDiffPerpCutLow_, edm::Event::getByLabel(), i, module(), n, nZcandcut_, path(), edm::Event::put(), dt_dqm_sourceclient_common_cff::reco, findQualityFiles::size, mathSSE::sqrt(), and trigger::TriggerElectron.

{

  using namespace std;
  using namespace edm;
  using namespace reco;

  // The filter object
  using namespace trigger;
  std::auto_ptr<trigger::TriggerFilterObjectWithRefs> filterproduct (new trigger::TriggerFilterObjectWithRefs(path(),module()));
  // Ref to Candidate object to be recorded in filter object
  edm::Ref<reco::ElectronCollection> ref;
  

  edm::Handle<trigger::TriggerFilterObjectWithRefs> PrevFilterOutput;

  iEvent.getByLabel (candTag_,PrevFilterOutput);
  
  std::vector<edm::Ref<reco::ElectronCollection> > electrons;
  PrevFilterOutput->getObjects(TriggerElectron, electrons);
  
 
  int n = 0;

  double vx[66];
  double vy[66];
  double vz[66];

  unsigned int size = electrons.size();
  if(size>66) size=66;

  for (unsigned int i=0; i< size; i++) {
    
    ref = electrons[i];

    vx[i]=ref->vx();
    vy[i]=ref->vy();
    vz[i]=ref->vz();
    
  }

  for(unsigned int jj=0;jj<size;jj++){
     for(unsigned int ii=jj+1;ii<size;ii++){
         double docaDiffPerp = sqrt( (vx[jj]-vx[ii])*(vx[jj]-vx[ii])+(vy[jj]-vy[ii])*(vy[jj]-vy[ii]));
         // std::cout<<"docaDiffPerp= "<<docaDiffPerp<<std::endl;
         if((docaDiffPerp>=docaDiffPerpCutLow_) && (docaDiffPerp<= docaDiffPerpCutHigh_)){
           n++;
           ref = electrons[ii];
           filterproduct->addObject(TriggerElectron, ref);
           ref = electrons[jj];
           filterproduct->addObject(TriggerElectron, ref);

         }
     }
  }
  

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

Member Data Documentation

Definition at line 27 of file HLTPMDocaFilter.h.

Referenced by filter(), and HLTPMDocaFilter().

Definition at line 28 of file HLTPMDocaFilter.h.

Referenced by filter(), and HLTPMDocaFilter().

Definition at line 29 of file HLTPMDocaFilter.h.

Referenced by filter(), and HLTPMDocaFilter().

Definition at line 30 of file HLTPMDocaFilter.h.

Referenced by filter(), and HLTPMDocaFilter().