CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
sistrip::ExcludedFEDListProducer Class Reference

#include <ExcludedFEDListProducer.h>

Inheritance diagram for sistrip::ExcludedFEDListProducer:
edm::stream::EDProducer<>

Public Member Functions

void beginRun (const edm::Run &run, const edm::EventSetup &es) override
 
 ExcludedFEDListProducer (const edm::ParameterSet &pset)
 constructor More...
 
void produce (edm::Event &event, const edm::EventSetup &es) override
 
 ~ExcludedFEDListProducer () override
 default constructor More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

const SiStripFedCablingcabling_
 
uint32_t cacheId_
 
DetIdCollection detids_
 
unsigned int runNumber_
 
const edm::EDGetTokenT< FEDRawDataCollectiontoken_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 25 of file ExcludedFEDListProducer.h.

Constructor & Destructor Documentation

◆ ExcludedFEDListProducer()

sistrip::ExcludedFEDListProducer::ExcludedFEDListProducer ( const edm::ParameterSet pset)

constructor

Definition at line 24 of file ExcludedFEDListProducer.cc.

25  : runNumber_(0),
26  cacheId_(0),
27  cabling_(nullptr),
28  token_(consumes<FEDRawDataCollection>(pset.getParameter<edm::InputTag>("ProductLabel"))) {
29  produces<DetIdCollection>();
30  }

◆ ~ExcludedFEDListProducer()

sistrip::ExcludedFEDListProducer::~ExcludedFEDListProducer ( )
override

default constructor

Definition at line 32 of file ExcludedFEDListProducer.cc.

32 {}

Member Function Documentation

◆ beginRun()

void sistrip::ExcludedFEDListProducer::beginRun ( const edm::Run run,
const edm::EventSetup es 
)
override

Definition at line 34 of file ExcludedFEDListProducer.cc.

34  {
35  uint32_t cacheId = es.get<SiStripFedCablingRcd>().cacheIdentifier();
36 
37  if (cacheId_ != cacheId) {
38  cacheId_ = cacheId;
39 
42  cabling_ = c.product();
43  }
44  }

References HltBtagPostValidation_cff::c, cabling_, cacheId_, edm::EventSetup::get(), and get.

◆ fillDescriptions()

void sistrip::ExcludedFEDListProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 46 of file ExcludedFEDListProducer.cc.

46  {
48  desc.add<edm::InputTag>("ProductLabel", edm::InputTag("rawDataCollector"));
49  descriptions.add("siStripExcludedFEDListProducer", desc);
50  }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLT_2018_cff::InputTag.

◆ produce()

void sistrip::ExcludedFEDListProducer::produce ( edm::Event event,
const edm::EventSetup es 
)
override

Definition at line 52 of file ExcludedFEDListProducer.cc.

52  {
53  if (runNumber_ != event.run()) {
54  runNumber_ = event.run();
55 
56  DetIdCollection emptyDetIdCollection;
57  detids_.swap(emptyDetIdCollection);
58  // Reserve space in bad module list
59  detids_.reserve(100);
60 
62  event.getByToken(token_, buffers);
63 
64  // Retrieve FED ids from cabling map and iterate through
65  for (auto ifed = cabling_->fedIds().begin(); ifed != cabling_->fedIds().end(); ifed++) {
66  // ignore trigger FED
67  // if ( *ifed == triggerFedId_ ) { continue; }
68 
69  // Retrieve FED raw data for given FED
70  const FEDRawData& input = buffers->FEDData(static_cast<int>(*ifed));
71  // The FEDData contains a vector<unsigned char>. Check the size of this vector:
72 
73  if (input.size() == 0) {
74  // std::cout << "Input size == 0 for FED number " << static_cast<int>(*ifed) << std::endl;
75  // get the cabling connections for this FED
76  auto conns = cabling_->fedConnections(*ifed);
77  // Mark FED modules as bad
78  detids_.reserve(detids_.size() + conns.size());
79  for (auto iconn = conns.begin(); iconn != conns.end(); ++iconn) {
80  if (!iconn->detId() || iconn->detId() == sistrip::invalid32_)
81  continue;
82  detids_.push_back(iconn->detId()); //@@ Possible multiple entries
83  }
84  }
85  }
86  }
87 
88  // for( unsigned int it = 0; it < detids->size(); ++it ) {
89  // std::cout << "detId = " << (*detids)[it]() << std::endl;
90  // }
91 
92  event.put(std::make_unique<DetIdCollection>(detids_));
93  }

