#ifndef ALIMUONREALDIGIT_H
#define ALIMUONREALDIGIT_H
#ifndef ALIMUONVDIGIT_H
# include "AliMUONVDigit.h"
#endif
class AliMUONRealDigit : public AliMUONVDigit
{
public:
AliMUONRealDigit();
AliMUONRealDigit(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t cathode);
virtual ~AliMUONRealDigit();
virtual Int_t DetElemId() const { return AliMUONVDigit::DetElemId(GetUniqueID()); }
virtual Int_t PadX() const;
virtual Int_t PadY() const;
virtual Int_t Cathode() const { return AliMUONVDigit::Cathode(GetUniqueID()); }
virtual Float_t Charge() const { return fCharge; }
virtual Int_t ADC() const { return fADC; }
virtual Int_t ManuId() const { return AliMUONVDigit::ManuId(GetUniqueID()); }
virtual Int_t ManuChannel() const { return AliMUONVDigit::ManuChannel(GetUniqueID()); }
virtual Bool_t IsSaturated() const { return TestBit(kSaturated); }
virtual void Saturated(Bool_t saturated=kTRUE) { SetBit(kSaturated,saturated); }
virtual Bool_t IsNoiseOnly() const { return kFALSE; }
virtual Bool_t IsEfficiencyApplied() const { return kFALSE; }
virtual Bool_t IsCalibrated() const { return TestBit(kCalibrated); }
virtual void Calibrated(Bool_t value) { SetBit(kCalibrated,value); }
virtual Bool_t IsChargeInFC() const { return TestBit(kChargeInFC); }
virtual void ChargeInFC(Bool_t value=kTRUE) { SetBit(kChargeInFC,value); }
virtual Bool_t IsUsed() const { return TestBit(kUsed); }
virtual void Used(Bool_t value) { SetBit(kUsed,value); }
virtual UInt_t StatusMap() const { return fStatusMap; }
virtual void SetStatusMap(UInt_t statusMap) { fStatusMap = statusMap; }
virtual void SetADC(Int_t adc) { fADC = adc; }
virtual void SetPadXY(Int_t padx, Int_t pady);
virtual void SetCharge(Float_t q) { fCharge=q; }
virtual Bool_t MergeWith(const AliMUONVDigit& other);
virtual Bool_t HasMCInformation() const { return kFALSE; }
private:
Float_t fCharge;
UInt_t fPadXY;
Int_t fADC;
UInt_t fStatusMap;
enum EStatusBit
{
kSaturated = BIT(20),
kUsed = BIT(21),
kCalibrated = BIT(22),
kChargeInFC = BIT(23)
};
ClassDef(AliMUONRealDigit,2)
};
#endif