From 5be104b88cd816545eecee03b300cc908d0e5641 Mon Sep 17 00:00:00 2001 From: richterm Date: Thu, 27 Aug 2009 14:50:07 +0000 Subject: [PATCH] temporary bugfix: the operator functions of the AliHLTReadoutList class did not work correctly on the HLT online cluster. As temporary fix only the readout list of the first matching CTP class is created. --- HLT/BASE/AliHLTCTPData.cxx | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/HLT/BASE/AliHLTCTPData.cxx b/HLT/BASE/AliHLTCTPData.cxx index 59315812ef8..6611f327163 100644 --- a/HLT/BASE/AliHLTCTPData.cxx +++ b/HLT/BASE/AliHLTCTPData.cxx @@ -68,6 +68,8 @@ int AliHLTCTPData::InitCTPTriggerClasses(const char* ctpString) // see header file for function documentation if (!ctpString) return -EINVAL; + HLTImportant("Parameter: %s", ctpString); + fMask=0; fClassIds.Delete(); fClassIds.ExpandCreate(gkNCTPTriggerClasses); @@ -135,12 +137,13 @@ bool AliHLTCTPData::EvaluateCTPTriggerClass(const char* expression, AliHLTCompon // trigger mask is 50 bit wide and is stored in word 5 and 6 of the CDH AliHLTEventTriggerData* evtData=reinterpret_cast(trigData.fData); - AliHLTUInt64_t triggerMask=evtData->fCommonHeader[6]; + AliHLTUInt64_t triggerMask=evtData->fCommonHeader[6]&0x3ffff; triggerMask<<=32; triggerMask|=evtData->fCommonHeader[5]; if (fMask!=0 && (triggerMask & fMask)==0) { - HLTWarning("invalid trigger mask 0x%llx, unknown CTP trigger", triggerMask); + HLTWarning("invalid trigger mask 0x%llx, unknown CTP trigger, initialized 0x%llx", triggerMask, fMask); + for (int i=0; i<8; i++) HLTWarning("\t CDH[%d]=0x%lx", i, evtData->fCommonHeader[i]); return false; } @@ -234,12 +237,13 @@ int AliHLTCTPData::Increment(AliHLTComponentTriggerData& trigData) // trigger mask is 50 bit wide and is stored in word 5 and 6 of the CDH AliHLTEventTriggerData* evtData=reinterpret_cast(trigData.fData); - AliHLTUInt64_t triggerMask=evtData->fCommonHeader[6]; + AliHLTUInt64_t triggerMask=evtData->fCommonHeader[6]&0x3ffff; triggerMask<<=32; triggerMask|=evtData->fCommonHeader[5]; if (fMask!=0 && (triggerMask & fMask)==0) { HLTWarning("invalid trigger mask 0x%llx, unknown CTP trigger, initialized 0x%llx", triggerMask, fMask); + for (int i=0; i<8; i++) HLTWarning("\t CDH[%d]=0x%lx", i, evtData->fCommonHeader[i]); } Increment(triggerMask); return 0; @@ -277,16 +281,29 @@ AliHLTEventDDL AliHLTCTPData::ReadoutList(const AliHLTComponentTriggerData& trig // trigger mask is 50 bit wide and is stored in word 5 and 6 of the CDH AliHLTEventTriggerData* evtData=reinterpret_cast(trigData.fData); - AliHLTUInt64_t triggerMask=evtData->fCommonHeader[6]; + AliHLTUInt64_t triggerMask=evtData->fCommonHeader[6]&0x3ffff; triggerMask<<=32; triggerMask|=evtData->fCommonHeader[5]; + if (fMask!=0 && (triggerMask & fMask)==0) { + HLTWarning("invalid trigger mask 0x%llx, unknown CTP trigger, initialized 0x%llx", triggerMask, fMask); + for (int i=0; i<8; i++) HLTWarning("\t CDH[%d]=0x%lx", i, evtData->fCommonHeader[i]); + } + // take an 'OR' of all active trigger classes AliHLTReadoutList list; for (int i=0; ifClassIds.GetLast()) break; if ((triggerMask&((AliHLTUInt64_t)0x1<