#ifndef ALIMUONCALIBPARAMND_H
#define ALIMUONCALIBPARAMND_H
#ifndef ALIMUONVCALIBPARAM_H
# include "AliMUONVCalibParam.h"
#endif
class AliMUONCalibParamND : public AliMUONVCalibParam
{
public:
AliMUONCalibParamND();
AliMUONCalibParamND(Int_t dimension, Int_t theSize, Int_t id0, Int_t id1, Double_t fillWithValue=0);
AliMUONCalibParamND(const AliMUONCalibParamND& other);
AliMUONCalibParamND& operator=(const AliMUONCalibParamND& other);
virtual ~AliMUONCalibParamND();
virtual TObject* Clone(const char* = "") const { return new AliMUONCalibParamND(*this); }
virtual Int_t Dimension() const { return fDimension; }
virtual void Print(Option_t* opt="") const;
virtual void SetValueAsDouble(Int_t i, Int_t j, Double_t value);
virtual void SetValueAsDoubleFast(Int_t i, Int_t j, Double_t value);
virtual void SetValueAsFloat(Int_t i, Int_t j, Float_t value);
virtual void SetValueAsFloatFast(Int_t i, Int_t j, Float_t value);
virtual void SetValueAsInt(Int_t i, Int_t j, Int_t value);
virtual void SetValueAsIntFast(Int_t i, Int_t j, Int_t value);
virtual Int_t Size() const { return fSize; }
virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const;
virtual Float_t ValueAsFloatFast(Int_t i, Int_t j=0) const;
virtual Double_t ValueAsDouble(Int_t i, Int_t j=0) const;
virtual Double_t ValueAsDoubleFast(Int_t i, Int_t j=0) const;
virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const;
virtual Int_t ValueAsIntFast(Int_t i, Int_t j=0) const;
virtual Bool_t IsDoublePrecision() const { return kTRUE; }
private:
void CopyTo(AliMUONCalibParamND& destination) const;
Int_t Index(Int_t i, Int_t j) const;
Int_t IndexFast(Int_t i, Int_t j) const;
private:
Int_t fDimension;
Int_t fSize;
Int_t fN;
Double_t* fValues;
ClassDef(AliMUONCalibParamND,1)
};
#endif