CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
sistrip::DigiToRawModule Class Referencefinal

A plug-in module that takes StripDigis as input from the Event and creates an EDProduct comprising a FEDRawDataCollection. More...

#include <SiStripDigiToRawModule.h>

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

Public Member Functions

virtual void beginJob ()
 
 DigiToRawModule (const edm::ParameterSet &)
 
virtual void endJob ()
 
void endStream () override
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~DigiToRawModule () override
 
- 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

bool copyBufferHeader_
 
DigiToRawdigiToRaw_
 
uint32_t eventCounter_
 
edm::InputTag inputDigiTag_
 
FEDReadoutMode mode_
 
uint8_t packetCode_
 
edm::InputTag rawDataTag_
 
bool rawdigi_
 
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > tokenDigi
 
edm::EDGetTokenT< FEDRawDataCollectiontokenRawBuffer
 
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > tokenRawDigi
 

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

A plug-in module that takes StripDigis as input from the Event and creates an EDProduct comprising a FEDRawDataCollection.

Definition at line 29 of file SiStripDigiToRawModule.h.

Constructor & Destructor Documentation

◆ DigiToRawModule()

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

Creates instance of DigiToRaw converter, defines EDProduct type.

Definition at line 37 of file SiStripDigiToRawModule.cc.

38  : copyBufferHeader_(pset.getParameter<bool>("CopyBufferHeader")),
39  mode_(fedReadoutModeFromString(pset.getParameter<std::string>("FedReadoutMode"))),
40  packetCode_(packetCodeFromString(pset.getParameter<std::string>("PacketCode"), mode_)),
41  rawdigi_(false),
42  digiToRaw_(nullptr),
43  eventCounter_(0),
44  inputDigiTag_(pset.getParameter<edm::InputTag>("InputDigis")),
45  rawDataTag_(pset.getParameter<edm::InputTag>("RawDataTag")) {
46  if (edm::isDebugEnabled()) {
47  LogDebug("DigiToRawModule") << "[sistrip::DigiToRawModule::DigiToRawModule]"
48  << " Constructing object...";
49  }
50 
51  switch (mode_) {
53  rawdigi_ = false;
54  break;
56  rawdigi_ = false;
57  break;
59  rawdigi_ = false;
60  break;
62  rawdigi_ = false;
63  break;
65  rawdigi_ = false;
66  break;
68  rawdigi_ = false;
69  break;
71  rawdigi_ = false;
72  break;
74  rawdigi_ = false;
75  break;
77  rawdigi_ = false;
78  break;
80  rawdigi_ = false;
81  break;
83  rawdigi_ = false;
84  break;
86  rawdigi_ = true;
87  break;
89  rawdigi_ = true;
90  break;
91  case READOUT_MODE_SCOPE:
92  rawdigi_ = true;
93  break;
94  case READOUT_MODE_INVALID: {
95  if (edm::isDebugEnabled()) {
96  edm::LogWarning("DigiToRawModule")
97  << "[sistrip::DigiToRawModule::DigiToRawModule]"
98  << " UNKNOWN readout mode: " << pset.getParameter<std::string>("FedReadoutMode");
99  }
100  } break;
101  case READOUT_MODE_SPY: {
102  if (edm::isDebugEnabled()) {
103  edm::LogWarning("DigiToRawModule") << "[sistrip::DigiToRawModule::DigiToRawModule]"
104  << " Digi to raw is not supported for spy channel data";
105  }
106  } break;
107  }
108  if (pset.getParameter<bool>("UseWrongDigiType")) {
109  rawdigi_ = !rawdigi_;
110  if (edm::isDebugEnabled()) {
111  edm::LogWarning("DigiToRawModule") << "[sistrip::DigiToRawModule::DigiToRawModule]"
112  << " You are using the wrong type of digis!";
113  }
114  }
115 
116  // Create instance of DigiToRaw formatter
117  digiToRaw_ = new DigiToRaw(mode_, packetCode_, pset.getParameter<bool>("UseFedKey"));
118 
119  if (rawdigi_) {
120  tokenRawDigi = consumes<edm::DetSetVector<SiStripRawDigi> >(inputDigiTag_);
121  } else {
122  tokenDigi = consumes<edm::DetSetVector<SiStripDigi> >(inputDigiTag_);
123  }
124  if (copyBufferHeader_) {
125  //CAMM input raw module label or same as digi ????
126  if (edm::isDebugEnabled()) {
127  edm::LogWarning("DigiToRawModule") << "[sistrip::DigiToRawModule::DigiToRawModule]"
128  << "Copying buffer header from collection " << rawDataTag_;
129  }
130  tokenRawBuffer = consumes<FEDRawDataCollection>(rawDataTag_);
131  }
132 
133  produces<FEDRawDataCollection>();
134  }

