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 hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () 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

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  {
30  produces<DetIdCollection>();
31  }
T getParameter(std::string const &) const
const edm::EDGetTokenT< FEDRawDataCollection > token_
sistrip::ExcludedFEDListProducer::~ExcludedFEDListProducer ( )
override

default constructor

Definition at line 33 of file ExcludedFEDListProducer.cc.

34  {
35  }

Member Function Documentation

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

Definition at line 38 of file ExcludedFEDListProducer.cc.

References EnergyCorrector::c, cabling_, cacheId_, edm::EventSetup::get(), and edm::ESHandle< T >::product().

39  {
40  uint32_t cacheId = es.get<SiStripFedCablingRcd>().cacheIdentifier();
41 
42  if ( cacheId_ != cacheId ) {
43 
44  cacheId_ = cacheId;
45 
47  es.get<SiStripFedCablingRcd>().get( c );
48  cabling_ = c.product();
49  }
50  }
T get() const
Definition: EventSetup.h:63
T const * product() const
Definition: ESHandle.h:86
void sistrip::ExcludedFEDListProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 52 of file ExcludedFEDListProducer.cc.

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

52  {
54  desc.add<edm::InputTag>("ProductLabel",edm::InputTag("rawDataCollector"));
55  descriptions.add("siStripExcludedFEDListProducer",desc);
56  }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void sistrip::ExcludedFEDListProducer::produce ( edm::Event event,
const edm::EventSetup es 
)
override

Definition at line 58 of file ExcludedFEDListProducer.cc.

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

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

59  {
60  if( runNumber_ != event.run() ) {
61 
62  runNumber_ = event.run();
63 
64  DetIdCollection emptyDetIdCollection;
65  detids_.swap(emptyDetIdCollection);
66  // Reserve space in bad module list
67  detids_.reserve(100);
68 
70  event.getByToken( token_, buffers );
71 
72  // Retrieve FED ids from cabling map and iterate through
73  for (auto ifed = cabling_->fedIds().begin() ; ifed != cabling_->fedIds().end(); ifed++ ) {
74 
75  // ignore trigger FED
76  // if ( *ifed == triggerFedId_ ) { continue; }
77 
78  // Retrieve FED raw data for given FED
79  const FEDRawData& input = buffers->FEDData( static_cast<int>(*ifed) );
80  // The FEDData contains a vector<unsigned char>. Check the size of this vector:
81 
82  if( input.size() == 0 ) {
83  // std::cout << "Input size == 0 for FED number " << static_cast<int>(*ifed) << std::endl;
84  // get the cabling connections for this FED
85  auto conns = cabling_->fedConnections(*ifed);
86  // Mark FED modules as bad
87  detids_.reserve(detids_.size()+conns.size());
88  for (auto iconn = conns.begin() ; iconn != conns.end(); ++iconn ) {
89  if ( !iconn->detId() || iconn->detId() == sistrip::invalid32_ ) continue;
90  detids_.push_back(iconn->detId()); //@@ Possible multiple entries
91  }
92  }
93  }
94  }
95 
96  // for( unsigned int it = 0; it < detids->size(); ++it ) {
97  // std::cout << "detId = " << (*detids)[it]() << std::endl;
98  // }
99 
100  event.put(std::make_unique<DetIdCollection>(detids_));
101  }
size_type size() const
Definition: EDCollection.h:97
static const uint32_t invalid32_
Definition: Constants.h:15
void push_back(T const &t)
Definition: EDCollection.h:67
const edm::EDGetTokenT< FEDRawDataCollection > token_
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:47
static std::string const input
Definition: EdmProvDump.cc:44
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
FedsConstIterRange fedIds() const
RunNumber_t run() const
Definition: Event.h:109
void reserve(size_type n)
Definition: EDCollection.h:111
ConnsConstIterRange fedConnections(uint16_t fed_id) const
void swap(EDCollection< T > &other)
Definition: EDCollection.h:74

Member Data Documentation

const SiStripFedCabling* sistrip::ExcludedFEDListProducer::cabling_
private

Definition at line 39 of file ExcludedFEDListProducer.h.

Referenced by beginRun(), and produce().

uint32_t sistrip::ExcludedFEDListProducer::cacheId_
private

Definition at line 38 of file ExcludedFEDListProducer.h.

Referenced by beginRun().

DetIdCollection sistrip::ExcludedFEDListProducer::detids_
private

Definition at line 42 of file ExcludedFEDListProducer.h.

Referenced by produce().

unsigned int sistrip::ExcludedFEDListProducer::runNumber_
private

Definition at line 37 of file ExcludedFEDListProducer.h.

Referenced by produce().

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

Definition at line 40 of file ExcludedFEDListProducer.h.

Referenced by produce().