![]() |
![]() |
#include <FilterScrapingPixelProbability.h>
Public Member Functions | |
FilterScrapingPixelProbability (const edm::ParameterSet &) | |
~FilterScrapingPixelProbability () | |
Private Member Functions | |
virtual bool | filter (edm::Event &, const edm::EventSetup &) |
Private Attributes | |
bool | apply_filter |
double | low_probability |
double | low_probability_fraction_cut |
bool | select_collision |
bool | select_other |
bool | select_pkam |
edm::InputTag | tracks_ |
Definition at line 45 of file FilterScrapingPixelProbability.h.
FilterScrapingPixelProbability::FilterScrapingPixelProbability | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 14 of file FilterScrapingPixelProbability.cc.
References skim_scrape_pixel_prob_cfg::apply_filter, funct::false, edm::ParameterSet::getUntrackedParameter(), skim_scrape_pixel_prob_cfg::low_probability, skim_scrape_pixel_prob_cfg::low_probability_fraction_cut, skim_scrape_pixel_prob_cfg::select_collision, skim_scrape_pixel_prob_cfg::select_other, skim_scrape_pixel_prob_cfg::select_pkam, tracks_, and funct::true.
{ //std::cout << "FilterScrapingPixelProbability::FilterScrapingPixelProbability " << std::endl; apply_filter = iConfig.getUntrackedParameter<bool> ( "apply_filter" , true ); select_collision = iConfig.getUntrackedParameter<bool> ( "select_collision" , true ); select_pkam = iConfig.getUntrackedParameter<bool> ( "select_pkam" , false ); select_other = iConfig.getUntrackedParameter<bool> ( "select_other" , false ); low_probability = iConfig.getUntrackedParameter<double>( "low_probability" , 0.0 ); low_probability_fraction_cut = iConfig.getUntrackedParameter<double>( "low_probability_fraction_cut", 0.4 ); tracks_ = iConfig.getUntrackedParameter<edm::InputTag>("src",edm::InputTag("generalTracks")); }
FilterScrapingPixelProbability::~FilterScrapingPixelProbability | ( | ) |
Definition at line 27 of file FilterScrapingPixelProbability.cc.
{ }
bool FilterScrapingPixelProbability::filter | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDFilter.
Definition at line 31 of file FilterScrapingPixelProbability.cc.
References skim_scrape_pixel_prob_cfg::apply_filter, SiPixelRecHit::clusterProbability(), edm::Event::getByLabel(), PixelSubdetector::PixelBarrel, edm::Handle< T >::product(), skim_scrape_pixel_prob_cfg::select_collision, skim_scrape_pixel_prob_cfg::select_other, skim_scrape_pixel_prob_cfg::select_pkam, DetId::subdetId(), testEve_cfg::tracks, and tracks_.
{ bool accepted = false; double low_probability_fraction = -999999.9; float n_hits_low_prob = 0.0; float n_hits_barrel = 0.0; // Loop over generalTracks edm::Handle<reco::TrackCollection> trackCollection; iEvent.getByLabel(tracks_, trackCollection); const reco::TrackCollection *tracks = trackCollection.product(); reco::TrackCollection::const_iterator tciter; //std::cout << "(int)tracks->size() = " << (int)tracks->size() << std::endl; if ( (int)tracks->size() > 0 ) { // Loop on tracks for ( tciter=tracks->begin(); tciter!=tracks->end(); ++tciter) { // First loop on hits: find pixel hits for ( trackingRecHit_iterator it = tciter->recHitsBegin(); it != tciter->recHitsEnd(); ++it) { const TrackingRecHit &thit = **it; const SiPixelRecHit* matchedhit = dynamic_cast<const SiPixelRecHit*>(&thit); // Check if the RecHit is a PixelRecHit if ( matchedhit ) { DetId detId = (*it)->geographicalId(); // Only consider barrel pixel hits if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel ) { n_hits_barrel = n_hits_barrel + 1.0; double pixel_hit_probability = matchedhit->clusterProbability(0); if ( pixel_hit_probability <= 0.0 ) n_hits_low_prob = n_hits_low_prob + 1.0; } // if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel ) } // if ( matchedhit ) } // for ( trackingRecHit_iterator it = tciter->recHitsBegin(); it != tciter->recHitsEnd(); ++it) } // for ( tciter=tracks->begin(); tciter!=tracks->end(); ++tciter) } // if ( (int)tracks->size() > 0 ) bool is_collision = false; bool is_pkam = false; bool is_other = false; if ( n_hits_barrel > 0.0 ) { low_probability_fraction = n_hits_low_prob / n_hits_barrel; if ( low_probability_fraction < 0.4 ) is_collision = true; else is_pkam = true; } else is_other = true; if ( ( select_collision && is_collision ) || ( select_pkam && is_pkam ) || ( select_other && is_other ) ) accepted = true; if ( apply_filter ) return accepted; else return true; }
bool FilterScrapingPixelProbability::apply_filter [private] |
Definition at line 54 of file FilterScrapingPixelProbability.h.
double FilterScrapingPixelProbability::low_probability [private] |
Definition at line 58 of file FilterScrapingPixelProbability.h.
double FilterScrapingPixelProbability::low_probability_fraction_cut [private] |
Definition at line 59 of file FilterScrapingPixelProbability.h.
bool FilterScrapingPixelProbability::select_collision [private] |
Definition at line 55 of file FilterScrapingPixelProbability.h.
bool FilterScrapingPixelProbability::select_other [private] |
Definition at line 57 of file FilterScrapingPixelProbability.h.
bool FilterScrapingPixelProbability::select_pkam [private] |
Definition at line 56 of file FilterScrapingPixelProbability.h.
Definition at line 61 of file FilterScrapingPixelProbability.h.