ROOT logo
#ifndef ALITRIGMODULE_H
#define ALITRIGMODULE_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// Author: Andrei Gheata, 27/07/2009

//==============================================================================
//   AliTrigModule - Base class for trigger devices handling generic events. 
//      A module has arbitrary number of inputs and outputs. Derived classes must 
//      implement CreateDevice() and Trigger() metods.
//==============================================================================

#ifndef ALITRIGDEVICE_H
#include "AliTrigDevice.h"
#endif

class TObjArray;
class AliTrigEvent;

class AliTrigModule : public AliTrigDevice {

public:
  AliTrigModule() : AliTrigDevice(), fInputs(0), fOutputs(0), fOutputConnectors(0) {}
  AliTrigModule(const char *name, Int_t ninputs, Int_t noutputs) : AliTrigDevice(name, ninputs, noutputs), fInputs(0), fOutputs(0), fOutputConnectors(0) {}
  virtual ~AliTrigModule();

  virtual Bool_t            Connect(Int_t output, AliTrigDevice *other, Int_t at_input);
  virtual Bool_t            CreateDevice() = 0;
  void                      DefineInput(Int_t islot, AliTrigEvent *event);
  void                      DefineOutput(Int_t islot, AliTrigEvent *event);
  virtual Bool_t            Response(Int_t output);
  // Get/Set inputs
  AliTrigEvent             *GetInputValue(Int_t input) const;
  AliTrigEvent             *GetOutputValue(Int_t output) const;
  virtual void              ResetInputs();
  virtual Bool_t            SetInputType(Int_t /*input*/, const char */*classname*/) {return kFALSE;}
  virtual Bool_t            SetInputValue(Int_t /*input*/, Bool_t /*value*/)         {return kFALSE;}
  virtual Bool_t            SetInputValue(Int_t input, AliTrigEvent *event);
private:
   // Circuit response function. 
  AliTrigModule(const AliTrigModule &other);
  AliTrigModule &operator=(const AliTrigModule &other);
  virtual Bool_t            Trigger(Int_t ioutput) = 0;
   
protected:
  TObjArray                *fInputs;           // Array of input events
  TObjArray                *fOutputs;          // Array of output events
  TObjArray                *fOutputConnectors; // Array of output connectors
   
  ClassDef(AliTrigModule,1)  // Base class for a trigger module handling events
};
#endif
 AliTrigModule.h:1
 AliTrigModule.h:2
 AliTrigModule.h:3
 AliTrigModule.h:4
 AliTrigModule.h:5
 AliTrigModule.h:6
 AliTrigModule.h:7
 AliTrigModule.h:8
 AliTrigModule.h:9
 AliTrigModule.h:10
 AliTrigModule.h:11
 AliTrigModule.h:12
 AliTrigModule.h:13
 AliTrigModule.h:14
 AliTrigModule.h:15
 AliTrigModule.h:16
 AliTrigModule.h:17
 AliTrigModule.h:18
 AliTrigModule.h:19
 AliTrigModule.h:20
 AliTrigModule.h:21
 AliTrigModule.h:22
 AliTrigModule.h:23
 AliTrigModule.h:24
 AliTrigModule.h:25
 AliTrigModule.h:26
 AliTrigModule.h:27
 AliTrigModule.h:28
 AliTrigModule.h:29
 AliTrigModule.h:30
 AliTrigModule.h:31
 AliTrigModule.h:32
 AliTrigModule.h:33
 AliTrigModule.h:34
 AliTrigModule.h:35
 AliTrigModule.h:36
 AliTrigModule.h:37
 AliTrigModule.h:38
 AliTrigModule.h:39
 AliTrigModule.h:40
 AliTrigModule.h:41
 AliTrigModule.h:42
 AliTrigModule.h:43
 AliTrigModule.h:44
 AliTrigModule.h:45
 AliTrigModule.h:46
 AliTrigModule.h:47
 AliTrigModule.h:48
 AliTrigModule.h:49
 AliTrigModule.h:50
 AliTrigModule.h:51
 AliTrigModule.h:52
 AliTrigModule.h:53