1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 // Xianguo Lu <lu@physi.uni-heidelberg.de>
20 #include "AliTRDdEdxParams.h"
22 ClassImp(AliTRDdEdxParams);
24 AliTRDdEdxParams::AliTRDdEdxParams(const TString name, const TString title): TNamed(name,title)
31 Int_t AliTRDdEdxParams::GetIter(const Int_t itype, const Int_t nch, const Int_t ncls) const
34 //return array iterator
37 Int_t itNch = -999, itNcls = -999;
47 if(nch!=0 && ncls/nch>=18){
54 const Int_t finaliter = itype*2*2 + itNch*2 + itNcls;
56 if(finaliter<0 || finaliter>= MAXSIZE){
57 AliError(Form("out of range itype %d nch %d ncls %d\n", itype, nch, ncls));
63 const TVectorF& AliTRDdEdxParams::GetParameter(const TVectorF par[], const Int_t itype, const Int_t nch, const Int_t ncls)const
66 //return parameter for particle itype from par[]
69 const Int_t iter = GetIter(itype, nch, ncls);
74 void AliTRDdEdxParams::SetParameter(TVectorF par[], const Int_t itype, const Int_t nch, const Int_t ncls, const Int_t npar, const Float_t vals[])
77 //set parameter, vals of dimension npar, for particle itype
80 const Int_t iter = GetIter(itype, nch, ncls);
82 TVectorF p2(npar, vals);
84 par[iter].ResizeTo(p2);
88 void AliTRDdEdxParams::Print(Option_t* option) const
94 TObject::Print(option);
96 printf("\n======================= Mean ========================\n");
97 for(Int_t ii=0; ii<MAXSIZE; ii++){
98 printf("%d: Nrows() %d\n",ii, fMeanPar[ii].GetNrows());
99 if(fMeanPar[ii].GetNrows()) fMeanPar[ii].Print();
102 printf("\n======================= Sigma ========================\n");
104 for(Int_t ii=0; ii<MAXSIZE; ii++){
105 printf("%d: Nrows() %d\n",ii, fSigmaPar[ii].GetNrows());
106 if(fSigmaPar[ii].GetNrows()) fSigmaPar[ii].Print();
108 printf("AliTRDdEdxParams::Print done.\n\n");