![]() |
![]() |
#include <FilterOutScraping.h>
Public Member Functions | |
FilterOutScraping (const edm::ParameterSet &) | |
~FilterOutScraping () | |
Private Member Functions | |
virtual bool | filter (edm::Event &, const edm::EventSetup &) |
Private Attributes | |
reco::TrackBase::TrackQuality | _trackQuality |
bool | applyfilter |
bool | debugOn |
unsigned int | numtrack |
double | thresh |
edm::InputTag | tracks_ |
Definition at line 34 of file FilterOutScraping.h.
FilterOutScraping::FilterOutScraping | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 31 of file FilterOutScraping.cc.
References align_tpl::applyfilter, GOODCOLL_filter_cfg::debugOn, edm::ParameterSet::getUntrackedParameter(), GOODCOLL_filter_cfg::numtrack, GOODCOLL_filter_cfg::thresh, and tracks_.
{ applyfilter = iConfig.getUntrackedParameter<bool>("applyfilter",true); debugOn = iConfig.getUntrackedParameter<bool>("debugOn",false); thresh = iConfig.getUntrackedParameter<double>("thresh",0.2); numtrack = iConfig.getUntrackedParameter<unsigned int>("numtrack",10); tracks_ = iConfig.getUntrackedParameter<edm::InputTag>("src",edm::InputTag("generalTracks")); }
FilterOutScraping::~FilterOutScraping | ( | ) |
Definition at line 41 of file FilterOutScraping.cc.
{ }
bool FilterOutScraping::filter | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDFilter.
Definition at line 45 of file FilterOutScraping.cc.
References align_tpl::applyfilter, edm::EventBase::bunchCrossing(), gather_cfg::cout, GOODCOLL_filter_cfg::debugOn, edm::EventID::event(), edm::Event::getByLabel(), edm::EventBase::id(), edm::EventBase::luminosityBlock(), GOODCOLL_filter_cfg::numtrack, edm::Handle< T >::product(), reco::TrackBase::qualityByName(), edm::EventID::run(), GOODCOLL_filter_cfg::thresh, and tracks_.
{ bool accepted = false; float fraction = 0; // get GeneralTracks collection edm::Handle<reco::TrackCollection> tkRef; iEvent.getByLabel(tracks_,tkRef); const reco::TrackCollection* tkColl = tkRef.product(); //std::cout << "Total Number of Tracks " << tkColl->size() << std::endl; int numhighpurity=0; _trackQuality = reco::TrackBase::qualityByName("highPurity"); if(tkColl->size()>numtrack){ reco::TrackCollection::const_iterator itk = tkColl->begin(); reco::TrackCollection::const_iterator itk_e = tkColl->end(); for(;itk!=itk_e;++itk){ // std::cout << "HighPurity? " << itk->quality(_trackQuality) << std::endl; if(itk->quality(_trackQuality)) numhighpurity++; } fraction = (float)numhighpurity/(float)tkColl->size(); if(fraction>thresh) accepted=true; }else{ //if less than 10 Tracks accept the event anyway accepted= true; } if (debugOn) { int ievt = iEvent.id().event(); int irun = iEvent.id().run(); int ils = iEvent.luminosityBlock(); int bx = iEvent.bunchCrossing(); std::cout << "FilterOutScraping_debug: Run " << irun << " Event " << ievt << " Lumi Block " << ils << " Bunch Crossing " << bx << " Fraction " << fraction << " NTracks " << tkColl->size() << " Accepted " << accepted << std::endl; } if (applyfilter) return accepted; else return true; }
Definition at line 48 of file FilterOutScraping.h.
bool FilterOutScraping::applyfilter [private] |
Definition at line 42 of file FilterOutScraping.h.
bool FilterOutScraping::debugOn [private] |
Definition at line 43 of file FilterOutScraping.h.
unsigned int FilterOutScraping::numtrack [private] |
Definition at line 45 of file FilterOutScraping.h.
double FilterOutScraping::thresh [private] |
Definition at line 44 of file FilterOutScraping.h.
edm::InputTag FilterOutScraping::tracks_ [private] |
Definition at line 46 of file FilterOutScraping.h.