Description: Raw data unpacker for Layer-1 of Level-1 Calorimeter Trigger
Implementation: This is meant to be simple and straight-forward.
Potential complications due to any changes in firmware are not foreseen. It is assumed that if there are major changes, which is unlikely, there will be a new unpacker written to deal with that.
Definition at line 67 of file L1TCaloLayer1RawToDigi.cc.
Definition at line 201 of file L1TCaloLayer1RawToDigi.cc.
205 for (uint32_t iPhi = 0; iPhi < 4; iPhi++) {
206 int cPhi = -1 + lPhi * 4 + iPhi;
211 else if (cPhi < -1) {
212 LogError(
"L1TCaloLayer1RawToDigi") <<
"L1TCaloLayer1RawToDigi: Major error in makeECalTPGs" << std::endl;
215 for (
int cEta = -28; cEta <= 28; cEta++) {
217 bool negativeEta =
false;
228 uint32_t towerDatum = ctp7Data.
getET(cType, negativeEta,
iEta, iPhi);
229 if (ctp7Data.
getFB(cType, negativeEta,
iEta, iPhi) != 0)
230 towerDatum |= 0x0100;
232 towerDatum |= 0x2000;
234 towerDatum |= 0x4000;
238 towerDatum |= 0x8000;
240 int zSide = cEta / ((
int)
iEta);
248 ecalTPGs->push_back(tpg);
References funct::abs(), UCTCTP7RawData::EBEE, EcalBarrel, EcalEndcap, UCTCTP7RawData::getET(), UCTCTP7RawData::getFB(), triggerObjects_cff::id, L1TowerCalibrationProducer_cfi::iEta, createfilelist::int, UCTCTP7RawData::isLinkDown(), UCTCTP7RawData::isLinkInError(), UCTCTP7RawData::isLinkMasked(), UCTCTP7RawData::isLinkMisaligned(), UCTCTP7RawData::isTowerMasked(), simplePhotonAnalyzer_cfi::sample, EcalTriggerPrimitiveDigi::setSample(), and EcalTriggerPrimitiveDigi::setSize().
Referenced by produce().
Definition at line 254 of file L1TCaloLayer1RawToDigi.cc.
258 for (uint32_t iPhi = 0; iPhi < 4; iPhi++) {
259 int cPhi = -1 + lPhi * 4 + iPhi;
264 else if (cPhi < -1) {
265 LogError(
"L1TCaloLayer1RawToDigi") <<
"L1TCaloLayer1RawToDigi: Major error in makeHCalTPGs" << std::endl;
268 for (
int cEta = -28; cEta <= 28; cEta++) {
270 bool negativeEta =
false;
281 uint32_t towerDatum = ctp7Data.
getET(cType, negativeEta,
iEta, iPhi);
282 if (ctp7Data.
getFB(cType, negativeEta,
iEta, iPhi) != 0)
283 towerDatum |= 0x0100;
285 towerDatum |= 0x0200;
287 towerDatum |= 0x0400;
289 towerDatum |= 0x0800;
291 towerDatum |= 0x2000;
293 towerDatum |= 0x4000;
297 towerDatum |= 0x8000;
303 hcalTPGs->push_back(tpg);
References funct::abs(), UCTCTP7RawData::getET(), UCTCTP7RawData::getFB(), UCTCTP7RawData::HBHE, triggerObjects_cff::id, L1TowerCalibrationProducer_cfi::iEta, UCTCTP7RawData::isLinkDown(), UCTCTP7RawData::isLinkInError(), UCTCTP7RawData::isLinkMasked(), UCTCTP7RawData::isLinkMisaligned(), UCTCTP7RawData::isTowerMasked(), simplePhotonAnalyzer_cfi::sample, HcalTriggerPrimitiveDigi::setSample(), and HcalTriggerPrimitiveDigi::setSize().
Referenced by produce().
void L1TCaloLayer1RawToDigi::produce |
( |
Event & |
iEvent, |
|
|
const EventSetup & |
iSetup |
|
) |
| |
|
overrideprivate |
Definition at line 132 of file L1TCaloLayer1RawToDigi.cc.
144 if (fedRawDataCollection.
isValid()) {
145 for (uint32_t
i = 0;
i <
fedIDs.size();
i++) {
153 <<
"Upacking FEDRawData for fed " <<
std::dec << fed <<
" of size " <<
fedRawData.size();
157 if (
fedRawData.size() == 0 || fedRawDataArray ==
nullptr) {
158 LogDebug(
"L1TCaloLayer1RawToDigi") <<
"Could not load FED data for " << fed <<
", putting empty collections!";
165 for (uint32_t
i = 0;
i < daqData.nAMCs();
i++) {
172 uint32_t lPhi = amcData.layer1Phi();
187 LogError(
"L1T") <<
"Cannot unpack: no collection found";
198 LogDebug(
"L1TCaloLayer1") <<
"L1TCaloLayer1RawToDigi: Goodbye! Tired of printing junk" << endl;
References UCTDAQRawData::amcPayload(), TauDecayModes::dec, FEDRawDataCollection::FEDData(), fedIDs, l1t_dqm_sourceclient-live_cfg::fedRawData, fedRawDataLabel, mps_fire::i, iEvent, edm::HandleBase::isValid(), LogDebug, makeECalTPGs(), makeHCalTPGs(), makeHFTPGs(), makeRegions(), eostools::move(), UCTDAQRawData::nAMCs(), UCTDAQRawData::print(), UCTCTP7RawData::print(), and verbose.