References copyBufferHeader_, DigiToRaw_cff::DigiToRaw, digiToRaw_, inputDigiTag_, edm::isDebugEnabled(), LogDebug, mode_, packetCode_, muonDTDigis_cfi::pset, rawDataTag_, rawdigi_, sistrip::READOUT_MODE_INVALID, sistrip::READOUT_MODE_PREMIX_RAW, sistrip::READOUT_MODE_PROC_RAW, sistrip::READOUT_MODE_SCOPE, sistrip::READOUT_MODE_SPY, sistrip::READOUT_MODE_VIRGIN_RAW, sistrip::READOUT_MODE_ZERO_SUPPRESSED, sistrip::READOUT_MODE_ZERO_SUPPRESSED_FAKE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_CMOVERRIDE, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT, sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT_CMOVERRIDE, AlCaHLTBitMon_QueryRunRegistry::string, tokenDigi, tokenRawBuffer, and tokenRawDigi.

◆ ~DigiToRawModule()

sistrip::DigiToRawModule::~DigiToRawModule ( )
override

Definition at line 138 of file SiStripDigiToRawModule.cc.

138  {
139  if (edm::isDebugEnabled()) {
140  LogDebug("DigiToRaw") << "[sistrip::DigiToRawModule::~DigiToRawModule]"
141  << " Destructing object...";
142  }
143  if (digiToRaw_)
144  delete digiToRaw_;
145  }

References digiToRaw_, edm::isDebugEnabled(), and LogDebug.

Member Function Documentation

◆ beginJob()

virtual void sistrip::DigiToRawModule::beginJob ( void  )
inlinevirtual

Definition at line 34 of file SiStripDigiToRawModule.h.

34 {}

◆ endJob()

virtual void sistrip::DigiToRawModule::endJob ( void  )
inlinevirtual

Definition at line 35 of file SiStripDigiToRawModule.h.

35 {}

◆ endStream()

void sistrip::DigiToRawModule::endStream ( )
override

◆ fillDescriptions()

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

Definition at line 21 of file SiStripDigiToRawModule.cc.

21  {
23  desc.add<std::string>("FedReadoutMode", "ZERO_SUPPRESSED");
24  desc.add<std::string>("PacketCode", "ZERO_SUPPRESSED");
25  desc.add<bool>("UseFedKey", false);
26  desc.add<bool>("UseWrongDigiType", false);
27  desc.add<bool>("CopyBufferHeader", false);
28  desc.add<edm::InputTag>("InputDigis", edm::InputTag("simSiStripDigis", "ZeroSuppressed"));
29  desc.add<edm::InputTag>("RawDataTag", edm::InputTag("rawDataCollector"));
30  descriptions.add("SiStripDigiToRawModule", desc);
31  }

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

◆ produce()

void sistrip::DigiToRawModule::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Retrieves cabling map from EventSetup, retrieves a DetSetVector of SiStripDigis from Event, creates a FEDRawDataCollection (EDProduct), uses DigiToRaw converter to fill FEDRawDataCollection, attaches FEDRawDataCollection to Event.

Definition at line 154 of file SiStripDigiToRawModule.cc.

