ROOT logo
#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 "TNamed.h"
#endif

#ifndef ROOT_TString
#include "TString.h"
#endif

class TClass;
class AliTrigEvent : public TNamed {

public:
enum ETrigSignalFlags {
  kActive = BIT(14)
};
  
  AliTrigEvent() : TNamed() {}
  AliTrigEvent(const char *name) : TNamed(name,"") {}
  AliTrigEvent(const AliTrigEvent &other) : TNamed(other) {}
  virtual ~AliTrigEvent() {}

  AliTrigEvent             &operator=(const AliTrigEvent &other);
  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 const char       *GetType() const {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() {}
  AliTrigEventWithMask(const char *name) : AliTrigEvent(name), fValue() {}
  AliTrigEventWithMask(const AliTrigEventWithMask &other);
  virtual ~AliTrigEventWithMask() {}
  
  AliTrigEventWithMask   &operator=(const AliTrigEventWithMask &other);
  virtual Bool_t            ImportData(AliTrigEvent *source);

  TBits                    *GetValue() const {return fValue;}
  void                      SetValue(TBits *value);

private:
  TBits                    *fValue;  // Mask value
     
  ClassDef(AliTrigEventWithMask,1)  // Signal embedding a TBits object.
};

//==============================================================================
//   AliTrigEventWithObject - Event embedding a TObject
// 
//==============================================================================

class AliTrigEventWithObject : public AliTrigEvent {

public:
  AliTrigEventWithObject() : AliTrigEvent(), fValue(0), fType() {}
  AliTrigEventWithObject(const char *name, const char *classname);
  AliTrigEventWithObject(const AliTrigEventWithObject &other);
  virtual ~AliTrigEventWithObject() {}
  
  AliTrigEventWithObject   &operator=(const AliTrigEventWithObject &other);
  virtual Bool_t            ImportData(AliTrigEvent *source);
  virtual const char       *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
  TString                   fType;   // Object type
     
  ClassDef(AliTrigEventWithObject,1)  // Signal embedding an object.
};

#endif
 AliTrigEvent.h:1
 AliTrigEvent.h:2
 AliTrigEvent.h:3
 AliTrigEvent.h:4
 AliTrigEvent.h:5
 AliTrigEvent.h:6
 AliTrigEvent.h:7
 AliTrigEvent.h:8
 AliTrigEvent.h:9
 AliTrigEvent.h:10
 AliTrigEvent.h:11
 AliTrigEvent.h:12
 AliTrigEvent.h:13
 AliTrigEvent.h:14
 AliTrigEvent.h:15
 AliTrigEvent.h:16
 AliTrigEvent.h:17
 AliTrigEvent.h:18
 AliTrigEvent.h:19
 AliTrigEvent.h:20
 AliTrigEvent.h:21
 AliTrigEvent.h:22
 AliTrigEvent.h:23
 AliTrigEvent.h:24
 AliTrigEvent.h:25
 AliTrigEvent.h:26
 AliTrigEvent.h:27
 AliTrigEvent.h:28
 AliTrigEvent.h:29
 AliTrigEvent.h:30
 AliTrigEvent.h:31
 AliTrigEvent.h:32
 AliTrigEvent.h:33
 AliTrigEvent.h:34
 AliTrigEvent.h:35
 AliTrigEvent.h:36
 AliTrigEvent.h:37
 AliTrigEvent.h:38
 AliTrigEvent.h:39
 AliTrigEvent.h:40
 AliTrigEvent.h:41
 AliTrigEvent.h:42
 AliTrigEvent.h:43
 AliTrigEvent.h:44
 AliTrigEvent.h:45
 AliTrigEvent.h:46
 AliTrigEvent.h:47
 AliTrigEvent.h:48
 AliTrigEvent.h:49
 AliTrigEvent.h:50
 AliTrigEvent.h:51
 AliTrigEvent.h:52
 AliTrigEvent.h:53
 AliTrigEvent.h:54
 AliTrigEvent.h:55
 AliTrigEvent.h:56
 AliTrigEvent.h:57
 AliTrigEvent.h:58
 AliTrigEvent.h:59
 AliTrigEvent.h:60
 AliTrigEvent.h:61
 AliTrigEvent.h:62
 AliTrigEvent.h:63
 AliTrigEvent.h:64
 AliTrigEvent.h:65
 AliTrigEvent.h:66
 AliTrigEvent.h:67
 AliTrigEvent.h:68
 AliTrigEvent.h:69
 AliTrigEvent.h:70
 AliTrigEvent.h:71
 AliTrigEvent.h:72
 AliTrigEvent.h:73
 AliTrigEvent.h:74
 AliTrigEvent.h:75
 AliTrigEvent.h:76
 AliTrigEvent.h:77
 AliTrigEvent.h:78
 AliTrigEvent.h:79
 AliTrigEvent.h:80
 AliTrigEvent.h:81
 AliTrigEvent.h:82
 AliTrigEvent.h:83
 AliTrigEvent.h:84
 AliTrigEvent.h:85
 AliTrigEvent.h:86
 AliTrigEvent.h:87
 AliTrigEvent.h:88
 AliTrigEvent.h:89
 AliTrigEvent.h:90
 AliTrigEvent.h:91
 AliTrigEvent.h:92
 AliTrigEvent.h:93
 AliTrigEvent.h:94
 AliTrigEvent.h:95
 AliTrigEvent.h:96
 AliTrigEvent.h:97
 AliTrigEvent.h:98
 AliTrigEvent.h:99
 AliTrigEvent.h:100
 AliTrigEvent.h:101
 AliTrigEvent.h:102
 AliTrigEvent.h:103