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>
//

#include "AliLog.h"
#include "AliTRDdEdxParams.h"

ClassImp(AliTRDdEdxParams);

AliTRDdEdxParams::AliTRDdEdxParams(const TString name, const TString title): TNamed(name,title)
{
  //
  //constructor
  //
}

Int_t AliTRDdEdxParams::GetIter(const Int_t itype, const Int_t nch, const Int_t ncls) const
{
  //
  //return array iterator
  //

  Int_t itNch = -999, itNcls = -999;

  //hard coded cuts
  if(nch==6){
    itNch = 0;
  }
  else{
    itNch = 1;
  }

  if(nch!=0 && ncls/nch>=18){
    itNcls = 0;
  }
  else{
    itNcls = 1;
  }

  const Int_t finaliter = itype*2*2 +  itNch*2 + itNcls;

  if(finaliter<0 || finaliter>= MAXSIZE){
    AliError(Form("out of range itype %d nch %d ncls %d\n", itype, nch, ncls));
  }

  return finaliter;
}

const TVectorF& AliTRDdEdxParams::GetParameter(const TVectorF par[], const Int_t itype, const Int_t nch, const Int_t ncls)const
{
  //
  //return parameter for particle itype from par[]
  //

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

  return par[iter];
}

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[])
{
  //
  //set parameter, vals of dimension npar, for particle itype
  //

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

  TVectorF p2(npar, vals);

  par[iter].ResizeTo(p2);
  par[iter] = p2;
}

void AliTRDdEdxParams::Print(Option_t* option) const
{
  //
  //print all members
  //

  TObject::Print(option);

  printf("\n======================= Mean ========================\n");
  for(Int_t ii=0; ii<MAXSIZE; ii++){
    printf("%d: Nrows() %d\n",ii, fMeanPar[ii].GetNrows());
    if(fMeanPar[ii].GetNrows()) fMeanPar[ii].Print();
  }

  printf("\n======================= Sigma ========================\n");

  for(Int_t ii=0; ii<MAXSIZE; ii++){
    printf("%d: Nrows() %d\n",ii, fSigmaPar[ii].GetNrows());
    if(fSigmaPar[ii].GetNrows()) fSigmaPar[ii].Print();
  }
  printf("AliTRDdEdxParams::Print done.\n\n");
}
 AliTRDdEdxParams.cxx:1
 AliTRDdEdxParams.cxx:2
 AliTRDdEdxParams.cxx:3
 AliTRDdEdxParams.cxx:4
 AliTRDdEdxParams.cxx:5
 AliTRDdEdxParams.cxx:6
 AliTRDdEdxParams.cxx:7
 AliTRDdEdxParams.cxx:8
 AliTRDdEdxParams.cxx:9
 AliTRDdEdxParams.cxx:10
 AliTRDdEdxParams.cxx:11
 AliTRDdEdxParams.cxx:12
 AliTRDdEdxParams.cxx:13
 AliTRDdEdxParams.cxx:14
 AliTRDdEdxParams.cxx:15
 AliTRDdEdxParams.cxx:16
 AliTRDdEdxParams.cxx:17
 AliTRDdEdxParams.cxx:18
 AliTRDdEdxParams.cxx:19
 AliTRDdEdxParams.cxx:20
 AliTRDdEdxParams.cxx:21
 AliTRDdEdxParams.cxx:22
 AliTRDdEdxParams.cxx:23
 AliTRDdEdxParams.cxx:24
 AliTRDdEdxParams.cxx:25
 AliTRDdEdxParams.cxx:26
 AliTRDdEdxParams.cxx:27
 AliTRDdEdxParams.cxx:28
 AliTRDdEdxParams.cxx:29
 AliTRDdEdxParams.cxx:30
 AliTRDdEdxParams.cxx:31
 AliTRDdEdxParams.cxx:32
 AliTRDdEdxParams.cxx:33
 AliTRDdEdxParams.cxx:34
 AliTRDdEdxParams.cxx:35
 AliTRDdEdxParams.cxx:36
 AliTRDdEdxParams.cxx:37
 AliTRDdEdxParams.cxx:38
 AliTRDdEdxParams.cxx:39
 AliTRDdEdxParams.cxx:40
 AliTRDdEdxParams.cxx:41
 AliTRDdEdxParams.cxx:42
 AliTRDdEdxParams.cxx:43
 AliTRDdEdxParams.cxx:44
 AliTRDdEdxParams.cxx:45
 AliTRDdEdxParams.cxx:46
 AliTRDdEdxParams.cxx:47
 AliTRDdEdxParams.cxx:48
 AliTRDdEdxParams.cxx:49
 AliTRDdEdxParams.cxx:50
 AliTRDdEdxParams.cxx:51
 AliTRDdEdxParams.cxx:52
 AliTRDdEdxParams.cxx:53
 AliTRDdEdxParams.cxx:54
 AliTRDdEdxParams.cxx:55
 AliTRDdEdxParams.cxx:56
 AliTRDdEdxParams.cxx:57
 AliTRDdEdxParams.cxx:58
 AliTRDdEdxParams.cxx:59
 AliTRDdEdxParams.cxx:60
 AliTRDdEdxParams.cxx:61
 AliTRDdEdxParams.cxx:62
 AliTRDdEdxParams.cxx:63
 AliTRDdEdxParams.cxx:64
 AliTRDdEdxParams.cxx:65
 AliTRDdEdxParams.cxx:66
 AliTRDdEdxParams.cxx:67
 AliTRDdEdxParams.cxx:68
 AliTRDdEdxParams.cxx:69
 AliTRDdEdxParams.cxx:70
 AliTRDdEdxParams.cxx:71
 AliTRDdEdxParams.cxx:72
 AliTRDdEdxParams.cxx:73
 AliTRDdEdxParams.cxx:74
 AliTRDdEdxParams.cxx:75
 AliTRDdEdxParams.cxx:76
 AliTRDdEdxParams.cxx:77
 AliTRDdEdxParams.cxx:78
 AliTRDdEdxParams.cxx:79
 AliTRDdEdxParams.cxx:80
 AliTRDdEdxParams.cxx:81
 AliTRDdEdxParams.cxx:82
 AliTRDdEdxParams.cxx:83
 AliTRDdEdxParams.cxx:84
 AliTRDdEdxParams.cxx:85
 AliTRDdEdxParams.cxx:86
 AliTRDdEdxParams.cxx:87
 AliTRDdEdxParams.cxx:88
 AliTRDdEdxParams.cxx:89
 AliTRDdEdxParams.cxx:90
 AliTRDdEdxParams.cxx:91
 AliTRDdEdxParams.cxx:92
 AliTRDdEdxParams.cxx:93
 AliTRDdEdxParams.cxx:94
 AliTRDdEdxParams.cxx:95
 AliTRDdEdxParams.cxx:96
 AliTRDdEdxParams.cxx:97
 AliTRDdEdxParams.cxx:98
 AliTRDdEdxParams.cxx:99
 AliTRDdEdxParams.cxx:100
 AliTRDdEdxParams.cxx:101
 AliTRDdEdxParams.cxx:102
 AliTRDdEdxParams.cxx:103
 AliTRDdEdxParams.cxx:104
 AliTRDdEdxParams.cxx:105
 AliTRDdEdxParams.cxx:106
 AliTRDdEdxParams.cxx:107
 AliTRDdEdxParams.cxx:108
 AliTRDdEdxParams.cxx:109