AliHLTCTPData();
/// standard constructor including initialization from CTP_TRIGGER_CLASS
AliHLTCTPData(const char* parameter);
+ /// copy constructor
+ AliHLTCTPData(const AliHLTCTPData&);
+ ///assignment operator
+ AliHLTCTPData& operator=(const AliHLTCTPData&);
/// destructor
virtual ~AliHLTCTPData();
+ /// Add counters
+ AliHLTCTPData& operator += (const AliHLTCTPData&);
+ /// Add counters
+ AliHLTCTPData operator + (const AliHLTCTPData&) const;
+
+ /// Subtract counters
+ AliHLTCTPData& operator -= (const AliHLTCTPData&);
+ /// Subtract counters
+ AliHLTCTPData operator - (const AliHLTCTPData&) const;
+
/**
* Init the class ids and mapping from the CTP_TRIGGER_CLASS parameter.
* The general format of the parameter is as follows:
*/
int InitCTPTriggerClasses(const char* ctpString);
+ /// etract the active trigger mask from the trigger data
+ static AliHLTUInt64_t ActiveTriggers(const AliHLTComponentTriggerData& trigData);
+
+ /**
+ * Evaluate an expression of trigger class ids with respect to the trigger mask.
+ */
+ 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, AliHLTComponentTriggerData& trigData) const;
+ 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);
+ }
/**
* Reset all counters
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;
protected:
private:
- /// copy constructor prohibited
- AliHLTCTPData(const AliHLTCTPData&);
- ///assignment operator prohibited
- AliHLTCTPData& operator=(const AliHLTCTPData&);
+ /**
+ * Add counters.
+ * Base methods for operators.
+ * @param src instance to add
+ * @param factor +1/-1 for addition/subtraction
+ * @skipped target to get the numner of not matching class names
+ */
+ 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
- ClassDef(AliHLTCTPData, 0)
+ ClassDef(AliHLTCTPData, 1)
};
#endif