References cabling_, detids_, SiStripFedCabling::fedConnections(), FEDRawDataCollection::FEDData(), SiStripFedCabling::fedIds(), input, sistrip::invalid32_, edm::EDCollection< T >::push_back(), edm::EDCollection< T >::reserve(), runNumber_, edm::EDCollection< T >::size(), edm::EDCollection< T >::swap(), and token_.

Member Data Documentation

◆ cabling_

const SiStripFedCabling* sistrip::ExcludedFEDListProducer::cabling_
private

Definition at line 38 of file ExcludedFEDListProducer.h.

Referenced by beginRun(), and produce().

◆ cacheId_

uint32_t sistrip::ExcludedFEDListProducer::cacheId_
private

Definition at line 37 of file ExcludedFEDListProducer.h.

Referenced by beginRun().

◆ detids_

DetIdCollection sistrip::ExcludedFEDListProducer::detids_
private

Definition at line 41 of file ExcludedFEDListProducer.h.

Referenced by produce().

◆ runNumber_

unsigned int sistrip::ExcludedFEDListProducer::runNumber_
private

Definition at line 36 of file ExcludedFEDListProducer.h.

Referenced by produce().

◆ token_

const edm::EDGetTokenT<FEDRawDataCollection> sistrip::ExcludedFEDListProducer::token_
private

Definition at line 39 of file ExcludedFEDListProducer.h.

Referenced by produce().

edm::EDCollection::push_back
void push_back(T const &t)
Definition: EDCollection.h:60
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
input
static const std::string input
Definition: EdmProvDump.cc:48
sistrip::invalid32_
static const uint32_t invalid32_
Definition: Constants.h:15
sistrip::ExcludedFEDListProducer::runNumber_
unsigned int runNumber_
Definition: ExcludedFEDListProducer.h:36
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
sistrip::ExcludedFEDListProducer::detids_
DetIdCollection detids_
Definition: ExcludedFEDListProducer.h:41
sistrip::ExcludedFEDListProducer::cacheId_
uint32_t cacheId_
Definition: ExcludedFEDListProducer.h:37
edm::Handle
Definition: AssociativeIterator.h:50
FEDRawData
Definition: FEDRawData.h:19
SiStripFedCablingRcd
Definition: SiStripCondDataRecords.h:22
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
sistrip::ExcludedFEDListProducer::token_
const edm::EDGetTokenT< FEDRawDataCollection > token_
Definition: ExcludedFEDListProducer.h:39
edm::ESHandle< SiStripFedCabling >
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::EDCollection::swap
void swap(EDCollection< T > &other)
Definition: EDCollection.h:65
edm::EDCollection::reserve
void reserve(size_type n)
Definition: EDCollection.h:92
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
get
#define get
edm::EDCollection< DetId >
sistrip::ExcludedFEDListProducer::cabling_
const SiStripFedCabling * cabling_
Definition: ExcludedFEDListProducer.h:38
edm::EDCollection::size
size_type size() const
Definition: EDCollection.h:82
SiStripFedCabling::fedIds
FedsConstIterRange fedIds() const
Definition: SiStripFedCabling.h:154
event
Definition: event.py:1
SiStripFedCabling::fedConnections
ConnsConstIterRange fedConnections(uint16_t fed_id) const
Definition: SiStripFedCabling.cc:160
edm::InputTag
Definition: InputTag.h:15
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27