CMS 3D CMS Logo

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

#include <RawDataCollectorByLabel.h>

Inheritance diagram for RawDataCollectorByLabel:
edm::stream::EDProducer<>

Public Member Functions

void produce (edm::Event &e, const edm::EventSetup &c) override
 
 RawDataCollectorByLabel (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~RawDataCollectorByLabel () override
 Destructor. 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
 

Private Types

typedef std::vector< edm::InputTag >::const_iterator tag_iterator_t
 
typedef std::vector< edm::EDGetTokenT< FEDRawDataCollection > >::const_iterator tok_iterator_t
 

Private Attributes

std::vector< edm::InputTaginputTags_
 
std::vector< edm::EDGetTokenT< FEDRawDataCollection > > inputTokens_
 
int verbose_
 

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 14 of file RawDataCollectorByLabel.h.

Member Typedef Documentation

◆ tag_iterator_t

typedef std::vector<edm::InputTag>::const_iterator RawDataCollectorByLabel::tag_iterator_t
private

Definition at line 25 of file RawDataCollectorByLabel.h.

◆ tok_iterator_t

typedef std::vector<edm::EDGetTokenT<FEDRawDataCollection> >::const_iterator RawDataCollectorByLabel::tok_iterator_t
private

Definition at line 26 of file RawDataCollectorByLabel.h.

Constructor & Destructor Documentation

◆ RawDataCollectorByLabel()

RawDataCollectorByLabel::RawDataCollectorByLabel ( const edm::ParameterSet pset)

Constructor.

Definition at line 23 of file RawDataCollectorByLabel.cc.

23  {
24  inputTags_ = pset.getParameter<std::vector<InputTag> >("RawCollectionList");
25  verbose_ = pset.getUntrackedParameter<int>("verbose", 0);
26 
27  inputTokens_.reserve(inputTags_.size());
28  for (tag_iterator_t inputTag = inputTags_.begin(); inputTag != inputTags_.end(); ++inputTag) {
29  inputTokens_.push_back(consumes<FEDRawDataCollection>(*inputTag));
30  }
31  produces<FEDRawDataCollection>();
32 }

References SimL1EmulatorRepack_Full_cff::inputTag, and muonDTDigis_cfi::pset.

◆ ~RawDataCollectorByLabel()

RawDataCollectorByLabel::~RawDataCollectorByLabel ( )
override

Destructor.

Definition at line 34 of file RawDataCollectorByLabel.cc.

34 {}

Member Function Documentation

◆ produce()

void RawDataCollectorByLabel::produce ( edm::Event e,
const edm::EventSetup c 
)
override

Get Data from all FEDs

Definition at line 36 of file RawDataCollectorByLabel.cc.

36  {
38  std::vector<Handle<FEDRawDataCollection> > rawData;
39  rawData.reserve(inputTokens_.size());
40  for (tok_iterator_t inputTok = inputTokens_.begin(); inputTok != inputTokens_.end(); ++inputTok) {
42  if (e.getByToken(*inputTok, input)) {
43  rawData.push_back(input);
44  }
45  //else{ //skipping the inputtag requested. but this is a normal operation to bare data & MC. silent warning }
46  }
47 
48  auto producedData = std::make_unique<FEDRawDataCollection>();
49 
50  for (unsigned int i = 0; i < rawData.size(); ++i) {
51  const FEDRawDataCollection *rdc = rawData[i].product();
52 
53  if (verbose_ > 0) {
54  std::cout << "\nRAW collection #" << i + 1 << std::endl;
55  std::cout << "branch name = " << rawData[i].provenance()->branchName() << std::endl;
56  std::cout << "process index = " << rawData[i].provenance()->productID().processIndex() << std::endl;
57  }
58 
59  for (int j = 0; j < FEDNumbering::MAXFEDID; ++j) {
60  const FEDRawData &fedData = rdc->FEDData(j);
61  size_t size = fedData.size();
62 
63  if (size > 0) {
64  // this fed has data -- lets copy it
65  if (verbose_ > 1)
66  std::cout << "Copying data from FED #" << j << std::endl;
67  FEDRawData &fedDataProd = producedData->FEDData(j);
68  if (fedDataProd.size() != 0) {
69  if (verbose_ > 1) {
70  std::cout << " More than one FEDRawDataCollection with data in FED ";
71  std::cout << j << " Skipping the 2nd\n";
72  }
73  continue;
74  }
75  fedDataProd.resize(size);
76  unsigned char *dataProd = fedDataProd.data();
77  const unsigned char *data = fedData.data();
78  for (unsigned int k = 0; k < size; ++k) {
79  dataProd[k] = data[k];
80  }
81  }
82  }
83  }
84 
85  // Insert the new product in the event
86  e.put(std::move(producedData));
87 }

References gather_cfg::cout, FEDRawData::data(), data, MillePedeFileConverter_cfg::e, FEDRawDataCollection::FEDData(), mps_fire::i, input, dqmiolumiharvest::j, dqmdumpme::k, FEDNumbering::MAXFEDID, eostools::move(), l1tstage2_dqm_sourceclient-live_cfg::rawData, FEDRawData::resize(), FEDRawData::size(), and findQualityFiles::size.

Member Data Documentation

◆ inputTags_

std::vector<edm::InputTag> RawDataCollectorByLabel::inputTags_
private

Definition at line 28 of file RawDataCollectorByLabel.h.

◆ inputTokens_

std::vector<edm::EDGetTokenT<FEDRawDataCollection> > RawDataCollectorByLabel::inputTokens_
private

Definition at line 29 of file RawDataCollectorByLabel.h.

◆ verbose_

int RawDataCollectorByLabel::verbose_
private

Definition at line 30 of file RawDataCollectorByLabel.h.

mps_fire.i
i
Definition: mps_fire.py:355
input
static const std::string input
Definition: EdmProvDump.cc:48
RawDataCollectorByLabel::tag_iterator_t
std::vector< edm::InputTag >::const_iterator tag_iterator_t
Definition: RawDataCollectorByLabel.h:25
FEDRawDataCollection
Definition: FEDRawDataCollection.h:18
gather_cfg.cout
cout
Definition: gather_cfg.py:144
l1tstage2_dqm_sourceclient-live_cfg.rawData
rawData
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:156
edm::Handle
Definition: AssociativeIterator.h:50
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
RawDataCollectorByLabel::inputTags_
std::vector< edm::InputTag > inputTags_
Definition: RawDataCollectorByLabel.h:28
FEDRawData
Definition: FEDRawData.h:19
dqmdumpme.k
k
Definition: dqmdumpme.py:60
FEDRawDataCollection::FEDData
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
Definition: FEDRawDataCollection.cc:19
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
RawDataCollectorByLabel::verbose_
int verbose_
Definition: RawDataCollectorByLabel.h:30
eostools.move
def move(src, dest)
Definition: eostools.py:511
FEDRawData::resize
void resize(size_t newsize)
Definition: FEDRawData.cc:28
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
SimL1EmulatorRepack_Full_cff.inputTag
inputTag
Definition: SimL1EmulatorRepack_Full_cff.py:56
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
RawDataCollectorByLabel::tok_iterator_t
std::vector< edm::EDGetTokenT< FEDRawDataCollection > >::const_iterator tok_iterator_t
Definition: RawDataCollectorByLabel.h:26
FEDNumbering::MAXFEDID
Definition: FEDNumbering.h:26
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
RawDataCollectorByLabel::inputTokens_
std::vector< edm::EDGetTokenT< FEDRawDataCollection > > inputTokens_
Definition: RawDataCollectorByLabel.h:29