--- /dev/null
+#ifndef ALITRIGEVENT_H
+#define ALITRIGEVENT_H
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+/* $Id$ */
+// Author: Andrei Gheata, 28/07/2009
+
+//==============================================================================
+// AliTrigEvent - Base class for generic information exchanged by a trigger
+// device. Trigger inputs and outputs are represented and
+// handled via AliTrigEvent objects. Trigger events are typically
+// wrappers for the information exchanged on a single I/O slot
+// or a group of correlated inputs.
+//==============================================================================
+
+#ifndef ROOT_TObject
+#include "TObject.h"
+#endif
+
+class TClass;
+class AliTrigEvent : public TObject {
+
+public:
+enum ETrigSignalFlags {
+ kActive = BIT(14)
+}
+
+ AliTrigEvent() : TObject {}
+ virtual ~AliTrigEvent() {}
+
+ void Activate(Bool_t flag);
+ Bool_t IsActive() const {return TObject::TestBit(kActive);}
+
+ // Import data from a source signal. Has to be implemented by derived signals.
+ virtual Bool_t ImportData(AliTrigEvent *source) = 0;
+ virtual Bool_t SetType(const char *classname) {return kTRUE;}
+ virtual TClass *GetType() {return NULL;}
+
+ ClassDef(AliTrigEvent,1) // Generic event embedding data.
+};
+
+
+//==============================================================================
+// AliTrigEventWithMask - Event embedding a bit mask as TBits
+//
+//==============================================================================
+class TBits;
+class AliTrigEventWithMask : public AliTrigEvent {
+
+public:
+ AliTrigEventWithMask() : AliTrigEvent(), fValue() {}
+ virtual ~AliTrigEventWithMask() {}
+
+ virtual Bool_t ImportData(AliTrigEvent *source);
+
+ const TBits &GetValue() const {return fValue;}
+ void SetValue(const TBits &value) {fValue = value;}
+
+private:
+ TBits fValue; // Mask value
+
+ ClassDef(AliTrigEventWithMask,1) // Signal embedding a TBits object.
+};
+
+//==============================================================================
+// AliTrigEventWithObject - Event embedding a TObject
+//
+//==============================================================================
+
+class TClass;
+class AliTrigEventWithObject : public AliTrigEvent {
+
+public:
+ AliTrigEventWithObject() : AliTrigEvent(), fValue(0) {}
+ AliTrigEventWithObject(const char *classname);
+ AliTrigEventWithObject(const AliTrigEventWithObject &other);
+ virtual ~AliTrigEventWithObject() {}
+
+ AliTrigEventWithObject &operator=(const AliTrigEventWithObject &other);
+ virtual Bool_t ImportData(AliTrigEvent *source);
+ virtual TClass *GetType() const {return fType;}
+ virtual Bool_t SetType(const char *classname);
+ TObject *GetValue() const {return fValue;}
+ Bool_t SetValue(TObject *value);
+
+private:
+ TObject *fValue; // Embedded object
+ TClass *fType; //! Object type
+
+ ClassDef(AliTrigEventWithObject,1) // Signal embedding an object.
+};
+
+#endif