1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONCalibParamND
8 /// \brief Implementation of AliMUONVCalibParam for tuples of double
10 // Author Laurent Aphecetche
12 #ifndef ALIMUONCALIBPARAMND_H
13 #define ALIMUONCALIBPARAMND_H
15 #ifndef ALIMUONVCALIBPARAM_H
16 # include "AliMUONVCalibParam.h"
19 class AliMUONCalibParamND : public AliMUONVCalibParam
22 AliMUONCalibParamND();
23 AliMUONCalibParamND(Int_t dimension, Int_t theSize, Int_t id0, Int_t id1, Double_t fillWithValue=0);
24 AliMUONCalibParamND(const AliMUONCalibParamND& other);
25 AliMUONCalibParamND& operator=(const AliMUONCalibParamND& other);
27 virtual ~AliMUONCalibParamND();
30 virtual Int_t Dimension() const { return fDimension; }
32 virtual void Print(Option_t* opt="") const;
34 virtual void SetValueAsDouble(Int_t i, Int_t j, Double_t value);
35 virtual void SetValueAsFloat(Int_t i, Int_t j, Float_t value);
36 virtual void SetValueAsInt(Int_t i, Int_t j, Int_t value);
38 /// Return size - the number of double tuples we hold
39 virtual Int_t Size() const { return fSize; }
41 virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const;
42 virtual Double_t ValueAsDouble(Int_t i, Int_t j=0) const;
43 virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const;
45 /// Advertise that we can store double precision values
46 virtual Bool_t IsDoublePrecision() const { return kTRUE; }
49 void CopyTo(AliMUONCalibParamND& destination) const;
50 Int_t Index(Int_t i, Int_t j) const;
53 Int_t fDimension; ///< dimension of this object
54 Int_t fSize; ///< The number of double tuples we hold
55 Int_t fN; ///< The total number of floats we hold (fDimension*fSize)
58 Double_t* fValues; //[fN] The values array
60 ClassDef(AliMUONCalibParamND,1) // Container for calibration parameters