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

//
// TRD dEdx base utils
// xx
// xx
// xx
// xx
//
//  Xianguo Lu 
//  lu@physi.uni-heidelberg.de
//  Xianguo.Lu@cern.ch
//  
//

#include "TF1.h"
#include "TFile.h"
#include "TH1D.h"
#include "TH2D.h"
#include "THnSparse.h"
#include "TMath.h"
#include "TMatrixD.h"
#include "TMinuit.h"
#include "TObjArray.h"
#include "TRandom3.h"
#include "TStopwatch.h"
#include "TVectorD.h"

#include "TTreeStream.h"

#include "AliESDEvent.h"
#include "AliESDfriendTrack.h"
#include "AliESDtrack.h"
#include "AliTRDtrackV1.h"

#include "AliTRDdEdxBaseUtils.h"

#define EPSILON 1e-8

Double_t AliTRDdEdxBaseUtils::fgQ0Frac = 0.55;
Double_t AliTRDdEdxBaseUtils::fgQ1Frac = 0.5;
Double_t AliTRDdEdxBaseUtils::fgTimeBinCountCut = 0.0; 
Int_t    AliTRDdEdxBaseUtils::fgCalibTPCnclsCut = 70;
Bool_t   AliTRDdEdxBaseUtils::fgExBOn = kTRUE; 
Bool_t   AliTRDdEdxBaseUtils::fgPadGainOn = kTRUE;
Double_t AliTRDdEdxBaseUtils::fgQScale = 50;

//===================================================================================
//                                   Math and Histogram
//===================================================================================
void AliTRDdEdxBaseUtils::BinLogX(TAxis *axis) 
{
  //
  // Method for the correct logarithmic binning of histograms
  // copied and modified from AliTPCcalibBase

  const Int_t bins = axis->GetNbins();

  const Double_t from = axis->GetXmin();
  const Double_t to = axis->GetXmax();
  if (from<EPSILON){
    //printf("AliTRDdEdxBaseUtils::BinLogX warning xmin < epsilon! nothing done, axis not set. %e\n", from);  exit(1);
    return;
  }

  Double_t *new_bins = new Double_t[bins + 1];

  new_bins[0] = from;
  const Double_t factor = pow(to/from, 1./bins);

  for (int i = 1; i <= bins; i++) {
   new_bins[i] = factor * new_bins[i-1];
  }
  axis->Set(bins, new_bins);
  delete [] new_bins;
}

void AliTRDdEdxBaseUtils::GetCDFCuts(const TH1D *hh, Int_t ncut, Double_t cuts[], const Double_t cdfs[], Double_t thres)
{
  //
  //counts of hh is sorted
  //

  for(Int_t ii=0; ii<ncut; ii++){
    cuts[ii] = -999;
  }

  Int_t nsel = 0; 
  const Int_t nbin = hh->GetNbinsX();
  Double_t datas[nbin];
  for(Int_t ii=1; ii<=nbin; ii++){
    const Double_t res = hh->GetBinContent(ii);
    if(res<thres){
      continue;
    }

    datas[nsel] = res;
    nsel++;
  }
  if(!nsel)
    return;

  Int_t id[nsel];
  TMath::Sort(nsel, datas, id, kFALSE);

  for(Int_t ii=0; ii<ncut; ii++){
    const Double_t icdf = cdfs[ii];
    if(icdf<0 || icdf>1){
      printf("AliTRDdEdxBaseUtils::GetCDFCuts error cdfs[%d] %15f out of range!\n", ii, icdf); exit(1);
    }
    cuts[ii] = datas[id[Int_t(icdf*nsel)]];
  }
}

Double_t AliTRDdEdxBaseUtils::GetMeanRMS(Double_t nn, Double_t sum, Double_t w2s, Double_t * grms, Double_t * gerr)
{
  //
  //calculate mean (with error) and rms from sum, w2s, nn
  //if nn=0, mean, error, and rms all = 0
  //

  Double_t tmean = 0, trms = 0, terr = 0;

  if(nn>EPSILON){
    tmean = sum/nn;

    const Double_t arg = w2s/nn-tmean*tmean;
    if(TMath::Abs(arg)<EPSILON){
      trms = 0;
    }
    else{
      if( arg <0 ){
        printf("AliTRDdEdxBaseUtils::GetMeanRMS error negative sqrt argument!! %e -- %e %e %f\n", arg, w2s, sum, nn); exit(1);
      }
      
      trms = TMath::Sqrt(arg);
    }

    terr = trms/TMath::Sqrt(nn);
  }

  if(grms){
    (*grms) = trms;
  }

  if(gerr){
    (*gerr) = terr;
  }

  return tmean;
}

Double_t AliTRDdEdxBaseUtils::TruncatedMean(Int_t nx, const Double_t xdata[], Double_t lowfrac, Double_t highfrac, Double_t * grms, Double_t * gerr, Double_t *wws)
{
  //
  //calculate truncated mean
  //return <x*w>_{low-high according to x}
  //

  /*
  //test->
  for(Int_t ii=0; ii<nx; ii++){
    printf("test %d/%d %f\n", ii, nx, xdata[ii]);
  }
  //<--test
  */

  Int_t index[nx];
  TMath::Sort(nx, xdata, index, kFALSE);

  Int_t nused = 0;
  Double_t sum = 0;
  Double_t w2s = 0;
  const Int_t istart = Int_t (nx*lowfrac);
  const Int_t istop  = Int_t (nx*highfrac);

  //=,< correct, because when low=0, high=1 it is correct
  for(Int_t ii=istart; ii<istop; ii++){
    Double_t weight = 1;
    if(wws){
      weight = wws[index[ii]];
    }
    const Double_t sx = xdata[index[ii]]*weight;

    sum += sx;
    w2s += sx*sx;

    nused++;
    //printf("test in loop %d/%d %f %f %f\n", ii, nused, sx, sum, w2s);
    
  }

  return GetMeanRMS(nused, sum, w2s, grms, gerr);
}

Double_t AliTRDdEdxBaseUtils::TruncatedMean(const TH1 *hh, Double_t lowfrac, Double_t highfrac, Double_t * grms, Double_t * gerr)
{
  //
  //do truncation on histogram
  //
  //if hh is scaled, be sure Sumw2 is called before scaling!! then mean, rms and err will all be correct
  
  //with under-/over-flow
  Double_t npreTrunc = 0;
  for(Int_t itmp=0; itmp<=hh->GetNbinsX()+1; itmp++){
    const Double_t be = hh->GetBinError(itmp);
    const Double_t bc = hh->GetBinContent(itmp);
    if(be<EPSILON){
      if(bc>EPSILON){
        printf("AliTRDdEdxBaseUtils::TruncatedMean (hist) error %e %e %d\n", bc, be, itmp); exit(1);
      }
      continue;
    }
    npreTrunc += bc*bc/be/be;
  }

  const Double_t nstart = npreTrunc*lowfrac;
  const Double_t nstop = npreTrunc*highfrac;

  //with Double_t this should also handle normalized hist
  Double_t ntot = 0;
  Double_t nused = 0;
  Double_t sum = 0;
  Double_t w2s = 0;
  for(Int_t itmp=0; itmp<=hh->GetNbinsX()+1; itmp++){
    const Double_t be = hh->GetBinError(itmp);
    const Double_t bc = hh->GetBinContent(itmp);
    if(be<EPSILON){
      if(bc>EPSILON){
        printf("AliTRDdEdxBaseUtils::TruncatedMean (hist) error %e %e %d\n", bc, be, itmp); exit(1);
      }
      continue;
    }
    const Double_t weight = bc*bc/be/be;
    ntot+=weight;
    //<= correct, because when high=1, nstop has to be included
    if(ntot>nstart && ntot<=nstop){

      const Double_t val = hh->GetBinCenter(itmp);
      sum += weight*val;
      w2s += weight*val*val;
    
      nused += weight;

      //printf("test %d %f %f --- %f %f -- %f %f\n", itmp, weight, val, sum, w2s, nused, nsample);
    }
    else if(ntot>nstop){
      if(itmp>=hh->GetNbinsX()){
        printf("AliTRDdEdxBaseUtils::TruncatedMean warning hist range too small %s %f %f %d %d, %15f %15f %15f; nused w2s sum set to 0\n", hh->GetName(), hh->GetBinLowEdge(1), hh->GetBinLowEdge(itmp), itmp, hh->GetNbinsX(), hh->GetBinContent(hh->GetNbinsX())/hh->Integral(0,hh->GetNbinsX()+1), hh->GetBinContent(hh->GetNbinsX()), hh->Integral(0,hh->GetNbinsX()+1)); //exit(1);
        nused = 0;
        w2s = sum = 0;
      }
      break;
    }
  }

  return GetMeanRMS(nused, sum, w2s, grms, gerr);
}

