CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

FilterOutScraping Class Reference

#include <FilterOutScraping.h>

Inheritance diagram for FilterOutScraping:
edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

List of all members.

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_

Detailed Description

Definition at line 34 of file FilterOutScraping.h.


Constructor & Destructor Documentation

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.

{
}

Member Function Documentation

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;

}

Member Data Documentation

Definition at line 48 of file FilterOutScraping.h.

Definition at line 42 of file FilterOutScraping.h.

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.

Definition at line 46 of file FilterOutScraping.h.