]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONTriggerElectronics.h
Coding conventions (Rachid)
[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 TClonesArray;
33
34 class AliMUONTriggerElectronics : public TTask
35 {
36    public:
37       AliMUONTriggerElectronics(AliMUONData* data = 0, 
38                                 AliMUONCalibrationData* calibData=0);
39       virtual ~AliMUONTriggerElectronics();
40
41       virtual void Exec(Option_t*);
42       
43 //    CRATE CONFIG FROM ASCII FILE
44       virtual void SetDataSource(TString SourceFile = "$ALICE_ROOT/MUON/data/CRATE.TXT") 
45       {fSourceFileName = SourceFile;}
46
47       virtual void Factory(AliMUONCalibrationData* calibData);
48       void LoadMasks(AliMUONCalibrationData* calibData);
49       virtual void AddCrate(char *name);
50
51       virtual AliMUONTriggerCrate* Crate(char *name);
52
53       virtual void Feed();
54       virtual void Feed(UShort_t pattern[2][4]);
55                 virtual void FeedM();
56
57       virtual void BoardName(Int_t ix, Int_t iy, char *name);
58
59       virtual void Reset();
60
61       virtual void Scan(Option_t *option);
62
63       virtual void LocalResponse();
64       virtual void RegionalResponse();
65       virtual void GlobalResponse();
66
67       virtual void BuildName(Int_t icirc, char name[20]);
68
69       virtual void DumpOS();
70
71       virtual void Digits2Trigger();
72       virtual void Trigger();
73       virtual void ClearDigitNumbers();
74       virtual void DigitFiredCircuit(Int_t circuit, Int_t cathode, Int_t chamber, Int_t digit);
75
76    protected:
77       AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
78       AliMUONTriggerElectronics&  operator = (const AliMUONTriggerElectronics& right);
79      
80    private:
81       TString                    fSourceFileName;     // Source file
82       TClonesArray              *fCrates;             // Crate array
83       AliMUONGlobalTriggerBoard *fGlobalTriggerBoard; // Global trigger board
84       Int_t                      fNCrates;            // Number of trigger crates
85       static const Int_t         fgkNCrates;          // Number of trigger crates (const)
86       UShort_t                   fLocal[16][16];      // 16 crates of 16 LB
87       UShort_t                   fRegional[16];       // 16 RB
88       UShort_t                   fGlobal;             // 1 GB
89       AliMUONData               *fMUONData;           //! Data container for MUON subsystem 
90       TArrayI                    fDigitNumbers[234];  //! The digit number that fired a circuit.
91       char                     **fCrateMap;           // Map crate name <-> crate number
92       Int_t                      fBoardMap[234];      // Map board number <-> slot number
93
94    ClassDef(AliMUONTriggerElectronics,1)
95 };
96 #endif