![]() |
![]() |
#include <ClusterMultiplicityFilter.h>
Public Member Functions | |
ClusterMultiplicityFilter (const edm::ParameterSet &) | |
~ClusterMultiplicityFilter () | |
Private Member Functions | |
virtual void | beginJob () |
virtual void | endJob () |
virtual bool | filter (edm::Event &, const edm::EventSetup &) |
Private Attributes | |
std::string | clusterCollectionLabel_ |
unsigned int | maxNumberOfClusters_ |
Definition at line 12 of file ClusterMultiplicityFilter.h.
ClusterMultiplicityFilter::ClusterMultiplicityFilter | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 28 of file ClusterMultiplicityFilter.cc.
References clusterCollectionLabel_, edm::ParameterSet::getUntrackedParameter(), and maxNumberOfClusters_.
{ maxNumberOfClusters_ = iConfig.getUntrackedParameter<unsigned int>("MaxNumberOfClusters"); clusterCollectionLabel_ = iConfig.getUntrackedParameter<std::string>("ClusterCollectionLabel"); }
ClusterMultiplicityFilter::~ClusterMultiplicityFilter | ( | ) |
Definition at line 35 of file ClusterMultiplicityFilter.cc.
{ }
void ClusterMultiplicityFilter::beginJob | ( | void | ) | [private, virtual] |
void ClusterMultiplicityFilter::endJob | ( | void | ) | [private, virtual] |
bool ClusterMultiplicityFilter::filter | ( | edm::Event & | iEvent, |
const edm::EventSetup & | iSetup | ||
) | [private, virtual] |
Implements edm::EDFilter.
Definition at line 40 of file ClusterMultiplicityFilter.cc.
References edm::DetSetVector< T >::begin(), clusterCollectionLabel_, edm::DetSetVector< T >::end(), Exception, edm::Event::getByLabel(), collect_tpl::input, edm::HandleBase::isValid(), maxNumberOfClusters_, edm::Handle< T >::product(), query::result, and edm::DetSetVector< T >::size().
{ bool result = true; const edm::DetSetVector<SiStripCluster> *clusters = 0; edm::Handle<edm::DetSetVector<SiStripCluster> > clusterHandle; iEvent.getByLabel(clusterCollectionLabel_,clusterHandle); if( !clusterHandle.isValid() ) { throw cms::Exception("CorruptData") << "ClusterMultiplicityFilter requires collection <edm::DetSetVector<SiStripCluster> with label " << clusterCollectionLabel_ << std::endl; } clusters = clusterHandle.product(); const edm::DetSetVector<SiStripCluster>& input = *clusters; unsigned int totalClusters = 0; //loop over detectors for (edm::DetSetVector<SiStripCluster>::const_iterator DSViter=input.begin(); DSViter!=input.end();DSViter++ ) { totalClusters+=DSViter->data.size(); } if (totalClusters>maxNumberOfClusters_) { edm::LogInfo("ClusterMultiplicityFilter") << "Total number of clusters: " << totalClusters << " ==> exceeds allowed maximum of " << maxNumberOfClusters_ << " clusters"; result = false; } return result; }
std::string ClusterMultiplicityFilter::clusterCollectionLabel_ [private] |
Definition at line 23 of file ClusterMultiplicityFilter.h.
Referenced by ClusterMultiplicityFilter(), and filter().
unsigned int ClusterMultiplicityFilter::maxNumberOfClusters_ [private] |
Definition at line 22 of file ClusterMultiplicityFilter.h.
Referenced by ClusterMultiplicityFilter(), and filter().