]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCTransform.cxx
When Pt is bad defined (ex. no field), the multiple scattering effect is calculated...
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCTransform.cxx
index d54f838dbed3bd9f5674db0939a46c61abe37f29..2788184d12aea334b59edfe9582b127794d35251 100644 (file)
 #include <AliTPCRF1D.h>
 #endif
 #ifdef use_root
+#include <TError.h>
 #include <TFile.h>
-#include <TUnixSystem.h>
 #include <TTimeStamp.h>
-#include <TError.h>
+#include <TUnixSystem.h>
 #endif
 
 #include "AliHLTTPCLogging.h"
@@ -887,584 +887,6 @@ Double_t AliHLTTPCTransform::fgSin[36] = { 0.1736481786,
                                      -0.1736481786
 };
 
-#ifdef use_aliroot
-Bool_t AliHLTTPCTransform::Init(AliRunLoader *runLoader)
-{ 
-  //init with runloader
-  if(!runLoader) {
-    LOG(AliHLTTPCLog::kFatal,"AliHLTTPCTransform::Init","RunLoader")
-      <<" Missing RunLoader! 0x0"<<ENDLOG;
-    return kFALSE;
-  }
-  if(fgVersion != kVdefault)
-    LOG(AliHLTTPCLog::kWarning,"AliHLTTPCTransform::Init","Init values")
-      <<AliHLTTPCLog::kDec<<"You are initializing the parameters more than once; check your code please! "<<fgVersion<<ENDLOG;
-
-  TDirectory* savedir1 = gDirectory;
-  runLoader->CdGAFile();
-  AliTPCParamSR *param=(AliTPCParamSR*)gDirectory->Get(GetParamName());
-  savedir1->cd();
-  if(!param)
-    {
-      LOG(AliHLTTPCLog::kFatal,"AliHLTTPCTransform::Init","File")
-       <<"No TPC parameters found!"<<ENDLOG;
-      return kFALSE;
-    }
-
-  AliTPCPRF2D    * prfinner    = new AliTPCPRF2D;
-  AliTPCPRF2D    * prfouter1   = new AliTPCPRF2D;
-  AliTPCPRF2D    * prfouter2   = new AliTPCPRF2D;  
-  AliTPCRF1D     * rf    = new AliTPCRF1D(kTRUE);
-  rf->SetGauss(param->GetZSigma(),param->GetZWidth(),1.);
-  rf->SetOffset(3*param->GetZSigma());
-  rf->Update();
-  
-  TDirectory *savedir2=gDirectory;
-  TFile *prf_file = TFile::Open("$ALICE_ROOT/TPC/AliTPCprf2d.root");
-  if (!prf_file->IsOpen()) 
-    { 
-      LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::Init","File")
-       <<"Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !"<<ENDLOG;
-      return kFALSE;
-    }
-  prfinner ->Read("prf_07504_Gati_056068_d02");
-  prfouter1->Read("prf_10006_Gati_047051_d03");
-  prfouter2->Read("prf_15006_Gati_047051_d03");  
-  prf_file->Close();
-  savedir2->cd();
-  
-  param->SetInnerPRF(prfinner);
-  param->SetOuter1PRF(prfouter1); 
-  param->SetOuter2PRF(prfouter2);
-  param->SetTimeRF(rf);
-  
-  fgNTimeBins = param->GetMaxTBin()+1;
-  fgNRowLow = param->GetNRowLow();
-  fgNRowUp  = param->GetNRowUp();
-  fgNRowUp1 = param->GetNRowUp1();
-  fgNRowUp2 = param->GetNRowUp2();
-  fgNRow= fgNRowLow + fgNRowUp;
-  if(fgNRow!=159){
-    LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::Init","fNRow")
-      <<"Number of rows have changed in ALIROOT"<<ENDLOG;
-    return kFALSE;
-  }
-  
-  fgNSectorLow = param->GetNInnerSector();
-  fgNSectorUp = param->GetNOuterSector();
-  fgNSector = fgNSectorLow + fgNSectorUp;
-
-  //test whether they were changes to the rotation shift
-  fgNRotShift=0;
-  Float_t irotshift = param->GetInnerAngleShift(); //shift angle
-  Float_t orotshift = param->GetOuterAngleShift(); //shift angle
-  const Float_t kDegtoRad = 0.01745329251994;
-  Int_t shift1=TMath::Nint(irotshift/kDegtoRad);
-  Int_t shift2=TMath::Nint(orotshift/kDegtoRad+0.1);
-  if((shift1!=shift2) || (shift1!=10)){
-    LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::Init","Rotshiftangle")
-      <<"Rotation shift angle has changed in ALIROOT"<<ENDLOG;
-    return kFALSE;
-  } else {
-    fgNRotShift=0.5; //our version of the shift angle
-  }
-  
-  fgVersion=kValiroot;
-  SetBFieldFactor((Double_t)runLoader->GetAliRun()->Field()->Factor());
-  SetSolenoidBField(-
-                   (Double_t)runLoader->GetAliRun()->Field()->SolenoidField()/
-                   (Double_t)runLoader->GetAliRun()->Field()->Factor()
-                   );
-  fgPadPitchWidthLow=param->GetInnerPadPitchWidth();
-  fgPadPitchWidthUp=param->GetOuterPadPitchWidth();
-  fgZWidth=param->GetZWidth();
-  fgZSigma=param->GetZSigma();
-  // Matthias 24.04.2007 a default parameter has been added to GetZLength
-  // reverting some of Mareks changes
-  // TODO: we have to use the method correctly and put the slice no into it
-  //fgZLength=param->GetZLength(0)+0.275;
-  fgZLength=param->GetZLength()+0.275;
-  fgZOffset=param->GetZOffset();
-  fgDiffT=param->GetDiffT();
-  fgDiffL=param->GetDiffL();
-  fgOmegaTau=param->GetOmegaTau();
-  fgInnerPadLength=param->GetInnerPadLength();
-  fgOuter1PadLength=param->GetOuter1PadLength();
-  fgOuter2PadLength=param->GetOuter2PadLength();
-  fgInnerPRFSigma=param->GetInnerPRF()->GetSigmaX();
-  fgOuter1PRFSigma=param->GetOuter1PRF()->GetSigmaX();
-  fgOuter2PRFSigma=param->GetOuter2PRF()->GetSigmaX();
-  fgTimeSigma=param->GetTimeRF()->GetSigma();
-  fgADCSat=param->GetADCSat();
-  fgZeroSup=param->GetZeroSup();
-  fgNSlice=fgNSectorLow;
-    
-  //now do the arrays
-  for(Int_t i=0;i<fgNRow;i++){
-    Int_t sec,row;
-    if( i < fgNRowLow){sec =0;row =i;}
-    else{sec = fgNSectorLow;row =i-fgNRowLow;}
-    fgX[i]=param->GetPadRowRadii(sec,row);
-  } 
-  for(Int_t i=0;i<fgNRow;i++){
-    Int_t sec,row;
-    if( i < fgNRowLow){sec =0;row =i;}
-    else{sec = fgNSectorLow;row =i-fgNRowLow;}
-    fgNPads[i]=param->GetNPads(sec,row);
-  }
-  for(Int_t i=0;i<fgNSector;i++){
-    if(i<fgNSectorLow) fgSectorLow[i]=1;
-    else fgSectorLow[i]=0;
-  }
-
-  return kTRUE;
-
-  /* not needed 
-  TTimeStamp time;
-  Char_t tmpfile[1024];
-  sprintf(tmpfile,"./l3transform.config-%d",(Int_t)time.GetSec());
-
-  return SaveInitFile(tmpfile);
-  */
-}
-#endif
-
-Bool_t AliHLTTPCTransform::Init(Char_t* path,Bool_t UseAliTPCParam)
-{
-  //Overwrite the parameters with values stored in file "l3transform.config" in path.
-  //If file does not exist, old default values will be used.
-  //If flag UseAliTPCParam is set, the parameters will be read from the the rootfile
-  //which then has to be called path/digitfile.root
-  
-  if(fgVersion != kVdefault)
-    LOG(AliHLTTPCLog::kWarning,"AliHLTTPCTransform::Init","Init values")
-      <<AliHLTTPCLog::kDec<<"You are initializing the parameters more than once; check your code please! "<<fgVersion<<ENDLOG;
-  
-  if(UseAliTPCParam) //use rootfile to generate temporary init file
-    return ReadInit(path);
-
-  //create filename
-  Char_t pathname[1024];
-  strcpy(pathname,path);
-
-  //test whether provided path is the file itself
-  Int_t isdir = 0;
-  DIR *testdir=opendir(pathname);
-  if(testdir){
-    isdir=1;
-    closedir(testdir);
-  }
-
-  if(isdir) strcat(pathname,"/l3transform.config");
-
-  return ReadInitFile(pathname);
-}
-
-Bool_t AliHLTTPCTransform::ReadInitFile(Char_t* pathname)
-{
-  //read transformer settings from pathname
-  FILE *fptr=fopen(pathname,"r");
-  if(!fptr){
-    LOG(AliHLTTPCLog::kWarning,"AliHLTTPCTransform::ReadInitFile","File Open")
-      <<"Pointer to Config File \""<<pathname<<"\" 0x0!"<<ENDLOG;
-    return kFALSE;
-  }
-
-  Char_t d1[250], d2[100], d3[100];
-  Int_t dummy=0;
-  Double_t ddummy=0.0;
-
-  while(!feof(fptr)) {
-    fscanf(fptr,"%s",d1);
-    if(strcmp(d1,"fVersion")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgVersion=dummy;}
-    else if(strcmp(d1,"fBFieldFactor")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgBFieldFactor=(Double_t)ddummy;}
-    else if(strcmp(d1,"fSolenoidBField")==0)
-      {
-       fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);
-       fgSolenoidBField=(Double_t)ddummy;
-      }
-    else if(strcmp(d1,"fNTimeBins")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNTimeBins=(Int_t)dummy;}
-    else if(strcmp(d1,"fNRowLow")==0)
-      {
-       fscanf(fptr,"%s %d %s",d2,&dummy,d3);
-       fgNRowLow=(Int_t)dummy;
-       if(fgNRowLow != 63)
-         LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::ReadInitFile","Overflow")
-           <<"Number of inner PadRows should be 63! Check and fgrep the code for 63 to see the consequences of this major change!"<<ENDLOG;
-      }
-    else if(strcmp(d1,"fNRowUp")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNRowUp=(Int_t)dummy;}
-    else if(strcmp(d1,"fNRowUp1")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNRowUp1=(Int_t)dummy;}
-    else if(strcmp(d1,"fNRowUp2")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNRowUp2=(Int_t)dummy;}
-    else if(strcmp(d1,"fNSectorLow")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNSectorLow=(Int_t)dummy;}
-    else if(strcmp(d1,"fNSectorUp")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNSectorUp=(Int_t)dummy;}
-    else if(strcmp(d1,"fNSector")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNSector=(Int_t)dummy;}
-    else if(strcmp(d1,"fPadPitchWidthLow")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgPadPitchWidthLow=(Double_t)ddummy;}
-    else if(strcmp(d1,"fPadPitchWidthUp")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgPadPitchWidthUp=(Double_t)ddummy;}
-    else if(strcmp(d1,"fZWidth")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgZWidth=(Double_t)ddummy;}
-    else if(strcmp(d1,"fZSigma")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgZSigma=(Double_t)ddummy;}
-    else if(strcmp(d1,"fZLength")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgZLength=(Double_t)ddummy;}
-    else if(strcmp(d1,"fZOffset")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgZOffset=(Double_t)ddummy;}
-    else if(strcmp(d1,"fNSlice")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNSlice=(Int_t)dummy;}
-    else if(strcmp(d1,"fDiffT")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgDiffT=(Double_t)ddummy;}
-    else if(strcmp(d1,"fDiffL")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgDiffL=(Double_t)ddummy;}
-    else if(strcmp(d1,"fOmegaTau")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgOmegaTau=(Double_t)ddummy;}
-    else if(strcmp(d1,"fInnerPadLength")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgInnerPadLength=(Double_t)ddummy;}
-    else if(strcmp(d1,"fOuter1PadLength")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgOuter1PadLength=(Double_t)ddummy;}
-    else if(strcmp(d1,"fOuter2PadLength")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgOuter2PadLength=(Double_t)ddummy;}
-    else if(strcmp(d1,"fInnerPRFSigma")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgInnerPRFSigma=(Double_t)ddummy;}
-    else if(strcmp(d1,"fOuter1PRFSigma")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgOuter1PRFSigma=(Double_t)ddummy;}
-    else if(strcmp(d1,"fOuter2PRFSigma")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgOuter2PRFSigma=(Double_t)ddummy;}
-    else if(strcmp(d1,"fTimeSigma")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgTimeSigma=(Double_t)ddummy;}
-    else if(strcmp(d1,"fADCSat")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgADCSat=(Int_t)dummy;}
-    else if(strcmp(d1,"fZeroSup")==0){fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgZeroSup=(Int_t)dummy;}
-    else if(strcmp(d1,"fNRow")==0){
-      fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNRow=(Int_t)dummy;
-      if(fgNRow!=159){
-       LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::ReadInitFile","Overflow")<<"Number of PadRows should be 159! Check and fgrep the code for 159 to see the consequences of this major change!"<<ENDLOG;
-      }
-    }
-    else if(strcmp(d1,"fNRotShift")==0){fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgNRotShift=(Double_t)ddummy;}
-    else if(strcmp(d1,"fX[0]")==0){
-      fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgX[0]=(Double_t)ddummy;
-      for(Int_t i=1;i<fgNRow;i++){fscanf(fptr,"%s %s %lf %s",d1,d2,&ddummy,d3);fgX[i]=(Double_t)ddummy;}
-    }
-    else if(strcmp(d1,"fNPads[0]")==0){
-      fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNPads[0]=(Int_t)dummy;
-      for(Int_t i=1;i<fgNRow;i++){fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgNPads[i]=(Int_t)dummy;}
-    }
-    else if(strcmp(d1,"fNRows[0]")==0){
-      fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgNRows[0]=(Int_t)dummy;
-      for(Int_t i=1;i<fgNPatches;i++){fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgNRows[i]=(Int_t)dummy;}
-    }
-    else if(strcmp(d1,"fRows[0][0]")==0){
-      fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgRows[0][0]=(Int_t)dummy;
-      fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgRows[0][1]=(Int_t)dummy;
-      for(Int_t i=1;i<fgNPatches;i++){
-       fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgRows[i][0]=(Int_t)dummy;
-       fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgRows[i][1]=(Int_t)dummy;
-      }
-    }
-    else if(strcmp(d1,"fSlice2Sector[0][0]")==0){
-      fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgSlice2Sector[0][0]=(Int_t)dummy;
-      fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgSlice2Sector[0][1]=(Int_t)dummy;
-      for(Int_t i=1;i<fgNSlice;i++){
-       fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgSlice2Sector[i][0]=(Int_t)dummy;
-       fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgSlice2Sector[i][1]=(Int_t)dummy;
-      }
-    }
-    else if(strcmp(d1,"fSector2Slice[0]")==0){
-      fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgSector2Slice[0]=(Int_t)dummy;
-      for(Int_t i=1;i<fgNSector;i++){fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgSector2Slice[i]=(Int_t)dummy;}
-    }
-    else if(strcmp(d1,"fSectorLow[0]")==0){
-      fscanf(fptr,"%s %d %s",d2,&dummy,d3);fgSectorLow[0]=(Int_t)dummy;
-      for(Int_t i=1;i<fgNSector;i++){fscanf(fptr,"%s %s %d %s",d1,d2,&dummy,d3);fgSectorLow[i]=(Int_t)dummy;}
-    }
-    else if(strcmp(d1,"fCos[0]")==0){
-      fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgCos[0]=(Double_t)ddummy;
-      for(Int_t i=1;i<fgNSlice;i++){fscanf(fptr,"%s %s %lf %s",d1,d2,&ddummy,d3);fgCos[i]=(Double_t)ddummy;}
-    }
-    else if(strcmp(d1,"fSin[0]")==0){
-      fscanf(fptr,"%s %lf %s",d2,&ddummy,d3);fgSin[0]=(Double_t)ddummy;
-      for(Int_t i=1;i<fgNSlice;i++){fscanf(fptr,"%s %s %lf %s",d1,d2,&ddummy,d3);fgSin[i]=(Double_t)ddummy;}
-    }
-  }
-  fclose(fptr);
-
-  //The first multiplier gives the scale factor used to modify the field map 
-  //defined by the second multiplier.
-  fgBField=fgBFieldFactor*fgSolenoidBField*0.1;
-
-  //Test if new config file has been used.
-  if(fgVersion==kVdeprecated){
-    LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::ReadInitFile","Version")
-      <<"Version is deprecated, you have to create a new config file."<<ENDLOG;
-    return kFALSE;
-  }
-
-  LOG(AliHLTTPCLog::kInformational,"AliHLTTPCTransform::ReadInitFile","Config")
-    <<"Successfully loaded values from config file \""<<pathname<<"\""<<ENDLOG;
-
-  return kTRUE;
-}
-
-Bool_t AliHLTTPCTransform::ReadInit(Char_t *path)
-{
-  //Read all the parameters from a aliroot file, and store it in a temporary 
-  //file which is read by Init. Use this if you want to read the parameters from
-  //the rootfile "every" time.
-  
-#ifndef use_aliroot
-  LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::ReadInit","Version")
-    <<"You have to compile with use_aliroot flag in order to read from AliROOT file"<<ENDLOG;
-  return kFALSE;
-#else
-  Char_t filename[1024];
-  //first test whether provided path is the rootfile itself
-  Int_t saveErrIgLevel=gErrorIgnoreLevel;
-  gErrorIgnoreLevel=kFatal; //dont report errors
-  TFile *rootfile = TFile::Open(path);
-  if(!rootfile || rootfile->IsZombie()) 
-    { //ok assume its path to alirunfile file
-      sprintf(filename,"%s/alirunfile.root",path); //create rootfile name
-    } else { //path contains itself the rootfile name
-      rootfile->Close();
-      sprintf(filename,"%s",path); 
-    }
-  gErrorIgnoreLevel=saveErrIgLevel;
-
-  //finally make dummy init file /tmp/$USER/l3transform.config-`date`
-  Char_t tmppath[1024];
-  sprintf(tmppath,"/tmp/%s",gSystem->Getenv("USER"));
-  gSystem->mkdir(tmppath);
-  TTimeStamp time;
-  Char_t tmpfile[1024];
-  sprintf(tmpfile,"%s/l3transform.config-%d",tmppath,(Int_t)time.GetSec());
-  return MakeInitFile(filename,tmpfile);
-#endif  
-}
-
-Bool_t AliHLTTPCTransform::MakeInitFile(Char_t *rootfilename,Char_t *filename)
-{
-  //Get the parameters from rootfile, and store it on the file "l3transform.config"
-  //which is being read by Init. fVersion will be kV_aliroot!
-  
-#ifndef use_aliroot
-  LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::MakeInitFile","Version")
-    <<"You have to compile with use_aliroot flag in order to use this function"<<ENDLOG;
-  return kFALSE;
-#else
-  TFile *rootfile = TFile::Open(rootfilename);
-  if(!rootfile)
-    {
-      LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::MakeInitFile","File")
-       <<"Could not open file: "<<rootfilename<<ENDLOG;
-      return kFALSE;
-    }
-  AliRun *lgAlice = (AliRun*)rootfile->Get("gAlice");
-  if(!lgAlice)
-    {
-      LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::MakeInitFile","File")
-       <<"No lgAlice in file: "<<rootfilename<<ENDLOG;
-      return kFALSE;
-    }  
-  AliTPCParamSR *param=(AliTPCParamSR*)rootfile->Get(GetParamName());
-  if(!param)
-    {
-      LOG(AliHLTTPCLog::kWarning,"AliHLTTPCTransform::MakeInitFile","File")
-       <<"No TPC parameters found in \""<<rootfilename
-        <<"\", creating standard parameters "
-       <<"which might not be what you want!"<<ENDLOG;
-      param=new AliTPCParamSR;
-    }
-
-  AliTPCPRF2D    * prfinner    = new AliTPCPRF2D;
-  AliTPCPRF2D    * prfouter1   = new AliTPCPRF2D;
-  AliTPCPRF2D    * prfouter2   = new AliTPCPRF2D;  
-  AliTPCRF1D     * rf    = new AliTPCRF1D(kTRUE);
-  rf->SetGauss(param->GetZSigma(),param->GetZWidth(),1.);
-  rf->SetOffset(3*param->GetZSigma());
-  rf->Update();
-  
-  TDirectory *savedir=gDirectory;
-  TFile *prf_file = TFile::Open("$ALICE_ROOT/TPC/AliTPCprf2d.root");
-  if (!prf_file->IsOpen()) 
-    { 
-      LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::MakeInitFile","File")
-       <<"Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !"<<ENDLOG;
-      return kFALSE;
-    }
-  prfinner ->Read("prf_07504_Gati_056068_d02");
-  prfouter1->Read("prf_10006_Gati_047051_d03");
-  prfouter2->Read("prf_15006_Gati_047051_d03");  
-  prf_file->Close();
-  savedir->cd();
-  
-  param->SetInnerPRF(prfinner);
-  param->SetOuter1PRF(prfouter1); 
-  param->SetOuter2PRF(prfouter2);
-  param->SetTimeRF(rf);
-  
-  fgNTimeBins = param->GetMaxTBin()+1;
-  fgNRowLow = param->GetNRowLow();
-  fgNRowUp  = param->GetNRowUp();
-  fgNRowUp1 = param->GetNRowUp1();
-  fgNRowUp2 = param->GetNRowUp2();
-  fgNRow= fgNRowLow + fgNRowUp;
-  if(fgNRow!=159){
-    LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::MakeInitFile","fNRow")
-      <<"Number of rows have changed in ALIROOT"<<ENDLOG;
-    return kFALSE;
-  }
-  
-  fgNSectorLow = param->GetNInnerSector();
-  fgNSectorUp = param->GetNOuterSector();
-  fgNSector = fgNSectorLow + fgNSectorUp;
-
-  //test whether they were changes to the rotation shift
-  fgNRotShift=0;
-  Float_t irotshift = param->GetInnerAngleShift(); //shift angle
-  Float_t orotshift = param->GetOuterAngleShift(); //shift angle
-  const Float_t kDegtoRad = 0.01745329251994;
-  Int_t shift1=TMath::Nint(irotshift/kDegtoRad);
-  Int_t shift2=TMath::Nint(orotshift/kDegtoRad+0.1);
-  if((shift1!=shift2) || (shift1!=10)){
-    LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::MakeInitFile","Rotshiftangle")
-      <<"Rotation shift angle has changed in ALIROOT"<<ENDLOG;
-    return kFALSE;
-  } else {
-    fgNRotShift=0.5; //our version of the shift angle
-  }
-  
-  fgVersion=kValiroot;
-  SetBFieldFactor((Double_t)lgAlice->Field()->Factor());
-  SetSolenoidBField(-
-                   (Double_t)lgAlice->Field()->SolenoidField()/
-                   (Double_t)lgAlice->Field()->Factor()
-                   );
-  fgPadPitchWidthLow=param->GetInnerPadPitchWidth();
-  fgPadPitchWidthUp=param->GetOuterPadPitchWidth();
-  fgZWidth=param->GetZWidth();
-  fgZSigma=param->GetZSigma();
-  // Matthias 24.04.2007 a default parameter has been added to GetZLength
-  // reverting some of Mareks changes
-  // TODO: we have to use the method correctly and put the slice no into it
-  //fgZLength=param->GetZLength(0)+0.275;
-  fgZLength=param->GetZLength()+0.275;
-  fgZOffset=param->GetZOffset();
-  fgDiffT=param->GetDiffT();
-  fgDiffL=param->GetDiffL();
-  fgOmegaTau=param->GetOmegaTau();
-  fgInnerPadLength=param->GetInnerPadLength();
-  fgOuter1PadLength=param->GetOuter1PadLength();
-  fgOuter2PadLength=param->GetOuter2PadLength();
-  fgInnerPRFSigma=param->GetInnerPRF()->GetSigmaX();
-  fgOuter1PRFSigma=param->GetOuter1PRF()->GetSigmaX();
-  fgOuter2PRFSigma=param->GetOuter2PRF()->GetSigmaX();
-  fgTimeSigma=param->GetTimeRF()->GetSigma();
-  fgADCSat=param->GetADCSat();
-  fgZeroSup=param->GetZeroSup();
-  fgNSlice=fgNSectorLow;
-    
-  //now do the arrays
-  for(Int_t i=0;i<fgNRow;i++){
-    Int_t sec,row;
-    if( i < fgNRowLow){sec =0;row =i;}
-    else{sec = fgNSectorLow;row =i-fgNRowLow;}
-    fgX[i]=param->GetPadRowRadii(sec,row);
-  } 
-  for(Int_t i=0;i<fgNRow;i++){
-    Int_t sec,row;
-    if( i < fgNRowLow){sec =0;row =i;}
-    else{sec = fgNSectorLow;row =i-fgNRowLow;}
-    fgNPads[i]=param->GetNPads(sec,row);
-  }
-  for(Int_t i=0;i<fgNSector;i++){
-    if(i<fgNSectorLow) fgSectorLow[i]=1;
-    else fgSectorLow[i]=0;
-  }
-
-  delete lgAlice;
-  rootfile->Close();
-  delete rootfile;
-
-  return SaveInitFile(filename);
-#endif
-}
-
-Bool_t AliHLTTPCTransform::SaveInitFile(Char_t *filenamepath)
-{
-  //store the parameters in the file "filenamepath"
-  
-  FILE *f = fopen(filenamepath,"w");
-  if(!f){
-    LOG(AliHLTTPCLog::kError,"AliHLTTPCTransform::SaveInitFile","File")
-       <<"Could not open file: "<<filenamepath<<ENDLOG;
-    return kFALSE;
-  }
-
-  fprintf(f,"void AliHLTTPCTransform::Init(){\n");
-  fprintf(f,"  fVersion = %d;\n", fgVersion); 
-  fprintf(f,"  fBFieldFactor = %.3f;\n",fgBFieldFactor);
-  fprintf(f,"  fSolenoidBField = %.3f;\n",fgSolenoidBField);
-  fprintf(f,"  fNTimeBins = %d;\n",fgNTimeBins);
-  fprintf(f,"  fNRowLow = %d;\n",fgNRowLow);
-  fprintf(f,"  fNRowUp = %d;\n",fgNRowUp);
-  fprintf(f,"  fNRowUp1 = %d;\n",fgNRowUp1);
-  fprintf(f,"  fNRowUp2 = %d;\n",fgNRowUp2);
-  fprintf(f,"  fNSectorLow = %d;\n",fgNSectorLow);
-  fprintf(f,"  fNSectorUp = %d;\n",fgNSectorUp);
-  fprintf(f,"  fNSector = %d;\n",fgNSector);
-  fprintf(f,"  fPadPitchWidthLow = %.3f;\n",fgPadPitchWidthLow);
-  fprintf(f,"  fPadPitchWidthUp = %.3f;\n",fgPadPitchWidthUp);
-  fprintf(f,"  fZWidth = %.4f;\n",fgZWidth);
-  fprintf(f,"  fZSigma = %.4f;\n",fgZSigma);
-  fprintf(f,"  fZLength = %.4f;\n",fgZLength);
-  fprintf(f,"  fZOffset = %.4f;\n",fgZOffset);
-  fprintf(f,"  fDiffT = %.4f;\n",fgDiffT);
-  fprintf(f,"  fDiffL = %.4f;\n",fgDiffL);
-  fprintf(f,"  fOmegaTau = %.4f;\n",fgOmegaTau);
-  fprintf(f,"  fInnerPadLength = %.3f;\n",fgInnerPadLength);
-  fprintf(f,"  fOuter1PadLength = %.3f;\n",fgOuter1PadLength);
-  fprintf(f,"  fOuter2PadLength = %.3f;\n",fgOuter2PadLength);
-  fprintf(f,"  fInnerPRFSigma = %.6f;\n",fgInnerPRFSigma);
-  fprintf(f,"  fOuter1PRFSigma = %.6f;\n",fgOuter1PRFSigma);
-  fprintf(f,"  fOuter2PRFSigma = %.6f;\n",fgOuter2PRFSigma);
-  fprintf(f,"  fTimeSigma = %.6f;\n",fgTimeSigma);
-  fprintf(f,"  fADCSat = %d;\n",fgADCSat);
-  fprintf(f,"  fZeroSup = %d;\n",fgZeroSup);
-  fprintf(f,"  fNSlice = %d;\n",fgNSlice);
-  fprintf(f,"  fNRow = %d;\n",fgNRow);
-  fprintf(f,"  fNRotShift = %.2f;\n",fgNRotShift);
-  //now do the arrays
-  for(Int_t i=0;i<fgNRow;i++){
-    fprintf(f,"  fX[%d] = %3.2f;\n",i,fgX[i]);
-  } 
-  for(Int_t i=0;i<fgNRow;i++){
-    fprintf(f,"  fNPads[%d] = %d;\n",i,fgNPads[i]);
-  }
-
-  //Slice/Sector dont belong to aliroot, but we want to be flexible
-  for(Int_t i=0;i<fgNSlice;i++){
-    fprintf(f,"  fSlice2Sector[%d][0] = %d;\n",i,fgSlice2Sector[i][0]);
-    fprintf(f,"  fSlice2Sector[%d][1] = %d;\n",i,fgSlice2Sector[i][1]);
-  }  
-  for(Int_t i=0;i<fgNSector;i++){
-    fprintf(f,"  fSector2Slice[%d] = %d;\n",i,fgSector2Slice[i]);
-  }  
-  for(Int_t i=0;i<fgNSector;i++){
-    fprintf(f,"  fSectorLow[%d] = %d;\n",i,fgSectorLow[i]);
-  }  
-
-  //Patches also dont really belong to the aliroot settings (but nevermind)
-  for(Int_t i=0;i<fgNPatches;i++){
-    fprintf(f,"  fNRows[%d] = %d;\n",i,fgNRows[i]);
-  }  
-  for(Int_t i=0;i<fgNPatches;i++){
-    fprintf(f,"  fRows[%d][0] = %d;\n",i,fgRows[i][0]);
-    fprintf(f,"  fRows[%d][1] = %d;\n",i,fgRows[i][1]);
-  }  
-
-  //Rotation shift is an addon, too
-  for(Int_t i=0;i<fgNSlice;i++){
-    Float_t cs = cos( (2*fgkPi/18) * (i+fgNRotShift) );
-    fprintf(f,"  fCos[%d] = %.10f;\n",i,cs);
-  }
-  for(Int_t i=0;i<fgNSlice;i++){
-    Float_t sn = sin( (2*fgkPi/18) * (i+fgNRotShift) );
-    fprintf(f,"  fSin[%d] = %.10f;\n",i,sn);
-  }
-
-  fprintf(f,"}\n");
-  fclose(f);
-
-  LOG(AliHLTTPCLog::kInformational,"AliHLTTPCTransform::SaveInitFile","File created")
-    <<"Init file \""<<filenamepath<<"\" created"<<ENDLOG;
-
-  return kTRUE;
-}
-
 Int_t AliHLTTPCTransform::GetNPads(Int_t row)
 {
   //get number of pads per row