30 #define BEG_DCC_FED_ID 0
31 #define END_DCC_FED_ID 35
32 #define BEG_DCC_FED_ID_GLOBAL 600
33 #define END_DCC_FED_ID_GLOBAL 670
35 #define ECAL_SUPERVISOR_FED_ID 40
36 #define TBCAMAC_FED_ID 41
37 #define TABLE_FED_ID 42
38 #define MATACQ_FED_ID 43
41 : fedRawDataCollectionTag_(pset.getParameter<edm::
InputTag>(
"fedRawDataCollectionTag")) {
49 produces<EBDigiCollection>(
"ebDigis");
50 produces<EcalMatacqDigiCollection>();
51 produces<EcalPnDiodeDigiCollection>();
52 produces<EcalRawDataCollection>();
53 produces<EcalTrigPrimDigiCollection>(
"EBTT");
56 produces<EcalTBHodoscopeRawInfo>();
57 produces<EcalTBTDCRawInfo>();
58 produces<EcalTBEventHeader>();
61 produces<EBDetIdCollection>(
"EcalIntegrityDCCSizeErrors");
62 produces<EcalElectronicsIdCollection>(
"EcalIntegrityTTIdErrors");
63 produces<EcalElectronicsIdCollection>(
"EcalIntegrityBlockSizeErrors");
64 produces<EBDetIdCollection>(
"EcalIntegrityChIdErrors");
65 produces<EBDetIdCollection>(
"EcalIntegrityGainErrors");
66 produces<EBDetIdCollection>(
"EcalIntegrityGainSwitchErrors");
69 produces<EcalElectronicsIdCollection>(
"EcalIntegrityMemTtIdErrors");
70 produces<EcalElectronicsIdCollection>(
"EcalIntegrityMemBlockSize");
71 produces<EcalElectronicsIdCollection>(
"EcalIntegrityMemChIdErrors");
72 produces<EcalElectronicsIdCollection>(
"EcalIntegrityMemGainErrors");
86 auto productEb = std::make_unique<EBDigiCollection>();
89 auto productMatacq = std::make_unique<EcalMatacqDigiCollection>();
92 auto productPN = std::make_unique<EcalPnDiodeDigiCollection>();
95 auto productDCCHeader = std::make_unique<EcalRawDataCollection>();
98 auto productTriggerPrimitives = std::make_unique<EcalTrigPrimDigiCollection>();
101 auto productDCCSize = std::make_unique<EBDetIdCollection>();
104 auto productTTId = std::make_unique<EcalElectronicsIdCollection>();
107 auto productBlockSize = std::make_unique<EcalElectronicsIdCollection>();
110 auto productChId = std::make_unique<EBDetIdCollection>();
113 auto productGain = std::make_unique<EBDetIdCollection>();
116 auto productGainSwitch = std::make_unique<EBDetIdCollection>();
119 auto productMemTtId = std::make_unique<EcalElectronicsIdCollection>();
122 auto productMemBlockSize = std::make_unique<EcalElectronicsIdCollection>();
125 auto productMemGain = std::make_unique<EcalElectronicsIdCollection>();
128 auto productMemChIdErrors = std::make_unique<EcalElectronicsIdCollection>();
131 auto productHodo = std::make_unique<EcalTBHodoscopeRawInfo>();
132 auto productTdc = std::make_unique<EcalTBTDCRawInfo>();
133 auto productHeader = std::make_unique<EcalTBEventHeader>();
153 if (data.
size() > 16) {
158 (*productHeader).setSmInBeam(
id);
170 *productMemBlockSize,
172 *productMemChIdErrors,
173 *productTriggerPrimitives);
174 int runType = (*productDCCHeader)[0].getRunType();
176 (*productHeader).setTriggerMask(0x1);
177 else if (runType == 4 || runType == 5 || runType == 6)
178 (*productHeader).setTriggerMask(0x2000);
179 else if (runType == 9 || runType == 10 || runType == 11)
180 (*productHeader).setTriggerMask(0x800);
181 LogDebug(
"EcalDCCTBUnpackingModule")
182 <<
"Event type is " << (*productHeader).eventType() <<
" dbEventType " << (*productHeader).dbEventType();
201 e.
put(
std::move(productDCCSize),
"EcalIntegrityDCCSizeErrors");
202 e.
put(
std::move(productTTId),
"EcalIntegrityTTIdErrors");
203 e.
put(
std::move(productBlockSize),
"EcalIntegrityBlockSizeErrors");
204 e.
put(
std::move(productChId),
"EcalIntegrityChIdErrors");
205 e.
put(
std::move(productGain),
"EcalIntegrityGainErrors");
206 e.
put(
std::move(productGainSwitch),
"EcalIntegrityGainSwitchErrors");
208 e.
put(
std::move(productMemTtId),
"EcalIntegrityMemTtIdErrors");
209 e.
put(
std::move(productMemBlockSize),
"EcalIntegrityMemBlockSize");
210 e.
put(
std::move(productMemChIdErrors),
"EcalIntegrityMemChIdErrors");
211 e.
put(
std::move(productMemGain),
"EcalIntegrityMemGainErrors");
218 std::cout <<
"[EcalDCCTBUnpackingModule] " << e.
what() << std::endl;
220 std::cout <<
"[EcalDCCTBUnpackingModule] " << e.
what() << std::endl;
222 std::cout <<
"[EcalDCCTBUnpackingModule] " << e.
what() << std::endl;
224 std::cout <<
"[EcalDCCTBUnpackingModule] Unknown exception ..." << std::endl;
void produce(edm::Event &e, const edm::EventSetup &c) override
Produce digis out of raw data.
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
const edm::EventSetup & c
const char * what() const
~EcalDCCTBUnpackingModule() override
Destructor.
uint16_t *__restrict__ id
MatacqTBDataFormatter * matacqFormatter_
size_t size() const
Lenght of the data buffer in bytes.
EcalDCCTBUnpackingModule(const edm::ParameterSet &pset)
Constructor.
TableDataFormatter * tableFormatter_
void endJob(void) override
char const * what() const noexceptoverride
EcalSupervisorTBDataFormatter * ecalSupervisorFormatter_
EcalTBDaqFormatter * formatter_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
edm::InputTag fedRawDataCollectionTag_
#define BEG_DCC_FED_ID_GLOBAL
CamacTBDataFormatter * camacTBformatter_
char data[epos_bytes_allocation]
const char * what() const
#define ECAL_SUPERVISOR_FED_ID
#define END_DCC_FED_ID_GLOBAL