]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Removed obsolete macros
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Apr 2011 15:49:55 +0000 (15:49 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Apr 2011 15:49:55 +0000 (15:49 +0000)
TPC/CalibMacros/AliTPCDistortions.cxx [deleted file]
TPC/CalibMacros/AliTPCDistortions.h [deleted file]

diff --git a/TPC/CalibMacros/AliTPCDistortions.cxx b/TPC/CalibMacros/AliTPCDistortions.cxx
deleted file mode 100644 (file)
index 14502d6..0000000
+++ /dev/null
@@ -1,476 +0,0 @@
-//
-//
-// This class is based on Jim Thomas's implementation of the ExB effects.
-// It was shortened and made to comply with AliROOT coding conventions,
-// but not changed in functionallity.
-//
-//
-
-
-/***********************************************************************
- *
- * Author: Jim Thomas   11/4/2009
- *
- ***********************************************************************
- *
- * Description: 
- *    Utilities for handling SpaceCharge and a few other distortions 
- *    that may occur in the ALICE TPC
- *
- ***********************************************************************/
-
-#include "AliTPCDistortions.h"
-#include <AliMagF.h>
-#include <TMath.h>
-
-//
-//  Standard maps for E and B Field Distortions 
-//
-//  Note the careful steps in Z around the Central Electrode due to possible discontinuities at CE.  
-//  Needed for interpolation tools on the grid.  Also note that whenever we interpolate this grid, 
-//  we explicitly do not allow Z to get closer to CE than 0.2 cm.  This gives three points for 
-//  quadratic interpolation in all cases (if you need it).
-
-const Double_t AliTPCDistortions::fgkRList[AliTPCDistortions::kNR] =  {   84.0,   84.5,   85.0,   85.5,   86.0,  87.0,    88.0,
-                                  90.0,   92.0,   94.0,   96.0,   98.0,  100.0,  102.0,  104.0,  106.0,  108.0, 
-                                 110.0,  112.0,  114.0,  116.0,  118.0,  120.0,  122.0,  124.0,  126.0,  128.0, 
-                                 130.0,  132.0,  134.0,  136.0,  138.0,  140.0,  142.0,  144.0,  146.0,  148.0, 
-                                 150.0,  152.0,  154.0,  156.0,  158.0,  160.0,  162.0,  164.0,  166.0,  168.0, 
-                                 170.0,  172.0,  174.0,  176.0,  178.0,  180.0,  182.0,  184.0,  186.0,  188.0,
-                                 190.0,  192.0,  194.0,  196.0,  198.0,  200.0,  202.0,  204.0,  206.0,  208.0,
-                                 210.0,  212.0,  214.0,  216.0,  218.0,  220.0,  222.0,  224.0,  226.0,  228.0,
-                                 230.0,  232.0,  234.0,  236.0,  238.0,  240.0,  242.0,  244.0,  246.0,  248.0,
-                                 249.0,  249.5,  250.0,  251.5,  252.0  } ;
-  
-const Double_t AliTPCDistortions::fgkPhiList[AliTPCDistortions::kNPhi] = {  0.0000,           
-                                 2.0*TMath::Pi()* 1.0/18, 2.0*TMath::Pi()* 2.0/18, 2.0*TMath::Pi()* 3.0/18,   
-                                 2.0*TMath::Pi()* 4.0/18, 2.0*TMath::Pi()* 5.0/18, 2.0*TMath::Pi()* 6.0/18,  
-                                 2.0*TMath::Pi()* 7.0/18, 2.0*TMath::Pi()* 8.0/18, 2.0*TMath::Pi()* 9.0/18, 
-                                 2.0*TMath::Pi()*10.0/18, 2.0*TMath::Pi()*11.0/18, 2.0*TMath::Pi()*12.0/18,  
-                                 2.0*TMath::Pi()*13.0/18, 2.0*TMath::Pi()*14.0/18, 2.0*TMath::Pi()*15.0/18,  
-                                 2.0*TMath::Pi()*16.0/18, 2.0*TMath::Pi()*17.0/18, 2.0*TMath::Pi() } ;
-                                  // 19 planes of phi - 18+1 so can wrap around
-
-const Double_t AliTPCDistortions::fgkZList[AliTPCDistortions::kNZ]     = 
-                               { -249.5, -249.0, -248.5, -248.0, -247.0, -246.0, -245.0, -243.0, -242.0, -241.0,
-                                -240.0, -238.0, -236.0, -234.0, -232.0, -230.0, -228.0, -226.0, -224.0, -222.0,
-                                -220.0, -218.0, -216.0, -214.0, -212.0, -210.0, -208.0, -206.0, -204.0, -202.0,
-                                -200.0, -198.0, -196.0, -194.0, -192.0, -190.0, -188.0, -186.0, -184.0, -182.0,
-                                -180.0, -178.0, -176.0, -174.0, -172.0, -170.0, -168.0, -166.0, -164.0, -162.0,
-                                -160.0, -158.0, -156.0, -154.0, -152.0, -150.0, -148.0, -146.0, -144.0, -142.0,
-                                -140.0, -138.0, -136.0, -134.0, -132.0, -130.0, -128.0, -126.0, -124.0, -122.0,
-                                -120.0, -118.0, -116.0, -114.0, -112.0, -110.0, -108.0, -106.0, -104.0, -102.0,
-                                -100.0,  -98.0,  -96.0,  -94.0,  -92.0,  -90.0,  -88.0,  -86.0,  -84.0,  -82.0,
-                                 -80.0,  -78.0,  -76.0,  -74.0,  -72.0,  -70.0,  -68.0,  -66.0,  -64.0,  -62.0,
-                                 -60.0,  -58.0,  -56.0,  -54.0,  -52.0,  -50.0,  -48.0,  -46.0,  -44.0,  -42.0,
-                                 -40.0,  -38.0,  -36.0,  -34.0,  -32.0,  -30.0,  -28.0,  -26.0,  -24.0,  -22.0,
-                                 -20.0,  -18.0,  -16.0,  -14.0,  -12.0,  -10.0,   -8.0,   -6.0,   -4.0,   -2.0,
-                                  -1.0,   -0.5,   -0.2,   -0.1,  -0.05,   0.05,    0.1,    0.2,    0.5,    1.0, 
-                                   2.0,    4.0,    6.0,    8.0,   10.0,   12.0,   14.0,   16.0,   18.0,   20.0, 
-                                  22.0,   24.0,   26.0,   28.0,   30.0,   32.0,   34.0,   36.0,   38.0,   40.0, 
-                                  42.0,   44.0,   46.0,   48.0,   50.0,   52.0,   54.0,   56.0,   58.0,   60.0, 
-                                  62.0,   64.0,   66.0,   68.0,   70.0,   72.0,   74.0,   76.0,   78.0,   80.0, 
-                                  82.0,   84.0,   86.0,   88.0,   90.0,   92.0,   94.0,   96.0,   98.0,  100.0, 
-                                 102.0,  104.0,  106.0,  108.0,  110.0,  112.0,  114.0,  116.0,  118.0,  120.0, 
-                                 122.0,  124.0,  126.0,  128.0,  130.0,  132.0,  134.0,  136.0,  138.0,  140.0, 
-                                 142.0,  144.0,  146.0,  148.0,  150.0,  152.0,  154.0,  156.0,  158.0,  160.0, 
-                                 162.0,  164.0,  166.0,  168.0,  170.0,  172.0,  174.0,  176.0,  178.0,  180.0, 
-                                 182.0,  184.0,  186.0,  188.0,  190.0,  192.0,  194.0,  196.0,  198.0,  200.0,
-                                 202.0,  204.0,  206.0,  208.0,  210.0,  212.0,  214.0,  216.0,  218.0,  220.0,
-                                 222.0,  224.0,  226.0,  228.0,  230.0,  232.0,  234.0,  236.0,  238.0,  240.0,
-                                 242.0,  243.0,  244.0,  245.0,  246.0,  247.0,  248.0,  248.5,  249.0,  249.5   } ;
-
-const Double_t AliTPCDistortions::fgkIFCRadius= 83.06; // Mean Radius of the Inner Field Cage ( 82.43 min,  83.70 max) (cm)
-const Double_t AliTPCDistortions::fgkOFCRadius=254.5;  // Mean Radius of the Outer Field Cage (252.55 min, 256.45 max) (cm)
-const Double_t AliTPCDistortions::fgkTPC_Z0=249.7;     // Z location of TPC Gated Grid (cm)
-const Double_t AliTPCDistortions::fgkZOffSet= 0.2;     // Offset from CE: calculate all distortions closer to CE as if at this point
-const Double_t AliTPCDistortions::fgkCathodeV   =-100000.0; // Cathode Voltage (volts)
-const Double_t AliTPCDistortions::fgkGG         =-70.0;     // Gating Grid voltage (volts)
-const Double_t AliTPCDistortions::fgkAliceDriftV= 2.73;     // Drift Velocity (cm/microSec) Magnitude
-
-
-
-
-AliTPCDistortions* AliTPCDistortions::fgInstance = 0;
-
-
-
-
-//_ singleton implementation __________________________________________________
-AliTPCDistortions* AliTPCDistortions::Instance()
-{
-  //
-  // Singleton implementation
-  // Returns an instance of this class, it is created if neccessary
-  //
-  if (fgInstance == 0){
-    fgInstance = new AliTPCDistortions();
-    //fgInstance->Init();
-  }
-  return fgInstance;
-}
-
-
-AliTPCDistortions::AliTPCDistortions()
-  :fOmegaTau(0.),fT1(1.),fT2(1.),fC0(1.),fC1(0.),fC2(0.),
-   fBField(0),fXTwist(0.),fYTwist(0.),fIFCShift(0.),fDeltaVGGA(0.),fDeltaVGGC(0.),
-   fJLow(0),fKLow(0)
-{ 
-  //
-  // default constructor (all corrections are set to have zero effect)
-  //
-
-  InitIFCShiftDistortion();
-  InitGGVoltErrorDistortion();
-}
-
-void AliTPCDistortions::RecalculateCs() {
-  //
-  // helper function to recalculate the coefficients C0-C2
-  // after a change of omega-tau or the tensor terms
-  //
-  fC0=1.                          / ( 1. + fT2*fT2*fOmegaTau*fOmegaTau ) ;
-  fC1=fT1*fOmegaTau               / ( 1. + fT1*fT1*fOmegaTau*fOmegaTau ) ;
-  fC2=fT2*fT2*fOmegaTau*fOmegaTau / ( 1. + fT2*fT2*fOmegaTau*fOmegaTau ) ;
-}
-
-void AliTPCDistortions::UndoTwistDistortion(const Double_t x[],Double_t xprime[],Int_t roc)
-{
-  //
-  // Twist distortion
-  //
-  // Remove the effects of a simple "twist" of the TPC in the magnet.  If there is
-  // an angle between the E and B fields, there will be a distortion in the recorded
-  // tracks.  This routine takes out that distortion.
-  //
-  // The parameters are:
-  // twist[0]: twist angle in x-z
-  // twist[1]: twist angle in y-z
-  //
-
-  Double_t        zdrift ;
-  Int_t           sign ;
-  
-  Double_t z = x[2] ;                                 // Creat temporary copy of x[2]
-
-  if ( roc <  36 ) sign =  1 ;                       // (TPC End A)
-  else             sign = -1 ;                       // (TPC End C)
-  if ( roc <= 35 && z <  fgkZOffSet ) z =  fgkZOffSet ;    // Protect against discontinuity at CE
-  if ( roc >= 36 && z > -fgkZOffSet ) z = -fgkZOffSet ;    // Protect against discontinuity at CE
-
-  zdrift    = sign * ( fgkTPC_Z0 - TMath::Abs(z) ) ;
-  
-  xprime[0] = x[0] - (     fC1 * fYTwist - fC2 * fXTwist ) * zdrift/1000 ;
-  xprime[1] = x[1] - ( -1* fC1 * fXTwist - fC2 * fYTwist ) * zdrift/1000 ;
-  xprime[2] = x[2] ;                                       // Subtract to undo the distortion 
-}
-
-
-void AliTPCDistortions::InitIFCShiftDistortion() {
-  //      cout << "AliTPCDistortions::IFCShift   Please wait for the tables to fill ...  ~5 seconds" << endl ;
-  Int_t nterms = 100 ;
-  Double_t r,z;
-  for ( Int_t i = 0 ; i < kNZ ; ++i ) {
-    z = TMath::Abs( fgkZList[i] ) ;
-    for ( Int_t j = 0 ; j < kNR ; ++j ) {
-      r = fgkRList[j] ;
-      fShiftER[i][j] = 0.0 ;       
-      Double_t intz = 0.0 ;
-      for ( Int_t n = 1 ; n < nterms ; ++n ) {
-       Double_t k  = (2*n-1) * TMath::Pi() / fgkTPC_Z0 ;
-       Double_t Cn = -4.0 / ( k * fgkTPC_Z0 ) ;
-       Double_t numerator =
-         TMath::BesselK0( k*fgkOFCRadius ) * TMath::BesselI1( k*r ) +
-         TMath::BesselK1( k*r )         * TMath::BesselI0( k*fgkOFCRadius ) ;
-       Double_t denominator =
-         TMath::BesselK0( k*fgkOFCRadius ) * TMath::BesselI0( k*fgkIFCRadius ) -
-         TMath::BesselK0( k*fgkIFCRadius ) * TMath::BesselI0( k*fgkOFCRadius ) ;
-       Double_t zterm = 1 + TMath::Cos( k*z ) ;
-       Double_t qwe = numerator / denominator ;
-       intz += Cn * zterm * qwe ;
-       if ( n>10 && fabs(intz)*1.e-10 > fabs(qwe) ) break;
-      }
-      if  ( fgkZList[i] < 0 )  intz = -1 * intz ;  // Force AntiSymmetry of solutions in Z
-      fShiftER[i][j] = intz ;      
-    }
-  }
-}
-
-void AliTPCDistortions::UndoIFCShiftDistortion(const Double_t x[],Double_t xprime[],Int_t roc)
-{ 
-  //
-  // IFC Shift Distortion
-  // 
-  // The Inner field cage of the TPC may not be perfectly aligned with the outer field cage 
-  // of the TPC.  They can be shifted along the Z axis by up to a 1 mm.  This causes a tilting 
-  // of the equi-potential lines inside the TPC and therefore a DCA error at the vertex.  
-  // The distortion is anti-symmetric in Z. 
-  //
-
-  Int_t   order     = 1     ;               // Linear interpolation = 1, Quadratic = 2         
-
-  Double_t  intEr, intEphi ;
-  Double_t r, phi, z ;
-  Int_t    sign ;
-
-  r      =  TMath::Sqrt( x[0]*x[0] + x[1]*x[1] ) ;
-  phi    =  TMath::ATan2(x[1],x[0]) ;
-  if ( phi < 0 ) phi += TMath::TwoPi() ;                   // Table uses phi from 0 to 2*Pi
-  z      =  x[2] ;                                         // Create temporary copy of x[2]
-
-  if ( roc <  36 ) sign =  1 ;                       // (TPC End A)
-  else                   sign = -1 ;                       // (TPC End C)
-  if ( roc <= 35 && z <  fgkZOffSet ) z =  fgkZOffSet ;    // Protect against discontinuity at CE
-  if ( roc >= 36 && z > -fgkZOffSet ) z = -fgkZOffSet ;    // Protect against discontinuity at CE
-
-  Interpolate2DEdistortion( order, r, z, fShiftER, intEr ) ;
-  intEphi = 0.0 ;  // Efield is symmetric in phi
-
-  // Subtract to Undo the distortions
-  if ( r > 0.0 ) 
-    {
-      phi =  phi - fIFCShift*( fC0*intEphi - fC1*intEr ) / r ;      
-      r   =  r   - fIFCShift*( fC0*intEr   + fC1*intEphi ) ;  
-    }
-
-  xprime[0] = r * TMath::Cos(phi) ;
-  xprime[1] = r * TMath::Sin(phi) ;
-  xprime[2] = x[2] ;
-
-}
-
-void AliTPCDistortions::InitGGVoltErrorDistortion() {
-  //      cout << "AliTPCDistortions::UndoGG VE  Please wait for the tables to fill ...  ~5 seconds" << endl ;
-  Double_t r,z;
-  Int_t nterms = 100 ;
-  for ( Int_t i = 0 ; i < kNZ ; ++i ) {
-    z = fgkZList[i] ;
-    for ( Int_t j = 0 ; j < kNR ; ++j ) {
-      r = fgkRList[j] ;
-      fGGVoltErrorER[i][j] = 0.0 ;         
-      Double_t intz = 0.0 ;
-      for ( Int_t n = 1 ; n < nterms ; ++n ) {
-       Double_t k    =  n * TMath::Pi() / fgkTPC_Z0 ;
-       Double_t ein  =  0 ;                    // Error potential on the IFC
-       Double_t eout =  0 ;                    // Error potential on the OFC
-       if ( z < 0 ) {
-         ein   =  2.0 * ((z-fgkTPC_Z0)/fgkTPC_Z0) / ( k * (fgkCathodeV - fgkGG) ) ;       
-         eout  =  2.0 * ((z-fgkTPC_Z0)/fgkTPC_Z0) / ( k * (fgkCathodeV - fgkGG) ) ;       
-       }
-       if ( z == 0 ) continue ;
-       if ( z > 0 ) {
-         ein   =  2.0 * ((fgkTPC_Z0-z)/fgkTPC_Z0) / ( k * (fgkCathodeV - fgkGG) ) ;       
-         eout  =  2.0 * ((fgkTPC_Z0-z)/fgkTPC_Z0) / ( k * (fgkCathodeV - fgkGG) ) ;       
-       }
-       Double_t an   =  ein  * TMath::BesselK0( k*fgkOFCRadius ) - eout * TMath::BesselK0( k*fgkIFCRadius ) ;
-       Double_t bn   =  eout * TMath::BesselI0( k*fgkIFCRadius ) - ein  * TMath::BesselI0( k*fgkOFCRadius ) ;
-       Double_t numerator =
-         an * TMath::BesselI1( k*r ) - bn * TMath::BesselK1( k*r ) ;
-       Double_t denominator =
-         TMath::BesselK0( k*fgkOFCRadius ) * TMath::BesselI0( k*fgkIFCRadius ) -
-         TMath::BesselK0( k*fgkIFCRadius ) * TMath::BesselI0( k*fgkOFCRadius ) ;
-       Double_t zterm = TMath::Cos( k*(fgkTPC_Z0-TMath::Abs(z)) ) - 1 ;
-       intz += zterm * numerator / denominator ;
-       // Assume series converges, break if small terms
-       if ( n>10 && fabs(intz)*1.e-10 > fabs(numerator/denominator) ) break;   
-      }
-      fGGVoltErrorER[i][j] = intz ;
-    }
-  }
-}
-
-
-
-void AliTPCDistortions::UndoGGVoltErrorDistortion(const Double_t x[], Double_t xprime[],Int_t roc)
-{ 
-  //
-  // Gated Grid Voltage Error
-  //
-  // Calculate the effect of having an incorrect voltage on the A or C end plate Gated Grids.
-  //
-  //  Electrostatic Equations from StarNote SN0253 by Howard Wieman.
-  //  Note that we use a funny coordinate system where Z==0 at the GG.
-  //
-  
-  Int_t   order     = 1     ;               // Linear interpolation = 1, Quadratic = 2         
-  Double_t  intEr, intEphi ;
-  Double_t r, phi, z ;
-  Int_t    sign ;
-
-  Double_t deltaVGG;
-  
-  r      =  TMath::Sqrt( x[0]*x[0] + x[1]*x[1] ) ;
-  phi    =  TMath::ATan2(x[1],x[0]) ;
-  if ( phi < 0 ) phi += TMath::TwoPi() ;                   // Table uses phi from 0 to 2*Pi
-  z      =  x[2] ;
-
-  if ( roc <  36 ) sign =  1 ;                       // (TPC End A)
-  else             sign = -1 ;                       // (TPC End C)
-  if ( roc <= 35 && z <  fgkZOffSet ) z =  fgkZOffSet ;    // Protect against discontinuity at CE
-  if ( roc >= 36 && z > -fgkZOffSet ) z = -fgkZOffSet ;    // Protect against discontinuity at CE
-
-  if ( roc <  36 ) deltaVGG = fDeltaVGGA ;            // (TPC End A)
-  else             deltaVGG = fDeltaVGGC ;            // (TPC End C)
-
-  Interpolate2DEdistortion( order, r, z, fGGVoltErrorER, intEr ) ;
-  intEphi = 0.0 ;  // Efield is symmetric in phi
-
-  // Subtract to Undo the distortions
-  if ( r > 0.0 ) 
-    {
-      phi =  phi - deltaVGG*( fC0*intEphi - fC1*intEr ) / r ;      
-      r   =  r   - deltaVGG*( fC0*intEr   + fC1*intEphi ) ;  
-    }
-
-  xprime[0] = r * TMath::Cos(phi) ;
-  xprime[1] = r * TMath::Sin(phi) ;
-  xprime[2] = x[2] ;
-
-}
-
-void AliTPCDistortions::UndoExBShapeDistortion( const Double_t x[], Double_t xprime[], Int_t roc)
-{
-  //
-  // Example of using Ruben's integrals to do ExB Shape distortions
-  //
-  //
-
-  xprime[0] = x[0] ;  xprime[1] = x[1] ;  xprime[2] = x[2]  ;
-
-  if (!fBField) return;
-
-  Double_t intBStart[3], intBEnd[3] , xStart[3], xEnd[3] ;
-  Double_t intBxOverBz, intByOverBz;
-  //Double_t denominator ;
-  Int_t    sign;
-  if ( roc <  36 ) sign =  1 ;                    // (TPC End A)
-  else             sign = -1 ;                    // (TPC End C)
-
-  xStart[0] = x[0] ;  xStart[1] = x[1] ;  xStart[2] = x[2]          ;
-  xEnd  [0] = x[0] ;  xEnd  [1] = x[1] ;  xEnd  [2] = sign * fgkTPC_Z0 ;
-  
-  fBField -> GetTPCInt(xStart, intBStart) ;
-  fBField -> GetTPCInt(xEnd  , intBEnd  ) ;
-  
-  if ( TMath::Abs(intBStart[2] - intBEnd[2]) < 0.1 ) return ;     // Protect against divide by zero, below
-  
-  intBxOverBz = (intBStart[0] - intBEnd[0]) ;  
-  intByOverBz = (intBStart[1] - intBEnd[1]) ;  
-  
-  xprime[0] +=  ( fC2*intBxOverBz - fC1*intByOverBz )  ;
-  xprime[1] +=  ( fC2*intByOverBz + fC1*intBxOverBz )  ;
-  xprime[2] +=  0.0 ;
-
-}
-
-
-void AliTPCDistortions::Interpolate2DEdistortion( const Int_t order, const Double_t r, const Double_t z, 
-                                                 const Double_t er[kNZ][kNR], Double_t &er_value )
-{
-  //
-  // Interpolate table - 2D interpolation
-  //
-  Double_t save_er[10] ;
-
-  Search( kNZ,   fgkZList,  z,   fJLow   ) ;
-  Search( kNR,   fgkRList,  r,   fKLow   ) ;
-  if ( fJLow < 0 ) fJLow = 0 ;   // check if out of range
-  if ( fKLow < 0 ) fKLow = 0 ;
-  if ( fJLow + order  >=    kNZ - 1 ) fJLow =   kNZ - 1 - order ;
-  if ( fKLow + order  >=    kNR - 1 ) fKLow =   kNR - 1 - order ;
-
-  for ( Int_t j = fJLow ; j < fJLow + order + 1 ; j++ )
-    {
-      save_er[j-fJLow]     = Interpolate( &fgkRList[fKLow], &er[j][fKLow], order, r )   ;
-    }
-  er_value = Interpolate( &fgkZList[fJLow], save_er, order, z )   ;
-
-}
-
-
-Double_t AliTPCDistortions::Interpolate( const Double_t xArray[], const Double_t yArray[], 
-                                      const Int_t order, const Double_t x )
-{
-  //
-  // Interpolate function Y(x) using linear (order=1) or quadratic (order=2) interpolation.
-  //
-
-  Double_t y ;
-
-  if ( order == 2 )                // Quadratic Interpolation = 2 
-
-    {
-      y  = (x-xArray[1]) * (x-xArray[2]) * yArray[0] / ( (xArray[0]-xArray[1]) * (xArray[0]-xArray[2]) ) ; 
-      y += (x-xArray[2]) * (x-xArray[0]) * yArray[1] / ( (xArray[1]-xArray[2]) * (xArray[1]-xArray[0]) ) ; 
-      y += (x-xArray[0]) * (x-xArray[1]) * yArray[2] / ( (xArray[2]-xArray[0]) * (xArray[2]-xArray[1]) ) ; 
-      
-    }
-
-  else                             // Linear Interpolation = 1
-
-    {
-      y  = yArray[0] + ( yArray[1]-yArray[0] ) * ( x-xArray[0] ) / ( xArray[1] - xArray[0] ) ;
-    }
-
-  return (y) ;
-
-}
-
-
-void AliTPCDistortions::Search( const Int_t n, const Double_t xArray[], const Double_t x, Int_t &low )
-{
-  //
-  // Search an ordered table by starting at the most recently used point
-  //
-
-  Long_t middle, high ;
-  Int_t  ascend = 0, increment = 1 ;
-
-  if ( xArray[n-1] >= xArray[0] ) ascend = 1 ;  // Ascending ordered table if true
-  
-  if ( low < 0 || low > n-1 ) { low = -1 ; high = n ; }
-
-  else                                            // Ordered Search phase
-    {
-      if ( (Int_t)( x >= xArray[low] ) == ascend ) 
-       {
-         if ( low == n-1 ) return ;          
-         high = low + 1 ;
-         while ( (Int_t)( x >= xArray[high] ) == ascend )  
-           {
-             low = high ;
-             increment *= 2 ;
-             high = low + increment ;
-             if ( high > n-1 )  {  high = n ; break ;  }
-           }
-       }
-      else
-       {
-         if ( low == 0 )  {  low = -1 ;  return ;  }
-         high = low - 1 ;
-         while ( (Int_t)( x < xArray[low] ) == ascend )
-           {
-             high = low ;
-             increment *= 2 ;
-             if ( increment >= high )  {  low = -1 ;  break ;  }
-             else  low = high - increment ;
-           }
-       }
-    }
-
-  while ( (high-low) != 1 )                      // Binary Search Phase
-    {
-      middle = ( high + low ) / 2 ;
-      if ( (Int_t)( x >= xArray[middle] ) == ascend )
-       low = middle ;
-      else
-       high = middle ;
-    }
-
-  if ( x == xArray[n-1] ) low = n-2 ;
-  if ( x == xArray[0]   ) low = 0 ;
-
-}
-
-ClassImp(AliTPCDistortions);
diff --git a/TPC/CalibMacros/AliTPCDistortions.h b/TPC/CalibMacros/AliTPCDistortions.h
deleted file mode 100644 (file)
index 1bcfcbe..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#ifndef ALI_TPC_DISTORTIONS_H
-#define ALI_TPC_DISTORTIONS_H
-
-#include <TObject.h>
-
-class AliMagF;
-
-class AliTPCDistortions : public TObject {
-public:
-  AliTPCDistortions();
-  virtual ~AliTPCDistortions() {};
-  
-  void UndoTwistDistortion(        const Double_t x[],Double_t xprime[],Int_t roc);
-  void UndoIFCShiftDistortion(     const Double_t x[],Double_t xprime[],Int_t roc);
-  void UndoGGVoltErrorDistortion(  const Double_t x[],Double_t xprime[],Int_t roc);
-  void UndoExBShapeDistortion(     const Double_t x[],Double_t xprime[],Int_t roc);
-
-  // common setters and getters for ExB
-  void SetOmegaTau(Double_t omegaTau) {fOmegaTau=omegaTau;RecalculateCs();}
-  void SetT1(Double_t t1) {fT1=t1;RecalculateCs();}
-  void SetT2(Double_t t2) {fT2=t2;RecalculateCs();}
-  void SetC0(Double_t c0) {fC0=c0;}
-  void SetC1(Double_t c1) {fC1=c1;}
-  void SetC2(Double_t c2) {fC2=c2;}
-  Double_t GetOmegaTau() const {return fOmegaTau;}
-  Double_t GetT1() const {return fT1;}
-  Double_t GetT2() const {return fT2;}
-  Double_t GetC0() const {return fC0;}
-  Double_t GetC1() const {return fC1;}
-  Double_t GetC2() const {return fC2;}
-
-  // setters and getters for twist
-  void SetXTwist(Double_t xTwist) {fXTwist=xTwist;}
-  void SetYTwist(Double_t yTwist) {fYTwist=yTwist;}
-  Double_t GetXTwist() const {return fXTwist;}
-  Double_t GetYTwist() const {return fYTwist;}
-
-  // setter and getter for IFC
-  void SetIFCShift(Double_t ifcShift) {fIFCShift=ifcShift;}
-  Double_t GetIFCshift() const {return fIFCShift;}
-
-  // setters and getters for GG
-  void SetDeltaVGGA(Double_t deltaVGGA) {fDeltaVGGA=deltaVGGA;}
-  void SetDeltaVGGC(Double_t deltaVGGC) {fDeltaVGGC=deltaVGGC;}
-  Double_t GetDeltaVGGA() const {return fDeltaVGGA;}
-  Double_t GetDeltaVGGC() const {return fDeltaVGGC;}
-
-  // setter and getter for B field shape
-  void SetBField(AliMagF *bField) {fBField=bField;}
-  AliMagF* GetBField() const {return fBField;}
-  static AliTPCDistortions*   Instance();
-  static AliTPCDistortions*   fgInstance; //! Instance of this class (singleton implementation)
-private:
-  enum {kNR=   92};              // Number of R points in table
-  enum {kNZ=  270};              // Number of Z points in the tables for interpolating distortion data
-  enum {kNPhi= 19};              // Number of Phi points in table ( plus one extra for 360 == 0 )
-  void RecalculateCs();
-  void InitIFCShiftDistortion();
-  void InitGGVoltErrorDistortion();
-
-  void Interpolate2DEdistortion( const Int_t order, const Double_t r, const Double_t z, 
-                                const Double_t er[kNZ][kNR], Double_t &er_value );
-  Double_t Interpolate( const Double_t xArray[], const Double_t yArray[], 
-                      const Int_t order, const Double_t x );
-  void Search( const Int_t n, const Double_t xArray[], const Double_t x, Int_t &low );
-
-  static const Double_t fgkIFCRadius;   // Mean Radius of the Inner Field Cage ( 82.43 min,  83.70 max) (cm)
-  static const Double_t fgkOFCRadius;   // Mean Radius of the Outer Field Cage (252.55 min, 256.45 max) (cm)
-  static const Double_t fgkTPC_Z0;      // Z location of TPC Gated Grid (cm)
-  static const Double_t fgkZOffSet;     // Offset from CE: calculate all distortions closer to CE as if at this point
-  static const Double_t fgkCathodeV;    // Cathode Voltage (volts)
-  static const Double_t fgkGG;          // Gating Grid voltage (volts)
-  static const Double_t fgkAliceDriftV; // Drift Velocity (cm/microSec) Magnitude
-  static const Double_t fgkRList[kNR];
-  static const Double_t fgkPhiList[kNPhi];
-  static const Double_t fgkZList[kNZ];
-
-  Double_t fOmegaTau;             // omega tau factor               (compare Jim Thomas's notes for definitions)
-  Double_t fT1;                   // 1st tensor term for omega tau  (compare Jim Thomas's notes for definitions)
-  Double_t fT2;                   // 2nd tensor term for omega tau  (compare Jim Thomas's notes for definitions)
-  Double_t fC0;                   // coefficient C0                 (compare Jim Thomas's notes for definitions)
-  Double_t fC1;                   // coefficient C1                 (compare Jim Thomas's notes for definitions)
-  Double_t fC2;                   // coefficient C2                 (compare Jim Thomas's notes for definitions)
-  AliMagF *fBField;              // Magnetic field map for ExB shape distortions due to B field
-  Double_t fXTwist;               // Twist of E to B filed in X-Z [rad]
-  Double_t fYTwist;               // Twist of E to B filed in Y-Z [rad]
-  Double_t fIFCShift;             // Shift of inner field cage [cm]
-  Double_t fDeltaVGGA;            // Missmatch of gating grid voltage on A-side [V]
-  Double_t fDeltaVGGC;            // Missmatch of gating grid voltage on C-side [V]
-  Double_t  fShiftER[kNZ][kNR];       // Array to store electric field for IFCShift calcualtion
-  Double_t  fSpaceER[kNZ][kNR];       // Array to store electric field for SpaceCharge calculation
-  Double_t  fShortER[kNZ][kNR];       // Array to store electric field for ShortedRing calculation
-  Double_t  fGGVoltErrorER[kNZ][kNR]; // Array to store electric field for GGVoltError calculation
-  Int_t fJLow;
-  Int_t fKLow;
-
-  ClassDef(AliTPCDistortions,1);
-};
-
-#endif