CMS 3D CMS Logo

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

#include <DTDigiToRawModule.h>

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

Public Member Functions

 DTDigiToRawModule (const edm::ParameterSet &pset)
 Constructor. More...
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~DTDigiToRawModule () override
 Destructor. More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

int dduID
 
bool debug
 
edm::EDGetTokenT< DTDigiCollectiondigicoll
 
edm::ESGetToken< DTReadOutMapping, DTReadOutMappingRcdmapToken_
 
int maxFEDid_
 
int minFEDid_
 
DTDigiToRawpacker
 
bool useStandardFEDid_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 13 of file DTDigiToRawModule.h.

Constructor & Destructor Documentation

◆ DTDigiToRawModule()

DTDigiToRawModule::DTDigiToRawModule ( const edm::ParameterSet pset)

Constructor.

Definition at line 19 of file DTDigiToRawModule.cc.

19  {
20  produces<FEDRawDataCollection>();
21 
22  dduID = ps.getUntrackedParameter<int>("dduID", 770);
23  debug = ps.getUntrackedParameter<bool>("debugMode", false);
24  digicoll = consumes<DTDigiCollection>(ps.getParameter<edm::InputTag>("digiColl"));
25  mapToken_ = esConsumes<DTReadOutMapping, DTReadOutMappingRcd>();
26 
27  useStandardFEDid_ = ps.getUntrackedParameter<bool>("useStandardFEDid", true);
28  minFEDid_ = ps.getUntrackedParameter<int>("minFEDid", 770);
29  maxFEDid_ = ps.getUntrackedParameter<int>("maxFEDid", 775);
30 
31  packer = new DTDigiToRaw(ps);
32  if (debug)
33  cout << "[DTDigiToRawModule]: constructor" << endl;
34 }

References gather_cfg::cout, debug, edm::ParameterSet::getParameter(), and edm::ParameterSet::getUntrackedParameter().

◆ ~DTDigiToRawModule()

DTDigiToRawModule::~DTDigiToRawModule ( )
override

Destructor.

Definition at line 36 of file DTDigiToRawModule.cc.

36  {
37  delete packer;
38  if (debug)
39  cout << "[DTDigiToRawModule]: destructor" << endl;
40 }

References gather_cfg::cout, and debug.

Member Function Documentation

◆ produce()

void DTDigiToRawModule::produce ( edm::Event e,
const edm::EventSetup iSetup 
)
override

Definition at line 42 of file DTDigiToRawModule.cc.

42  {
43  auto fed_buffers = std::make_unique<FEDRawDataCollection>();
44 
45  // Take digis from the event
47  e.getByToken(digicoll, digis);
48 
49  // Load DTMap
51 
52  // Create the packed data
53  int FEDIDmin = 0, FEDIDMax = 0;
54  if (useStandardFEDid_) {
55  FEDIDmin = FEDNumbering::MINDTFEDID;
56  FEDIDMax = FEDNumbering::MAXDTFEDID;
57  } else {
58  FEDIDmin = minFEDid_;
59  FEDIDMax = maxFEDid_;
60  }
61 
62  for (int id = FEDIDmin; id <= FEDIDMax; ++id) {
63  packer->SetdduID(id);
65 
66  FEDRawData& fedRawData = fed_buffers->FEDData(id);
68  delete rawData;
69 
70  FEDHeader dtFEDHeader(fedRawData.data());
71  dtFEDHeader.set(fedRawData.data(), 0, e.id().event(), 0, id);
72 
73  FEDTrailer dtFEDTrailer(fedRawData.data() + (fedRawData.size() - 8));
74  dtFEDTrailer.set(fedRawData.data() + (fedRawData.size() - 8),
75  fedRawData.size() / 8,
76  evf::compute_crc(fedRawData.data(), fedRawData.size()),
77  0,
78  0);
79  }
80  // Put the raw data to the event
81  e.put(std::move(fed_buffers));
82 }

References evf::compute_crc(), MillePedeFileConverter_cfg::e, l1t_dqm_sourceclient-live_cfg::fedRawData, edm::EventSetup::getHandle(), triggerObjects_cff::id, genParticles_cff::map, FEDNumbering::MAXDTFEDID, FEDNumbering::MINDTFEDID, eostools::move(), l1tstage2_dqm_sourceclient-live_cfg::rawData, FEDHeader::set(), and FEDTrailer::set().

