Some of the trigger base classes. Steering part not yet in.
[u/mrichter/AliRoot.git] / TRIGGER / AliTrigConnector.h
CommitLineData
88f843f1 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 */
5
6/* $Id$ */
7// Author: Andrei Gheata, 28/07/2009
8
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//==============================================================================
13
14#ifndef ROOT_TNamed
15#include "TNamed.h"
16#endif
17
18class TObjArray;
19class AliTrigDevice;
20class AliTrigEvent;
21
22class AliTrigConnector : public TNamed {
23
24public:
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();
29
30 AliTrigConnector &operator=(const AliTrigConnector &other);
31
32 // Connect a client input.
33 void Connect(AliTrigDevice *client, UInt_t input);
34
35 virtual void Print(Option_t *option="") const;
36
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);
41
42private:
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
49
50 ClassDef(AliTrigConnector,1) // Class representing a connector between devices.
51};
52#endif