- Removed not implemented methods AddData(), GetGlobalTriggerPattern
[u/mrichter/AliRoot.git] / MUON / AliMUONPadStatusMaker.h
CommitLineData
2c780493 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///
78649106 13// Author Laurent Aphecetche
2c780493 14
15#ifndef ROOT_TObject
16# include "TObject.h"
17#endif
18#ifndef ROOT_TVector2
19# include "TVector2.h"
20#endif
21
22class AliMUONCalibrationData;
23class AliMUONV2DStore;
24class TMap;
25
26class AliMUONPadStatusMaker : public TObject
27{
28public:
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
96199305 38 /// Produces a status store. Should not return 0x0.
2c780493 39 AliMUONV2DStore* MakeStatus() const;
40
96199305 41 static AliMUONV2DStore* GeneratePadStatus(Int_t value);
42
2c780493 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
55private:
56 AliMUONPadStatusMaker(const AliMUONPadStatusMaker&);
57 AliMUONPadStatusMaker& operator=(const AliMUONPadStatusMaker&);
58
59private:
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
84private:
85
96199305 86 enum EGeneralStatus
87 {
88 kMissing = (1<<7)
89 };
90
2c780493 91 enum EPedestalStatus
92 {
93 kPedOK = 0,
94 kPedMeanZero = (1<<1),
95 kPedMeanTooLow = (1<<2),
96 kPedMeanTooHigh = (1<<3),
97 kPedSigmaTooLow = (1<<4),
96199305 98 kPedSigmaTooHigh = (1<<5),
99
100 kPedMissing = kMissing // please always use last bit for meaning "missing"
2c780493 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),
96199305 110 kHVSwitchOFF = (1<<4),
111
112 kHVMissing = kMissing // please always use last bit for meaning "missing"
2c780493 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