Interfaced with new mapping for copy cards & cleaning (Christian)
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerElectronics.h
1 #ifndef ALIMUONTRIGGERELECTRONICS_H
2 #define ALIMUONTRIGGERELECTRONICS_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
8 /// \ingroup sim 
9 /// \class AliMUONTriggerElectronics
10 /// \brief Manager class for muon trigger electronics
11 ///
12 /// Client of trigger board classes
13 ///
14 /// \author Rachid Guernane (LPCCFd)
15
16 #ifndef ROOT_TObject
17 #  include "TObject.h"
18 #endif
19
20 #ifndef ROOT_TString
21 #  include "TString.h"
22 #endif
23
24 class AliMUONTriggerCrate;
25 class AliMUONCalibrationData;
26 class AliMUONGlobalTriggerBoard;
27 class AliMUONTriggerCrateStore;
28 class AliMUONVTriggerStore;
29 class AliMUONVDigitStore;
30
31 class AliMUONTriggerElectronics : public TObject
32 {
33    public:
34       AliMUONTriggerElectronics(AliMUONCalibrationData* calibData=0);
35
36       virtual ~AliMUONTriggerElectronics();
37
38       virtual void Factory(AliMUONCalibrationData* calibData);
39       void LoadMasks(AliMUONCalibrationData* calibData);
40
41       virtual void Feed(UShort_t pattern[2][4]);
42                   virtual void Feed(const AliMUONVDigitStore& digitStore);
43       virtual void Reset();
44
45       virtual void Scan(Option_t *option);
46
47       virtual void LocalResponse();
48       virtual void RegionalResponse();
49       virtual void GlobalResponse();
50
51       virtual void DumpOS();
52
53       virtual void Digits2Trigger(const AliMUONVDigitStore& digitStore,
54                                   AliMUONVTriggerStore& triggerStore);
55
56
57       AliMUONTriggerCrateStore* GetCrateStore() {return fCrates;}
58
59    private:
60       /// Not implemented
61       AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
62       /// Not implemented
63       AliMUONTriggerElectronics&  operator = (const AliMUONTriggerElectronics& right);
64      
65       /// set copy card array
66       void SetCopyInput();
67
68    private:
69       TList*                     fCopyXInput[2];         ///< list of copy X input from local to local board
70       TList*                     fCopyYInput[2];         ///< list of copy Y input from local to local board
71       AliMUONTriggerCrateStore  *fCrates;             ///< Crate array
72       AliMUONGlobalTriggerBoard *fGlobalTriggerBoard; ///< Global trigger board
73       
74    ClassDef(AliMUONTriggerElectronics,4)
75 };
76 #endif