]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONCalibParamND.h
Removing quick code hack and unnecessary methods. Now have a much cleaner implementat...
[u/mrichter/AliRoot.git] / MUON / AliMUONCalibParamND.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice                               */
3
4 // $Id$
5
6 /// \ingroup calib
7 /// \class AliMUONCalibParamND
8 /// \brief Implementation of AliMUONVCalibParam for tuples of double
9 /// 
10 //  Author Laurent Aphecetche
11
12 #ifndef ALIMUONCALIBPARAMND_H
13 #define ALIMUONCALIBPARAMND_H
14
15 #ifndef ALIMUONVCALIBPARAM_H
16 #  include "AliMUONVCalibParam.h"
17 #endif
18
19 class AliMUONCalibParamND : public AliMUONVCalibParam
20 {
21 public:
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);
26   
27   virtual ~AliMUONCalibParamND();
28
29   /// Return dimension
30   virtual Int_t Dimension() const { return fDimension; }
31   
32   virtual void Print(Option_t* opt="") const;
33   
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);
37   
38   /// Return size - the number of double tuples we hold
39   virtual Int_t Size() const { return fSize; } 
40
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;
44      
45   /// Advertise that we can store double precision values
46   virtual Bool_t IsDoublePrecision() const { return kTRUE; }
47   
48 private:
49   void CopyTo(AliMUONCalibParamND& destination) const;
50   Int_t Index(Int_t i, Int_t j) const;  
51     
52 private:
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)
56
57   /// The values array
58   Double_t* fValues; //[fN] The values array
59   
60   ClassDef(AliMUONCalibParamND,1) // Container for calibration parameters
61 };
62
63 #endif