void AliTRDdEdxBaseUtils::FitSlicesY(const TH2D *hh, TH1D *&hnor, TH1D *&hmpv, TH1D *&hwid, TH1D *&hres, Double_t thres, Double_t lowfrac, Double_t highfrac)
{
  //
  //fit slices of hh using truncation
  //

  const Int_t x0 = hh->GetXaxis()->GetFirst();
  const Int_t x1 = hh->GetXaxis()->GetLast();
  const Int_t y0 = hh->GetYaxis()->GetFirst();
  const Int_t y1 = hh->GetYaxis()->GetLast();

  const Int_t nx = hh->GetNbinsX();
  const Int_t ny = hh->GetNbinsY();
  const Double_t xmin = hh->GetXaxis()->GetXmin();
  const Double_t xmax = hh->GetXaxis()->GetXmax();
  const Double_t ymin = hh->GetYaxis()->GetXmin();
  const Double_t ymax = hh->GetYaxis()->GetXmax();

  hnor = new TH1D(Form("%s_amp",hh->GetName()), "", nx, xmin, xmax);
  hmpv = new TH1D(Form("%s_mpv",hh->GetName()), "", nx, xmin, xmax);
  hwid = new TH1D(Form("%s_wid",hh->GetName()), "", nx, xmin, xmax);
  hres = new TH1D(Form("%s_res",hh->GetName()), "", nx, xmin, xmax);

  Double_t newbins[ny+1];
  for(Int_t ii=1; ii<=ny+1; ii++){
    const Double_t lowx= hh->GetYaxis()->GetBinLowEdge(ii);
    newbins[ii-1]=lowx;
  }

  for(Int_t ix=x0; ix<=x1; ix++){
    //to speed up
    const Double_t rawcount = hh->Integral(ix,ix,0, ny+1);
    if(rawcount<EPSILON){
      continue;
    }

    TH1D *htmp = new TH1D(Form("FitSlicesY_%s_%d", hh->GetName(), ix),"",ny, ymin, ymax);
    htmp->GetXaxis()->Set(ny, newbins);
    Double_t ntot = 0;
    for(Int_t iy=y0; iy<=y1; iy++){
      const Double_t be = hh->GetBinError(ix,iy);
      const Double_t bc = hh->GetBinContent(ix, iy);

      if(be<EPSILON){
        if(bc>EPSILON){
          printf("AliTRDdEdxBaseUtils::FitSlicesY error %d %d %e %e\n", ix, iy, be, bc); exit(1);
        }
        continue;
      }

      htmp->SetBinContent(iy, bc);
      htmp->SetBinError(iy, be);

      ntot += (bc/be)*(bc/be);

      //if(be) printf("test %d %d : %f %f %f\n", ix, iy, bc, be, pow(bc/be,2));
    }

    hnor->SetBinContent(ix, ntot);
    hnor->SetBinError(  ix, 0);
    
    if(ntot<thres || htmp->GetRMS()<EPSILON){
      delete htmp;
      continue;
    }

    //test htmp->Draw();
    Double_t trms = -999, terr = -999;
    const Double_t tmean = TruncatedMean(htmp, lowfrac, highfrac, &trms, &terr);

    hmpv->SetBinContent(ix, tmean);
    hmpv->SetBinError(  ix, terr);

    hwid->SetBinContent(ix, trms);
    hwid->SetBinError(  ix, 0);

    hres->SetBinContent(ix, tmean>EPSILON ? trms/tmean:0);
    hres->SetBinError(  ix, 0);

    delete htmp;
  }

  TH1 *hhs[]={hnor, hmpv, hwid, hres};
  const TString yt[]={"N", "MPV", "#sigma", "#sigma/MPV"};
  const Int_t nh = sizeof(hhs)/sizeof(TH1*);
  for(Int_t ii=0; ii<nh; ii++){
    hhs[ii]->SetYTitle(Form("%s of %s", yt[ii].Data(), hh->GetYaxis()->GetTitle()));
    hhs[ii]->SetXTitle(hh->GetXaxis()->GetTitle());
    hhs[ii]->GetYaxis()->SetTitleOffset(hh->GetYaxis()->GetTitleOffset());
    hhs[ii]->SetTitle(hh->GetTitle());
  }
}

//===================================================================================
//                                TRD Analysis Fast Tool
//===================================================================================

Int_t AliTRDdEdxBaseUtils::GetNtracklet(const AliESDEvent *esd)
{
  //
  //number of trd tracklet in one esd event
  //
  const Int_t ntrk0 = esd->GetNumberOfTracks();
  Int_t ntrdv1=0;
  for(Int_t ii=0; ii<ntrk0; ii++){
    ntrdv1 += esd->GetTrack(ii)->GetTRDntracklets();
  }
  return ntrdv1;
}

AliTRDtrackV1 * AliTRDdEdxBaseUtils::GetTRDtrackV1(const AliESDtrack * esdtrack)
{
  //
  //Get TRD friend track
  //

  AliESDfriendTrack *  friendtrk = (AliESDfriendTrack *)esdtrack->GetFriendTrack();
  if(!friendtrk){
    //printf("xlulog AliAnalysisTaskCosmicTRD::GetTRDtrack no friend!!\n"); exit(1);
    return 0x0;
  }

  TObject *calibObject=0x0;
  AliTRDtrackV1 * trdtrack=0x0;
  for(Int_t l=0; (calibObject=friendtrk->GetCalibObject(l)); l++) {
    if( (trdtrack=dynamic_cast<AliTRDtrackV1*>(calibObject)) )
      break;
  }

  return trdtrack;
}

Bool_t AliTRDdEdxBaseUtils::IsInSameStack(const AliTRDtrackV1 *trdtrack)
{
  //
  // to check if all tracklets are in the same stack, useful in cosmic
  //

  TVectorD secs(18), stks(5);

  for(Int_t ilayer = 0; ilayer < 6; ilayer++){
    AliTRDseedV1 *tracklet=trdtrack->GetTracklet(ilayer);
    if(!tracklet)
      continue;
    
    const Int_t det = tracklet->GetDetector();
    const Int_t isector = AliTRDgeometry::GetSector(det);
    const Int_t istack  = AliTRDgeometry::GetStack(det);

    secs[isector] = 1;
    stks[istack]  = 1;
 }

  if(secs.Sum()!=1 || stks.Sum()!=1){
    return kFALSE;
  }
  else 
    return kTRUE;
}

Double_t AliTRDdEdxBaseUtils::GetRedefinedPhi(Double_t phi)
{
  //
  //redefine phi in pi/2 - pi/2 + 2pi
  //

  if(phi>0 && phi < TMath::Pi()/2){
    phi += 2*TMath::Pi();
  }

  return phi;
}

Double_t AliTRDdEdxBaseUtils::Getdydx(const AliTRDseedV1 *tracklet)
{
  //
  //get dydx
  //
  if(tracklet)
    return tracklet->GetYref(1);
  else
    return -999;
}

Double_t AliTRDdEdxBaseUtils::Getdzdx(const AliTRDseedV1 *tracklet)
{
  //
  //get dzdx
  //
  if(tracklet)
    return tracklet->GetZref(1);
  else
    return -999;
}

Double_t AliTRDdEdxBaseUtils::Getdldx(const AliTRDseedV1 *tracklet)
{
  //
  //return angular normalization factor = dldx
  //
  if(tracklet)
    return TMath::Sqrt(1+tracklet->GetYref(1)*tracklet->GetYref(1)+tracklet->GetZref(1)*tracklet->GetZref(1));
  else
    return -999;
}

AliTRDseedV1 * AliTRDdEdxBaseUtils::GetFirstTracklet(const AliTRDtrackV1 *trdtrack)
{
  //
  //as function name
  //

  AliTRDseedV1 *tracklet = 0x0;
  for(Int_t ilayer = 0; ilayer < 6; ilayer++){
    tracklet=trdtrack->GetTracklet(ilayer);
    if(!tracklet)
      continue;
    
    break;
  }

  return tracklet;
}

AliTRDseedV1 * AliTRDdEdxBaseUtils::GetLastTracklet(const AliTRDtrackV1 *trdtrack)
{
  //
  //get last tracklet
  //
  AliTRDseedV1 *tracklet = 0x0;
  
  for(Int_t ilayer = 5; ilayer >= 0; ilayer--){
    tracklet=trdtrack->GetTracklet(ilayer);
    if(!tracklet)
      continue;

    break;
  }

  return tracklet;
}

void AliTRDdEdxBaseUtils::GetFirstSectorStackMomentum(const AliTRDtrackV1 *trdtrack, Int_t & isec, Int_t & istk, Double_t & mom)
{
  //
  //as function name
  //
  isec = istk = -999;
  mom = -999;

  AliTRDseedV1 *tracklet = GetFirstTracklet(trdtrack);
  if(tracklet){
    const Int_t det = tracklet->GetDetector();
    isec = AliTRDgeometry::GetSector(det);
    istk = AliTRDgeometry::GetStack(det);
    
    mom = tracklet->GetMomentum();
  }

  return;
}

//===================================================================================
//                                Detector and Data Constant 
//===================================================================================
Int_t  AliTRDdEdxBaseUtils::ToDetector(Int_t gtb)
{
  //
  //gtb = det*Ntb+itb
  //
  return gtb/AliTRDseedV1::kNtb;
}

Int_t  AliTRDdEdxBaseUtils::ToTimeBin(Int_t gtb)
{ 
  //
  //gtb = det*Ntb+itb
  //
  return gtb%AliTRDseedV1::kNtb;
}

Int_t  AliTRDdEdxBaseUtils::ToSector(Int_t gtb)
{
  //
  //return sector
  //
  return AliTRDgeometry::GetSector(ToDetector(gtb));
}

Int_t  AliTRDdEdxBaseUtils::ToStack(Int_t gtb)
{
  //
  //return stack
  //
  return AliTRDgeometry::GetStack(ToDetector(gtb));
}

Int_t  AliTRDdEdxBaseUtils::ToLayer(Int_t gtb)
{
  //
  //return layer
  //
  return AliTRDgeometry::GetLayer(ToDetector(gtb));
}

void AliTRDdEdxBaseUtils::CheckRunB(TString listrun1kg, Int_t run, TString & type)
{
  //
  //check run b field
  //
  if(listrun1kg.Contains(Form("%d",run))){
    type+="1kG"; 
  }
  else {
    type+="5kG";
  }
}

