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

/* $Id$ */

///////////////////////////////////////////////////////////////////////
//  Manager and of geomety  classes for set: TPC                     //
//                                                                   //
//  !sectors are numbered from  0                                     //
//  !pad rows are numbered from 0                                     //
//  
//  27.7.   - AliTPCPaaramSr object for TPC 
//            TPC with straight pad rows 
//  Origin:  Marian Ivanov, Uni. of Bratislava, ivanov@fmph.uniba.sk // 
//                                                                   //  
///////////////////////////////////////////////////////////////////////

//#include <Riostream.h>
#include <TMath.h>

#include "AliTPCPRF2D.h"
#include "AliTPCParamSR.h"
#include "AliTPCRF1D.h"
#include "TH1.h"
#include "AliTPCROC.h"
#include "TGeoManager.h"

ClassImp(AliTPCParamSR)
static const  Int_t kMaxRows=600;
static const  Float_t  kEdgeSectorSpace = 2.5;
static const Float_t kFacSigmaPadRow=3.;
static const Float_t kFacSigmaPad=3.;
static const Float_t kFacSigmaTime=3.;


AliTPCParamSR::AliTPCParamSR()
              :AliTPCParam(),
	       fInnerPRF(0),
	       fOuter1PRF(0),
	       fOuter2PRF(0),
	       fTimeRF(0),
	       fFacSigmaPadRow(0),
	       fFacSigmaPad(0),
	       fFacSigmaTime(0)
{   
  //
  //constructor set the default parameters
  //

  fFacSigmaPadRow = Float_t(kFacSigmaPadRow);
  fFacSigmaPad = Float_t(kFacSigmaPad);
  fFacSigmaTime = Float_t(kFacSigmaTime);
  SetDefault();
  Update();
}

AliTPCParamSR::~AliTPCParamSR()
{
  //
  //destructor destroy some dynmicaly alocated variables
  if (fInnerPRF != 0) delete fInnerPRF;
  if (fOuter1PRF != 0) delete fOuter1PRF;
  if (fOuter2PRF != 0) delete fOuter2PRF;
  if (fTimeRF != 0) delete fTimeRF;
}

void AliTPCParamSR::SetDefault()
{
  //set default TPC param   
  fbStatus = kFALSE;
  AliTPCParam::SetDefault();  
}  

Int_t  AliTPCParamSR::CalcResponse(Float_t* xyz, Int_t * index, Int_t row)
{
  //
  //calculate bin response as function of the input position -x 
  //return number of valid response bin
  //
  //we suppose that coordinate is expressed in float digits 
  // it's mean coordinate system 8
  //xyz[0] - float padrow xyz[1] is float pad  (center pad is number 0) and xyz[2] is float time bin
  //xyz[3] - electron time in float time bin format
  if ( (fInnerPRF==0)||(fOuter1PRF==0)||(fOuter2PRF==0) ||(fTimeRF==0) ){ 
    Error("AliTPCParamSR", "response function was not adjusted");
    return -1;
  }
  
  Float_t sfpadrow;   // sigma of response function
  Float_t sfpad;      // sigma  of 
  Float_t sftime= fFacSigmaTime*fTimeRF->GetSigma()/fZWidth;     //3 sigma of time response
  if (index[1]<fNInnerSector){
    sfpadrow =fFacSigmaPadRow*fInnerPRF->GetSigmaY()/fInnerPadPitchLength;
    sfpad    =fFacSigmaPad*fInnerPRF->GetSigmaX()/fInnerPadPitchWidth;
  }
  else{
  if(row<fNRowUp1){
    sfpadrow =fFacSigmaPadRow*fOuter1PRF->GetSigmaY()/fOuter1PadPitchLength;
    sfpad    =fFacSigmaPad*fOuter1PRF->GetSigmaX()/fOuterPadPitchWidth;}
    else{
      sfpadrow =fFacSigmaPadRow*fOuter2PRF->GetSigmaY()/fOuter2PadPitchLength;
      sfpad    =fFacSigmaPad*fOuter2PRF->GetSigmaX()/fOuterPadPitchWidth;
    }   
  }

  Int_t fpadrow = TMath::Max(TMath::Nint(index[2]+xyz[0]-sfpadrow),0);  //"first" padrow
  Int_t fpad    = TMath::Nint(xyz[1]-sfpad);     //first pad
  Int_t ftime   = TMath::Max(TMath::Nint(xyz[2]+xyz[3]+GetZOffset()/GetZWidth()-sftime),0);  // first time
  Int_t lpadrow = TMath::Min(TMath::Nint(index[2]+xyz[0]+sfpadrow),fpadrow+19);  //"last" padrow
  lpadrow       = TMath::Min(GetNRow(index[1])-1,lpadrow);
  Int_t lpad    = TMath::Min(TMath::Nint(xyz[1]+sfpad),fpad+19);     //last pad
  Int_t ltime   = TMath::Min(TMath::Nint(xyz[2]+xyz[3]+GetZOffset()/GetZWidth()+sftime),ftime+19);    // last time
  ltime         = TMath::Min(ltime,GetMaxTBin()-1); 
  // 
  Int_t npads = GetNPads(index[1],row);
  if (fpad<-npads/2) 
    fpad = -npads/2;
  if (lpad>npads/2) 
    lpad= npads/2;
  if (ftime<0) ftime=0;
  // 
  if (row>=0) { //if we are interesting about given pad row
    if (fpadrow<=row) fpadrow =row;
    else 
      return 0;
    if (lpadrow>=row) lpadrow = row;
    else 
      return 0;
  }

 
  Float_t  padres[20][20];  //I don't expect bigger number of bins
  Float_t  timeres[20];     
  Int_t cindex3=0;
  Int_t cindex=0;
  Float_t cweight = 0;
  if (fpadrow>=0) {
  //calculate padresponse function    
  Int_t padrow, pad;
  for (padrow = fpadrow;padrow<=lpadrow;padrow++)
    for (pad = fpad;pad<=lpad;pad++){
      Float_t dy = (xyz[0]+Float_t(index[2]-padrow));
      Float_t dx = (xyz[1]+Float_t(pad));
      if (index[1]<fNInnerSector)
	padres[padrow-fpadrow][pad-fpad]=fInnerPRF->GetPRF(dx*fInnerPadPitchWidth,dy*fInnerPadPitchLength);
      else{
	if(row<fNRowUp1){
	padres[padrow-fpadrow][pad-fpad]=fOuter1PRF->GetPRF(dx*fOuterPadPitchWidth,dy*fOuter1PadPitchLength);}
	else{
	  padres[padrow-fpadrow][pad-fpad]=fOuter2PRF->GetPRF(dx*fOuterPadPitchWidth,dy*fOuter2PadPitchLength);}}}
  //calculate time response function
  Int_t time;
  for (time = ftime;time<=ltime;time++) 
    timeres[time-ftime]= fTimeRF->GetRF((-xyz[2]-xyz[3]+Float_t(time))*fZWidth);     
  //write over threshold values to stack
  for (padrow = fpadrow;padrow<=lpadrow;padrow++)
    for (pad = fpad;pad<=lpad;pad++)
      for (time = ftime;time<=ltime;time++){
	cweight = timeres[time-ftime]*padres[padrow-fpadrow][pad-fpad];
	if (cweight>fResponseThreshold) {
	  fResponseBin[cindex3]=padrow;
	  fResponseBin[cindex3+1]=pad;
	  fResponseBin[cindex3+2]=time;
	  cindex3+=3;  
	  fResponseWeight[cindex]=cweight;
	  cindex++;
	}
      }
  }
  fCurrentMax=cindex;	
  return fCurrentMax;
}