154  {
155  eventCounter_++;
156 
157  auto buffers = std::make_unique<FEDRawDataCollection>();
158 
160  iSetup.get<SiStripFedCablingRcd>().get(cabling);
161 
162  //get buffer header from original rawdata
164  if (copyBufferHeader_) {
165  if (edm::isDebugEnabled()) {
166  edm::LogWarning("DigiToRawModule") << "[sistrip::DigiToRawModule::DigiToRawModule]"
167  << "Getting raw buffer: ";
168  }
169  try {
170  iEvent.getByToken(tokenRawBuffer, rawbuffers);
171  } catch (const cms::Exception& e) {
172  if (edm::isDebugEnabled()) {
173  edm::LogWarning("DigiToRawModule") << "[sistrip::DigiToRawModule::DigiToRawModule]"
174  << " Failed to get collection " << rawDataTag_;
175  }
176  }
177  }
178 
179  if (rawdigi_) {
181  iEvent.getByToken(tokenRawDigi, rawdigis);
182  if (copyBufferHeader_)
183  digiToRaw_->createFedBuffers(iEvent, cabling, rawbuffers, rawdigis, buffers);
184  else
185  digiToRaw_->createFedBuffers(iEvent, cabling, rawdigis, buffers);
186  } else {
188  iEvent.getByToken(tokenDigi, digis);
189  if (copyBufferHeader_)
190  digiToRaw_->createFedBuffers(iEvent, cabling, rawbuffers, digis, buffers);
191  else
192  digiToRaw_->createFedBuffers(iEvent, cabling, digis, buffers);
193  }
194 
195  iEvent.put(std::move(buffers));
196  }

References copyBufferHeader_, sistrip::DigiToRaw::createFedBuffers(), digiToRaw_, MillePedeFileConverter_cfg::e, eventCounter_, edm::EventSetup::get(), get, iEvent, edm::isDebugEnabled(), eostools::move(), rawDataTag_, rawdigi_, tokenDigi, tokenRawBuffer, and tokenRawDigi.

Member Data Documentation

◆ copyBufferHeader_

bool sistrip::DigiToRawModule::copyBufferHeader_
private

Definition at line 43 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule(), and produce().

◆ digiToRaw_

DigiToRaw* sistrip::DigiToRawModule::digiToRaw_
private

Definition at line 47 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule(), endStream(), produce(), and ~DigiToRawModule().

◆ eventCounter_

uint32_t sistrip::DigiToRawModule::eventCounter_
private

Definition at line 48 of file SiStripDigiToRawModule.h.

Referenced by produce().

◆ inputDigiTag_

edm::InputTag sistrip::DigiToRawModule::inputDigiTag_
private

Definition at line 49 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule().

◆ mode_

FEDReadoutMode sistrip::DigiToRawModule::mode_
private

Definition at line 44 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule().

◆ packetCode_

uint8_t sistrip::DigiToRawModule::packetCode_
private

Definition at line 45 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule().

◆ rawDataTag_

edm::InputTag sistrip::DigiToRawModule::rawDataTag_
private

Definition at line 52 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule(), and produce().

◆ rawdigi_

bool sistrip::DigiToRawModule::rawdigi_
private

Definition at line 46 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule(), and produce().

◆ tokenDigi

edm::EDGetTokenT<edm::DetSetVector<SiStripDigi> > sistrip::DigiToRawModule::tokenDigi
private

Definition at line 51 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule(), and produce().

◆ tokenRawBuffer

edm::EDGetTokenT<FEDRawDataCollection> sistrip::DigiToRawModule::tokenRawBuffer
private

Definition at line 53 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule(), and produce().

◆ tokenRawDigi

edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > sistrip::DigiToRawModule::tokenRawDigi
private

Definition at line 50 of file SiStripDigiToRawModule.h.

Referenced by DigiToRawModule(), and produce().

