Line data Source code
1 : #ifndef ALITRIGDIGITALCIRCUIT_H
2 : #define ALITRIGDIGITALCIRCUIT_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, 27/07/2009
8 :
9 : //==============================================================================
10 : // AliTrigDigitalCircuit - Base class for digital circuits having N Boolean
11 : // inputs and one Boolean output. Derived classes must implement the pure
12 : // virtual method Trigger() that will return the Boolean response
13 : // of the circuit as function of the inputs.
14 : //==============================================================================
15 :
16 : #ifndef ALITRIGDEVICE_H
17 : #include "AliTrigDevice.h"
18 : #endif
19 :
20 : #ifndef ROOT_TBits
21 : #include "TBits.h"
22 : #endif
23 :
24 : class AliTrigEvent;
25 : class AliTrigConnector;
26 :
27 : class AliTrigDigitalCircuit : public AliTrigDevice {
28 :
29 : public:
30 : AliTrigDigitalCircuit() : AliTrigDevice(), fLastOutput(kFALSE), fConnector(0), fInputs() {}
31 : AliTrigDigitalCircuit(const char *name, UInt_t ninputs) : AliTrigDevice(name, ninputs, 1), fLastOutput(kFALSE), fConnector(0), fInputs(ninputs) {}
32 : virtual ~AliTrigDigitalCircuit();
33 :
34 : virtual Bool_t Connect(Int_t output, AliTrigDevice *other, Int_t at_input);
35 : virtual Bool_t Response(Int_t output);
36 : // Get/Set inputs
37 0 : Bool_t GetInputValue(Int_t input) const {return fInputs.TestBitNumber(input);}
38 0 : virtual void ResetInputs() {fInputs.ResetAllBits();}
39 0 : virtual Bool_t SetInputType(Int_t /*input*/, const char */*classname*/) {return kFALSE;}
40 0 : virtual Bool_t SetInputValue(Int_t input, Bool_t value) {fInputs.SetBitNumber(input,value); return kTRUE;}
41 0 : virtual Bool_t SetInputValue(Int_t /*input*/, AliTrigEvent */*signal*/) {return kFALSE;}
42 : private:
43 : // Circuit response function.
44 : AliTrigDigitalCircuit(const AliTrigDigitalCircuit &other);
45 : AliTrigDigitalCircuit &operator=(const AliTrigDigitalCircuit &other);
46 : virtual Bool_t Trigger() = 0;
47 :
48 : protected:
49 : Bool_t fLastOutput; // Output recorded after the last Response() call.
50 : AliTrigConnector *fConnector; // Connector for the circuit output
51 : TBits fInputs;
52 :
53 12 : ClassDef(AliTrigDigitalCircuit,1) // Base class for digital circuits
54 : };
55 : #endif
|