void AliTPCParamSR::TransformTo8(Float_t *xyz, Int_t *index) const
{
  //
  // transformate point to digit coordinate
  //
  if (index[0]==0) Transform0to1(xyz,index);
  if (index[0]==1) Transform1to2(xyz,index);
  if (index[0]==2) Transform2to3(xyz,index);
  if (index[0]==3) Transform3to4(xyz,index);
  if (index[0]==4) Transform4to8(xyz,index);
}

void AliTPCParamSR::TransformTo2(Float_t *xyz, Int_t *index) const
{
  //
  //transformate point to rotated coordinate
  //
  //we suppose that   
  if (index[0]==0) Transform0to1(xyz,index);
  if (index[0]==1) Transform1to2(xyz,index);
  if (index[0]==4) Transform4to3(xyz,index);
  if (index[0]==8) {  //if we are in digit coordinate system transform to global
    Transform8to4(xyz,index);
    Transform4to3(xyz,index);  
  }
}

void AliTPCParamSR::CRXYZtoXYZ(Float_t *xyz,
	       const Int_t &sector, const Int_t & padrow, Int_t option) const  
{  
  //transform relative coordinates to absolute
  Bool_t rel = ( (option&2)!=0);
  Int_t index[3]={sector,padrow,0};
  if (rel==kTRUE)      Transform4to3(xyz,index);//if the position is relative to pad row  
  Transform2to1(xyz,index);
}

void AliTPCParamSR::XYZtoCRXYZ(Float_t *xyz,
			     Int_t &sector, Int_t & padrow, Int_t option) const
{
   //transform global position to the position relative to the sector padrow
  //if option=0  X calculate absolute            calculate sector
  //if option=1  X           absolute            use input sector
  //if option=2  X           relative to pad row calculate sector
  //if option=3  X           relative            use input sector
  //!!!!!!!!! WE start to calculate rows from row = 0
  Int_t index[3];
  Bool_t rel = ( (option&2)!=0);  

  //option 0 and 2  means that we don't have information about sector
  if ((option&1)==0)   Transform0to1(xyz,index);  //we calculate sector number 
  else
    index[0]=sector;
  Transform1to2(xyz,index);
  Transform2to3(xyz,index);
  //if we store relative position calculate position relative to pad row
  if (rel==kTRUE) Transform3to4(xyz,index);
  sector = index[0];
  padrow = index[1];
}

Float_t AliTPCParamSR::GetPrimaryLoss(Float_t */*x*/, Int_t *index, Float_t *angle)
{
  //
  //
  Float_t padlength=GetPadPitchLength(index[1]);
  Float_t a1=TMath::Sin(angle[0]);
  a1*=a1;
  Float_t a2=TMath::Sin(angle[1]);
  a2*=a2;
  Float_t length =padlength*TMath::Sqrt(1+a1+a2);
  return length*fNPrimLoss;
}

Float_t AliTPCParamSR::GetTotalLoss(Float_t */*x*/, Int_t *index, Float_t *angle)
{
  //
  //
  Float_t padlength=GetPadPitchLength(index[1]);
  Float_t a1=TMath::Sin(angle[0]);
  a1*=a1;
  Float_t a2=TMath::Sin(angle[1]);
  a2*=a2;
  Float_t length =padlength*TMath::Sqrt(1+a1+a2);
  return length*fNTotalLoss;
  
}


void AliTPCParamSR::GetClusterSize(Float_t *x, Int_t *index, Float_t */*angle*/, Int_t /*mode*/, Float_t *sigma)
{
  //
  //return cluster sigma2 (x,y) for particle at position x
  // in this case x coordinata is in drift direction
  //and y in pad row direction
  //we suppose that input coordinate system is digit system
   
  Float_t  xx;
  Float_t lx[3] = {x[0],x[1],x[2]};
  Int_t   li[3] = {index[0],index[1],index[2]};
  TransformTo2(lx,li);
  //  Float_t  sigmadiff;
  sigma[0]=0;
  sigma[1]=0;
  
  xx = lx[2];  //calculate drift length in cm
  if (xx>0) {
    sigma[0]+= xx*GetDiffL()*GetDiffL();
    sigma[1]+= xx*GetDiffT()*GetDiffT(); 
  }


  //sigma[0]=sigma[1]=0;
  if (GetTimeRF()!=0) sigma[0]+=GetTimeRF()->GetSigma()*GetTimeRF()->GetSigma();
  if ( (index[1]<fNInnerSector) &&(GetInnerPRF()!=0))   
    sigma[1]+=GetInnerPRF()->GetSigmaX()*GetInnerPRF()->GetSigmaX();
  if ( (index[1]>=fNInnerSector) &&(index[2]<fNRowUp1) && (GetOuter1PRF()!=0))
    sigma[1]+=GetOuter1PRF()->GetSigmaX()*GetOuter1PRF()->GetSigmaX();
  if( (index[1]>=fNInnerSector) &&(index[2]>=fNRowUp1) && (GetOuter2PRF()!=0))
    sigma[1]+=GetOuter2PRF()->GetSigmaX()*GetOuter2PRF()->GetSigmaX();


  sigma[0]/= GetZWidth()*GetZWidth();
  sigma[1]/=GetPadPitchWidth(index[0])*GetPadPitchWidth(index[0]);
}




