1 #ifndef ALITRIGCONNECTOR_H
2 #define ALITRIGCONNECTOR_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 // Author: Andrei Gheata, 28/07/2009
9 //==============================================================================
10 // AliTrigConnector - Class representing a connector between an output of a
11 // device (feeder) and an arbitrary number of inputs of other devices.
12 //==============================================================================
22 class AliTrigConnector : public TNamed {
25 AliTrigConnector() : TNamed(), fFeeder(0), fOutput(0), fNclients(0), fArraySize(0), fInputs(0), fDevices(0) {}
26 AliTrigConnector(const char *name, AliTrigDevice *feeder, Int_t output) : TNamed(name, ""), fFeeder(feeder), fOutput(output), fNclients(0), fArraySize(0), fInputs(0), fDevices(0) {}
27 virtual ~AliTrigConnector();
30 // Connect a client input.
31 void Connect(AliTrigDevice *client, Int_t input);
33 virtual void Print(Option_t *option="") const;
35 // Transmit the feeder signal to all connected inputs. Different device types
36 // call different Transmit() methods.
37 Bool_t Transmit(Bool_t value);
38 Bool_t Transmit(AliTrigEvent *event);
41 AliTrigConnector(const AliTrigConnector &other);
42 AliTrigConnector &operator=(const AliTrigConnector &other);
44 AliTrigDevice *fFeeder; // Feeder device
45 Int_t fOutput; // Output slot index for the feeder
46 Int_t fNclients; // Number of clients
47 Int_t fArraySize; // Size of the clients array
48 Int_t *fInputs; //[fArraySize] Array of input slot indices
49 TObjArray *fDevices; // Array of client devices
51 ClassDef(AliTrigConnector,1) // Class representing a connector between devices.