Line data Source code
1 : #ifndef ALITRIGEVENT_H
2 : #define ALITRIGEVENT_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : /* $Id$ */
7 : // Author: Andrei Gheata, 28/07/2009
8 :
9 : //==============================================================================
10 : // AliTrigEvent - Base class for generic information exchanged by a trigger
11 : // device. Trigger inputs and outputs are represented and
12 : // handled via AliTrigEvent objects. Trigger events are typically
13 : // wrappers for the information exchanged on a single I/O slot
14 : // or a group of correlated inputs.
15 : //==============================================================================
16 :
17 : #ifndef ROOT_TObject
18 : #include "TNamed.h"
19 : #endif
20 :
21 : #ifndef ROOT_TString
22 : #include "TString.h"
23 : #endif
24 :
25 : class TClass;
26 : class AliTrigEvent : public TNamed {
27 :
28 : public:
29 : enum ETrigSignalFlags {
30 : kActive = BIT(14)
31 : };
32 :
33 0 : AliTrigEvent() : TNamed() {}
34 0 : AliTrigEvent(const char *name) : TNamed(name,"") {}
35 0 : AliTrigEvent(const AliTrigEvent &other) : TNamed(other) {}
36 0 : virtual ~AliTrigEvent() {}
37 :
38 : AliTrigEvent &operator=(const AliTrigEvent &other);
39 : void Activate(Bool_t flag);
40 0 : Bool_t IsActive() const {return TObject::TestBit(kActive);}
41 :
42 : // Import data from a source signal. Has to be implemented by derived signals.
43 : virtual Bool_t ImportData(AliTrigEvent *source) = 0;
44 0 : virtual Bool_t SetType(const char */*classname*/) {return kTRUE;}
45 0 : virtual const char *GetType() const {return NULL;}
46 :
47 12 : ClassDef(AliTrigEvent,1) // Generic event embedding data.
48 : };
49 :
50 :
51 : //==============================================================================
52 : // AliTrigEventWithMask - Event embedding a bit mask as TBits
53 : //
54 : //==============================================================================
55 : class TBits;
56 : class AliTrigEventWithMask : public AliTrigEvent {
57 :
58 : public:
59 0 : AliTrigEventWithMask() : AliTrigEvent(), fValue() {}
60 0 : AliTrigEventWithMask(const char *name) : AliTrigEvent(name), fValue() {}
61 : AliTrigEventWithMask(const AliTrigEventWithMask &other);
62 0 : virtual ~AliTrigEventWithMask() {}
63 :
64 : AliTrigEventWithMask &operator=(const AliTrigEventWithMask &other);
65 : virtual Bool_t ImportData(AliTrigEvent *source);
66 :
67 0 : TBits *GetValue() const {return fValue;}
68 : void SetValue(TBits *value);
69 :
70 : private:
71 : TBits *fValue; // Mask value
72 :
73 12 : ClassDef(AliTrigEventWithMask,1) // Signal embedding a TBits object.
74 : };
75 :
76 : //==============================================================================
77 : // AliTrigEventWithObject - Event embedding a TObject
78 : //
79 : //==============================================================================
80 :
81 : class AliTrigEventWithObject : public AliTrigEvent {
82 :
83 : public:
84 0 : AliTrigEventWithObject() : AliTrigEvent(), fValue(0), fType() {}
85 : AliTrigEventWithObject(const char *name, const char *classname);
86 : AliTrigEventWithObject(const AliTrigEventWithObject &other);
87 0 : virtual ~AliTrigEventWithObject() {}
88 :
89 : AliTrigEventWithObject &operator=(const AliTrigEventWithObject &other);
90 : virtual Bool_t ImportData(AliTrigEvent *source);
91 0 : virtual const char *GetType() const {return fType;}
92 : virtual Bool_t SetType(const char *classname);
93 0 : TObject *GetValue() const {return fValue;}
94 : Bool_t SetValue(TObject *value);
95 :
96 : private:
97 : TObject *fValue; // Embedded object
98 : TString fType; // Object type
99 :
100 12 : ClassDef(AliTrigEventWithObject,1) // Signal embedding an object.
101 : };
102 :
103 : #endif
|