void AliTPCParamSR::GetSpaceResolution(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/, 
				       Float_t /*amplitude*/, Int_t /*mode*/, Float_t */*sigma*/)
{
  //
  //
  //
  
}
Float_t  AliTPCParamSR::GetAmp(Float_t */*x*/, Int_t */*index*/, Float_t */*angle*/)
{
  //
  //
  //
  return 0;
}

Float_t * AliTPCParamSR::GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle)
{
  //
  //calculate angle of track to padrow at given position
  // for given magnetic field and momentum of the particle
  //

  TransformTo2(x,index);
  AliDetectorParam::GetAnglesAccMomentum(x,index,momentum,angle);    
  Float_t addangle = TMath::ASin(x[1]/GetPadRowRadii(index[1],index[2]));
  angle[1] +=addangle;
  return angle;				 
}

         
Bool_t AliTPCParamSR::Update()
{
  Int_t i;
  if (AliTPCParam::Update()==kFALSE) return kFALSE;
  fbStatus = kFALSE;

 Float_t firstrow = fInnerRadiusLow + 1.575;   
 for( i= 0;i<fNRowLow;i++)
   {
     Float_t x = firstrow + fInnerPadPitchLength*(Float_t)i;  
     fPadRowLow[i]=x;
     // number of pads per row
     //     Float_t y = (x-0.5*fInnerPadPitchLength)*tan(fInnerAngle/2.)-fInnerWireMount-
     //  fInnerPadPitchWidth/2.;
     // 0 and fNRowLow+1 reserved for cross talk rows
     fYInner[i+1]  = x*tan(fInnerAngle/2.)-fInnerWireMount;
     //fNPadsLow[i] = 1+2*(Int_t)(y/fInnerPadPitchWidth) ;
     fNPadsLow[i] = AliTPCROC::Instance()->GetNPads(0,i) ;     // ROC implement     
   }
 // cross talk rows
 fYInner[0]=(fPadRowLow[0]-fInnerPadPitchLength)*tan(fInnerAngle/2.)-fInnerWireMount;
 fYInner[fNRowLow+1]=(fPadRowLow[fNRowLow-1]+fInnerPadPitchLength)*tan(fInnerAngle/2.)-fInnerWireMount; 
 firstrow = fOuterRadiusLow + 1.6;
 for(i=0;i<fNRowUp;i++)
   {
     if(i<fNRowUp1){
       Float_t x = firstrow + fOuter1PadPitchLength*(Float_t)i; 
       fPadRowUp[i]=x;
//     Float_t y =(x-0.5*fOuter1PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount-
// 	  fOuterPadPitchWidth/2.;
     fYOuter[i+1]= x*tan(fOuterAngle/2.)-fOuterWireMount;
     //fNPadsUp[i] = 1+2*(Int_t)(y/fOuterPadPitchWidth) ;
     fNPadsUp[i] =  AliTPCROC::Instance()->GetNPads(36,i) ;     // ROC implement      
     if(i==fNRowUp1-1) {
       fLastWireUp1=fPadRowUp[i] +0.625;
       firstrow = fPadRowUp[i] + 0.5*(fOuter1PadPitchLength+fOuter2PadPitchLength);
     }
     }
     else
       {
	 Float_t x = firstrow + fOuter2PadPitchLength*(Float_t)(i-64);
         fPadRowUp[i]=x;
	 //Float_t y =(x-0.5*fOuter2PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount-
	 //  fOuterPadPitchWidth/2.;
	 //fNPadsUp[i] = 1+2*(Int_t)(y/fOuterPadPitchWidth) ; 
	 fNPadsUp[i] =  AliTPCROC::Instance()->GetNPads(36,i) ;     // ROC implement
       }
     fYOuter[i+1]  = fPadRowUp[i]*tan(fOuterAngle/2.)-fOuterWireMount;
   }
 // cross talk rows
 fYOuter[0]=(fPadRowUp[0]-fOuter1PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount;
 fYOuter[fNRowUp+1]=(fPadRowUp[fNRowUp-1]+fOuter2PadPitchLength)*tan(fOuterAngle/2.)-fOuterWireMount;
 fNtRows = fNInnerSector*fNRowLow+fNOuterSector*fNRowUp;
 fbStatus = kTRUE;
 return kTRUE;
}
Float_t AliTPCParamSR::GetYInner(Int_t irow) const
{
  return fYInner[irow];
}
Float_t AliTPCParamSR::GetYOuter(Int_t irow) const
{
  return fYOuter[irow];
}

void AliTPCParamSR::Streamer(TBuffer &R__b)
{
   // Stream an object of class AliTPC.

   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(); if (R__v) { }
      //      TObject::Streamer(R__b);
      AliTPCParam::Streamer(R__b);
      //      if (R__v < 2) return;
       Update();
       if (gGeoManager) ReadGeoMatrices();
   } else {
      R__b.WriteVersion(AliTPCParamSR::IsA());
      //TObject::Streamer(R__b);  
      AliTPCParam::Streamer(R__b);    
   }
}
Int_t  AliTPCParamSR::CalcResponseFast(Float_t* xyz, Int_t * index, Int_t row, Float_t phase)
{
  //
  //calculate bin response as function of the input position -x 
  //return number of valid response bin
  //
  //we suppose that coordinate is expressed in float digits 
  // it's mean coordinate system 8
  //xyz[0] - electron position w.r.t. pad center, normalized to pad length,
  //xyz[1] is float pad  (center pad is number 0) and xyz[2] is float time bin
  //xyz[3] - electron time in float time bin format
  if ( (fInnerPRF==0)||(fOuter1PRF==0)||(fOuter2PRF==0) ||(fTimeRF==0) ){ 
    Error("AliTPCParamSR", "response function was not adjusted");
    return -1;
  }
  
  const Int_t kpadn =  500;
  const Float_t kfpadn =  500.;
  const Int_t ktimen = 500;
  const Float_t kftimen = 500.;
  const Int_t kpadrn = 500;
  const Float_t kfpadrn = 500.;

 

  static Float_t prfinner[2*kpadrn][5*kpadn];  //pad divided by 50
  static Float_t prfouter1[2*kpadrn][5*kpadn];  //prfouter division
  static Float_t prfouter2[2*kpadrn][5*kpadn];
  static Float_t kTanMax =0;  

  static Float_t rftime[5*ktimen];         //time division
  static Int_t blabla=0;
  static Float_t zoffset=0;
  static Float_t zwidth=0;
  static Float_t zoffset2=0;
  static TH1F * hdiff=0;
  static TH1F * hdiff1=0;
  static TH1F * hdiff2=0;
  
  if (blabla==0) {  //calculate Response function - only at the begginning
    kTanMax = TMath::ATan(10.*TMath::DegToRad());
    hdiff =new TH1F("prf_diff","prf_diff",10000,-1,1);
    hdiff1 =new TH1F("no_repsonse1","no_response1",10000,-1,1);
    hdiff2 =new TH1F("no_response2","no_response2",10000,-1,1);
    
    blabla=1;
    zoffset = GetZOffset();
    zwidth  = fZWidth;
    zoffset2 = zoffset/zwidth;
    for (Int_t i=0;i<5*ktimen;i++){
      rftime[i] = fTimeRF->GetRF(((i-2.5*kftimen)/kftimen)*zwidth+zoffset);
    }
    for (Int_t i=0;i<5*kpadn;i++){    
      for (Int_t j=0;j<2*kpadrn;j++){
	prfinner[j][i] =
	  fInnerPRF->GetPRF((i-2.5*kfpadn)/kfpadn
			    *fInnerPadPitchWidth,(j-kfpadrn)/kfpadrn*fInnerPadPitchLength);
	prfouter1[j][i] =
	  fOuter1PRF->GetPRF((i-2.5*kfpadn)/kfpadn
			    *fOuterPadPitchWidth,(j-kfpadrn)/kfpadrn*fOuter1PadPitchLength);

	//
	prfouter2[j][i] =
	  fOuter2PRF->GetPRF((i-2.5*kfpadn)/kfpadn
			    *fOuterPadPitchWidth,(j-kfpadrn)/kfpadrn*fOuter2PadPitchLength);
      }
    }      
  } // the above is calculated only once

  // calculate central padrow, pad, time
  Int_t npads = GetNPads(index[1],index[3]-1);
  Int_t cpadrow = index[2]; // electrons are here
  Int_t cpad    = TMath::Nint(xyz[1]);
  Int_t ctime   = TMath::Nint(xyz[2]+zoffset2+xyz[3]);
  //calulate deviation
  Float_t dpadrow = xyz[0];
  Float_t dpad    = xyz[1]-cpad;
  Float_t dtime   = xyz[2]+zoffset2+xyz[3]-ctime+phase*0.25;
  Int_t cindex =0;
  Int_t cindex3 =0;
  Int_t maxt =GetMaxTBin();

  Int_t fpadrow;
  Int_t lpadrow;

  if (row>=0) { //if we are interesting about given pad row
    fpadrow = row-cpadrow;
    lpadrow = row-cpadrow;
  }else{
    fpadrow = (index[2]>1) ? -1 :0;
    lpadrow = (index[2]<GetNRow(index[1])-1) ? 1:0;
  }

  Int_t fpad =  (cpad > -npads/2+1) ? -2: -npads/2-cpad;
  Int_t lpad =  (cpad < npads/2-2)  ?  2: npads/2-1-cpad;
  Int_t ftime =  (ctime>1) ? -2: -ctime;
  Int_t ltime =  (ctime<maxt-2) ? 2: maxt-ctime-1;

  // cross talk from long pad to short one
  if(row==fNRowUp1 && fpadrow==-1) {
    dpadrow *= fOuter2PadPitchLength;
    dpadrow += fOuterWWPitch;
    dpadrow /= fOuter1PadPitchLength;
  }    
  // cross talk from short pad to long one
  if(row==fNRowUp1+1 && fpadrow==1){ 
    dpadrow *= fOuter1PadPitchLength;
    if(dpadrow < 0.) dpadrow = -1.; //protection against 3rd wire
    dpadrow += fOuterWWPitch;
    dpadrow /= fOuter2PadPitchLength;
    
  }

  // "normal"
  Int_t apadrow = TMath::Nint((dpadrow-fpadrow)*kfpadrn+kfpadrn);
  for (Int_t ipadrow = fpadrow; ipadrow<=lpadrow;ipadrow++){
    if ( (apadrow<0) || (apadrow>=2*kpadrn)) 
      continue;
    // pad angular correction
    Float_t angle = 0.;
    if (npads != 0)
      angle = kTanMax*2.*(cpad+0.5)/Float_t(npads);
    Float_t dpadangle =0;
    if (index[1]<fNInnerSector){
      dpadangle = angle*dpadrow*fInnerPadPitchLength/fInnerPadPitchWidth;
    }
    else{
      if(row < fNRowUp1+1){
        dpadangle    = angle*dpadrow*fOuter1PadPitchLength/fOuterPadPitchWidth;
      }
      else {
	dpadangle    = angle*dpadrow*fOuter2PadPitchLength/fOuterPadPitchWidth;
      }
    }
    if (ipadrow==0) dpadangle *=-1;
    //
    //    Int_t apad= TMath::Nint((dpad-fpad)*kfpadn+2.5*kfpadn);
    Int_t apad= TMath::Nint((dpad+dpadangle-fpad)*kfpadn+2.5*kfpadn);
    for (Int_t ipad = fpad; ipad<=lpad;ipad++){
	Float_t cweight;
	if (index[1]<fNInnerSector){
	  cweight=prfinner[apadrow][apad];
	}
	else{
	  if(row < fNRowUp1+1){
	    cweight=prfouter1[apadrow][apad];
	  }
          else {
	    cweight=prfouter2[apadrow][apad];
	  }
	}
	//	if (cweight<fResponseThreshold) continue;
	Int_t atime = TMath::Nint((dtime-ftime)*kftimen+2.5*kftimen);
	for (Int_t itime = ftime;itime<=ltime;itime++){	
	  Float_t cweight2 = cweight*rftime[atime];
	  if (cweight2>fResponseThreshold) {
	    fResponseBin[cindex3++]=cpadrow+ipadrow;
	    fResponseBin[cindex3++]=cpad+ipad;
	    fResponseBin[cindex3++]=ctime+itime;
	    fResponseWeight[cindex++]=cweight2;	  	    
	  }
	  atime-=ktimen;
	}
	apad-= kpadn;	
    }
    apadrow-=kpadrn;
  }
  fCurrentMax=cindex;	
  return fCurrentMax;    
  
}







 AliTPCParamSR.cxx:1
 AliTPCParamSR.cxx:2
 AliTPCParamSR.cxx:3
 AliTPCParamSR.cxx:4
 AliTPCParamSR.cxx:5
 AliTPCParamSR.cxx:6
 AliTPCParamSR.cxx:7
 AliTPCParamSR.cxx:8
 AliTPCParamSR.cxx:9
 AliTPCParamSR.cxx:10
 AliTPCParamSR.cxx:11
 AliTPCParamSR.cxx:12
 AliTPCParamSR.cxx:13
 AliTPCParamSR.cxx:14
 AliTPCParamSR.cxx:15
 AliTPCParamSR.cxx:16
 AliTPCParamSR.cxx:17
 AliTPCParamSR.cxx:18
 AliTPCParamSR.cxx:19
 AliTPCParamSR.cxx:20
 AliTPCParamSR.cxx:21
 AliTPCParamSR.cxx:22
 AliTPCParamSR.cxx:23
 AliTPCParamSR.cxx:24
 AliTPCParamSR.cxx:25
 AliTPCParamSR.cxx:26
 AliTPCParamSR.cxx:27
 AliTPCParamSR.cxx:28
 AliTPCParamSR.cxx:29
 AliTPCParamSR.cxx:30
 AliTPCParamSR.cxx:31
 AliTPCParamSR.cxx:32
 AliTPCParamSR.cxx:33
 AliTPCParamSR.cxx:34
 AliTPCParamSR.cxx:35
 AliTPCParamSR.cxx:36
 AliTPCParamSR.cxx:37
 AliTPCParamSR.cxx:38
 AliTPCParamSR.cxx:39
 AliTPCParamSR.cxx:40
 AliTPCParamSR.cxx:41
 AliTPCParamSR.cxx:42
 AliTPCParamSR.cxx:43
 AliTPCParamSR.cxx:44
 AliTPCParamSR.cxx:45
 AliTPCParamSR.cxx:46
 AliTPCParamSR.cxx:47
 AliTPCParamSR.cxx:48
 AliTPCParamSR.cxx:49
 AliTPCParamSR.cxx:50
 AliTPCParamSR.cxx:51
 AliTPCParamSR.cxx:52
 AliTPCParamSR.cxx:53
 AliTPCParamSR.cxx:54
 AliTPCParamSR.cxx:55
 AliTPCParamSR.cxx:56
 AliTPCParamSR.cxx:57
 AliTPCParamSR.cxx:58
 AliTPCParamSR.cxx:59
 AliTPCParamSR.cxx:60
 AliTPCParamSR.cxx:61
 AliTPCParamSR.cxx:62
 AliTPCParamSR.cxx:63
 AliTPCParamSR.cxx:64
 AliTPCParamSR.cxx:65
 AliTPCParamSR.cxx:66
 AliTPCParamSR.cxx:67
 AliTPCParamSR.cxx:68
 AliTPCParamSR.cxx:69
 AliTPCParamSR.cxx:70
 AliTPCParamSR.cxx:71
 AliTPCParamSR.cxx:72
 AliTPCParamSR.cxx:73
 AliTPCParamSR.cxx:74
 AliTPCParamSR.cxx:75
 AliTPCParamSR.cxx:76
 AliTPCParamSR.cxx:77
 AliTPCParamSR.cxx:78
 AliTPCParamSR.cxx:79
 AliTPCParamSR.cxx:80
 AliTPCParamSR.cxx:81
 AliTPCParamSR.cxx:82
 AliTPCParamSR.cxx:83
 AliTPCParamSR.cxx:84
 AliTPCParamSR.cxx:85
 AliTPCParamSR.cxx:86
 AliTPCParamSR.cxx:87
 AliTPCParamSR.cxx:88
 AliTPCParamSR.cxx:89
 AliTPCParamSR.cxx:90
 AliTPCParamSR.cxx:91
 AliTPCParamSR.cxx:92
 AliTPCParamSR.cxx:93
 AliTPCParamSR.cxx:94
 AliTPCParamSR.cxx:95
 AliTPCParamSR.cxx:96
 AliTPCParamSR.cxx:97
 AliTPCParamSR.cxx:98
 AliTPCParamSR.cxx:99
 AliTPCParamSR.cxx:100
 AliTPCParamSR.cxx:101
 AliTPCParamSR.cxx:102
 AliTPCParamSR.cxx:103
 AliTPCParamSR.cxx:104
 AliTPCParamSR.cxx:105
 AliTPCParamSR.cxx:106
 AliTPCParamSR.cxx:107
 AliTPCParamSR.cxx:108
 AliTPCParamSR.cxx:109
 AliTPCParamSR.cxx:110
 AliTPCParamSR.cxx:111
 AliTPCParamSR.cxx:112
 AliTPCParamSR.cxx:113
 AliTPCParamSR.cxx:114
 AliTPCParamSR.cxx:115
 AliTPCParamSR.cxx:116
 AliTPCParamSR.cxx:117
 AliTPCParamSR.cxx:118
 AliTPCParamSR.cxx:119
 AliTPCParamSR.cxx:120
 AliTPCParamSR.cxx:121
 AliTPCParamSR.cxx:122
 AliTPCParamSR.cxx:123
 AliTPCParamSR.cxx:124
 AliTPCParamSR.cxx:125
 AliTPCParamSR.cxx:126
 AliTPCParamSR.cxx:127
 AliTPCParamSR.cxx:128
 AliTPCParamSR.cxx:129
 AliTPCParamSR.cxx:130
 AliTPCParamSR.cxx:131
 AliTPCParamSR.cxx:132
 AliTPCParamSR.cxx:133
 AliTPCParamSR.cxx:134
 AliTPCParamSR.cxx:135
 AliTPCParamSR.cxx:136
 AliTPCParamSR.cxx:137
 AliTPCParamSR.cxx:138
 AliTPCParamSR.cxx:139
 AliTPCParamSR.cxx:140
 AliTPCParamSR.cxx:141
 AliTPCParamSR.cxx:142
 AliTPCParamSR.cxx:143
 AliTPCParamSR.cxx:144
 AliTPCParamSR.cxx:145
 AliTPCParamSR.cxx:146
 AliTPCParamSR.cxx:147
 AliTPCParamSR.cxx:148
 AliTPCParamSR.cxx:149
 AliTPCParamSR.cxx:150
 AliTPCParamSR.cxx:151
 AliTPCParamSR.cxx:152
 AliTPCParamSR.cxx:153
 AliTPCParamSR.cxx:154
 AliTPCParamSR.cxx:155
 AliTPCParamSR.cxx:156
 AliTPCParamSR.cxx:157
 AliTPCParamSR.cxx:158
 AliTPCParamSR.cxx:159
 AliTPCParamSR.cxx:160
 AliTPCParamSR.cxx:161
 AliTPCParamSR.cxx:162
 AliTPCParamSR.cxx:163
 AliTPCParamSR.cxx:164
 AliTPCParamSR.cxx:165
 AliTPCParamSR.cxx:166
 AliTPCParamSR.cxx:167
 AliTPCParamSR.cxx:168
 AliTPCParamSR.cxx:169
 AliTPCParamSR.cxx:170
 AliTPCParamSR.cxx:171
 AliTPCParamSR.cxx:172
 AliTPCParamSR.cxx:173
 AliTPCParamSR.cxx:174
 AliTPCParamSR.cxx:175
 AliTPCParamSR.cxx:176
 AliTPCParamSR.cxx:177
 AliTPCParamSR.cxx:178
 AliTPCParamSR.cxx:179
 AliTPCParamSR.cxx:180
 AliTPCParamSR.cxx:181
 AliTPCParamSR.cxx:182
 AliTPCParamSR.cxx:183
 AliTPCParamSR.cxx:184
 AliTPCParamSR.cxx:185
 AliTPCParamSR.cxx:186
 AliTPCParamSR.cxx:187
 AliTPCParamSR.cxx:188
 AliTPCParamSR.cxx:189
 AliTPCParamSR.cxx:190
 AliTPCParamSR.cxx:191
 AliTPCParamSR.cxx:192
 AliTPCParamSR.cxx:193
 AliTPCParamSR.cxx:194
 AliTPCParamSR.cxx:195
 AliTPCParamSR.cxx:196
 AliTPCParamSR.cxx:197
 AliTPCParamSR.cxx:198
 AliTPCParamSR.cxx:199
 AliTPCParamSR.cxx:200
 AliTPCParamSR.cxx:201
 AliTPCParamSR.cxx:202
 AliTPCParamSR.cxx:203
 AliTPCParamSR.cxx:204
 AliTPCParamSR.cxx:205
 AliTPCParamSR.cxx:206
 AliTPCParamSR.cxx:207
 AliTPCParamSR.cxx:208
 AliTPCParamSR.cxx:209
 AliTPCParamSR.cxx:210
 AliTPCParamSR.cxx:211
 AliTPCParamSR.cxx:212
 AliTPCParamSR.cxx:213
 AliTPCParamSR.cxx:214
 AliTPCParamSR.cxx:215
 AliTPCParamSR.cxx:216
 AliTPCParamSR.cxx:217
 AliTPCParamSR.cxx:218
 AliTPCParamSR.cxx:219
 AliTPCParamSR.cxx:220
 AliTPCParamSR.cxx:221
 AliTPCParamSR.cxx:222
 AliTPCParamSR.cxx:223
 AliTPCParamSR.cxx:224
 AliTPCParamSR.cxx:225
 AliTPCParamSR.cxx:226
 AliTPCParamSR.cxx:227
 AliTPCParamSR.cxx:228
 AliTPCParamSR.cxx:229
 AliTPCParamSR.cxx:230
 AliTPCParamSR.cxx:231
 AliTPCParamSR.cxx:232
 AliTPCParamSR.cxx:233
 AliTPCParamSR.cxx:234
 AliTPCParamSR.cxx:235
 AliTPCParamSR.cxx:236
 AliTPCParamSR.cxx:237
 AliTPCParamSR.cxx:238
 AliTPCParamSR.cxx:239
 AliTPCParamSR.cxx:240
 AliTPCParamSR.cxx:241
 AliTPCParamSR.cxx:242
 AliTPCParamSR.cxx:243
 AliTPCParamSR.cxx:244
 AliTPCParamSR.cxx:245
 AliTPCParamSR.cxx:246
 AliTPCParamSR.cxx:247
 AliTPCParamSR.cxx:248
 AliTPCParamSR.cxx:249
 AliTPCParamSR.cxx:250
 AliTPCParamSR.cxx:251
 AliTPCParamSR.cxx:252
 AliTPCParamSR.cxx:253
 AliTPCParamSR.cxx:254
 AliTPCParamSR.cxx:255
 AliTPCParamSR.cxx:256
 AliTPCParamSR.cxx:257
 AliTPCParamSR.cxx:258
 AliTPCParamSR.cxx:259
 AliTPCParamSR.cxx:260
 AliTPCParamSR.cxx:261
 AliTPCParamSR.cxx:262
 AliTPCParamSR.cxx:263
 AliTPCParamSR.cxx:264
 AliTPCParamSR.cxx:265
 AliTPCParamSR.cxx:266
 AliTPCParamSR.cxx:267
 AliTPCParamSR.cxx:268
 AliTPCParamSR.cxx:269
 AliTPCParamSR.cxx:270
 AliTPCParamSR.cxx:271
 AliTPCParamSR.cxx:272
 AliTPCParamSR.cxx:273
 AliTPCParamSR.cxx:274
 AliTPCParamSR.cxx:275
 AliTPCParamSR.cxx:276
 AliTPCParamSR.cxx:277
 AliTPCParamSR.cxx:278
 AliTPCParamSR.cxx:279
 AliTPCParamSR.cxx:280
 AliTPCParamSR.cxx:281
 AliTPCParamSR.cxx:282
 AliTPCParamSR.cxx:283
 AliTPCParamSR.cxx:284
 AliTPCParamSR.cxx:285
 AliTPCParamSR.cxx:286
 AliTPCParamSR.cxx:287
 AliTPCParamSR.cxx:288
 AliTPCParamSR.cxx:289
 AliTPCParamSR.cxx:290
 AliTPCParamSR.cxx:291
 AliTPCParamSR.cxx:292
 AliTPCParamSR.cxx:293
 AliTPCParamSR.cxx:294
 AliTPCParamSR.cxx:295
 AliTPCParamSR.cxx:296
 AliTPCParamSR.cxx:297
 AliTPCParamSR.cxx:298
 AliTPCParamSR.cxx:299
 AliTPCParamSR.cxx:300
 AliTPCParamSR.cxx:301
 AliTPCParamSR.cxx:302
 AliTPCParamSR.cxx:303
 AliTPCParamSR.cxx:304
 AliTPCParamSR.cxx:305
 AliTPCParamSR.cxx:306
 AliTPCParamSR.cxx:307
 AliTPCParamSR.cxx:308
 AliTPCParamSR.cxx:309
 AliTPCParamSR.cxx:310
 AliTPCParamSR.cxx:311
 AliTPCParamSR.cxx:312
 AliTPCParamSR.cxx:313
 AliTPCParamSR.cxx:314
 AliTPCParamSR.cxx:315
 AliTPCParamSR.cxx:316
 AliTPCParamSR.cxx:317
 AliTPCParamSR.cxx:318
 AliTPCParamSR.cxx:319
 AliTPCParamSR.cxx:320
 AliTPCParamSR.cxx:321
 AliTPCParamSR.cxx:322
 AliTPCParamSR.cxx:323
 AliTPCParamSR.cxx:324
 AliTPCParamSR.cxx:325
 AliTPCParamSR.cxx:326
 AliTPCParamSR.cxx:327
 AliTPCParamSR.cxx:328
 AliTPCParamSR.cxx:329
 AliTPCParamSR.cxx:330
 AliTPCParamSR.cxx:331
 AliTPCParamSR.cxx:332
 AliTPCParamSR.cxx:333
 AliTPCParamSR.cxx:334
 AliTPCParamSR.cxx:335
 AliTPCParamSR.cxx:336
 AliTPCParamSR.cxx:337
 AliTPCParamSR.cxx:338
 AliTPCParamSR.cxx:339
 AliTPCParamSR.cxx:340
 AliTPCParamSR.cxx:341
 AliTPCParamSR.cxx:342
 AliTPCParamSR.cxx:343
 AliTPCParamSR.cxx:344
 AliTPCParamSR.cxx:345
 AliTPCParamSR.cxx:346
 AliTPCParamSR.cxx:347
 AliTPCParamSR.cxx:348
 AliTPCParamSR.cxx:349
 AliTPCParamSR.cxx:350
 AliTPCParamSR.cxx:351
 AliTPCParamSR.cxx:352
 AliTPCParamSR.cxx:353
 AliTPCParamSR.cxx:354
 AliTPCParamSR.cxx:355
 AliTPCParamSR.cxx:356
 AliTPCParamSR.cxx:357
 AliTPCParamSR.cxx:358
 AliTPCParamSR.cxx:359
 AliTPCParamSR.cxx:360
 AliTPCParamSR.cxx:361
 AliTPCParamSR.cxx:362
 AliTPCParamSR.cxx:363
 AliTPCParamSR.cxx:364
 AliTPCParamSR.cxx:365
 AliTPCParamSR.cxx:366
 AliTPCParamSR.cxx:367
 AliTPCParamSR.cxx:368
 AliTPCParamSR.cxx:369
 AliTPCParamSR.cxx:370
 AliTPCParamSR.cxx:371
 AliTPCParamSR.cxx:372
 AliTPCParamSR.cxx:373
 AliTPCParamSR.cxx:374
 AliTPCParamSR.cxx:375
 AliTPCParamSR.cxx:376
 AliTPCParamSR.cxx:377
 AliTPCParamSR.cxx:378
 AliTPCParamSR.cxx:379
 AliTPCParamSR.cxx:380
 AliTPCParamSR.cxx:381
 AliTPCParamSR.cxx:382
 AliTPCParamSR.cxx:383
 AliTPCParamSR.cxx:384
 AliTPCParamSR.cxx:385
 AliTPCParamSR.cxx:386
 AliTPCParamSR.cxx:387
 AliTPCParamSR.cxx:388
 AliTPCParamSR.cxx:389
 AliTPCParamSR.cxx:390
 AliTPCParamSR.cxx:391
 AliTPCParamSR.cxx:392
 AliTPCParamSR.cxx:393
 AliTPCParamSR.cxx:394
 AliTPCParamSR.cxx:395
 AliTPCParamSR.cxx:396
 AliTPCParamSR.cxx:397
 AliTPCParamSR.cxx:398
 AliTPCParamSR.cxx:399
 AliTPCParamSR.cxx:400
 AliTPCParamSR.cxx:401
 AliTPCParamSR.cxx:402
 AliTPCParamSR.cxx:403
 AliTPCParamSR.cxx:404
 AliTPCParamSR.cxx:405
 AliTPCParamSR.cxx:406
 AliTPCParamSR.cxx:407
 AliTPCParamSR.cxx:408
 AliTPCParamSR.cxx:409
 AliTPCParamSR.cxx:410
 AliTPCParamSR.cxx:411
 AliTPCParamSR.cxx:412
 AliTPCParamSR.cxx:413
 AliTPCParamSR.cxx:414
 AliTPCParamSR.cxx:415
 AliTPCParamSR.cxx:416
 AliTPCParamSR.cxx:417
 AliTPCParamSR.cxx:418
 AliTPCParamSR.cxx:419
 AliTPCParamSR.cxx:420
 AliTPCParamSR.cxx:421
 AliTPCParamSR.cxx:422
 AliTPCParamSR.cxx:423
 AliTPCParamSR.cxx:424
 AliTPCParamSR.cxx:425
 AliTPCParamSR.cxx:426
 AliTPCParamSR.cxx:427
 AliTPCParamSR.cxx:428
 AliTPCParamSR.cxx:429
 AliTPCParamSR.cxx:430
 AliTPCParamSR.cxx:431
 AliTPCParamSR.cxx:432
 AliTPCParamSR.cxx:433
 AliTPCParamSR.cxx:434
 AliTPCParamSR.cxx:435
 AliTPCParamSR.cxx:436
 AliTPCParamSR.cxx:437
 AliTPCParamSR.cxx:438
 AliTPCParamSR.cxx:439
 AliTPCParamSR.cxx:440
 AliTPCParamSR.cxx:441
 AliTPCParamSR.cxx:442
 AliTPCParamSR.cxx:443
 AliTPCParamSR.cxx:444
 AliTPCParamSR.cxx:445
 AliTPCParamSR.cxx:446
 AliTPCParamSR.cxx:447
 AliTPCParamSR.cxx:448
 AliTPCParamSR.cxx:449
 AliTPCParamSR.cxx:450
 AliTPCParamSR.cxx:451
 AliTPCParamSR.cxx:452
 AliTPCParamSR.cxx:453
 AliTPCParamSR.cxx:454
 AliTPCParamSR.cxx:455
 AliTPCParamSR.cxx:456
 AliTPCParamSR.cxx:457
 AliTPCParamSR.cxx:458
 AliTPCParamSR.cxx:459
 AliTPCParamSR.cxx:460
 AliTPCParamSR.cxx:461
 AliTPCParamSR.cxx:462
 AliTPCParamSR.cxx:463
 AliTPCParamSR.cxx:464
 AliTPCParamSR.cxx:465
 AliTPCParamSR.cxx:466
 AliTPCParamSR.cxx:467
 AliTPCParamSR.cxx:468
 AliTPCParamSR.cxx:469
 AliTPCParamSR.cxx:470
 AliTPCParamSR.cxx:471
 AliTPCParamSR.cxx:472
 AliTPCParamSR.cxx:473
 AliTPCParamSR.cxx:474
 AliTPCParamSR.cxx:475
 AliTPCParamSR.cxx:476
 AliTPCParamSR.cxx:477
 AliTPCParamSR.cxx:478
 AliTPCParamSR.cxx:479
 AliTPCParamSR.cxx:480
 AliTPCParamSR.cxx:481
 AliTPCParamSR.cxx:482
 AliTPCParamSR.cxx:483
 AliTPCParamSR.cxx:484
 AliTPCParamSR.cxx:485
 AliTPCParamSR.cxx:486
 AliTPCParamSR.cxx:487
 AliTPCParamSR.cxx:488
 AliTPCParamSR.cxx:489
 AliTPCParamSR.cxx:490
 AliTPCParamSR.cxx:491
 AliTPCParamSR.cxx:492
 AliTPCParamSR.cxx:493
 AliTPCParamSR.cxx:494
 AliTPCParamSR.cxx:495
 AliTPCParamSR.cxx:496
 AliTPCParamSR.cxx:497
 AliTPCParamSR.cxx:498
 AliTPCParamSR.cxx:499
 AliTPCParamSR.cxx:500
 AliTPCParamSR.cxx:501
 AliTPCParamSR.cxx:502
 AliTPCParamSR.cxx:503
 AliTPCParamSR.cxx:504
 AliTPCParamSR.cxx:505
 AliTPCParamSR.cxx:506
 AliTPCParamSR.cxx:507
 AliTPCParamSR.cxx:508
 AliTPCParamSR.cxx:509
 AliTPCParamSR.cxx:510
 AliTPCParamSR.cxx:511
 AliTPCParamSR.cxx:512
 AliTPCParamSR.cxx:513
 AliTPCParamSR.cxx:514
 AliTPCParamSR.cxx:515
 AliTPCParamSR.cxx:516
 AliTPCParamSR.cxx:517
 AliTPCParamSR.cxx:518
 AliTPCParamSR.cxx:519
 AliTPCParamSR.cxx:520
 AliTPCParamSR.cxx:521
 AliTPCParamSR.cxx:522
 AliTPCParamSR.cxx:523
 AliTPCParamSR.cxx:524
 AliTPCParamSR.cxx:525
 AliTPCParamSR.cxx:526
 AliTPCParamSR.cxx:527
 AliTPCParamSR.cxx:528
 AliTPCParamSR.cxx:529
 AliTPCParamSR.cxx:530
 AliTPCParamSR.cxx:531
 AliTPCParamSR.cxx:532
 AliTPCParamSR.cxx:533
 AliTPCParamSR.cxx:534
 AliTPCParamSR.cxx:535
 AliTPCParamSR.cxx:536
 AliTPCParamSR.cxx:537
 AliTPCParamSR.cxx:538
 AliTPCParamSR.cxx:539
 AliTPCParamSR.cxx:540
 AliTPCParamSR.cxx:541
 AliTPCParamSR.cxx:542
 AliTPCParamSR.cxx:543
 AliTPCParamSR.cxx:544
 AliTPCParamSR.cxx:545
 AliTPCParamSR.cxx:546
 AliTPCParamSR.cxx:547
 AliTPCParamSR.cxx:548
 AliTPCParamSR.cxx:549
 AliTPCParamSR.cxx:550
 AliTPCParamSR.cxx:551
 AliTPCParamSR.cxx:552
 AliTPCParamSR.cxx:553
 AliTPCParamSR.cxx:554
 AliTPCParamSR.cxx:555
 AliTPCParamSR.cxx:556
 AliTPCParamSR.cxx:557
 AliTPCParamSR.cxx:558
 AliTPCParamSR.cxx:559
 AliTPCParamSR.cxx:560
 AliTPCParamSR.cxx:561
 AliTPCParamSR.cxx:562
 AliTPCParamSR.cxx:563
 AliTPCParamSR.cxx:564
 AliTPCParamSR.cxx:565
 AliTPCParamSR.cxx:566
 AliTPCParamSR.cxx:567
 AliTPCParamSR.cxx:568
 AliTPCParamSR.cxx:569
 AliTPCParamSR.cxx:570
 AliTPCParamSR.cxx:571
 AliTPCParamSR.cxx:572
 AliTPCParamSR.cxx:573
 AliTPCParamSR.cxx:574
 AliTPCParamSR.cxx:575
 AliTPCParamSR.cxx:576
 AliTPCParamSR.cxx:577
 AliTPCParamSR.cxx:578
 AliTPCParamSR.cxx:579
 AliTPCParamSR.cxx:580
 AliTPCParamSR.cxx:581
 AliTPCParamSR.cxx:582
 AliTPCParamSR.cxx:583
 AliTPCParamSR.cxx:584
 AliTPCParamSR.cxx:585
 AliTPCParamSR.cxx:586
 AliTPCParamSR.cxx:587
 AliTPCParamSR.cxx:588
 AliTPCParamSR.cxx:589
 AliTPCParamSR.cxx:590
 AliTPCParamSR.cxx:591
 AliTPCParamSR.cxx:592
 AliTPCParamSR.cxx:593
 AliTPCParamSR.cxx:594
 AliTPCParamSR.cxx:595
 AliTPCParamSR.cxx:596
 AliTPCParamSR.cxx:597
 AliTPCParamSR.cxx:598
 AliTPCParamSR.cxx:599
 AliTPCParamSR.cxx:600
 AliTPCParamSR.cxx:601
 AliTPCParamSR.cxx:602
 AliTPCParamSR.cxx:603
 AliTPCParamSR.cxx:604
 AliTPCParamSR.cxx:605