CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
FEDBadModuleFilter Class Reference

#include <DPGAnalysis/SiStripTools/plugins/FEDBadModuleFilter.cc>

Inheritance diagram for FEDBadModuleFilter:
edm::EDFilter edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 FEDBadModuleFilter (const edm::ParameterSet &)
 
 ~FEDBadModuleFilter () override
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilter () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void beginJob () override
 
void beginRun (const edm::Run &, const edm::EventSetup &) override
 
void endJob () override
 
bool filter (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

edm::EDGetTokenT< DetIdCollectionm_digibadmodulecollectionToken
 
const unsigned int m_LSfrac
 
const unsigned int m_maxLS
 
DetIdSelector m_modsel
 
std::set< unsigned int > m_modules
 
unsigned int m_modulethr
 
TH1F ** m_nbadrun
 
TProfile ** m_nbadvsorbrun
 
bool m_printlist
 
RunHistogramManager m_rhm
 
bool m_wantedhist
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Description: template EDFilter to select events with selected modules with SiStripDigis or SiStripClusters

Implementation:

Definition at line 50 of file FEDBadModuleFilter.cc.

Constructor & Destructor Documentation

FEDBadModuleFilter::FEDBadModuleFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 88 of file FEDBadModuleFilter.cc.

References edm::ParameterSet::exists(), edm::ParameterSet::getUntrackedParameter(), m_LSfrac, m_maxLS, m_modsel, m_modules, m_nbadrun, m_nbadvsorbrun, m_rhm, m_wantedhist, RunHistogramManager::makeTH1F(), and RunHistogramManager::makeTProfile().

88  :
89  m_digibadmodulecollectionToken(consumes<DetIdCollection>(iConfig.getParameter<edm::InputTag>("collectionName"))),
90  m_modulethr(iConfig.getParameter<unsigned int>("badModThr")),
91  m_modsel(),
92  m_wantedhist(iConfig.getUntrackedParameter<bool>("wantedHisto",false)),
93  m_printlist(iConfig.getUntrackedParameter<bool>("printList",false)),
94  m_maxLS(iConfig.getUntrackedParameter<unsigned int>("maxLSBeforeRebin",100)),
95  m_LSfrac(iConfig.getUntrackedParameter<unsigned int>("startingLSFraction",4)),
97 
98 {
99  //now do what ever initialization is needed
100 
101  if(m_wantedhist) {
102  m_nbadrun = m_rhm.makeTH1F("nbadrun","Number of bad channels",500,-0.5,499.5);
103  m_nbadvsorbrun = m_rhm.makeTProfile("nbadvsorbrun","Number of bad channels vs time",m_LSfrac*m_maxLS,0,m_maxLS*262144);
104  }
105 
106  std::vector<unsigned int> modules = iConfig.getUntrackedParameter<std::vector<unsigned int> >("moduleList",std::vector<unsigned int>());
107  m_modules = std::set<unsigned int>(modules.begin(),modules.end());
108 
109  if(iConfig.exists("moduleSelection")) {
110  m_modsel = DetIdSelector(iConfig.getUntrackedParameter<edm::ParameterSet>("moduleSelection"));
111  }
112 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
const unsigned int m_maxLS
edm::EDGetTokenT< DetIdCollection > m_digibadmodulecollectionToken
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::set< unsigned int > m_modules
TH1F ** makeTH1F(const char *name, const char *title, const unsigned int nbinx, const double xmin, const double xmax)
RunHistogramManager m_rhm
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
TProfile ** makeTProfile(const char *name, const char *title, const unsigned int nbinx, const double xmin, const double xmax)
const unsigned int m_LSfrac
FEDBadModuleFilter::~FEDBadModuleFilter ( )
override

Definition at line 115 of file FEDBadModuleFilter.cc.

116 {
117 
118  // do anything here that needs to be done at desctruction time
119  // (e.g. close files, deallocate resources etc.)
120 
121 }

Member Function Documentation

void FEDBadModuleFilter::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDFilter.

Definition at line 161 of file FEDBadModuleFilter.cc.

162 {
163 }
void FEDBadModuleFilter::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 171 of file FEDBadModuleFilter.cc.

References RunHistogramManager::beginRun(), DEFINE_FWK_MODULE, m_nbadvsorbrun, m_rhm, and m_wantedhist.

172 {
173 
174  if(m_wantedhist) {
175 
176  m_rhm.beginRun(iRun);
177  if(*m_nbadvsorbrun) {
178  (*m_nbadvsorbrun)->SetCanExtend(TH1::kXaxis);
179  (*m_nbadvsorbrun)->GetXaxis()->SetTitle("time [Orb#]");
180  (*m_nbadvsorbrun)->GetYaxis()->SetTitle("Bad Channels");
181  }
182 
183  }
184 }
RunHistogramManager m_rhm
void beginRun(const edm::Run &iRun)
void FEDBadModuleFilter::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDFilter.

Definition at line 167 of file FEDBadModuleFilter.cc.

167  {
168 }
bool FEDBadModuleFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 130 of file FEDBadModuleFilter.cc.

References edm::EDCollection< T >::begin(), edm::EDCollection< T >::end(), edm::Event::getByToken(), DetIdSelector::isSelected(), DetIdSelector::isValid(), m_digibadmodulecollectionToken, m_modsel, m_modules, m_modulethr, m_nbadrun, m_nbadvsorbrun, m_printlist, m_wantedhist, mod(), edm::EventBase::orbitNumber(), and edm::EDCollection< T >::size().

Referenced by Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::filter(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::find(), Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::setDataAccessor(), and Vispa.Plugins.Browser.BrowserTabController.BrowserTabController::switchCenterView().

131 {
132  using namespace edm;
133 
134  Handle<DetIdCollection > badmodules;
135  iEvent.getByToken(m_digibadmodulecollectionToken,badmodules);
136 
137  unsigned int nbad = 0;
138  if(m_printlist || !m_modules.empty() || m_modsel.isValid() ) {
139  for(DetIdCollection::const_iterator mod = badmodules->begin(); mod!=badmodules->end(); ++mod) {
140  if((m_modules.empty() || m_modules.find(*mod) != m_modules.end() ) && (!m_modsel.isValid() || m_modsel.isSelected(*mod))) {
141  ++nbad;
142  if(m_printlist) edm::LogInfo("FEDBadModule") << *mod;
143  }
144  }
145  }
146  else {
147  nbad = badmodules->size();
148  }
149 
150  if(m_wantedhist) {
151  if(m_nbadvsorbrun && *m_nbadvsorbrun) (*m_nbadvsorbrun)->Fill(iEvent.orbitNumber(),nbad);
152  if(m_nbadrun && *m_nbadrun) (*m_nbadrun)->Fill(nbad);
153  }
154 
155  return (nbad >= m_modulethr);
156 
157 }
size_type size() const
Definition: EDCollection.h:97
edm::EDGetTokenT< DetIdCollection > m_digibadmodulecollectionToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
const_iterator end() const
Definition: EDCollection.h:153
bool isSelected(const DetId &detid) const
std::set< unsigned int > m_modules
int orbitNumber() const
Definition: EventBase.h:65
bool isValid() const
Definition: DetIdSelector.h:23
const_iterator begin() const
Definition: EDCollection.h:146
HLT enums.
T mod(const T &a, const T &b)
Definition: ecalDccMap.h:4
std::vector< DetId >::const_iterator const_iterator
Definition: EDCollection.h:19

Member Data Documentation

edm::EDGetTokenT<DetIdCollection> FEDBadModuleFilter::m_digibadmodulecollectionToken
private

Definition at line 63 of file FEDBadModuleFilter.cc.

Referenced by filter().

const unsigned int FEDBadModuleFilter::m_LSfrac
private

Definition at line 70 of file FEDBadModuleFilter.cc.

Referenced by FEDBadModuleFilter().

const unsigned int FEDBadModuleFilter::m_maxLS
private

Definition at line 69 of file FEDBadModuleFilter.cc.

Referenced by FEDBadModuleFilter().

DetIdSelector FEDBadModuleFilter::m_modsel
private

Definition at line 66 of file FEDBadModuleFilter.cc.

Referenced by FEDBadModuleFilter(), and filter().

std::set<unsigned int> FEDBadModuleFilter::m_modules
private

Definition at line 65 of file FEDBadModuleFilter.cc.

Referenced by FEDBadModuleFilter(), and filter().

unsigned int FEDBadModuleFilter::m_modulethr
private

Definition at line 64 of file FEDBadModuleFilter.cc.

Referenced by filter().

TH1F** FEDBadModuleFilter::m_nbadrun
private

Definition at line 72 of file FEDBadModuleFilter.cc.

Referenced by FEDBadModuleFilter(), and filter().

TProfile** FEDBadModuleFilter::m_nbadvsorbrun
private

Definition at line 73 of file FEDBadModuleFilter.cc.

Referenced by beginRun(), FEDBadModuleFilter(), and filter().

bool FEDBadModuleFilter::m_printlist
private

Definition at line 68 of file FEDBadModuleFilter.cc.

Referenced by filter().

RunHistogramManager FEDBadModuleFilter::m_rhm
private

Definition at line 71 of file FEDBadModuleFilter.cc.

Referenced by beginRun(), and FEDBadModuleFilter().

bool FEDBadModuleFilter::m_wantedhist
private

Definition at line 67 of file FEDBadModuleFilter.cc.

Referenced by beginRun(), FEDBadModuleFilter(), and filter().