1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONCalibParamNI
8 /// \brief Implementation of AliMUONVCalibParam for tuples of ints
10 // Author Laurent Aphecetche
12 #ifndef ALIMUONCALIBPARAMNI_H
13 #define ALIMUONCALIBPARAMNI_H
15 #ifndef ALIMUONVCALIBPARAM_H
16 # include "AliMUONVCalibParam.h"
19 class AliMUONCalibParamNI : public AliMUONVCalibParam
22 AliMUONCalibParamNI();
23 AliMUONCalibParamNI(Int_t dimension, Int_t theSize, Int_t fillWithValue=0, Int_t packingValue=0);
24 AliMUONCalibParamNI(const AliMUONCalibParamNI& other);
25 AliMUONCalibParamNI& operator=(const AliMUONCalibParamNI& other);
27 virtual ~AliMUONCalibParamNI();
30 virtual Int_t Dimension() const { return fDimension; }
32 virtual void Print(Option_t* opt="") const;
34 virtual void SetValueAsFloat(Int_t i, Int_t j, Float_t value);
35 virtual void SetValueAsInt(Int_t i, Int_t j, Int_t value);
37 /// Return size - the number of float pair we hold
38 virtual Int_t Size() const { return fSize; }
40 virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const;
41 virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const;
43 virtual Bool_t UnpackValue(Int_t value, Int_t& a, Int_t& b) const;
45 virtual Bool_t PackValues(Int_t a, Int_t b, Int_t& packedValue) const;
47 virtual Bool_t IsPacked() const;
50 void CopyTo(AliMUONCalibParamNI& destination) const;
51 Int_t Index(Int_t i, Int_t j) const;
54 Int_t fDimension; ///< dimension of this object
55 Int_t fSize; ///< The number of float pair we hold
56 Int_t fN; ///< The total number of floats we hold (fDimension*fSize)
57 Int_t fPackingFactor; ///< packing factor, i.e. value = a*fPackingFactor + b
60 Int_t* fValues; //[fN] The values array
62 ClassDef(AliMUONCalibParamNI,1) // Container for calibration parameters