Member Data Documentation

◆ dduID

int DTDigiToRawModule::dduID
private

Definition at line 27 of file DTDigiToRawModule.h.

◆ debug

bool DTDigiToRawModule::debug
private

◆ digicoll

edm::EDGetTokenT<DTDigiCollection> DTDigiToRawModule::digicoll
private

Definition at line 29 of file DTDigiToRawModule.h.

◆ mapToken_

edm::ESGetToken<DTReadOutMapping, DTReadOutMappingRcd> DTDigiToRawModule::mapToken_
private

Definition at line 30 of file DTDigiToRawModule.h.

◆ maxFEDid_

int DTDigiToRawModule::maxFEDid_
private

Definition at line 34 of file DTDigiToRawModule.h.

◆ minFEDid_

int DTDigiToRawModule::minFEDid_
private

Definition at line 33 of file DTDigiToRawModule.h.

◆ packer

DTDigiToRaw* DTDigiToRawModule::packer
private

Definition at line 25 of file DTDigiToRawModule.h.

◆ useStandardFEDid_

bool DTDigiToRawModule::useStandardFEDid_
private

Definition at line 32 of file DTDigiToRawModule.h.

DTDigiToRaw::SetdduID
void SetdduID(int dduid)
Definition: DTDigiToRaw.cc:182
DTDigiToRawModule::digicoll
edm::EDGetTokenT< DTDigiCollection > digicoll
Definition: DTDigiToRawModule.h:29
DTDigiToRawModule::dduID
int dduID
Definition: DTDigiToRawModule.h:27
gather_cfg.cout
cout
Definition: gather_cfg.py:144
DTDigiToRawModule::packer
DTDigiToRaw * packer
Definition: DTDigiToRawModule.h:25
l1tstage2_dqm_sourceclient-live_cfg.rawData
rawData
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:163
DTDigiToRawModule::mapToken_
edm::ESGetToken< DTReadOutMapping, DTReadOutMappingRcd > mapToken_
Definition: DTDigiToRawModule.h:30
FEDNumbering::MAXDTFEDID
Definition: FEDNumbering.h:56
edm::Handle< DTDigiCollection >
FEDRawData
Definition: FEDRawData.h:19
l1t_dqm_sourceclient-live_cfg.fedRawData
fedRawData
Definition: l1t_dqm_sourceclient-live_cfg.py:188
DTDigiToRaw::createFedBuffers
FEDRawData * createFedBuffers(const DTDigiCollection &digis, edm::ESHandle< DTReadOutMapping > &mapping)
Take a vector of digis and fill the FEDRawDataCollection.
Definition: DTDigiToRaw.cc:21
edm::ESHandle
Definition: DTSurvey.h:22
evf::compute_crc
unsigned short compute_crc(unsigned char *buffer, unsigned int bufSize)
Definition: CRC16.h:46
FEDTrailer
Definition: FEDTrailer.h:14
DTDigiToRaw
Definition: DTDigiToRaw.h:15
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
DTDigiToRawModule::maxFEDid_
int maxFEDid_
Definition: DTDigiToRawModule.h:34
DTDigiToRawModule::useStandardFEDid_
bool useStandardFEDid_
Definition: DTDigiToRawModule.h:32
eostools.move
def move(src, dest)
Definition: eostools.py:511
triggerObjects_cff.id
id
Definition: triggerObjects_cff.py:29
FEDHeader::set
static void set(unsigned char *header, uint8_t triggerType, uint32_t lvl1ID, uint16_t bxID, uint16_t sourceID, uint8_t version=0, bool moreHeaders=false)
Set all fields in the header.
Definition: FEDHeader.cc:25
genParticles_cff.map
map
Definition: genParticles_cff.py:11
DTDigiToRawModule::debug
bool debug
Definition: DTDigiToRawModule.h:28
FEDNumbering::MINDTFEDID
Definition: FEDNumbering.h:55
FEDHeader
Definition: FEDHeader.h:14
DTDigiToRawModule::minFEDid_
int minFEDid_
Definition: DTDigiToRawModule.h:33
edm::InputTag
Definition: InputTag.h:15
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37