Adding PiKP-only histograms and eliminating a number of switches where histograms...
[u/mrichter/AliRoot.git] / MUON / AliMUONGlobalCrateConfig.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$ 
5
6 /// \ingroup calib
7 /// \class AliMUONGlobalCrateConfig
8 /// \brief The class defines the configuration of global crate
9 ///
10 /// \author Ch. Finck, Subatech Nantes
11
12 #ifndef ALI_MUON_GLOBAL_CRATE_CONFIG_H
13 #define ALI_MUON_GLOBAL_CRATE_CONFIG_H
14
15 #include <TNamed.h>
16 #include <TString.h>
17
18 class AliMUONGlobalCrateConfig : public  TNamed {
19
20   public:
21     AliMUONGlobalCrateConfig();
22     virtual ~AliMUONGlobalCrateConfig();
23     
24     // methods
25     Int_t ReadData(const TString& fileName = "");
26
27     // global crate enable
28           /// set global crate enbale
29     void SetGlobalCrateEnable(UInt_t enable) {fGlobalCrateEnable = enable;}
30          /// Get global crate enbale
31     UInt_t GetGlobalCrateEnable() const {return fGlobalCrateEnable;}
32     
33     // Jtag
34             /// Get Jtag board VME address
35     ULong_t GetJtagVmeAddr() const {return fJtagVmeAddr;}
36            /// Set Jtag board VME address   
37     void    SetJtagVmeAddr(ULong_t addr) {fJtagVmeAddr = addr;}
38     
39             /// Get Jtag board Clock Divider
40     UInt_t  GetJtagClockDiv() const {return fJtagClockDiv;}
41             /// Set Jtag board Clock Divider
42     void    SetJtagClockDiv(UInt_t clk) {fJtagClockDiv = clk;}
43     
44             /// Get Jtag board Rx Phase
45     UInt_t  GetJtagRxPhase() const {return fJtagRxPhase;}
46             /// Set Jtag board Rx Phase
47     void    SetJtagRxPhase(UInt_t rx) {fJtagRxPhase = rx;}
48
49             /// Get Jtag board Read out Delay
50     UInt_t  GetJtagRdDelay() const {return fJtagRdDelay;}
51             /// Set Jtag board Read out Delay
52     void    SetJtagRdDelay(UInt_t rd) {fJtagRdDelay = rd;}
53     
54             /// Get Jtag enabled lines
55     Bool_t GetEnableJtag(Int_t index) const;
56            /// Set Jtag enable word
57     void   SetEnableJtag(UChar_t en) {fEnableJtag = en;} 
58            /// Get Jtag enable word
59     UChar_t GetEnableJtag() const {return fEnableJtag;}  
60     
61            /// Get Jtag Crate names
62     TString GetJtagCrateName(Int_t jtagLine, Int_t index) const;
63            /// Set Jtag Crate names
64     void    SetJtagCrateName(Int_t index, TString name);
65     
66     // first Darc Board
67             /// Get First Darc board VME address
68     ULong_t GetFirstDarcVmeAddr() const        {return fFirstDarcVmeAddr;}
69             /// Get First Darc board VME address
70     void    SetFirstDarcVmeAddr(ULong_t addr)  {fFirstDarcVmeAddr = addr;}
71     
72             /// Get type for First Darc board   
73     Int_t   GetFirstDarcType() const           {return fFirstDarcType;}
74             /// Get type for First Darc board   
75     void    SetFirstDarcType(Int_t type)       {fFirstDarcType = type;}
76     
77             /// Get disable word for First Darc board   
78     UChar_t GetFirstDarcDisable() const         {return fFirstDarcDisable;} 
79             /// Get disable per regional crate for First Darc board   
80     Bool_t  GetFirstDarcDisable(Int_t iCrate) const   {return !((fFirstDarcDisable >> iCrate) & 0x1);} 
81             /// Set disable word for First Darc board   
82     void    SetFirstDarcDisable(UChar_t en)     {fFirstDarcDisable = en;} 
83     
84             /// Get L0 Delay for First Darc board   
85     UInt_t  GetFirstDarcL0Delay() const        {return fFirstDarcL0Delay;}
86             /// Set L0 Delay for First Darc board   
87     void    SetFirstDarcL0Delay(UInt_t delay)  {fFirstDarcL0Delay = delay;}
88     
89             /// Get L1 Time Out for First Darc board   
90     UInt_t  GetFirstDarcL1TimeOut() const      {return fFirstDarcL1TimeOut;}
91             /// Set L1 Time Out for First Darc board   
92     void    SetFirstDarcL1TimeOut(UInt_t time) {fFirstDarcL1TimeOut = time;}
93  
94             /// Get global L0  delay for First Darc board   
95     UInt_t  GetFirstDarcGlobalL0() const      {return fFirstDarcGlobalL0;}
96            /// set global L0  delay for First Darc board   
97     void    SetFirstDarcGlobalL0(UInt_t time) {fFirstDarcGlobalL0 = time;}
98            
99             /// Get configuration for First Darc board   
100     UInt_t  GetFirstDarcConfig() const      {return fFirstDarcConfig;}
101            /// set configuration for First Darc board   
102     void    SetFirstDarcConfig(UInt_t conf) {fFirstDarcConfig = conf;}   
103     
104     // second Darc Board
105             /// Get Second Darc board VME address
106     ULong_t GetSecondDarcVmeAddr() const        {return fSecondDarcVmeAddr;}
107             /// Set Second Darc board VME address
108     void    SetSecondDarcVmeAddr(ULong_t addr)  {fSecondDarcVmeAddr = addr;}
109     
110             /// Get type for Second Darc board
111     Int_t   GetSecondDarcType() const           {return fSecondDarcType;}
112             /// Set type for Second Darc board   
113     void    SetSecondDarcType(Int_t type)       {fSecondDarcType = type;}
114     
115             /// Get disable word for Second Darc board   
116     UChar_t GetSecondDarcDisable() const         {return fSecondDarcDisable;} 
117             /// Get disable per regional crate for Second Darc board   
118     Bool_t  GetSecondDarcDisable(Int_t iCrate) const  {return !((fSecondDarcDisable >> iCrate) & 0x1);} 
119             /// Set disable word for Second Darc board   
120     void    SetSecondDarcDisable(UChar_t en)     {fSecondDarcDisable = en;} 
121     
122             /// Get L0 Delay for Second Darc board   
123     UInt_t  GetSecondDarcL0Delay() const        {return fSecondDarcL0Delay;}
124             /// Set L0 Delay for Second Darc board   
125     void    SetSecondDarcL0Delay(UInt_t delay)  {fSecondDarcL0Delay = delay;}
126             /// Get L1 Time Out for Second Darc board   
127     UInt_t  GetSecondDarcL1TimeOut() const      {return fSecondDarcL1TimeOut;}
128             /// Set L1 Time Out for Second Darc board   
129     void    SetSecondDarcL1TimeOut(UInt_t time) {fSecondDarcL1TimeOut = time;}
130     
131             /// Get global L0  delay for Second Darc board   
132     UInt_t  GetSecondDarcGlobalL0() const      {return fSecondDarcGlobalL0;}
133            /// set global L0  delay for Second Darc board   
134     void    SetSecondDarcGlobalL0(UInt_t time) {fSecondDarcGlobalL0 = time;}
135       
136            /// Get configuration for Second Darc board   
137     UInt_t  GetSecondDarcConfig() const      {return fSecondDarcConfig;}
138            /// set configuration for Second Darc board   
139     void    SetSecondDarcConfig(UInt_t conf) {fSecondDarcConfig = conf;}
140     
141     
142     // global board
143             /// Get Global board VME address
144     ULong_t GetGlobalVmeAddr() const        {return fGlobalVmeAddr;}
145             /// Set Global board VME address
146     void    SetGlobalVmeAddr(ULong_t addr)  {fGlobalVmeAddr = addr;}
147     
148             /// Get register for Global
149     UInt_t GetGlobalRegister(Int_t index) const;
150            /// Set register for Global
151     void   SetGlobalRegister(Int_t index, UInt_t reg);
152            /// Get register word for Global
153     UInt_t* GetGlobalRegister() {return fGlobalRegisters;}
154            /// Set mask for the global input
155       void   SetGlobalMask(Int_t index, UInt_t mask);
156            /// Get mask for the global input
157     UInt_t GetGlobalMask(Int_t index) const;
158            /// Indicates if global masks are active on global inputs
159     Bool_t GetMasksOn() const;    
160
161     // fet board
162             /// Get FET board VME address
163     ULong_t GetFetVmeAddr()  const       {return fFetVmeAddr;}
164             /// Set FET board VME address
165     void    SetFetVmeAddr(ULong_t addr)  {fFetVmeAddr = addr;}
166     
167             /// Get register for FET
168     UInt_t GetFetRegister(Int_t index) const;
169             /// Set register for FET
170     void   SetFetRegister(Int_t index, UInt_t reg);
171             /// Set register word for FET
172     UInt_t* GetFetRegister() {return fFetRegisters;}
173     
174     //static members
175             /// Get Jtag Name identifier
176     const Char_t* GetJtagName()       const  {return fgkJtagName;}
177             /// Get First Darc Name identifier
178     const Char_t* GetFirstDarcName()  const  {return fgkFirstDarcName;}
179             /// Get Second Darc Name identifier
180     const Char_t* GetSecondDarcName() const  {return fgkSecondDarcName;}
181             /// Get Global Name identifier   
182     const Char_t* GetGlobalName()     const  {return fgkGlobalName;}
183             /// Get Global Name identifier   
184     const Char_t* GetFetName()        const  {return fgkFetName;}
185     
186             /// Get number of registers for Global
187     Int_t   GetGlobalNofRegisters() const {return fgkGlobalNofRegisters;}
188             /// Get number of registers for FET
189     Int_t   GetFetNofRegisters()    const {return fgkFetNofRegisters;}
190             /// Get number of JTag lines
191     Int_t   GetJtagNofLines()       const {return fgkJtagNofLines;}
192     
193   private:
194     /// Not implemented
195     AliMUONGlobalCrateConfig(const AliMUONGlobalCrateConfig& rhs);
196     /// Not implemented
197     AliMUONGlobalCrateConfig& operator=(const AliMUONGlobalCrateConfig& rhs);
198
199     // data members
200     UInt_t       fGlobalCrateEnable;   ///< Global Crate Enable
201     ULong_t      fJtagVmeAddr;         ///< JTag VME address
202     UInt_t       fJtagClockDiv;        ///< Clock Divider number for JTag
203     UInt_t       fJtagRxPhase;         ///< Rx phase number for JTag 
204     UInt_t       fJtagRdDelay;         ///< Read delay  for JTag 
205     UChar_t      fEnableJtag;          ///< Enable mask for JTag lines
206     TString      fJtagCrateName[16];   ///< Crate name for the Jtag lines
207                                        
208     ULong_t      fFirstDarcVmeAddr;    ///< First Darc Board VME Address
209     Int_t        fFirstDarcType;       ///< Type of the first Darc Board                             
210     UChar_t      fFirstDarcDisable;     ///< disable the readout of the 8 crates connected to this board
211     UInt_t       fFirstDarcL0Delay;    ///< L0 delay for this board
212     UInt_t       fFirstDarcL1TimeOut;  ///< L1 time out for this board
213     UInt_t       fFirstDarcGlobalL0 ;  ///< L0 global l0 delay this board
214     UInt_t       fFirstDarcConfig ;    ///< Trigger configuration this board
215  
216     ULong_t      fSecondDarcVmeAddr;   ///< Second Darc Board VME Address 
217     Int_t        fSecondDarcType;      ///< Type of the first Darc Board                             
218     UChar_t      fSecondDarcDisable;   ///< disable the readout of the 8 crates connected to this board
219     UInt_t       fSecondDarcL0Delay;   ///< L0 delay for this board
220     UInt_t       fSecondDarcL1TimeOut; ///< L1 time out for this board
221     UInt_t       fSecondDarcGlobalL0;  ///<  Global L0 delay for this board
222     UInt_t       fSecondDarcConfig ;   ///< Trigger configuration this board
223  
224     ULong_t      fGlobalVmeAddr;       ///< Global Board VME Address 
225     UInt_t       fGlobalRegisters[13]; ///< Global registers
226
227     ULong_t      fFetVmeAddr;          ///< Fet Board VME Address 
228     UInt_t       fFetRegisters[7];     ///< Fet registers                                  
229                                        
230     static const Char_t* fgkJtagName;       ///< JTag Board name                         
231     static const Char_t* fgkFirstDarcName;  ///< First DARC board name                         
232     static const Char_t* fgkSecondDarcName; ///< Second DARC board name
233     static const Char_t* fgkGlobalName;     ///< Global Board name
234     static const Char_t* fgkFetName;        ///< FET Board name                     
235                
236     static const Int_t fgkGlobalNofRegisters;  ///< Number of registers for Global Board                      
237     static const Int_t fgkFetNofRegisters;     ///< Number of registers for Fet
238     static const Int_t fgkJtagNofLines;        ///< Number of lines for Jtag
239
240   ClassDef(AliMUONGlobalCrateConfig,3)  
241 };
242
243 #endif 
244
245
246
247
248
249
250
251
252
253
254
255
256
257