1 #ifndef ALIMUONPADSTATUSMAKER_H
2 #define ALIMUONPADSTATUSMAKER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONPadStatusMaker
11 /// \brief Make a 2DStore of pad statuses, using different sources of information
13 /// \author Laurent Aphecetche
19 # include "TVector2.h"
22 class AliMUONCalibrationData;
23 class AliMUONV2DStore;
26 class AliMUONPadStatusMaker : public TObject
29 AliMUONPadStatusMaker(const AliMUONCalibrationData& calibData);
30 virtual ~AliMUONPadStatusMaker();
32 AliMUONV2DStore* MakeGainStatus(const AliMUONV2DStore& gainValues) const;
34 AliMUONV2DStore* MakeHVStatus(const TMap& hvMap) const;
36 AliMUONV2DStore* MakePedestalStatus(const AliMUONV2DStore& pedValues) const;
38 AliMUONV2DStore* MakeStatus() const;
40 TVector2 HVSt12Limits() const { return fHVSt12Limits; }
41 TVector2 HVSt345Limits() const { return fHVSt345Limits; }
43 TVector2 PedMeanLimits() const { return fPedMeanLimits; }
44 TVector2 PedSigmaLimits() const { return fPedSigmaLimits; }
46 void SetHVSt12Limits(float low, float high) { fHVSt12Limits.Set(low,high); }
47 void SetHVSt345Limits(float low, float high) { fHVSt345Limits.Set(low,high); }
49 void SetPedMeanLimits(float low, float high) { fPedMeanLimits.Set(low,high); }
50 void SetPedSigmaLimits(float low, float high) { fPedSigmaLimits.Set(low,high); }
53 AliMUONPadStatusMaker(const AliMUONPadStatusMaker&);
54 AliMUONPadStatusMaker& operator=(const AliMUONPadStatusMaker&);
58 AliMUONV2DStore* Combine(const AliMUONV2DStore& store1,
59 const AliMUONV2DStore& store2,
60 Int_t binShift) const;
62 Bool_t GetSt12Status(const TMap& hvMap, Int_t detElemId, Int_t sector,
63 Bool_t& hvChannelTooLow,
64 Bool_t& hvChannelTooHigh,
65 Bool_t& hvChannelON) const;
68 Bool_t GetSt345Status(const TMap& hvMap, Int_t detElemId, Int_t pcbIndex,
69 Bool_t& hvChannelTooLow,
70 Bool_t& hvChannelTooHigh,
72 Bool_t& hvSwitchON) const;
74 void SetStatusSt12(AliMUONV2DStore& hvStatus,
75 Int_t detElemId, Int_t sector, Int_t status) const;
77 void SetStatusSt345(AliMUONV2DStore& hvStatus,
78 Int_t detElemId, Int_t pcbIndex, Int_t status) const;
86 kPedMeanZero = (1<<1),
87 kPedMeanTooLow = (1<<2),
88 kPedMeanTooHigh = (1<<3),
89 kPedSigmaTooLow = (1<<4),
90 kPedSigmaTooHigh = (1<<5)
99 kHVChannelOFF = (1<<3),
100 kHVSwitchOFF = (1<<4)
104 const AliMUONCalibrationData& fCalibrationData; //!< helper class to get data access (not owner)
105 TVector2 fPedMeanLimits; //!< Low and High threshold for pedestal mean
106 TVector2 fPedSigmaLimits; //!< Low and High threshold for pedestal sigma
108 TVector2 fHVSt12Limits; //!< Low and High threshold for St12 HV
109 TVector2 fHVSt345Limits; //!< Low and High threshold for St345 HV
111 ClassDef(AliMUONPadStatusMaker,0) // Creates pad statuses from ped,gain,hv