summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
78f642d)
bugfix: the version number of the class was 0, so it was never streamed and thus not in the printout
of the HLT decision
: TNamed("AliHLTCTPData", "HLT counters for the CTP")
, AliHLTLogging()
, fMask(0)
: TNamed("AliHLTCTPData", "HLT counters for the CTP")
, AliHLTLogging()
, fMask(0)
, fClassIds(AliHLTReadoutList::Class(), gkNCTPTriggerClasses)
, fCounters(gkNCTPTriggerClasses)
{
, fClassIds(AliHLTReadoutList::Class(), gkNCTPTriggerClasses)
, fCounters(gkNCTPTriggerClasses)
{
: TNamed("AliHLTCTPData", "HLT counters for the CTP")
, AliHLTLogging()
, fMask(0)
: TNamed("AliHLTCTPData", "HLT counters for the CTP")
, AliHLTLogging()
, fMask(0)
, fClassIds(AliHLTReadoutList::Class(), gkNCTPTriggerClasses)
, fCounters(gkNCTPTriggerClasses)
{
, fClassIds(AliHLTReadoutList::Class(), gkNCTPTriggerClasses)
, fCounters(gkNCTPTriggerClasses)
{
: TNamed(src.GetName(), src.GetTitle())
, AliHLTLogging()
, fMask(src.Mask())
: TNamed(src.GetName(), src.GetTitle())
, AliHLTLogging()
, fMask(src.Mask())
+ , fTriggers(src.fTriggers)
, fClassIds(src.fClassIds)
, fCounters(src.Counters())
{
, fClassIds(src.fClassIds)
, fCounters(src.Counters())
{
-bool AliHLTCTPData::EvaluateCTPTriggerClass(const char* expression, AliHLTComponentTriggerData& trigData) const
+bool AliHLTCTPData::EvaluateCTPTriggerClass(const char* expression, const AliHLTComponentTriggerData& trigData) const
{
// see header file for function documentation
if (trigData.fDataSize != sizeof(AliHLTEventTriggerData)) {
{
// see header file for function documentation
if (trigData.fDataSize != sizeof(AliHLTEventTriggerData)) {
+ return EvaluateCTPTriggerClass(expression, triggerMask);
+}
+
+bool AliHLTCTPData::EvaluateCTPTriggerClass(const char* expression, AliHLTUInt64_t triggerMask) const
+{
+ // see header file for function documentation
+
// use a TFormula to interprete the expression
// all classname are replaced by '[n]' which means the n'th parameter in the formula
// the parameters are set to 0 or 1 depending on the bit in the trigger mask
// use a TFormula to interprete the expression
// all classname are replaced by '[n]' which means the n'th parameter in the formula
// the parameters are set to 0 or 1 depending on the bit in the trigger mask
{
// see header file for function documentation
cout << GetTitle() << endl;
{
// see header file for function documentation
cout << GetTitle() << endl;
+ cout << "\tactive trigger mask: 0x" << hex << fTriggers << dec << endl;
int count=0;
for (int i=0; i<gkNCTPTriggerClasses; i++) {
if (i>=Counters().GetSize()) break;
int count=0;
for (int i=0; i<gkNCTPTriggerClasses; i++) {
if (i>=Counters().GetSize()) break;
/**
* Evaluate an expression of trigger class ids with respect to the trigger mask.
*/
/**
* Evaluate an expression of trigger class ids with respect to the trigger mask.
*/
- bool EvaluateCTPTriggerClass(const char* expression, AliHLTComponentTriggerData& trigData) const;
+ bool EvaluateCTPTriggerClass(const char* expression, const AliHLTComponentTriggerData& trigData) const;
+
+ /**
+ * Evaluate an expression of trigger class ids with respect to the trigger mask.
+ */
+ bool EvaluateCTPTriggerClass(const char* expression, AliHLTUInt64_t triggerMask) const;
+
+ /**
+ * Evaluate an expression of trigger class ids with respect to the current trigger mask.
+ */
+ bool EvaluateCTPTriggerClass(const char* expression) const {
+ return EvaluateCTPTriggerClass(expression, fTriggers);
+ }
virtual void Print(Option_t* option = "") const;
AliHLTUInt64_t Mask() const { return fMask; }
virtual void Print(Option_t* option = "") const;
AliHLTUInt64_t Mask() const { return fMask; }
+ AliHLTUInt64_t Triggers() const { return fTriggers; }
+ void SetTriggers(AliHLTUInt64_t triggers) { fTriggers=triggers; }
+ void SetTriggers(AliHLTComponentTriggerData trigData) {SetTriggers(ActiveTriggers(trigData));}
const TArrayL64& Counters() const { return fCounters; }
AliHLTUInt64_t Counter(int index) const;
AliHLTUInt64_t Counter(const char* classId) const;
const TArrayL64& Counters() const { return fCounters; }
AliHLTUInt64_t Counter(int index) const;
AliHLTUInt64_t Counter(const char* classId) const;
int Add(const AliHLTCTPData& src, int factor, int &skipped);
AliHLTUInt64_t fMask; /// mask of initialized trigger classes
int Add(const AliHLTCTPData& src, int factor, int &skipped);
AliHLTUInt64_t fMask; /// mask of initialized trigger classes
+ AliHLTUInt64_t fTriggers; /// current trigger
TClonesArray fClassIds; /// array of trigger class ids
TArrayL64 fCounters; /// trigger class counters
TClonesArray fClassIds; /// array of trigger class ids
TArrayL64 fCounters; /// trigger class counters
- ClassDef(AliHLTCTPData, 0)
+ ClassDef(AliHLTCTPData, 1)
// for the private blocks
if (fRequireSteeringBlocks) bSkipDataProcessing=0;
// for the private blocks
if (fRequireSteeringBlocks) bSkipDataProcessing=0;
- // increment CTP trigger counters if available
- if (fpCTPData && IsDataEvent()) fpCTPData->Increment(trigData);
+ if (fpCTPData) {
+ // set the active triggers for this event
+ fpCTPData->SetTriggers(trigData);
+ // increment CTP trigger counters if available
+ if (IsDataEvent()) fpCTPData->Increment(trigData);
+ }
AliHLTComponentBlockDataList blockData;
if (iResult>=0 && !bSkipDataProcessing)
AliHLTComponentBlockDataList blockData;
if (iResult>=0 && !bSkipDataProcessing)
// reset the internal EventData struct
FillEventData(fCurrentEventData);
// reset the internal EventData struct
FillEventData(fCurrentEventData);
+
+ // reset the active triggers
+ if (fpCTPData) fpCTPData->SetTriggers(0);