TString AliTRDdEdxBaseUtils::GetRunType(Int_t run)
{
  //
  //return run type
  //

  TString type;
  if(run>=121527 && run<= 126460)//LHC10d
    type="2010ppLHC10d";
  else if(run>=126461 && run<= 130930)//LHC10e
    type="2010ppLHC10e";
  else if(run>=136782 && run <= 139846)//LHC10h
    type="2010PbPbLHC10h";
  else if(run>= 143224 && run<= 143237)//2011Feb
    type="2011cosmicFeb";
  else if(run>= 150587 && run<= 154930){
    type="2011cosmicMayJun";

    CheckRunB("154601 154602 154629 154634 154636 154639 154643", run,  type);
  }
  else if(run>=173047 && run<=180164){
    type="2012cosmic";

    CheckRunB("173047 173049 173050 173065 173070 173092 173095 173113 173131 173160 174154 174156 174192 174194", run, type);
  }
  else{
    type="unknown";
  }

  type.ToUpper();
  return type;
}

void AliTRDdEdxBaseUtils::PrintControl()
{
  //
  //print out control variable
  //
  printf("\nAliTRDdEdxBaseUtils::PrintControl Q0Frac %.2f, Q1Frac %.2f, TimeBinCountCut %.2f, CalibTPCnclsCut %d, IsExBOn %d, IsPadGainOn %d, QScale %.2f\n\n", Q0Frac(), Q1Frac(), TimeBinCountCut(), CalibTPCnclsCut(), IsExBOn(), IsPadGainOn(), QScale());
}

//===================================================================================
//                                 dEdx Parameterization
//===================================================================================
void AliTRDdEdxBaseUtils::FastFitdEdxTR(TH1 * hh)
{
  //
  //fit dedx tr from mean
  //

  TF1 *ff=new TF1("ff", MeandEdxTRLogx, -0.5, 4.5, 8);
  Double_t par[8];
  par[0]=   2.397001e-01;
  par[1]=   1.334697e+00;
  par[2]=   6.967470e+00;
  par[3]=   9.055289e-02;
  par[4]=   9.388760e+00;
  par[5]=   9.452742e-04;
  par[6]=  -1.866091e+00;
  par[7]=   1.403545e+00;

  ff->SetParameters(par);
  hh->Fit(ff,"N");

  for(int ii=0; ii<8; ii++){
    printf("par[%d]=%e;\n", ii, ff->GetParameter(ii));
  }

  TFile *fout=new TFile("fastfit.root","recreate");
  hh->Write();
  ff->Write();
  fout->Save();
  fout->Close();

  delete fout;
  delete ff;
}

Double_t AliTRDdEdxBaseUtils::Q0MeanTRDpp(Double_t bg)
{
  //
  //truncated Mean Q_{xx} in TRD
  //
 
  Double_t par[8];
  Double_t scale = 1;
  
  //2012-0605 /u/xlu/.task/CommondEdx/myAnaData/newTune_r56595/inuse/plot/fastFit
  scale = 0.9257;
par[0]=8.316476e-01;
par[1]=1.600907e+00;
par[2]=7.728447e+00;
par[3]=6.235622e-02;
par[4]=1.136209e+01;
par[5]=-1.495764e-06;
par[6]=-2.536119e+00;
par[7]=3.416031e+00;

  return   scale*MeandEdxTR(&bg, par);
}

Double_t AliTRDdEdxBaseUtils::Q0MeanTRDPbPb(Double_t bg)
{
  //
  //truncated Mean Q_{xx} in TRD
  //
 
  Double_t par[8];

  //03132012161259
  //opt: PbPbQ0
par[0]=   1.844912e-01;
par[1]=   2.509702e+00;
par[2]=   6.744031e+00;
par[3]=   7.355123e-02;
par[4]=   1.166023e+01;
par[5]=   1.736186e-04;
par[6]=  -1.716063e+00;
par[7]=   1.611366e+00;

  ///u/xlu/.task/CommondEdx/myAnaData/Optimum/check11/Merged/LHC10e_plot/Separation/see4.log:hhtype4Q0b2c2 scale        0.460994 at ltbg        0.650000  
  return   0.460994*MeandEdxTR(&bg, par);
}

Double_t AliTRDdEdxBaseUtils::Q1MeanTRDpp(Double_t bg)
{
  //
  //truncated Mean 1/(1/Q)_{xx} in TRD
  //
 
  Double_t par[8];

  //So 4. Mär 13:30:51 CET 2012
  //opt: trdppQ1
  par[0]=   2.434646e-01;
  par[1]=   1.400211e+00;
  par[2]=   6.937471e+00;
  par[3]=   7.758118e-02;
  par[4]=   1.097372e+01;
  par[5]=   4.297518e-04;
  par[6]=  -1.806266e+00;
  par[7]=   1.543811e+00;

  //hhtype2Q1b2c2 scale        0.418629 at ltbg        0.650000

  return  0.418629*MeandEdxTR(&bg, par);
}

Double_t AliTRDdEdxBaseUtils::Q1MeanTRDPbPb(Double_t bg)
{
  //
  //truncated Mean 1/(1/Q)_{xx} in TRD
  //
 
  Double_t par[8];

  //So 4. Mär 13:30:52 CET 2012
  //opt: trdPbPbQ1
  par[0]=   2.193660e-01;
  par[1]=   2.051864e+00;
  par[2]=   6.825112e+00;
  par[3]=   6.151693e-02;
  par[4]=   1.390343e+01;
  par[5]=   6.010032e-05;
  par[6]=  -1.676324e+00;
  par[7]=   1.838873e+00;

  //hhtype4Q1b2c2 scale        0.457988 at ltbg        0.650000

  return  0.457988*MeandEdxTR(&bg, par);
}

Double_t AliTRDdEdxBaseUtils::QMeanTPC(Double_t bg)
{
  //
  //bethe bloch in TPC
  //

  Double_t par[5];
  //Mi 15. Feb 14:48:05 CET 2012
  //train_2012-02-13_1214.12001, tpcsig
  par[0]=       4.401269;
  par[1]=       9.725370;
  par[2]=       0.000178;
  par[3]=       1.904962;
  par[4]=       1.426576;

  return MeandEdx(&bg, par);
}

Double_t AliTRDdEdxBaseUtils::MeandEdxTR(const Double_t * xx,  const Double_t * pin)
{
  //
  //ALEPH+LOGISTIC parametrization for dEdx+TR, in unit of MIP
  //npar = 8 = 3+5
  //
  Double_t ptr[4]={0};
  for(int ii=0; ii<3; ii++){
    ptr[ii+1]=pin[ii];
  }
  return MeanTR(xx,ptr) + MeandEdx(xx,&(pin[3]));
}

Double_t AliTRDdEdxBaseUtils::MeanTR(const Double_t * xx,  const Double_t * par)
{
  //
  //ALEPH+LOGISTIC parametrization for dEdx+TR, in unit of MIP
  //npar = 4
  //

  const Double_t bg = xx[0];
  const Double_t gamma = sqrt(1+bg*bg);

  const Double_t p0 = TMath::Abs(par[1]);
  const Double_t p1 = TMath::Abs(par[2]);
  const Double_t p2 = TMath::Abs(par[3]);

  const Double_t zz = TMath::Log(gamma);
  const Double_t tryield = p0/( 1 + TMath::Exp(-p1*(zz-p2)) );

  return par[0]+tryield;
}

Double_t AliTRDdEdxBaseUtils::MeandEdx(const Double_t * xx,  const Double_t * par)
{
  return ALEPH(xx, par);
}

Double_t AliTRDdEdxBaseUtils::ALEPH(const Double_t * xx,  const Double_t * par)
{
  //
  //ALEPH parametrization for dEdx
  //npar = 5
  //

  const Double_t bg = xx[0];
  const Double_t beta = bg/TMath::Sqrt(1.+ bg*bg);

  const Double_t p0 = TMath::Abs(par[0]);
  const Double_t p1 = TMath::Abs(par[1]);

  //after redefining p2 (<0) -> ln P2
  //const Double_t p2 = par[2];

  //restore back
  const Double_t p2 = TMath::Abs(par[2]);

  const Double_t p3 = TMath::Abs(par[3]);
  const Double_t p4 = TMath::Abs(par[4]);

  const Double_t aa = TMath::Power(beta, p3);

  //numerically very bad when p2~1e-15, bg~1e3, p4~5.
  const Double_t bb = TMath::Log( p2 + TMath::Power(1./bg, p4) );

  //+1 to avoid the singularity when bg<1 and p4>>1
  //very^inf important! with this hesse NOTPOS->OK and no nan or inf in migrad
  //i.e. numerically very stable
  //the reason is when bg<1 ln blows up very fast with p4>>1 and nan/inf appears in migrad search
  //the fitting will adjust the parameters as if bg is not shifted, the fitted curve looks fine!!
  //-- 2012 Aug 8
  //----> fail for 10h, not used, restore back!
  //const Double_t lbg = TMath::Log(bg);

  //redefine p2(<0) -> ln P2
  //corresponds to alephFit.C fAlephOPt = 11
  //const Double_t bb = p2 + TMath::Log( 1 + TMath::Exp(-p2-p4*lbg) );
  
  //printf("test----- %f %f -- %f %f %f %f %f --- %f %f %f\n", bg, beta, p0, p1, p2, p3, p4, p0/aa, aa, bb);

  return (p1-aa-bb)*p0/aa;
}

