ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
//
//  Xianguo Lu <lu@physi.uni-heidelberg.de>
//

#ifndef ALITRDDEDXPARAMS_H
#define ALITRDDEDXPARAMS_H

#include "TNamed.h"
#include "TVectorT.h"
#include "TString.h"

//maximum number of array size
#define MAXSIZE 100

class AliTRDdEdxParams: public TNamed
{
 public:
  AliTRDdEdxParams(const TString name="name", const TString title="title");
  void Print(Option_t* option = "") const;

  const TVectorF& GetMeanParameter( const Int_t itype, const Int_t nch, const Int_t ncls) const { return GetParameter(fMeanPar,  itype, nch, ncls);}
  const TVectorF& GetSigmaParameter(const Int_t itype, const Int_t nch, const Int_t ncls) const { return GetParameter(fSigmaPar, itype, nch, ncls);}

  void SetMeanParameter( const Int_t itype, const Int_t nch, const Int_t ncls, const Int_t npar, const Float_t vals[]){ SetParameter(fMeanPar,  itype, nch, ncls, npar, vals); }
  void SetSigmaParameter(const Int_t itype, const Int_t nch, const Int_t ncls, const Int_t npar, const Float_t vals[]){ SetParameter(fSigmaPar, itype, nch, ncls, npar, vals); } 

 private:
  const TVectorF& GetParameter(const TVectorF par[], const Int_t itype, const Int_t nch, const Int_t ncls) const;
  void SetParameter(TVectorF par[], const Int_t itype, const Int_t nch, const Int_t ncls, const Int_t npar, const Float_t vals[]);

  TVectorF fMeanPar[MAXSIZE];
  TVectorF fSigmaPar[MAXSIZE];

  Int_t GetIter(const Int_t itype, const Int_t nch, const Int_t ncls) const;

  ClassDef(AliTRDdEdxParams,2);
};

#endif
 AliTRDdEdxParams.h:1
 AliTRDdEdxParams.h:2
 AliTRDdEdxParams.h:3
 AliTRDdEdxParams.h:4
 AliTRDdEdxParams.h:5
 AliTRDdEdxParams.h:6
 AliTRDdEdxParams.h:7
 AliTRDdEdxParams.h:8
 AliTRDdEdxParams.h:9
 AliTRDdEdxParams.h:10
 AliTRDdEdxParams.h:11
 AliTRDdEdxParams.h:12
 AliTRDdEdxParams.h:13
 AliTRDdEdxParams.h:14
 AliTRDdEdxParams.h:15
 AliTRDdEdxParams.h:16
 AliTRDdEdxParams.h:17
 AliTRDdEdxParams.h:18
 AliTRDdEdxParams.h:19
 AliTRDdEdxParams.h:20
 AliTRDdEdxParams.h:21
 AliTRDdEdxParams.h:22
 AliTRDdEdxParams.h:23
 AliTRDdEdxParams.h:24
 AliTRDdEdxParams.h:25
 AliTRDdEdxParams.h:26
 AliTRDdEdxParams.h:27
 AliTRDdEdxParams.h:28
 AliTRDdEdxParams.h:29
 AliTRDdEdxParams.h:30
 AliTRDdEdxParams.h:31
 AliTRDdEdxParams.h:32
 AliTRDdEdxParams.h:33
 AliTRDdEdxParams.h:34
 AliTRDdEdxParams.h:35
 AliTRDdEdxParams.h:36
 AliTRDdEdxParams.h:37
 AliTRDdEdxParams.h:38
 AliTRDdEdxParams.h:39
 AliTRDdEdxParams.h:40
 AliTRDdEdxParams.h:41
 AliTRDdEdxParams.h:42
 AliTRDdEdxParams.h:43
 AliTRDdEdxParams.h:44
 AliTRDdEdxParams.h:45
 AliTRDdEdxParams.h:46
 AliTRDdEdxParams.h:47
 AliTRDdEdxParams.h:48
 AliTRDdEdxParams.h:49
 AliTRDdEdxParams.h:50
 AliTRDdEdxParams.h:51
 AliTRDdEdxParams.h:52
 AliTRDdEdxParams.h:53