1012a67616a6265628d5e3c15668e9f2bfb444b1
[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_TTask
17 #  include "TTask.h"
18 #endif
19
20 #ifndef ROOT_TArrayI
21 #  include "TArrayI.h"
22 #endif
23
24 #ifndef ROOT_TString
25 #  include "TString.h"
26 #endif
27
28 class AliMUONTriggerCrate;
29 class AliMUONCalibrationData;
30 class AliMUONData;
31 class AliMUONGlobalTriggerBoard;
32 class AliMUONTriggerCrateStore;
33 class AliMUONLocalTrigger;
34 class AliMUONGlobalTrigger;
35
36 class AliMUONTriggerElectronics : public TTask
37 {
38    public:
39       AliMUONTriggerElectronics(AliMUONData* data = 0, 
40                                 AliMUONCalibrationData* calibData=0);
41       virtual ~AliMUONTriggerElectronics();
42
43       virtual void Exec(Option_t*);
44       
45       /// Set Crate config from ascii file
46       virtual void SetDataSource(TString SourceFile = 
47                                  "$ALICE_ROOT/MUON/mapping/data/stationTrigger/crate.dat") 
48       {fSourceFileName = SourceFile;}
49
50       virtual void Factory(AliMUONCalibrationData* calibData);
51       void LoadMasks(AliMUONCalibrationData* calibData);
52
53       virtual void Feed(UShort_t pattern[2][4]);
54                   virtual void FeedM();
55                   
56       virtual void Reset();
57
58       virtual void Scan(Option_t *option);
59
60       virtual void LocalResponse();
61       virtual void RegionalResponse();
62       virtual void GlobalResponse();
63
64       virtual void DumpOS();
65
66       virtual void Digits2Trigger();
67       virtual void Trigger();
68       virtual void ClearDigitNumbers();
69       virtual void DigitFiredCircuit(Int_t circuit, Int_t cathode, Int_t chamber, Int_t digit);
70
71    private:
72       AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
73       AliMUONTriggerElectronics&  operator = (const AliMUONTriggerElectronics& right);
74      
75    private:
76       TString                    fSourceFileName;     ///< Source file
77       AliMUONTriggerCrateStore  *fCrates;             ///< Crate array
78       AliMUONGlobalTriggerBoard *fGlobalTriggerBoard; ///< Global trigger board
79       AliMUONData               *fMUONData;           //!< Data container for MUON subsystem 
80       TArrayI                    fDigitNumbers[235];  //!< The digit number that fired a circuit.
81
82       AliMUONLocalTrigger*       fLocalTrigger;       //!< pointer for local trigger container
83       AliMUONGlobalTrigger*      fGlobalTrigger;      //!< pointer for global trigger container
84
85    ClassDef(AliMUONTriggerElectronics,2)
86 };
87 #endif