23 bool forceToKeepFRdata)
24 :
DCCEventBlock(u, m, hU, srpU, tccU, feU, memU, forceToKeepFRdata) {
53 edm::LogWarning(
"IncorrectEvent") <<
"\n For event L1A: " <<
l1_ <<
"\n Expected FED id is: " << expFedId
54 <<
" while current FED id is: " <<
fedId_
55 <<
"\n => Skipping to next fed block...";
67 <<
"\n => Skipping to next fed block...";
78 <<
"\n => Skipping to next fed block...";
96 <<
" bytes while " << (
blockLength_ * 8) <<
" are set in the event header "
97 <<
"\n => Skipping to next fed block...";
132 for (
int dw = 0; dw < 5; dw++) {
134 for (
int i = 0;
i < 14;
i++, channel++) {
135 unsigned int shift =
i * 4;
163 unsigned int numbChannels(0);
172 <<
"\n Event has an unsupported trigger type " <<
triggerType_
173 <<
"\n => Skipping to next fed block...";
185 std::vector<short>::iterator it =
feChStatus_.begin();
188 unsigned int next_tower_id = 1000;
190 unsigned int next_dwToEnd =
dwToEnd_;
193 for (
unsigned int chNumber = 1; chNumber <= numbChannels && STATUS !=
STOP_EVENT_UNPACKING; chNumber++, it++) {
196 const short chStatus(*it);
209 const bool ttProblem = (val == 13) || (val == 14);
211 edm::LogWarning(
"IncorrectBlock") <<
"Bad DCC channel status: " << chStatus <<
" (LV1 " <<
l1_ <<
" fed "
212 <<
fedId_ <<
" tower " << chNumber <<
")\n"
213 <<
" => DCC channel is not being unpacked";
219 if (regular || problematic) {
225 const unsigned int prev_dwToEnd =
dwToEnd_;
228 if (chNumber >= next_tower_id) {
231 next_tower_id = 1000;
238 const bool applyZS = (
fov_ == 0) ||
int unpack(const uint64_t **data, unsigned int *dwToEnd, short tccChId=0)
void unpack(const uint64_t *buffer, size_t bufferSize, unsigned int expFedId) override
int unpack(const uint64_t **data, unsigned int *dwToEnd, bool zs, unsigned int expectedTowerID)
Log< level::Error, false > LogError
unsigned int detailedTriggerType_
unsigned int blockLength_
unsigned int triggerType_
DCCDataUnpacker * unpacker_
static std::atomic< bool > silentMode_
unsigned short srFlag(unsigned int feChannel)
int unpackTCCBlocks() override
DCCEBEventBlock(DCCDataUnpacker *u, EcalElectronicsMapper *m, bool hU, bool srpU, bool tccU, bool feU, bool memU, bool forceToKeepFRdata)
uint16_t getCCUValue(const int fed, const int ccu) const
unsigned int orbitCounter_
std::vector< short > feChStatus_
unsigned long long uint64_t
int unpack(const uint64_t **data, unsigned int *dwToEnd, unsigned int numbFlags=SRP_NUMBFLAGS)
static unsigned int const shift
void addHeaderToCollection()
unsigned int next_tower_search(const unsigned int current_tower_id)
Log< level::Warning, false > LogWarning
std::vector< short > tccChStatus_
int unpack(const uint64_t **data, unsigned int *dwToEnd, unsigned int expectedTowerID)