From 7b638b2a10f1ea876aaa122aba9e6ae37cf31e1b Mon Sep 17 00:00:00 2001 From: richterm Date: Tue, 18 Aug 2009 10:49:55 +0000 Subject: [PATCH] bugfix: generating the event done data filter list correctly. The number of entries was set to the total number of domain entries, while some of them are filtered out. --- HLT/trigger/AliHLTTrigger.cxx | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/HLT/trigger/AliHLTTrigger.cxx b/HLT/trigger/AliHLTTrigger.cxx index 5ea977fe27e..e911c62a30a 100644 --- a/HLT/trigger/AliHLTTrigger.cxx +++ b/HLT/trigger/AliHLTTrigger.cxx @@ -159,13 +159,13 @@ int AliHLTTrigger::CreateEventDoneReadoutFilter(const AliHLTTriggerDomain& domai { // add a readout filter to the EventDoneData int iResult=0; - unsigned entries=domain.GetNofEntries(); + unsigned nofEntries=domain.GetNofEntries(); // we need: // 1 word eventually for the monitor event command // 1 word for the readout filter command // 1 word for the readout filter size // 4*n words for the filter list - if ((iResult=ReserveEventDoneData((entries*4 + 3) * sizeof(AliHLTUInt32_t)))<0) return iResult; + if ((iResult=ReserveEventDoneData((nofEntries*4 + 3) * sizeof(AliHLTUInt32_t)))<0) return iResult; AliHLTUInt32_t eddbuffer[4]; if (type==4) { // in the case of the monitoring filter we also add the monitor event command @@ -176,17 +176,25 @@ int AliHLTTrigger::CreateEventDoneReadoutFilter(const AliHLTTriggerDomain& domai // now the readout list command and the block count eddbuffer[0]=type; if ((iResult=PushEventDoneData(eddbuffer[0]))<0) return iResult; - eddbuffer[0]=entries; - if ((iResult=PushEventDoneData(eddbuffer[0]))<0) return iResult; - for (unsigned block=0; block entries; + for (block=0; block::iterator entry=entries.begin(); + entry!=entries.end(); entry++) { + (*entry)->AsBinary(eddbuffer); for (int n=0; n<4; n++) if ((iResult=PushEventDoneData(eddbuffer[n]))<0) return iResult; } -- 2.31.1