Adding PiKP-only histograms and eliminating a number of switches where histograms...
[u/mrichter/AliRoot.git] / MUON / AliMUONCalibParamNF.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 AliMUONCalibParamNF
8 /// \brief Implementation of AliMUONVCalibParam for tuples of floats
9 /// 
10 //  Author Laurent Aphecetche
11
12 #ifndef ALIMUONCALIBPARAMNF_H
13 #define ALIMUONCALIBPARAMNF_H
14
15 #ifndef ALIMUONVCALIBPARAM_H
16 #  include "AliMUONVCalibParam.h"
17 #endif
18
19 class AliMUONCalibParamNF : public AliMUONVCalibParam
20 {
21 public:
22   AliMUONCalibParamNF();
23   AliMUONCalibParamNF(Int_t dimension, Int_t theSize, Int_t id0, Int_t id1, Float_t fillWithValue=0);
24   AliMUONCalibParamNF(const AliMUONCalibParamNF& other);
25   AliMUONCalibParamNF& operator=(const AliMUONCalibParamNF& other);
26   
27   virtual ~AliMUONCalibParamNF();
28
29   /// Own clone methods (as the default TObject::Clone turned out to be pretty slow !)
30   virtual TObject* Clone(const char* = "") const { return new AliMUONCalibParamNF(*this); }
31   
32   /// Return dimension
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   
42   /// Return size - the number of float pair we hold
43   virtual Int_t Size() const { return fSize; } 
44
45   virtual Float_t ValueAsFloat(Int_t i, Int_t j=0) const;
46
47   virtual Float_t ValueAsFloatFast(Int_t i, Int_t j=0) const;
48   
49   virtual Int_t ValueAsInt(Int_t i, Int_t j=0) const;
50   
51   virtual Int_t ValueAsIntFast(Int_t i, Int_t j=0) const;
52      
53 private:
54   void CopyTo(AliMUONCalibParamNF& destination) const;
55   Int_t Index(Int_t i, Int_t j) const;  
56   Int_t IndexFast(Int_t i, Int_t j) const;  
57     
58 private:
59   Int_t fDimension; ///< dimension of this object
60   Int_t fSize; ///< The number of float pair we hold
61   Int_t fN;    ///< The total number of floats we hold (fDimension*fSize)
62
63   /// The values array
64   Float_t* fValues; //[fN] The values array
65   
66   ClassDef(AliMUONCalibParamNF,3) // Container for calibration parameters
67 };
68
69 #endif