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, UInt_t output) : TNamed(name, ""), fFeeder(feeder), fOutput(output), fNclients(0), fArraySize(0), fInputs(0), fDevices(0) {}
27 AliTrigConnector(const AliTrigConnector &other);
28 virtual ~AliTrigConnector();
30 AliTrigConnector &operator=(const AliTrigConnector &other);
32 // Connect a client input.
33 void Connect(AliTrigDevice *client, UInt_t input);
35 virtual void Print(Option_t *option="") const;
37 // Transmit the feeder signal to all connected inputs. Different device types
38 // call different Transmit() methods.
39 Bool_t Transmit(Bool_t value);
40 Bool_t Transmit(AliTrigEvent *event);
43 AliTrigDevice *fFeeder; // Feeder device
44 UInt_t fOutput; // Output slot index for the feeder
45 Int_t fNclients; // Number of clients
46 Int_t fArraySize; // Size of the clients array
47 UInt_t *fInputs; //[fArraySize] Array of input slot indices
48 TObjArray *fDevices; // Array of client devices
50 ClassDef(AliTrigConnector,1) // Class representing a connector between devices.