corrected TRD/TOF MV position
[u/mrichter/AliRoot.git] / TRIGGER / AliTrigEvent.h
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   AliTrigEvent() : TNamed() {}
34   AliTrigEvent(const char *name) : TNamed(name,"") {}
35   AliTrigEvent(const AliTrigEvent &other) : TNamed(other) {}
36   virtual ~AliTrigEvent() {}
37
38   AliTrigEvent             &operator=(const AliTrigEvent &other);
39   void                      Activate(Bool_t flag);
40   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   virtual Bool_t            SetType(const char */*classname*/) {return kTRUE;}
45   virtual const char       *GetType() const {return NULL;}
46      
47   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   AliTrigEventWithMask() : AliTrigEvent(), fValue() {}
60   AliTrigEventWithMask(const char *name) : AliTrigEvent(name), fValue() {}
61   AliTrigEventWithMask(const AliTrigEventWithMask &other);
62   virtual ~AliTrigEventWithMask() {}
63   
64   AliTrigEventWithMask   &operator=(const AliTrigEventWithMask &other);
65   virtual Bool_t            ImportData(AliTrigEvent *source);
66
67   TBits                    *GetValue() const {return fValue;}
68   void                      SetValue(TBits *value);
69
70 private:
71   TBits                    *fValue;  // Mask value
72      
73   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   AliTrigEventWithObject() : AliTrigEvent(), fValue(0), fType() {}
85   AliTrigEventWithObject(const char *name, const char *classname);
86   AliTrigEventWithObject(const AliTrigEventWithObject &other);
87   virtual ~AliTrigEventWithObject() {}
88   
89   AliTrigEventWithObject   &operator=(const AliTrigEventWithObject &other);
90   virtual Bool_t            ImportData(AliTrigEvent *source);
91   virtual const char       *GetType() const {return fType;}
92   virtual Bool_t            SetType(const char *classname);
93   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   ClassDef(AliTrigEventWithObject,1)  // Signal embedding an object.
101 };
102
103 #endif