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 */
9 /// \class AliMUONTriggerElectronics
10 /// \brief Manager class for muon trigger electronics
12 /// Client of trigger board classes
14 /// \author Rachid Guernane (LPCCFd)
28 class AliMUONTriggerCrate;
29 class AliMUONCalibrationData;
31 class AliMUONGlobalTriggerBoard;
34 class AliMUONTriggerElectronics : public TTask
37 AliMUONTriggerElectronics(AliMUONData* data = 0,
38 AliMUONCalibrationData* calibData=0);
39 virtual ~AliMUONTriggerElectronics();
41 virtual void Exec(Option_t*);
43 // CRATE CONFIG FROM ASCII FILE
44 virtual void SetDataSource(TString SourceFile = "$ALICE_ROOT/MUON/data/CRATE.TXT")
45 {fSourceFileName = SourceFile;}
47 virtual void Factory(AliMUONCalibrationData* calibData);
48 void LoadMasks(AliMUONCalibrationData* calibData);
49 virtual void AddCrate(char *name);
51 virtual AliMUONTriggerCrate* Crate(char *name);
54 virtual void Feed(UShort_t pattern[2][4]);
57 virtual void BoardName(Int_t ix, Int_t iy, char *name);
61 virtual void Scan(Option_t *option);
63 virtual void LocalResponse();
64 virtual void RegionalResponse();
65 virtual void GlobalResponse();
67 virtual void BuildName(Int_t icirc, char name[20]);
69 virtual void DumpOS();
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);
77 AliMUONTriggerElectronics(const AliMUONTriggerElectronics& right);
78 AliMUONTriggerElectronics& operator = (const AliMUONTriggerElectronics& right);
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
94 ClassDef(AliMUONTriggerElectronics,1)