AliRoot Core  v5-06-30 (35d6c57)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliMUONCalibParamNI.h
Go to the documentation of this file.
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3 
4 // $Id$
5 
10 // Author Laurent Aphecetche
11 
12 #ifndef ALIMUONCALIBPARAMNI_H
13 #define ALIMUONCALIBPARAMNI_H
14 
15 #ifndef ALIMUONVCALIBPARAM_H
16 # include "AliMUONVCalibParam.h"
17 #endif
18 
20 {
21 public:
23  AliMUONCalibParamNI(Int_t dimension, Int_t theSize, Int_t id0, Int_t id1, Int_t fillWithValue=0, Int_t packingValue=0);
26 
27  virtual ~AliMUONCalibParamNI();
28 
30  virtual TObject* Clone(const char* = "") const { return new AliMUONCalibParamNI(*this); }
31 
33  virtual Int_t Dimension() const { return fDimension; }
34 
35  virtual void Print(Option_t* opt="") const;
36 
37  virtual void SetValueAsFloat(Int_t i, Int_t j, Float_t value);
38  virtual void SetValueAsFloatFast(Int_t i, Int_t j, Float_t value);
39  virtual void SetValueAsInt(Int_t i, Int_t j, Int_t value);
40  virtual void SetValueAsIntFast(Int_t i, Int_t j, Int_t value);
41 
43  virtual Int_t Size() const { return fSize; }
44 
45  virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const;
46  virtual Float_t ValueAsFloatFast(Int_t i, Int_t j=0) const;
47  virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const;
48  virtual Int_t ValueAsIntFast(Int_t i, Int_t j=0) const;
49 
50  virtual Bool_t UnpackValue(Int_t value, Int_t& a, Int_t& b) const;
51 
52  virtual Bool_t PackValues(Int_t a, Int_t b, Int_t& packedValue) const;
53 
54  virtual Bool_t IsPacked() const;
55 
56 private:
57  void CopyTo(AliMUONCalibParamNI& destination) const;
58  Int_t Index(Int_t i, Int_t j) const;
59  Int_t IndexFast(Int_t i, Int_t j) const;
60 
61 private:
62  Int_t fDimension;
63  Int_t fSize;
64  Int_t fN;
66 
68  Int_t* fValues; //[fN] The values array
69 
70  ClassDef(AliMUONCalibParamNI,3) // Container for calibration parameters
71 };
72 
73 #endif
Int_t IndexFast(Int_t i, Int_t j) const
virtual void SetValueAsFloatFast(Int_t i, Int_t j, Float_t value)
virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const
Int_t fDimension
dimension of this object
Container of calibration values for a given number of channels.
virtual Int_t Size() const
Return size - the number of float pair we hold.
Implementation of AliMUONVCalibParam for tuples of ints.
virtual Int_t ValueAsIntFast(Int_t i, Int_t j=0) const
Same as above but w/o bound checking.
virtual Float_t ValueAsFloatFast(Int_t i, Int_t j=0) const
Same as above but without bound checking.
Int_t * fValues
The values array.
virtual void SetValueAsInt(Int_t i, Int_t j, Int_t value)
Set one value, for channel i, dimension j. Consider value is an integer.
virtual void Print(Option_t *opt="") const
virtual Bool_t UnpackValue(Int_t value, Int_t &a, Int_t &b) const
Unpack a value into a couple (a,b). Returns false if IsPacked()==kFALSE.
virtual Bool_t IsPacked() const
whether or not the value we store are packed, e.g. as v = a*cste + b
virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const
Int_t Index(Int_t i, Int_t j) const
void CopyTo(AliMUONCalibParamNI &destination) const
virtual Bool_t PackValues(Int_t a, Int_t b, Int_t &packedValue) const
Pack (a,b) as a single int. Returns false if IsPacked()==kFALSE.
Int_t fPackingFactor
packing factor, i.e. value = a*fPackingFactor + b
Int_t fSize
The number of float pair we hold.
virtual Int_t Dimension() const
Return dimension.
virtual void SetValueAsIntFast(Int_t i, Int_t j, Int_t value)
Same as above but w/o bound checkings.
virtual void SetValueAsFloat(Int_t i, Int_t j, Float_t value)
Set one value, for channel i, dimension j. Consider value is a float.
Int_t fN
The total number of floats we hold (fDimension*fSize)
AliMUONCalibParamNI & operator=(const AliMUONCalibParamNI &other)
virtual TObject * Clone(const char *="") const
Own clone methods (as the default TObject::Clone turned out to be pretty slow !)