Corrected Doxygen warnings:
[u/mrichter/AliRoot.git] / MUON / AliMUONPadStatusMaker.h
1 #ifndef ALIMUONPADSTATUSMAKER_H
2 #define ALIMUONPADSTATUSMAKER_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup reco
10 /// \class AliMUONPadStatusMaker
11 /// \brief Make a 2DStore of pad statuses, using different sources of information
12 /// 
13 //  Author Laurent Aphecetche
14
15 #ifndef ROOT_TObject
16 #  include "TObject.h"
17 #endif
18 #ifndef ROOT_TVector2
19 #  include "TVector2.h"
20 #endif
21
22 class AliMUONCalibrationData;
23 class AliMUONV2DStore;
24 class TMap;
25
26 class AliMUONPadStatusMaker : public TObject
27 {
28 public:
29   AliMUONPadStatusMaker(const AliMUONCalibrationData& calibData);
30   virtual ~AliMUONPadStatusMaker();
31       
32   AliMUONV2DStore* MakeGainStatus(const AliMUONV2DStore& gainValues) const;
33
34   AliMUONV2DStore* MakeHVStatus(const TMap& hvMap) const;
35
36   AliMUONV2DStore* MakePedestalStatus(const AliMUONV2DStore& pedValues) const;
37
38   /// Produces a status store. Should not return 0x0.
39   AliMUONV2DStore* MakeStatus() const;
40
41   static AliMUONV2DStore* GeneratePadStatus(Int_t value);
42
43   TVector2 HVSt12Limits() const { return fHVSt12Limits; }
44   TVector2 HVSt345Limits() const { return fHVSt345Limits; }
45   
46   TVector2 PedMeanLimits() const { return fPedMeanLimits; }
47   TVector2 PedSigmaLimits() const { return fPedSigmaLimits; }
48   
49   void SetHVSt12Limits(float low, float high) { fHVSt12Limits.Set(low,high); }
50   void SetHVSt345Limits(float low, float high) { fHVSt345Limits.Set(low,high); }
51
52   void SetPedMeanLimits(float low, float high) { fPedMeanLimits.Set(low,high); }
53   void SetPedSigmaLimits(float low, float high) { fPedSigmaLimits.Set(low,high); }
54   
55 private:
56   AliMUONPadStatusMaker(const AliMUONPadStatusMaker&);
57   AliMUONPadStatusMaker& operator=(const AliMUONPadStatusMaker&);
58   
59 private:
60   
61   AliMUONV2DStore* Combine(const AliMUONV2DStore& store1,
62                            const AliMUONV2DStore& store2,
63                            Int_t binShift) const;
64   
65   Bool_t GetSt12Status(const TMap& hvMap, Int_t detElemId, Int_t sector,
66                          Bool_t& hvChannelTooLow,
67                          Bool_t& hvChannelTooHigh,
68                          Bool_t& hvChannelON) const;
69   
70   
71   Bool_t GetSt345Status(const TMap& hvMap, Int_t detElemId, Int_t pcbIndex,
72                         Bool_t& hvChannelTooLow,
73                         Bool_t& hvChannelTooHigh,
74                         Bool_t& hvChannelON,
75                         Bool_t& hvSwitchON) const;
76   
77   void SetStatusSt12(AliMUONV2DStore& hvStatus, 
78                      Int_t detElemId, Int_t sector, Int_t status) const;
79
80   void SetStatusSt345(AliMUONV2DStore& hvStatus,
81                       Int_t detElemId, Int_t pcbIndex, Int_t status) const;
82
83   
84 private:
85   
86   enum EGeneralStatus
87   {
88     kMissing = (1<<7)
89   };
90   
91   enum EPedestalStatus
92   {
93     kPedOK = 0,
94     kPedMeanZero = (1<<1),
95     kPedMeanTooLow = (1<<2),
96     kPedMeanTooHigh = (1<<3),
97     kPedSigmaTooLow = (1<<4),
98     kPedSigmaTooHigh = (1<<5),
99     
100     kPedMissing = kMissing // please always use last bit for meaning "missing"
101   };
102   
103   enum EHVError 
104   {
105     kHVOK = 0,
106     kHVError = (1<<0),
107     kHVTooLow = (1<<1),
108     kHVTooHigh = (1<<2),
109     kHVChannelOFF = (1<<3),
110     kHVSwitchOFF = (1<<4),
111
112     kHVMissing = kMissing // please always use last bit for meaning "missing"
113   };
114   
115   const AliMUONCalibrationData& fCalibrationData; //!< helper class to get data access (not owner)
116   TVector2 fPedMeanLimits; //!< Low and High threshold for pedestal mean
117   TVector2 fPedSigmaLimits; //!< Low and High threshold for pedestal sigma
118   
119   TVector2 fHVSt12Limits; //!< Low and High threshold for St12 HV
120   TVector2 fHVSt345Limits; //!< Low and High threshold for St345 HV
121   
122   ClassDef(AliMUONPadStatusMaker,0) // Creates pad statuses from ped,gain,hv
123 };
124
125 #endif