Double_t AliTRDdEdxBaseUtils::ToLogx(FFunc func, const Double_t * xx,  const Double_t * par)
{
  //
  //f(x)-> f(y) with y=log10(x)
  //
  const Double_t x2[]={TMath::Power(10, xx[0])};
  return func(x2, par);
}

 AliTRDdEdxBaseUtils.cxx:1
 AliTRDdEdxBaseUtils.cxx:2
 AliTRDdEdxBaseUtils.cxx:3
 AliTRDdEdxBaseUtils.cxx:4
 AliTRDdEdxBaseUtils.cxx:5
 AliTRDdEdxBaseUtils.cxx:6
 AliTRDdEdxBaseUtils.cxx:7
 AliTRDdEdxBaseUtils.cxx:8
 AliTRDdEdxBaseUtils.cxx:9
 AliTRDdEdxBaseUtils.cxx:10
 AliTRDdEdxBaseUtils.cxx:11
 AliTRDdEdxBaseUtils.cxx:12
 AliTRDdEdxBaseUtils.cxx:13
 AliTRDdEdxBaseUtils.cxx:14
 AliTRDdEdxBaseUtils.cxx:15
 AliTRDdEdxBaseUtils.cxx:16
 AliTRDdEdxBaseUtils.cxx:17
 AliTRDdEdxBaseUtils.cxx:18
 AliTRDdEdxBaseUtils.cxx:19
 AliTRDdEdxBaseUtils.cxx:20
 AliTRDdEdxBaseUtils.cxx:21
 AliTRDdEdxBaseUtils.cxx:22
 AliTRDdEdxBaseUtils.cxx:23
 AliTRDdEdxBaseUtils.cxx:24
 AliTRDdEdxBaseUtils.cxx:25
 AliTRDdEdxBaseUtils.cxx:26
 AliTRDdEdxBaseUtils.cxx:27
 AliTRDdEdxBaseUtils.cxx:28
 AliTRDdEdxBaseUtils.cxx:29
 AliTRDdEdxBaseUtils.cxx:30
 AliTRDdEdxBaseUtils.cxx:31
 AliTRDdEdxBaseUtils.cxx:32
 AliTRDdEdxBaseUtils.cxx:33
 AliTRDdEdxBaseUtils.cxx:34
 AliTRDdEdxBaseUtils.cxx:35
 AliTRDdEdxBaseUtils.cxx:36
 AliTRDdEdxBaseUtils.cxx:37
 AliTRDdEdxBaseUtils.cxx:38
 AliTRDdEdxBaseUtils.cxx:39
 AliTRDdEdxBaseUtils.cxx:40
 AliTRDdEdxBaseUtils.cxx:41
 AliTRDdEdxBaseUtils.cxx:42
 AliTRDdEdxBaseUtils.cxx:43
 AliTRDdEdxBaseUtils.cxx:44
 AliTRDdEdxBaseUtils.cxx:45
 AliTRDdEdxBaseUtils.cxx:46
 AliTRDdEdxBaseUtils.cxx:47
 AliTRDdEdxBaseUtils.cxx:48
 AliTRDdEdxBaseUtils.cxx:49
 AliTRDdEdxBaseUtils.cxx:50
 AliTRDdEdxBaseUtils.cxx:51
 AliTRDdEdxBaseUtils.cxx:52
 AliTRDdEdxBaseUtils.cxx:53
 AliTRDdEdxBaseUtils.cxx:54
 AliTRDdEdxBaseUtils.cxx:55
 AliTRDdEdxBaseUtils.cxx:56
 AliTRDdEdxBaseUtils.cxx:57
 AliTRDdEdxBaseUtils.cxx:58
 AliTRDdEdxBaseUtils.cxx:59
 AliTRDdEdxBaseUtils.cxx:60
 AliTRDdEdxBaseUtils.cxx:61
 AliTRDdEdxBaseUtils.cxx:62
 AliTRDdEdxBaseUtils.cxx:63
 AliTRDdEdxBaseUtils.cxx:64
 AliTRDdEdxBaseUtils.cxx:65
 AliTRDdEdxBaseUtils.cxx:66
 AliTRDdEdxBaseUtils.cxx:67
 AliTRDdEdxBaseUtils.cxx:68
 AliTRDdEdxBaseUtils.cxx:69
 AliTRDdEdxBaseUtils.cxx:70
 AliTRDdEdxBaseUtils.cxx:71
 AliTRDdEdxBaseUtils.cxx:72
 AliTRDdEdxBaseUtils.cxx:73
 AliTRDdEdxBaseUtils.cxx:74
 AliTRDdEdxBaseUtils.cxx:75
 AliTRDdEdxBaseUtils.cxx:76
 AliTRDdEdxBaseUtils.cxx:77
 AliTRDdEdxBaseUtils.cxx:78
 AliTRDdEdxBaseUtils.cxx:79
 AliTRDdEdxBaseUtils.cxx:80
 AliTRDdEdxBaseUtils.cxx:81
 AliTRDdEdxBaseUtils.cxx:82
 AliTRDdEdxBaseUtils.cxx:83
 AliTRDdEdxBaseUtils.cxx:84
 AliTRDdEdxBaseUtils.cxx:85
 AliTRDdEdxBaseUtils.cxx:86
 AliTRDdEdxBaseUtils.cxx:87
 AliTRDdEdxBaseUtils.cxx:88
 AliTRDdEdxBaseUtils.cxx:89
 AliTRDdEdxBaseUtils.cxx:90
 AliTRDdEdxBaseUtils.cxx:91
 AliTRDdEdxBaseUtils.cxx:92
 AliTRDdEdxBaseUtils.cxx:93
 AliTRDdEdxBaseUtils.cxx:94
 AliTRDdEdxBaseUtils.cxx:95
 AliTRDdEdxBaseUtils.cxx:96
 AliTRDdEdxBaseUtils.cxx:97
 AliTRDdEdxBaseUtils.cxx:98
 AliTRDdEdxBaseUtils.cxx:99
 AliTRDdEdxBaseUtils.cxx:100
 AliTRDdEdxBaseUtils.cxx:101
 AliTRDdEdxBaseUtils.cxx:102
 AliTRDdEdxBaseUtils.cxx:103
 AliTRDdEdxBaseUtils.cxx:104
 AliTRDdEdxBaseUtils.cxx:105
 AliTRDdEdxBaseUtils.cxx:106
 AliTRDdEdxBaseUtils.cxx:107
 AliTRDdEdxBaseUtils.cxx:108
 AliTRDdEdxBaseUtils.cxx:109
 AliTRDdEdxBaseUtils.cxx:110
 AliTRDdEdxBaseUtils.cxx:111
 AliTRDdEdxBaseUtils.cxx:112
 AliTRDdEdxBaseUtils.cxx:113
 AliTRDdEdxBaseUtils.cxx:114
 AliTRDdEdxBaseUtils.cxx:115
 AliTRDdEdxBaseUtils.cxx:116
 AliTRDdEdxBaseUtils.cxx:117
 AliTRDdEdxBaseUtils.cxx:118
 AliTRDdEdxBaseUtils.cxx:119
 AliTRDdEdxBaseUtils.cxx:120
 AliTRDdEdxBaseUtils.cxx:121
 AliTRDdEdxBaseUtils.cxx:122
 AliTRDdEdxBaseUtils.cxx:123
 AliTRDdEdxBaseUtils.cxx:124
 AliTRDdEdxBaseUtils.cxx:125
 AliTRDdEdxBaseUtils.cxx:126
 AliTRDdEdxBaseUtils.cxx:127
 AliTRDdEdxBaseUtils.cxx:128
 AliTRDdEdxBaseUtils.cxx:129
 AliTRDdEdxBaseUtils.cxx:130
 AliTRDdEdxBaseUtils.cxx:131
 AliTRDdEdxBaseUtils.cxx:132
 AliTRDdEdxBaseUtils.cxx:133
 AliTRDdEdxBaseUtils.cxx:134
 AliTRDdEdxBaseUtils.cxx:135
 AliTRDdEdxBaseUtils.cxx:136
 AliTRDdEdxBaseUtils.cxx:137
 AliTRDdEdxBaseUtils.cxx:138
 AliTRDdEdxBaseUtils.cxx:139
 AliTRDdEdxBaseUtils.cxx:140
 AliTRDdEdxBaseUtils.cxx:141
 AliTRDdEdxBaseUtils.cxx:142
 AliTRDdEdxBaseUtils.cxx:143
 AliTRDdEdxBaseUtils.cxx:144
 AliTRDdEdxBaseUtils.cxx:145
 AliTRDdEdxBaseUtils.cxx:146
 AliTRDdEdxBaseUtils.cxx:147
 AliTRDdEdxBaseUtils.cxx:148
 AliTRDdEdxBaseUtils.cxx:149
 AliTRDdEdxBaseUtils.cxx:150
 AliTRDdEdxBaseUtils.cxx:151
 AliTRDdEdxBaseUtils.cxx:152
 AliTRDdEdxBaseUtils.cxx:153
 AliTRDdEdxBaseUtils.cxx:154
 AliTRDdEdxBaseUtils.cxx:155
 AliTRDdEdxBaseUtils.cxx:156
 AliTRDdEdxBaseUtils.cxx:157
 AliTRDdEdxBaseUtils.cxx:158
 AliTRDdEdxBaseUtils.cxx:159
 AliTRDdEdxBaseUtils.cxx:160
 AliTRDdEdxBaseUtils.cxx:161
 AliTRDdEdxBaseUtils.cxx:162
 AliTRDdEdxBaseUtils.cxx:163
 AliTRDdEdxBaseUtils.cxx:164
 AliTRDdEdxBaseUtils.cxx:165
 AliTRDdEdxBaseUtils.cxx:166
 AliTRDdEdxBaseUtils.cxx:167
 AliTRDdEdxBaseUtils.cxx:168
 AliTRDdEdxBaseUtils.cxx:169
 AliTRDdEdxBaseUtils.cxx:170
 AliTRDdEdxBaseUtils.cxx:171
 AliTRDdEdxBaseUtils.cxx:172
 AliTRDdEdxBaseUtils.cxx:173
 AliTRDdEdxBaseUtils.cxx:174
 AliTRDdEdxBaseUtils.cxx:175
 AliTRDdEdxBaseUtils.cxx:176
 AliTRDdEdxBaseUtils.cxx:177
 AliTRDdEdxBaseUtils.cxx:178
 AliTRDdEdxBaseUtils.cxx:179
 AliTRDdEdxBaseUtils.cxx:180
 AliTRDdEdxBaseUtils.cxx:181
 AliTRDdEdxBaseUtils.cxx:182
 AliTRDdEdxBaseUtils.cxx:183
 AliTRDdEdxBaseUtils.cxx:184
 AliTRDdEdxBaseUtils.cxx:185
 AliTRDdEdxBaseUtils.cxx:186
 AliTRDdEdxBaseUtils.cxx:187
 AliTRDdEdxBaseUtils.cxx:188
 AliTRDdEdxBaseUtils.cxx:189
 AliTRDdEdxBaseUtils.cxx:190
 AliTRDdEdxBaseUtils.cxx:191
 AliTRDdEdxBaseUtils.cxx:192
 AliTRDdEdxBaseUtils.cxx:193
 AliTRDdEdxBaseUtils.cxx:194
 AliTRDdEdxBaseUtils.cxx:195
 AliTRDdEdxBaseUtils.cxx:196
 AliTRDdEdxBaseUtils.cxx:197
 AliTRDdEdxBaseUtils.cxx:198
 AliTRDdEdxBaseUtils.cxx:199
 AliTRDdEdxBaseUtils.cxx:200
 AliTRDdEdxBaseUtils.cxx:201
 AliTRDdEdxBaseUtils.cxx:202
 AliTRDdEdxBaseUtils.cxx:203
 AliTRDdEdxBaseUtils.cxx:204
 AliTRDdEdxBaseUtils.cxx:205
 AliTRDdEdxBaseUtils.cxx:206
 AliTRDdEdxBaseUtils.cxx:207
 AliTRDdEdxBaseUtils.cxx:208
 AliTRDdEdxBaseUtils.cxx:209
 AliTRDdEdxBaseUtils.cxx:210
 AliTRDdEdxBaseUtils.cxx:211
 AliTRDdEdxBaseUtils.cxx:212
 AliTRDdEdxBaseUtils.cxx:213
 AliTRDdEdxBaseUtils.cxx:214
 AliTRDdEdxBaseUtils.cxx:215
 AliTRDdEdxBaseUtils.cxx:216
 AliTRDdEdxBaseUtils.cxx:217
 AliTRDdEdxBaseUtils.cxx:218
 AliTRDdEdxBaseUtils.cxx:219
 AliTRDdEdxBaseUtils.cxx:220
 AliTRDdEdxBaseUtils.cxx:221
 AliTRDdEdxBaseUtils.cxx:222
 AliTRDdEdxBaseUtils.cxx:223
 AliTRDdEdxBaseUtils.cxx:224
 AliTRDdEdxBaseUtils.cxx:225
 AliTRDdEdxBaseUtils.cxx:226
 AliTRDdEdxBaseUtils.cxx:227
 AliTRDdEdxBaseUtils.cxx:228
 AliTRDdEdxBaseUtils.cxx:229
 AliTRDdEdxBaseUtils.cxx:230
 AliTRDdEdxBaseUtils.cxx:231
 AliTRDdEdxBaseUtils.cxx:232
 AliTRDdEdxBaseUtils.cxx:233
 AliTRDdEdxBaseUtils.cxx:234
 AliTRDdEdxBaseUtils.cxx:235
 AliTRDdEdxBaseUtils.cxx:236
 AliTRDdEdxBaseUtils.cxx:237
 AliTRDdEdxBaseUtils.cxx:238
 AliTRDdEdxBaseUtils.cxx:239
 AliTRDdEdxBaseUtils.cxx:240
 AliTRDdEdxBaseUtils.cxx:241
 AliTRDdEdxBaseUtils.cxx:242
 AliTRDdEdxBaseUtils.cxx:243
 AliTRDdEdxBaseUtils.cxx:244
 AliTRDdEdxBaseUtils.cxx:245
 AliTRDdEdxBaseUtils.cxx:246
 AliTRDdEdxBaseUtils.cxx:247
 AliTRDdEdxBaseUtils.cxx:248
 AliTRDdEdxBaseUtils.cxx:249
 AliTRDdEdxBaseUtils.cxx:250
 AliTRDdEdxBaseUtils.cxx:251
 AliTRDdEdxBaseUtils.cxx:252
 AliTRDdEdxBaseUtils.cxx:253
 AliTRDdEdxBaseUtils.cxx:254
 AliTRDdEdxBaseUtils.cxx:255
 AliTRDdEdxBaseUtils.cxx:256
 AliTRDdEdxBaseUtils.cxx:257
 AliTRDdEdxBaseUtils.cxx:258
 AliTRDdEdxBaseUtils.cxx:259
 AliTRDdEdxBaseUtils.cxx:260
 AliTRDdEdxBaseUtils.cxx:261
 AliTRDdEdxBaseUtils.cxx:262
 AliTRDdEdxBaseUtils.cxx:263
 AliTRDdEdxBaseUtils.cxx:264
 AliTRDdEdxBaseUtils.cxx:265
 AliTRDdEdxBaseUtils.cxx:266
 AliTRDdEdxBaseUtils.cxx:267
 AliTRDdEdxBaseUtils.cxx:268
 AliTRDdEdxBaseUtils.cxx:269
 AliTRDdEdxBaseUtils.cxx:270
 AliTRDdEdxBaseUtils.cxx:271
 AliTRDdEdxBaseUtils.cxx:272
 AliTRDdEdxBaseUtils.cxx:273
 AliTRDdEdxBaseUtils.cxx:274
 AliTRDdEdxBaseUtils.cxx:275
 AliTRDdEdxBaseUtils.cxx:276
 AliTRDdEdxBaseUtils.cxx:277
 AliTRDdEdxBaseUtils.cxx:278
 AliTRDdEdxBaseUtils.cxx:279
 AliTRDdEdxBaseUtils.cxx:280
 AliTRDdEdxBaseUtils.cxx:281
 AliTRDdEdxBaseUtils.cxx:282
 AliTRDdEdxBaseUtils.cxx:283
 AliTRDdEdxBaseUtils.cxx:284
 AliTRDdEdxBaseUtils.cxx:285
 AliTRDdEdxBaseUtils.cxx:286
 AliTRDdEdxBaseUtils.cxx:287
 AliTRDdEdxBaseUtils.cxx:288
 AliTRDdEdxBaseUtils.cxx:289
 AliTRDdEdxBaseUtils.cxx:290
 AliTRDdEdxBaseUtils.cxx:291
 AliTRDdEdxBaseUtils.cxx:292
 AliTRDdEdxBaseUtils.cxx:293
 AliTRDdEdxBaseUtils.cxx:294
 AliTRDdEdxBaseUtils.cxx:295
 AliTRDdEdxBaseUtils.cxx:296
 AliTRDdEdxBaseUtils.cxx:297
 AliTRDdEdxBaseUtils.cxx:298
 AliTRDdEdxBaseUtils.cxx:299
 AliTRDdEdxBaseUtils.cxx:300
 AliTRDdEdxBaseUtils.cxx:301
 AliTRDdEdxBaseUtils.cxx:302
 AliTRDdEdxBaseUtils.cxx:303
 AliTRDdEdxBaseUtils.cxx:304
 AliTRDdEdxBaseUtils.cxx:305
 AliTRDdEdxBaseUtils.cxx:306
 AliTRDdEdxBaseUtils.cxx:307
 AliTRDdEdxBaseUtils.cxx:308
 AliTRDdEdxBaseUtils.cxx:309
 AliTRDdEdxBaseUtils.cxx:310
 AliTRDdEdxBaseUtils.cxx:311
 AliTRDdEdxBaseUtils.cxx:312
 AliTRDdEdxBaseUtils.cxx:313
 AliTRDdEdxBaseUtils.cxx:314
 AliTRDdEdxBaseUtils.cxx:315
 AliTRDdEdxBaseUtils.cxx:316
 AliTRDdEdxBaseUtils.cxx:317
 AliTRDdEdxBaseUtils.cxx:318
 AliTRDdEdxBaseUtils.cxx:319
 AliTRDdEdxBaseUtils.cxx:320
 AliTRDdEdxBaseUtils.cxx:321
 AliTRDdEdxBaseUtils.cxx:322
 AliTRDdEdxBaseUtils.cxx:323
 AliTRDdEdxBaseUtils.cxx:324
 AliTRDdEdxBaseUtils.cxx:325
 AliTRDdEdxBaseUtils.cxx:326
 AliTRDdEdxBaseUtils.cxx:327
 AliTRDdEdxBaseUtils.cxx:328
 AliTRDdEdxBaseUtils.cxx:329
 AliTRDdEdxBaseUtils.cxx:330
 AliTRDdEdxBaseUtils.cxx:331
 AliTRDdEdxBaseUtils.cxx:332
 AliTRDdEdxBaseUtils.cxx:333
 AliTRDdEdxBaseUtils.cxx:334
 AliTRDdEdxBaseUtils.cxx:335
 AliTRDdEdxBaseUtils.cxx:336
 AliTRDdEdxBaseUtils.cxx:337
 AliTRDdEdxBaseUtils.cxx:338
 AliTRDdEdxBaseUtils.cxx:339
 AliTRDdEdxBaseUtils.cxx:340
 AliTRDdEdxBaseUtils.cxx:341
 AliTRDdEdxBaseUtils.cxx:342
 AliTRDdEdxBaseUtils.cxx:343
 AliTRDdEdxBaseUtils.cxx:344
 AliTRDdEdxBaseUtils.cxx:345
 AliTRDdEdxBaseUtils.cxx:346
 AliTRDdEdxBaseUtils.cxx:347
 AliTRDdEdxBaseUtils.cxx:348
 AliTRDdEdxBaseUtils.cxx:349
 AliTRDdEdxBaseUtils.cxx:350
 AliTRDdEdxBaseUtils.cxx:351
 AliTRDdEdxBaseUtils.cxx:352
 AliTRDdEdxBaseUtils.cxx:353
 AliTRDdEdxBaseUtils.cxx:354
 AliTRDdEdxBaseUtils.cxx:355
 AliTRDdEdxBaseUtils.cxx:356
 AliTRDdEdxBaseUtils.cxx:357
 AliTRDdEdxBaseUtils.cxx:358
 AliTRDdEdxBaseUtils.cxx:359
 AliTRDdEdxBaseUtils.cxx:360
 AliTRDdEdxBaseUtils.cxx:361
 AliTRDdEdxBaseUtils.cxx:362
 AliTRDdEdxBaseUtils.cxx:363
 AliTRDdEdxBaseUtils.cxx:364
 AliTRDdEdxBaseUtils.cxx:365
 AliTRDdEdxBaseUtils.cxx:366
 AliTRDdEdxBaseUtils.cxx:367
 AliTRDdEdxBaseUtils.cxx:368
 AliTRDdEdxBaseUtils.cxx:369
 AliTRDdEdxBaseUtils.cxx:370
 AliTRDdEdxBaseUtils.cxx:371
 AliTRDdEdxBaseUtils.cxx:372
 AliTRDdEdxBaseUtils.cxx:373
 AliTRDdEdxBaseUtils.cxx:374
 AliTRDdEdxBaseUtils.cxx:375
 AliTRDdEdxBaseUtils.cxx:376
 AliTRDdEdxBaseUtils.cxx:377
 AliTRDdEdxBaseUtils.cxx:378
 AliTRDdEdxBaseUtils.cxx:379
 AliTRDdEdxBaseUtils.cxx:380
 AliTRDdEdxBaseUtils.cxx:381
 AliTRDdEdxBaseUtils.cxx:382
 AliTRDdEdxBaseUtils.cxx:383
 AliTRDdEdxBaseUtils.cxx:384
 AliTRDdEdxBaseUtils.cxx:385
 AliTRDdEdxBaseUtils.cxx:386
 AliTRDdEdxBaseUtils.cxx:387
 AliTRDdEdxBaseUtils.cxx:388
 AliTRDdEdxBaseUtils.cxx:389
 AliTRDdEdxBaseUtils.cxx:390
 AliTRDdEdxBaseUtils.cxx:391
 AliTRDdEdxBaseUtils.cxx:392
 AliTRDdEdxBaseUtils.cxx:393
 AliTRDdEdxBaseUtils.cxx:394
 AliTRDdEdxBaseUtils.cxx:395
 AliTRDdEdxBaseUtils.cxx:396
 AliTRDdEdxBaseUtils.cxx:397
 AliTRDdEdxBaseUtils.cxx:398
 AliTRDdEdxBaseUtils.cxx:399
 AliTRDdEdxBaseUtils.cxx:400
 AliTRDdEdxBaseUtils.cxx:401
 AliTRDdEdxBaseUtils.cxx:402
 AliTRDdEdxBaseUtils.cxx:403
 AliTRDdEdxBaseUtils.cxx:404
 AliTRDdEdxBaseUtils.cxx:405
 AliTRDdEdxBaseUtils.cxx:406
 AliTRDdEdxBaseUtils.cxx:407
 AliTRDdEdxBaseUtils.cxx:408
 AliTRDdEdxBaseUtils.cxx:409
 AliTRDdEdxBaseUtils.cxx:410
 AliTRDdEdxBaseUtils.cxx:411
 AliTRDdEdxBaseUtils.cxx:412
 AliTRDdEdxBaseUtils.cxx:413
 AliTRDdEdxBaseUtils.cxx:414
 AliTRDdEdxBaseUtils.cxx:415
 AliTRDdEdxBaseUtils.cxx:416
 AliTRDdEdxBaseUtils.cxx:417
 AliTRDdEdxBaseUtils.cxx:418
 AliTRDdEdxBaseUtils.cxx:419
 AliTRDdEdxBaseUtils.cxx:420
 AliTRDdEdxBaseUtils.cxx:421
 AliTRDdEdxBaseUtils.cxx:422
 AliTRDdEdxBaseUtils.cxx:423
 AliTRDdEdxBaseUtils.cxx:424
 AliTRDdEdxBaseUtils.cxx:425
 AliTRDdEdxBaseUtils.cxx:426
 AliTRDdEdxBaseUtils.cxx:427
 AliTRDdEdxBaseUtils.cxx:428
 AliTRDdEdxBaseUtils.cxx:429
 AliTRDdEdxBaseUtils.cxx:430
 AliTRDdEdxBaseUtils.cxx:431
 AliTRDdEdxBaseUtils.cxx:432
 AliTRDdEdxBaseUtils.cxx:433
 AliTRDdEdxBaseUtils.cxx:434
 AliTRDdEdxBaseUtils.cxx:435
 AliTRDdEdxBaseUtils.cxx:436
 AliTRDdEdxBaseUtils.cxx:437
 AliTRDdEdxBaseUtils.cxx:438
 AliTRDdEdxBaseUtils.cxx:439
 AliTRDdEdxBaseUtils.cxx:440
 AliTRDdEdxBaseUtils.cxx:441
 AliTRDdEdxBaseUtils.cxx:442
 AliTRDdEdxBaseUtils.cxx:443
 AliTRDdEdxBaseUtils.cxx:444
 AliTRDdEdxBaseUtils.cxx:445
 AliTRDdEdxBaseUtils.cxx:446
 AliTRDdEdxBaseUtils.cxx:447
 AliTRDdEdxBaseUtils.cxx:448
 AliTRDdEdxBaseUtils.cxx:449
 AliTRDdEdxBaseUtils.cxx:450
 AliTRDdEdxBaseUtils.cxx:451
 AliTRDdEdxBaseUtils.cxx:452
 AliTRDdEdxBaseUtils.cxx:453
 AliTRDdEdxBaseUtils.cxx:454
 AliTRDdEdxBaseUtils.cxx:455
 AliTRDdEdxBaseUtils.cxx:456
 AliTRDdEdxBaseUtils.cxx:457
 AliTRDdEdxBaseUtils.cxx:458
 AliTRDdEdxBaseUtils.cxx:459
 AliTRDdEdxBaseUtils.cxx:460
 AliTRDdEdxBaseUtils.cxx:461
 AliTRDdEdxBaseUtils.cxx:462
 AliTRDdEdxBaseUtils.cxx:463
 AliTRDdEdxBaseUtils.cxx:464
 AliTRDdEdxBaseUtils.cxx:465
 AliTRDdEdxBaseUtils.cxx:466
 AliTRDdEdxBaseUtils.cxx:467
 AliTRDdEdxBaseUtils.cxx:468
 AliTRDdEdxBaseUtils.cxx:469
 AliTRDdEdxBaseUtils.cxx:470
 AliTRDdEdxBaseUtils.cxx:471
 AliTRDdEdxBaseUtils.cxx:472
 AliTRDdEdxBaseUtils.cxx:473
 AliTRDdEdxBaseUtils.cxx:474
 AliTRDdEdxBaseUtils.cxx:475
 AliTRDdEdxBaseUtils.cxx:476
 AliTRDdEdxBaseUtils.cxx:477
 AliTRDdEdxBaseUtils.cxx:478
 AliTRDdEdxBaseUtils.cxx:479
 AliTRDdEdxBaseUtils.cxx:480
 AliTRDdEdxBaseUtils.cxx:481
 AliTRDdEdxBaseUtils.cxx:482
 AliTRDdEdxBaseUtils.cxx:483
 AliTRDdEdxBaseUtils.cxx:484
 AliTRDdEdxBaseUtils.cxx:485
 AliTRDdEdxBaseUtils.cxx:486
 AliTRDdEdxBaseUtils.cxx:487
 AliTRDdEdxBaseUtils.cxx:488
 AliTRDdEdxBaseUtils.cxx:489
 AliTRDdEdxBaseUtils.cxx:490
 AliTRDdEdxBaseUtils.cxx:491
 AliTRDdEdxBaseUtils.cxx:492
 AliTRDdEdxBaseUtils.cxx:493
 AliTRDdEdxBaseUtils.cxx:494
 AliTRDdEdxBaseUtils.cxx:495
 AliTRDdEdxBaseUtils.cxx:496
 AliTRDdEdxBaseUtils.cxx:497
 AliTRDdEdxBaseUtils.cxx:498
 AliTRDdEdxBaseUtils.cxx:499
 AliTRDdEdxBaseUtils.cxx:500
 AliTRDdEdxBaseUtils.cxx:501
 AliTRDdEdxBaseUtils.cxx:502
 AliTRDdEdxBaseUtils.cxx:503
 AliTRDdEdxBaseUtils.cxx:504
 AliTRDdEdxBaseUtils.cxx:505
 AliTRDdEdxBaseUtils.cxx:506
 AliTRDdEdxBaseUtils.cxx:507
 AliTRDdEdxBaseUtils.cxx:508
 AliTRDdEdxBaseUtils.cxx:509
 AliTRDdEdxBaseUtils.cxx:510
 AliTRDdEdxBaseUtils.cxx:511
 AliTRDdEdxBaseUtils.cxx:512
 AliTRDdEdxBaseUtils.cxx:513
 AliTRDdEdxBaseUtils.cxx:514
 AliTRDdEdxBaseUtils.cxx:515
 AliTRDdEdxBaseUtils.cxx:516
 AliTRDdEdxBaseUtils.cxx:517
 AliTRDdEdxBaseUtils.cxx:518
 AliTRDdEdxBaseUtils.cxx:519
 AliTRDdEdxBaseUtils.cxx:520
 AliTRDdEdxBaseUtils.cxx:521
 AliTRDdEdxBaseUtils.cxx:522
 AliTRDdEdxBaseUtils.cxx:523
 AliTRDdEdxBaseUtils.cxx:524
 AliTRDdEdxBaseUtils.cxx:525
 AliTRDdEdxBaseUtils.cxx:526
 AliTRDdEdxBaseUtils.cxx:527
 AliTRDdEdxBaseUtils.cxx:528
 AliTRDdEdxBaseUtils.cxx:529
 AliTRDdEdxBaseUtils.cxx:530
 AliTRDdEdxBaseUtils.cxx:531
 AliTRDdEdxBaseUtils.cxx:532
 AliTRDdEdxBaseUtils.cxx:533
 AliTRDdEdxBaseUtils.cxx:534
 AliTRDdEdxBaseUtils.cxx:535
 AliTRDdEdxBaseUtils.cxx:536
 AliTRDdEdxBaseUtils.cxx:537
 AliTRDdEdxBaseUtils.cxx:538
 AliTRDdEdxBaseUtils.cxx:539
 AliTRDdEdxBaseUtils.cxx:540
 AliTRDdEdxBaseUtils.cxx:541
 AliTRDdEdxBaseUtils.cxx:542
 AliTRDdEdxBaseUtils.cxx:543
 AliTRDdEdxBaseUtils.cxx:544
 AliTRDdEdxBaseUtils.cxx:545
 AliTRDdEdxBaseUtils.cxx:546
 AliTRDdEdxBaseUtils.cxx:547
 AliTRDdEdxBaseUtils.cxx:548
 AliTRDdEdxBaseUtils.cxx:549
 AliTRDdEdxBaseUtils.cxx:550
 AliTRDdEdxBaseUtils.cxx:551
 AliTRDdEdxBaseUtils.cxx:552
 AliTRDdEdxBaseUtils.cxx:553
 AliTRDdEdxBaseUtils.cxx:554
 AliTRDdEdxBaseUtils.cxx:555
 AliTRDdEdxBaseUtils.cxx:556
 AliTRDdEdxBaseUtils.cxx:557
 AliTRDdEdxBaseUtils.cxx:558
 AliTRDdEdxBaseUtils.cxx:559
 AliTRDdEdxBaseUtils.cxx:560
 AliTRDdEdxBaseUtils.cxx:561
 AliTRDdEdxBaseUtils.cxx:562
 AliTRDdEdxBaseUtils.cxx:563
 AliTRDdEdxBaseUtils.cxx:564
 AliTRDdEdxBaseUtils.cxx:565
 AliTRDdEdxBaseUtils.cxx:566
 AliTRDdEdxBaseUtils.cxx:567
 AliTRDdEdxBaseUtils.cxx:568
 AliTRDdEdxBaseUtils.cxx:569
 AliTRDdEdxBaseUtils.cxx:570
 AliTRDdEdxBaseUtils.cxx:571
 AliTRDdEdxBaseUtils.cxx:572
 AliTRDdEdxBaseUtils.cxx:573
 AliTRDdEdxBaseUtils.cxx:574
 AliTRDdEdxBaseUtils.cxx:575
 AliTRDdEdxBaseUtils.cxx:576
 AliTRDdEdxBaseUtils.cxx:577
 AliTRDdEdxBaseUtils.cxx:578
 AliTRDdEdxBaseUtils.cxx:579
 AliTRDdEdxBaseUtils.cxx:580
 AliTRDdEdxBaseUtils.cxx:581
 AliTRDdEdxBaseUtils.cxx:582
 AliTRDdEdxBaseUtils.cxx:583
 AliTRDdEdxBaseUtils.cxx:584
 AliTRDdEdxBaseUtils.cxx:585
 AliTRDdEdxBaseUtils.cxx:586
 AliTRDdEdxBaseUtils.cxx:587
 AliTRDdEdxBaseUtils.cxx:588
 AliTRDdEdxBaseUtils.cxx:589
 AliTRDdEdxBaseUtils.cxx:590
 AliTRDdEdxBaseUtils.cxx:591
 AliTRDdEdxBaseUtils.cxx:592
 AliTRDdEdxBaseUtils.cxx:593
 AliTRDdEdxBaseUtils.cxx:594
 AliTRDdEdxBaseUtils.cxx:595
 AliTRDdEdxBaseUtils.cxx:596
 AliTRDdEdxBaseUtils.cxx:597
 AliTRDdEdxBaseUtils.cxx:598
 AliTRDdEdxBaseUtils.cxx:599
 AliTRDdEdxBaseUtils.cxx:600
 AliTRDdEdxBaseUtils.cxx:601
 AliTRDdEdxBaseUtils.cxx:602
 AliTRDdEdxBaseUtils.cxx:603
 AliTRDdEdxBaseUtils.cxx:604
 AliTRDdEdxBaseUtils.cxx:605
 AliTRDdEdxBaseUtils.cxx:606
 AliTRDdEdxBaseUtils.cxx:607
 AliTRDdEdxBaseUtils.cxx:608
 AliTRDdEdxBaseUtils.cxx:609
 AliTRDdEdxBaseUtils.cxx:610
 AliTRDdEdxBaseUtils.cxx:611
 AliTRDdEdxBaseUtils.cxx:612
 AliTRDdEdxBaseUtils.cxx:613
 AliTRDdEdxBaseUtils.cxx:614
 AliTRDdEdxBaseUtils.cxx:615
 AliTRDdEdxBaseUtils.cxx:616
 AliTRDdEdxBaseUtils.cxx:617
 AliTRDdEdxBaseUtils.cxx:618
 AliTRDdEdxBaseUtils.cxx:619
 AliTRDdEdxBaseUtils.cxx:620
 AliTRDdEdxBaseUtils.cxx:621
 AliTRDdEdxBaseUtils.cxx:622
 AliTRDdEdxBaseUtils.cxx:623
 AliTRDdEdxBaseUtils.cxx:624
 AliTRDdEdxBaseUtils.cxx:625
 AliTRDdEdxBaseUtils.cxx:626
 AliTRDdEdxBaseUtils.cxx:627
 AliTRDdEdxBaseUtils.cxx:628
 AliTRDdEdxBaseUtils.cxx:629
 AliTRDdEdxBaseUtils.cxx:630
 AliTRDdEdxBaseUtils.cxx:631
 AliTRDdEdxBaseUtils.cxx:632
 AliTRDdEdxBaseUtils.cxx:633
 AliTRDdEdxBaseUtils.cxx:634
 AliTRDdEdxBaseUtils.cxx:635
 AliTRDdEdxBaseUtils.cxx:636
 AliTRDdEdxBaseUtils.cxx:637
 AliTRDdEdxBaseUtils.cxx:638
 AliTRDdEdxBaseUtils.cxx:639
 AliTRDdEdxBaseUtils.cxx:640
 AliTRDdEdxBaseUtils.cxx:641
 AliTRDdEdxBaseUtils.cxx:642
 AliTRDdEdxBaseUtils.cxx:643
 AliTRDdEdxBaseUtils.cxx:644
 AliTRDdEdxBaseUtils.cxx:645
 AliTRDdEdxBaseUtils.cxx:646
 AliTRDdEdxBaseUtils.cxx:647
 AliTRDdEdxBaseUtils.cxx:648
 AliTRDdEdxBaseUtils.cxx:649
 AliTRDdEdxBaseUtils.cxx:650
 AliTRDdEdxBaseUtils.cxx:651
 AliTRDdEdxBaseUtils.cxx:652
 AliTRDdEdxBaseUtils.cxx:653
 AliTRDdEdxBaseUtils.cxx:654
 AliTRDdEdxBaseUtils.cxx:655
 AliTRDdEdxBaseUtils.cxx:656
 AliTRDdEdxBaseUtils.cxx:657
 AliTRDdEdxBaseUtils.cxx:658
 AliTRDdEdxBaseUtils.cxx:659
 AliTRDdEdxBaseUtils.cxx:660
 AliTRDdEdxBaseUtils.cxx:661
 AliTRDdEdxBaseUtils.cxx:662
 AliTRDdEdxBaseUtils.cxx:663
 AliTRDdEdxBaseUtils.cxx:664
 AliTRDdEdxBaseUtils.cxx:665
 AliTRDdEdxBaseUtils.cxx:666
 AliTRDdEdxBaseUtils.cxx:667
 AliTRDdEdxBaseUtils.cxx:668
 AliTRDdEdxBaseUtils.cxx:669
 AliTRDdEdxBaseUtils.cxx:670
 AliTRDdEdxBaseUtils.cxx:671
 AliTRDdEdxBaseUtils.cxx:672
 AliTRDdEdxBaseUtils.cxx:673
 AliTRDdEdxBaseUtils.cxx:674
 AliTRDdEdxBaseUtils.cxx:675
 AliTRDdEdxBaseUtils.cxx:676
 AliTRDdEdxBaseUtils.cxx:677
 AliTRDdEdxBaseUtils.cxx:678
 AliTRDdEdxBaseUtils.cxx:679
 AliTRDdEdxBaseUtils.cxx:680
 AliTRDdEdxBaseUtils.cxx:681
 AliTRDdEdxBaseUtils.cxx:682
 AliTRDdEdxBaseUtils.cxx:683
 AliTRDdEdxBaseUtils.cxx:684
 AliTRDdEdxBaseUtils.cxx:685
 AliTRDdEdxBaseUtils.cxx:686
 AliTRDdEdxBaseUtils.cxx:687
 AliTRDdEdxBaseUtils.cxx:688
 AliTRDdEdxBaseUtils.cxx:689
 AliTRDdEdxBaseUtils.cxx:690
 AliTRDdEdxBaseUtils.cxx:691
 AliTRDdEdxBaseUtils.cxx:692
 AliTRDdEdxBaseUtils.cxx:693
 AliTRDdEdxBaseUtils.cxx:694
 AliTRDdEdxBaseUtils.cxx:695
 AliTRDdEdxBaseUtils.cxx:696
 AliTRDdEdxBaseUtils.cxx:697
 AliTRDdEdxBaseUtils.cxx:698
 AliTRDdEdxBaseUtils.cxx:699
 AliTRDdEdxBaseUtils.cxx:700
 AliTRDdEdxBaseUtils.cxx:701
 AliTRDdEdxBaseUtils.cxx:702
 AliTRDdEdxBaseUtils.cxx:703
 AliTRDdEdxBaseUtils.cxx:704
 AliTRDdEdxBaseUtils.cxx:705
 AliTRDdEdxBaseUtils.cxx:706
 AliTRDdEdxBaseUtils.cxx:707
 AliTRDdEdxBaseUtils.cxx:708
 AliTRDdEdxBaseUtils.cxx:709
 AliTRDdEdxBaseUtils.cxx:710
 AliTRDdEdxBaseUtils.cxx:711
 AliTRDdEdxBaseUtils.cxx:712
 AliTRDdEdxBaseUtils.cxx:713
 AliTRDdEdxBaseUtils.cxx:714
 AliTRDdEdxBaseUtils.cxx:715
 AliTRDdEdxBaseUtils.cxx:716
 AliTRDdEdxBaseUtils.cxx:717
 AliTRDdEdxBaseUtils.cxx:718
 AliTRDdEdxBaseUtils.cxx:719
 AliTRDdEdxBaseUtils.cxx:720
 AliTRDdEdxBaseUtils.cxx:721
 AliTRDdEdxBaseUtils.cxx:722
 AliTRDdEdxBaseUtils.cxx:723
 AliTRDdEdxBaseUtils.cxx:724
 AliTRDdEdxBaseUtils.cxx:725
 AliTRDdEdxBaseUtils.cxx:726
 AliTRDdEdxBaseUtils.cxx:727
 AliTRDdEdxBaseUtils.cxx:728
 AliTRDdEdxBaseUtils.cxx:729
 AliTRDdEdxBaseUtils.cxx:730
 AliTRDdEdxBaseUtils.cxx:731
 AliTRDdEdxBaseUtils.cxx:732
 AliTRDdEdxBaseUtils.cxx:733
 AliTRDdEdxBaseUtils.cxx:734
 AliTRDdEdxBaseUtils.cxx:735
 AliTRDdEdxBaseUtils.cxx:736
 AliTRDdEdxBaseUtils.cxx:737
 AliTRDdEdxBaseUtils.cxx:738
 AliTRDdEdxBaseUtils.cxx:739
 AliTRDdEdxBaseUtils.cxx:740
 AliTRDdEdxBaseUtils.cxx:741
 AliTRDdEdxBaseUtils.cxx:742
 AliTRDdEdxBaseUtils.cxx:743
 AliTRDdEdxBaseUtils.cxx:744
 AliTRDdEdxBaseUtils.cxx:745
 AliTRDdEdxBaseUtils.cxx:746
 AliTRDdEdxBaseUtils.cxx:747
 AliTRDdEdxBaseUtils.cxx:748
 AliTRDdEdxBaseUtils.cxx:749
 AliTRDdEdxBaseUtils.cxx:750
 AliTRDdEdxBaseUtils.cxx:751
 AliTRDdEdxBaseUtils.cxx:752
 AliTRDdEdxBaseUtils.cxx:753
 AliTRDdEdxBaseUtils.cxx:754
 AliTRDdEdxBaseUtils.cxx:755
 AliTRDdEdxBaseUtils.cxx:756
 AliTRDdEdxBaseUtils.cxx:757
 AliTRDdEdxBaseUtils.cxx:758
 AliTRDdEdxBaseUtils.cxx:759
 AliTRDdEdxBaseUtils.cxx:760
 AliTRDdEdxBaseUtils.cxx:761
 AliTRDdEdxBaseUtils.cxx:762
 AliTRDdEdxBaseUtils.cxx:763
 AliTRDdEdxBaseUtils.cxx:764
 AliTRDdEdxBaseUtils.cxx:765
 AliTRDdEdxBaseUtils.cxx:766
 AliTRDdEdxBaseUtils.cxx:767
 AliTRDdEdxBaseUtils.cxx:768
 AliTRDdEdxBaseUtils.cxx:769
 AliTRDdEdxBaseUtils.cxx:770
 AliTRDdEdxBaseUtils.cxx:771
 AliTRDdEdxBaseUtils.cxx:772
 AliTRDdEdxBaseUtils.cxx:773
 AliTRDdEdxBaseUtils.cxx:774
 AliTRDdEdxBaseUtils.cxx:775
 AliTRDdEdxBaseUtils.cxx:776
 AliTRDdEdxBaseUtils.cxx:777
 AliTRDdEdxBaseUtils.cxx:778
 AliTRDdEdxBaseUtils.cxx:779
 AliTRDdEdxBaseUtils.cxx:780
 AliTRDdEdxBaseUtils.cxx:781
 AliTRDdEdxBaseUtils.cxx:782
 AliTRDdEdxBaseUtils.cxx:783
 AliTRDdEdxBaseUtils.cxx:784
 AliTRDdEdxBaseUtils.cxx:785
 AliTRDdEdxBaseUtils.cxx:786
 AliTRDdEdxBaseUtils.cxx:787
 AliTRDdEdxBaseUtils.cxx:788
 AliTRDdEdxBaseUtils.cxx:789
 AliTRDdEdxBaseUtils.cxx:790
 AliTRDdEdxBaseUtils.cxx:791
 AliTRDdEdxBaseUtils.cxx:792
 AliTRDdEdxBaseUtils.cxx:793
 AliTRDdEdxBaseUtils.cxx:794
 AliTRDdEdxBaseUtils.cxx:795
 AliTRDdEdxBaseUtils.cxx:796
 AliTRDdEdxBaseUtils.cxx:797
 AliTRDdEdxBaseUtils.cxx:798
 AliTRDdEdxBaseUtils.cxx:799
 AliTRDdEdxBaseUtils.cxx:800
 AliTRDdEdxBaseUtils.cxx:801
 AliTRDdEdxBaseUtils.cxx:802
 AliTRDdEdxBaseUtils.cxx:803
 AliTRDdEdxBaseUtils.cxx:804
 AliTRDdEdxBaseUtils.cxx:805
 AliTRDdEdxBaseUtils.cxx:806
 AliTRDdEdxBaseUtils.cxx:807
 AliTRDdEdxBaseUtils.cxx:808
 AliTRDdEdxBaseUtils.cxx:809
 AliTRDdEdxBaseUtils.cxx:810
 AliTRDdEdxBaseUtils.cxx:811
 AliTRDdEdxBaseUtils.cxx:812
 AliTRDdEdxBaseUtils.cxx:813
 AliTRDdEdxBaseUtils.cxx:814
 AliTRDdEdxBaseUtils.cxx:815
 AliTRDdEdxBaseUtils.cxx:816
 AliTRDdEdxBaseUtils.cxx:817
 AliTRDdEdxBaseUtils.cxx:818
 AliTRDdEdxBaseUtils.cxx:819
 AliTRDdEdxBaseUtils.cxx:820
 AliTRDdEdxBaseUtils.cxx:821
 AliTRDdEdxBaseUtils.cxx:822
 AliTRDdEdxBaseUtils.cxx:823
 AliTRDdEdxBaseUtils.cxx:824
 AliTRDdEdxBaseUtils.cxx:825
 AliTRDdEdxBaseUtils.cxx:826
 AliTRDdEdxBaseUtils.cxx:827
 AliTRDdEdxBaseUtils.cxx:828
 AliTRDdEdxBaseUtils.cxx:829
 AliTRDdEdxBaseUtils.cxx:830
 AliTRDdEdxBaseUtils.cxx:831
 AliTRDdEdxBaseUtils.cxx:832
 AliTRDdEdxBaseUtils.cxx:833
 AliTRDdEdxBaseUtils.cxx:834
 AliTRDdEdxBaseUtils.cxx:835
 AliTRDdEdxBaseUtils.cxx:836
 AliTRDdEdxBaseUtils.cxx:837
 AliTRDdEdxBaseUtils.cxx:838
 AliTRDdEdxBaseUtils.cxx:839
 AliTRDdEdxBaseUtils.cxx:840
 AliTRDdEdxBaseUtils.cxx:841
 AliTRDdEdxBaseUtils.cxx:842
 AliTRDdEdxBaseUtils.cxx:843
 AliTRDdEdxBaseUtils.cxx:844
 AliTRDdEdxBaseUtils.cxx:845
 AliTRDdEdxBaseUtils.cxx:846
 AliTRDdEdxBaseUtils.cxx:847
 AliTRDdEdxBaseUtils.cxx:848
 AliTRDdEdxBaseUtils.cxx:849
 AliTRDdEdxBaseUtils.cxx:850
 AliTRDdEdxBaseUtils.cxx:851
 AliTRDdEdxBaseUtils.cxx:852
 AliTRDdEdxBaseUtils.cxx:853
 AliTRDdEdxBaseUtils.cxx:854
 AliTRDdEdxBaseUtils.cxx:855
 AliTRDdEdxBaseUtils.cxx:856
 AliTRDdEdxBaseUtils.cxx:857
 AliTRDdEdxBaseUtils.cxx:858
 AliTRDdEdxBaseUtils.cxx:859
 AliTRDdEdxBaseUtils.cxx:860
 AliTRDdEdxBaseUtils.cxx:861
 AliTRDdEdxBaseUtils.cxx:862
 AliTRDdEdxBaseUtils.cxx:863
 AliTRDdEdxBaseUtils.cxx:864
 AliTRDdEdxBaseUtils.cxx:865
 AliTRDdEdxBaseUtils.cxx:866
 AliTRDdEdxBaseUtils.cxx:867
 AliTRDdEdxBaseUtils.cxx:868
 AliTRDdEdxBaseUtils.cxx:869
 AliTRDdEdxBaseUtils.cxx:870
 AliTRDdEdxBaseUtils.cxx:871
 AliTRDdEdxBaseUtils.cxx:872