]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONCalibParamND.h
Exec changed to UserExec.
[u/mrichter/AliRoot.git] / MUON / AliMUONCalibParamND.h
CommitLineData
da18abd2 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
19class AliMUONCalibParamND : public AliMUONVCalibParam
20{
21public:
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
4db2bfee 29 /// Own clone methods (as the default TObject::Clone turned out to be pretty slow !)
30 virtual TObject* Clone(const char* = "") const { return new AliMUONCalibParamND(*this); }
31
da18abd2 32 /// Return dimension
33 virtual Int_t Dimension() const { return fDimension; }
34
35 virtual void Print(Option_t* opt="") const;
36
37 virtual void SetValueAsDouble(Int_t i, Int_t j, Double_t value);
4db2bfee 38 virtual void SetValueAsDoubleFast(Int_t i, Int_t j, Double_t value);
da18abd2 39 virtual void SetValueAsFloat(Int_t i, Int_t j, Float_t value);
4db2bfee 40 virtual void SetValueAsFloatFast(Int_t i, Int_t j, Float_t value);
da18abd2 41 virtual void SetValueAsInt(Int_t i, Int_t j, Int_t value);
4db2bfee 42 virtual void SetValueAsIntFast(Int_t i, Int_t j, Int_t value);
da18abd2 43
44 /// Return size - the number of double tuples we hold
45 virtual Int_t Size() const { return fSize; }
46
47 virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const;
4db2bfee 48 virtual Float_t ValueAsFloatFast(Int_t i, Int_t j=0) const;
da18abd2 49 virtual Double_t ValueAsDouble(Int_t i, Int_t j=0) const;
4db2bfee 50 virtual Double_t ValueAsDoubleFast(Int_t i, Int_t j=0) const;
da18abd2 51 virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const;
4db2bfee 52 virtual Int_t ValueAsIntFast(Int_t i, Int_t j=0) const;
da18abd2 53
54 /// Advertise that we can store double precision values
55 virtual Bool_t IsDoublePrecision() const { return kTRUE; }
56
57private:
58 void CopyTo(AliMUONCalibParamND& destination) const;
59 Int_t Index(Int_t i, Int_t j) const;
4db2bfee 60 Int_t IndexFast(Int_t i, Int_t j) const;
da18abd2 61
62private:
63 Int_t fDimension; ///< dimension of this object
64 Int_t fSize; ///< The number of double tuples we hold
65 Int_t fN; ///< The total number of floats we hold (fDimension*fSize)
66
67 /// The values array
68 Double_t* fValues; //[fN] The values array
69
70 ClassDef(AliMUONCalibParamND,1) // Container for calibration parameters
71};
72
73#endif