![]() |
![]() |
#include <HLTPMDocaFilter.h>
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_ |
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
Definition at line 19 of file HLTPMDocaFilter.h.
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.
{}
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; }
edm::InputTag HLTPMDocaFilter::candTag_ [private] |
Definition at line 27 of file HLTPMDocaFilter.h.
Referenced by filter(), and HLTPMDocaFilter().
double HLTPMDocaFilter::docaDiffPerpCutHigh_ [private] |
Definition at line 28 of file HLTPMDocaFilter.h.
Referenced by filter(), and HLTPMDocaFilter().
double HLTPMDocaFilter::docaDiffPerpCutLow_ [private] |
Definition at line 29 of file HLTPMDocaFilter.h.
Referenced by filter(), and HLTPMDocaFilter().
int HLTPMDocaFilter::nZcandcut_ [private] |
Definition at line 30 of file HLTPMDocaFilter.h.
Referenced by filter(), and HLTPMDocaFilter().