1 #ifndef ALITRIGMODULE_H
2 #define ALITRIGMODULE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 // Author: Andrei Gheata, 27/07/2009
8 //==============================================================================
9 // AliTrigModule - Base class for trigger devices handling generic events.
10 // A module has arbitrary number of inputs and outputs. Derived classes must
11 // implement CreateDevice() and Trigger() metods.
12 //==============================================================================
14 #ifndef ALITRIGDEVICE_H
15 #include "AliTrigDevice.h"
21 class AliTrigModule : public AliTrigDevice {
24 AliTrigModule() : AliTrigDevice(), fInputs(0), fOutputs(0), fOutputConnectors(0) {}
25 AliTrigModule(const char *name, Int_t ninputs, Int_t noutputs) : AliTrigDevice(name, ninputs, noutputs), fInputs(0), fOutputs(0), fOutputConnectors(0) {}
26 virtual ~AliTrigModule();
28 virtual Bool_t Connect(Int_t output, AliTrigDevice *other, Int_t at_input);
29 virtual Bool_t CreateDevice() = 0;
30 void DefineInput(Int_t islot, AliTrigEvent *event);
31 void DefineOutput(Int_t islot, AliTrigEvent *event);
32 virtual Bool_t Response(Int_t output);
34 AliTrigEvent *GetInputValue(Int_t input) const;
35 AliTrigEvent *GetOutputValue(Int_t output) const;
36 virtual void ResetInputs();
37 virtual Bool_t SetInputType(Int_t /*input*/, const char */*classname*/) {return kFALSE;}
38 virtual Bool_t SetInputValue(Int_t /*input*/, Bool_t /*value*/) {return kFALSE;}
39 virtual Bool_t SetInputValue(Int_t input, AliTrigEvent *event);
41 // Circuit response function.
42 AliTrigModule(const AliTrigModule &other);
43 AliTrigModule &operator=(const AliTrigModule &other);
44 virtual Bool_t Trigger(Int_t ioutput) = 0;
47 TObjArray *fInputs; // Array of input events
48 TObjArray *fOutputs; // Array of output events
49 TObjArray *fOutputConnectors; // Array of output connectors
51 ClassDef(AliTrigModule,1) // Base class for a trigger module handling events