class TExMap;
class AliMUONCalibrationData;
+class AliMUONRecoParam;
class AliMUONVCalibParam;
class AliMUONVTrackerData;
class AliMUONVStore;
+using std::ostream;
+
class AliMUONPadStatusMaker : public TObject
{
public:
AliMUONPadStatusMaker(const AliMUONCalibrationData& calibData);
virtual ~AliMUONPadStatusMaker();
-
+
+ /// Get the reference to the calibrationdata object we use.
+ const AliMUONCalibrationData& CalibrationData() const { return fkCalibrationData; }
+
/** Get access to internal status store (for debug only, as it may not be complete,
depending on whether you've already called PadStatus for all possible de,manu
combinations or not...
/// Return Low and High limits for thres parameter of gain
TVector2 GainThresLimits() const { return fGainThresLimits; }
- /// Return Low and High threshold for St12 HV
- TVector2 HVSt12Limits() const { return fHVSt12Limits; }
- /// Return Low and High threshold for St345 HV
- TVector2 HVSt345Limits() const { return fHVSt345Limits; }
+ /// Return HV threshold
+ Double_t HVLimit(Int_t chamberId) const;
/// Return Low and High threshold for pedestal mean
TVector2 PedMeanLimits() const { return fPedMeanLimits; }
/// Set Low and High limits for thres parameter of gain
void GainThresLimits(float low, float high) { fGainThresLimits.Set(low,high); }
- /// Set Low and High threshold for St12 HV
- void SetHVSt12Limits(float low, float high) { fHVSt12Limits.Set(low,high); }
- /// Set Low and High threshold for St345 HV
- void SetHVSt345Limits(float low, float high) { fHVSt345Limits.Set(low,high); }
+ /// Set HV limit
+ void SetHVLimit(Int_t chamberId, Double_t hv);
/// Set Low and High threshold for pedestal mean
void SetPedMeanLimits(float low, float high) { fPedMeanLimits.Set(low,high); }
void SetManuOccupancyLimits(float low, float high) { fManuOccupancyLimits.Set(low,high); }
/// Get manu occupancy limits
TVector2 ManuOccupancyLimits() const { return fManuOccupancyLimits; }
+
+ /// Set Low and High bus patch occupancy limits
+ void SetBuspatchOccupancyLimits(float low, float high) { fBuspatchOccupancyLimits.Set(low,high); }
+ /// Get bus patch occupancy limits
+ TVector2 BuspatchOccupancyLimits() const { return fBuspatchOccupancyLimits; }
+
+ /// Set Low and High DE occupancy limits
+ void SetDEOccupancyLimits(float low, float high) { fDEOccupancyLimits.Set(low,high); }
+ /// Get DE occupancy limits
+ TVector2 DEOccupancyLimits() const { return fDEOccupancyLimits; }
+
+ void SetLimits(const AliMUONRecoParam& recoParams);
+
+ void Report(UInt_t mask);
+
+ static Float_t SwitchValue(const TObjArray& dcsArray);
+
+ Int_t HVStatus(Int_t detElemId, Int_t manuId) const;
+ Int_t OccupancyStatus(Int_t detElemId, Int_t manuId) const;
+
+ static void DecodeStatus(Int_t status, Int_t& pedStatus, Int_t& hvStatus,
+ Int_t& gainStatus, Int_t& otherStatus);
+ static Int_t BuildStatus(Int_t pedStatus, Int_t hvStatus,
+ Int_t gainStatus, Int_t otherStatus);
private:
/// Not implemented
AliMUONPadStatusMaker(const AliMUONPadStatusMaker&);
/// Not implemented
AliMUONPadStatusMaker& operator=(const AliMUONPadStatusMaker&);
- static void DecodeStatus(Int_t status, Int_t& pedStatus, Int_t& hvStatus,
- Int_t& gainStatus, Int_t& otherStatus);
- static Int_t BuildStatus(Int_t pedStatus, Int_t hvStatus,
- Int_t gainStatus, Int_t otherStatus);
AliMUONVCalibParam* ComputeStatus(Int_t detElemId, Int_t manuId) const;
Bool_t& hvChannelON,
Bool_t& hvSwitchON) const;
- Int_t HVStatus(Int_t detElemId, Int_t manuId) const;
-
- Int_t OtherStatus(Int_t detElemId, Int_t manuId) const;
-
void SetHVStatus(Int_t detElemId, Int_t index, Int_t status) const;
private:
kHVOK = 0,
kHVError = (1<<0),
kHVTooLow = (1<<1),
- kHVTooHigh = (1<<2),
+ kHVTooHigh = (1<<2), // no longer to be used
kHVChannelOFF = (1<<3),
kHVSwitchOFF = (1<<4),
};
/// Other
- enum EOtherStatus
+ enum EOccupancyStatus
{
kManuOccupancyTooLow = (1<<1),
- kManuOccupancyTooHigh = (1<<2)
+ kManuOccupancyTooHigh = (1<<2),
+ kBusPatchOccupancyTooLow = (1<<3),
+ kBusPatchOccupancyTooHigh = (1<<4),
+ kDEOccupancyTooLow = (1<<5),
+ kDEOccupancyTooHigh = (1<<6)
};
- const AliMUONCalibrationData& fCalibrationData; //!< helper class to get data access (not owner)
+ const AliMUONCalibrationData& fkCalibrationData; //!< helper class to get data access (not owner)
TVector2 fGainA1Limits; //!< Low and High threshold for gain a0 parameter
TVector2 fGainA2Limits; //!< Low and High threshold for gain a1 parameter
TVector2 fGainThresLimits; //!< Low and High threshold for gain threshold parameter
- TVector2 fHVSt12Limits; //!< Low and High threshold for St12 HV
- TVector2 fHVSt345Limits; //!< Low and High threshold for St345 HV
+ Double_t fHVLimit[10]; //!< Low thresholds for HV
TVector2 fPedMeanLimits; //!< Low and High threshold for pedestal mean
TVector2 fPedSigmaLimits; //!< Low and High threshold for pedestal sigma
TVector2 fManuOccupancyLimits; //!< Low and High manu occupancy limits
+ TVector2 fBuspatchOccupancyLimits; //!< Low and High buspatch occupancy limits
+ TVector2 fDEOccupancyLimits; //!< Low and High DE occupancy limits
AliMUONVStore* fStatus; //!< statuses of the pads