CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
sistrip::ExcludedFEDListProducer Class Reference

#include <ExcludedFEDListProducer.h>

Inheritance diagram for sistrip::ExcludedFEDListProducer:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

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 ()
 default constructor More...
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Private Attributes

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

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- 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 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

Definition at line 25 of file ExcludedFEDListProducer.h.

Constructor & Destructor Documentation

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

constructor

Definition at line 22 of file ExcludedFEDListProducer.cc.

References edm::ParameterSet::getParameter(), and token_.

22  :
23  runNumber_(0),
24  cabling_(0),
25  cacheId_(0)
26  {
27  token_ = consumes<FEDRawDataCollection>(pset.getParameter<edm::InputTag>("ProductLabel"));
28  produces<DetIdCollection>();
29  }
T getParameter(std::string const &) const
edm::EDGetTokenT< FEDRawDataCollection > token_
sistrip::ExcludedFEDListProducer::~ExcludedFEDListProducer ( )

default constructor

Definition at line 31 of file ExcludedFEDListProducer.cc.

32  {
33  }

Member Function Documentation

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

Reimplemented from edm::EDProducer.

Definition at line 36 of file ExcludedFEDListProducer.cc.

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

37  {
38  uint32_t cacheId = es.get<SiStripFedCablingRcd>().cacheIdentifier();
39 
40  if ( cacheId_ != cacheId ) {
41 
43  es.get<SiStripFedCablingRcd>().get( c );
44  cabling_ = c.product();
45  }
46  }
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
void sistrip::ExcludedFEDListProducer::produce ( edm::Event event,
const edm::EventSetup es 
)
overridevirtual

Implements edm::EDProducer.

Definition at line 48 of file ExcludedFEDListProducer.cc.

References cabling_, detids_, SiStripFedCabling::fedConnections(), 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().

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

Member Data Documentation

const SiStripFedCabling* sistrip::ExcludedFEDListProducer::cabling_
private

Definition at line 38 of file ExcludedFEDListProducer.h.

Referenced by beginRun(), and produce().

uint32_t sistrip::ExcludedFEDListProducer::cacheId_
private

Definition at line 39 of file ExcludedFEDListProducer.h.

Referenced by beginRun().

DetIdCollection sistrip::ExcludedFEDListProducer::detids_
private

Definition at line 40 of file ExcludedFEDListProducer.h.

Referenced by produce().

unsigned int sistrip::ExcludedFEDListProducer::runNumber_
private

Definition at line 36 of file ExcludedFEDListProducer.h.

Referenced by produce().

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

Definition at line 37 of file ExcludedFEDListProducer.h.

Referenced by ExcludedFEDListProducer(), and produce().