]>
Commit | Line | Data |
---|---|---|
88f843f1 | 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) {} | |
79e35bac | 32 | virtual ~AliTrigDigitalCircuit(); |
88f843f1 | 33 | |
79e35bac | 34 | virtual Bool_t Connect(Int_t output, AliTrigDevice *other, Int_t at_input); |
35 | virtual Bool_t Response(Int_t output); | |
88f843f1 | 36 | // Get/Set inputs |
79e35bac | 37 | Bool_t GetInputValue(Int_t input) const {return fInputs.TestBitNumber(input);} |
88f843f1 | 38 | virtual void ResetInputs() {fInputs.ResetAllBits();} |
79e35bac | 39 | virtual Bool_t SetInputType(Int_t /*input*/, const char */*classname*/) {return kFALSE;} |
40 | virtual Bool_t SetInputValue(Int_t input, Bool_t value) {fInputs.SetBitNumber(input,value); return kTRUE;} | |
41 | virtual Bool_t SetInputValue(Int_t /*input*/, AliTrigEvent */*signal*/) {return kFALSE;} | |
88f843f1 | 42 | private: |
43 | // Circuit response function. | |
79e35bac | 44 | AliTrigDigitalCircuit(const AliTrigDigitalCircuit &other); |
45 | AliTrigDigitalCircuit &operator=(const AliTrigDigitalCircuit &other); | |
88f843f1 | 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 | ClassDef(AliTrigDigitalCircuit,1) // Base class for digital circuits | |
54 | }; | |
55 | #endif |