]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerElectronics.h
Adding mask handling, where masks are read from the CDB
[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 //*-- Author: Rachid Guernane (LPCCFd)
9
10 #ifndef ROOT_TTask
11 #  include "TTask.h"
12 #endif
13
14 #ifndef ROOT_TArrayI
15 #  include "TArrayI.h"
16 #endif
17
18 #ifndef ROOT_TString
19 #  include "TString.h"
20 #endif
21
22 class AliMUONTriggerCrate;
23 class AliMUONCalibrationData;
24 class AliMUONData;
25 class AliMUONGlobalTriggerBoard;
26 class TClonesArray;
27
28 class AliMUONTriggerElectronics : public TTask
29 {
30    public:
31       AliMUONTriggerElectronics(AliMUONData* Data = 0, AliMUONCalibrationData* =0);
32       virtual ~AliMUONTriggerElectronics();
33
34       virtual void Exec(Option_t*);
35       
36 //    CRATE CONFIG FROM ASCII FILE
37       virtual void SetDataSource(TString SourceFile = "$ALICE_ROOT/MUON/data/CRATE.TXT") 
38       {fSourceFileName = SourceFile;}
39
40       virtual void Factory(AliMUONCalibrationData*);
41       void LoadMasks(AliMUONCalibrationData*);
42       virtual void AddCrate(char *name);
43
44       virtual AliMUONTriggerCrate* Crate(char *name);
45
46       virtual void Feed();
47       virtual void Feed(UShort_t pattern[2][4]);
48                 virtual void FeedM();
49
50       virtual void BoardName(Int_t ix, Int_t iy, char *name);
51
52       virtual void Reset();
53
54       virtual void Scan(Option_t *option);
55
56       virtual void LocalResponse();
57       virtual void RegionalResponse();
58       virtual void GlobalResponse();
59
60       virtual void BuildName(Int_t icirc, char name[20]);
61
62       virtual void DumpOS();
63
64       virtual void Digits2Trigger();
65       virtual void Trigger();
66       virtual void ClearDigitNumbers();
67       virtual void DigitFiredCircuit(Int_t circuit, Int_t cathode, Int_t chamber, Int_t digit);
68
69 //      virtual AliMUONData* GetMUONData() {return fMUONData;}
70
71    protected:
72       AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
73       AliMUONTriggerElectronics&  operator = (const AliMUONTriggerElectronics& right);
74      
75    private:
76       TString                    fSourceFileName;
77       TClonesArray              *fCrates;
78       AliMUONGlobalTriggerBoard *fGlobalTriggerBoard;
79       Int_t                      fNCrates;
80       static const Int_t         fgkNCrates;
81       UShort_t                   fLocal[16][16];     // 16 crates of 16 LB
82       UShort_t                   fRegional[16];
83       UShort_t                   fGlobal;
84       AliMUONData               *fMUONData;          //! Data container for MUON subsystem 
85       TArrayI                    fDigitNumbers[234]; //! The digit number that fired a circuit.
86       char                     **fCrateMap;
87       Int_t                      fBoardMap[234];
88
89    ClassDef(AliMUONTriggerElectronics,1)
90 };
91 #endif