sistrip::DigiToRaw::createFedBuffers
void createFedBuffers(edm::Event &, edm::ESHandle< SiStripFedCabling > &cabling, edm::Handle< edm::DetSetVector< SiStripDigi > > &digis, std::unique_ptr< FEDRawDataCollection > &buffers)
Definition: SiStripDigiToRaw.cc:53
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
sistrip::READOUT_MODE_PREMIX_RAW
Definition: SiStripFEDBufferComponents.h:61
DigiToRaw_cff.DigiToRaw
DigiToRaw
Definition: DigiToRaw_cff.py:22
sistrip::DigiToRawModule::copyBufferHeader_
bool copyBufferHeader_
Definition: SiStripDigiToRawModule.h:43
sistrip::packetCodeFromString
uint8_t packetCodeFromString(const std::string &packetCodeString, FEDReadoutMode mode)
Definition: SiStripFEDBufferComponents.cc:464
sistrip::READOUT_MODE_SCOPE
Definition: SiStripFEDBufferComponents.h:47
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
sistrip::READOUT_MODE_SPY
Definition: SiStripFEDBufferComponents.h:60
sistrip::fedReadoutModeFromString
FEDReadoutMode fedReadoutModeFromString(const std::string &readoutModeString)
Definition: SiStripFEDBufferComponents.cc:418
edm::Handle
Definition: AssociativeIterator.h:50
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT
Definition: SiStripFEDBufferComponents.h:51
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10_CMOVERRIDE
Definition: SiStripFEDBufferComponents.h:50
sistrip::DigiToRawModule::inputDigiTag_
edm::InputTag inputDigiTag_
Definition: SiStripDigiToRawModule.h:49
sistrip::DigiToRawModule::packetCode_
uint8_t packetCode_
Definition: SiStripDigiToRawModule.h:45
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
edm::ESHandle< SiStripFedCabling >
sistrip::READOUT_MODE_PROC_RAW
Definition: SiStripFEDBufferComponents.h:52
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8
Definition: SiStripFEDBufferComponents.h:58
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT_CMOVERRIDE
Definition: SiStripFEDBufferComponents.h:59
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::LogWarning
Definition: MessageLogger.h:141
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE10
Definition: SiStripFEDBufferComponents.h:49
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_TOPBOT_CMOVERRIDE
Definition: SiStripFEDBufferComponents.h:53
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_BOTBOT
Definition: SiStripFEDBufferComponents.h:55
sistrip::DigiToRawModule::rawDataTag_
edm::InputTag rawDataTag_
Definition: SiStripDigiToRawModule.h:52
iEvent
int iEvent
Definition: GenABIO.cc:224
sistrip::READOUT_MODE_VIRGIN_RAW
Definition: SiStripFEDBufferComponents.h:48
get
#define get
sistrip::READOUT_MODE_INVALID
Definition: SiStripFEDBufferComponents.h:46
sistrip::DigiToRawModule::tokenDigi
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > tokenDigi
Definition: SiStripDigiToRawModule.h:51
eostools.move
def move(src, dest)
Definition: eostools.py:511
sistrip::DigiToRawModule::rawdigi_
bool rawdigi_
Definition: SiStripDigiToRawModule.h:46
sistrip::DigiToRawModule::mode_
FEDReadoutMode mode_
Definition: SiStripDigiToRawModule.h:44
sistrip::DigiToRawModule::tokenRawDigi
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > tokenRawDigi
Definition: SiStripDigiToRawModule.h:50
sistrip::DigiToRawModule::digiToRaw_
DigiToRaw * digiToRaw_
Definition: SiStripDigiToRawModule.h:47
sistrip::DigiToRaw::printWarningSummary
void printWarningSummary() const
Definition: SiStripDigiToRaw.h:59
edm::isDebugEnabled
bool isDebugEnabled()
Definition: MessageLogger.cc:71
cms::Exception
Definition: Exception.h:70
sistrip::READOUT_MODE_ZERO_SUPPRESSED_LITE8_CMOVERRIDE
Definition: SiStripFEDBufferComponents.h:54
edm::InputTag
Definition: InputTag.h:15
sistrip::READOUT_MODE_ZERO_SUPPRESSED_FAKE
Definition: SiStripFEDBufferComponents.h:57
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
sistrip::READOUT_MODE_ZERO_SUPPRESSED
Definition: SiStripFEDBufferComponents.h:56
sistrip::DigiToRawModule::eventCounter_
uint32_t eventCounter_
Definition: SiStripDigiToRawModule.h:48
sistrip::DigiToRawModule::tokenRawBuffer
edm::EDGetTokenT< FEDRawDataCollection > tokenRawBuffer
Definition: SiStripDigiToRawModule.h:53