]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCParam.cxx
Remove useless flags...
[u/mrichter/AliRoot.git] / TPC / AliTPCParam.cxx
index 4f398d6aeb1f538c29d42fce3783f9594af56029..4418efb52ce646e78456df18b02300c02e829fd3 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.7.8.2  2000/04/10 08:44:51  kowal2
-
-New transformations added
-Different pad and pad-rows geometries for different sectors
-
-Revision 1.7.8.1  2000/04/10 07:56:53  kowal2
-Not used anymore - removed
-
-Revision 1.7  1999/10/08 13:10:35  fca
-Values in SetDefault are in radiants
-
-Revision 1.6  1999/10/08 06:27:59  fca
-Defaults updated
-
-Revision 1.5  1999/10/05 17:18:27  fca
-Correct GetWire check on even/odd fnWires
-
-Revision 1.4  1999/09/29 09:24:34  fca
-Introduction of the Copyright and cvs Log
-
-*/
+/* $Id$ */
 
 ///////////////////////////////////////////////////////////////////////
 //  Manager and of geomety  classes for set: TPC                     //
@@ -48,97 +26,18 @@ Introduction of the Copyright and cvs Log
 //                                                                   //  
 ///////////////////////////////////////////////////////////////////////
 
+//
 
-#include <iostream.h>
+#include <Riostream.h>
 #include <TMath.h>
 #include <TObject.h>
 #include <TRandom.h>
 #include <AliTPCParam.h>
 
 
-ClassImp(AliTPCParam)
-
-const static  Int_t kMaxRows=600; 
-//
-//sector default parameters
-//
-const static  Float_t kInnerRadiusLow = 81.6;
-const static  Float_t kOuterRadiusLow = 144.2;
-const static  Float_t kInnerRadiusUp  = 143.6;
-const static  Float_t kOuterRadiusUp  = 252.1;
-const static  Float_t kInnerAngle = 20; // 20 degrees
-const static  Float_t kInnerAngleShift = 10;
-const static  Float_t kOuterAngle = 20; //  20 degrees
-const static  Float_t kOuterAngleShift = 10;
-const static  Float_t kInnerFrameSpace = 1.5;
-const static  Float_t kOuterFrameSpace = 1.5;
-const static  Float_t kInnerWireMount = 1.15;
-const static  Float_t kOuterWireMount = 1.15;
-const static  Float_t kZLength =250.;
-const static  Int_t   kGeometryType = 0; //straight rows 
-//
-//wires default parameters
-//
-const static Int_t    kNInnerWiresPerPad = 5;
-const static Int_t    kInnerDummyWire = 2;
-const static Float_t  kInnerOffWire = 0.5;
-const static Int_t    kNOuterWiresPerPad = 5;
-const static Int_t    kOuterDummyWire = 2;
-const static Float_t  kOuterOffWire = 0.5;
-//
-//pad default parameters
-// 
-const static Float_t  kInnerPadPitchLength = 2.05;
-const static Float_t  kInnerPadPitchWidth = 0.35;
-const static Float_t  kInnerPadLength = 2.05;
-const static Float_t  kInnerPadWidth = 0.35;
-const static Float_t  kOuterPadPitchLength = 2.05;
-const static Float_t  kOuterPadPitchWidth = 0.35;
-const static Float_t  kOuterPadLength = 2.05;
-const static Float_t  kOuterPadWidth = 0.35;
-const static Bool_t   kBMWPCReadout = kTRUE; //MWPC readout - another possibility GEM 
-const static Int_t    kNCrossRows = 1; //number of rows to cross-talk
 
-//
-//gas default parameters
-//
-const static  Float_t  kDiffT = 2.2e-2; 
-const static  Float_t  kDiffL = 2.2e-2;
-const static  Float_t  kGasGain = 2.e4;
-const static  Float_t  kDriftV  =2.85e6;
-const static  Float_t  kOmegaTau = 0.145;
-const static  Float_t  kAttCoef = 250.;
-const static  Float_t  kOxyCont = 5.e-6;
-//
-//electornic default parameters
-//
-const static  Float_t  kPadCoupling=0.5;
-const static  Int_t    kZeroSup=5;
-const static  Float_t  kNoise = 1000;                            
-const static  Float_t  kChipGain = 12;
-const static  Float_t  kChipNorm = 0.4;
-const static  Float_t  kTSample = 2.e-7; 
-const static  Float_t  kTFWHM   = 1.9e-7;  //fwhm of charge distribution
-const static  Int_t    kMaxTBin =512;  
-const static  Int_t    kADCSat  =1024;  
-const static  Float_t  kADCDynRange =2000.;  
-//
-//
-//
-const static  Float_t kBField =0.2; 
-const static  Float_t kNPrimLoss =10.9;
-const static  Float_t kNTotalLoss =39.9;
-// 
-//transformation coeficients
-//
-const static  Float_t  kDegtoRad = 0.01745329251994;
-const static  Float_t  kRadtoDeg = 57.29577951309;
-// 
-//response constants
-//
-const static Int_t     kNResponseMax=100;
-const static Float_t   kResponseThreshold=0.01;
 
+ClassImp(AliTPCParam)
 
 
 //___________________________________________
@@ -151,6 +50,7 @@ AliTPCParam::AliTPCParam()
   fResponseBin = 0;
   fResponseWeight = 0;
   fRotAngle = 0;
+  SetTitle("75x40_100x60_150x60");
   SetDefault();  
 }
 
@@ -187,7 +87,7 @@ Int_t  AliTPCParam::Transform0to1(Float_t *xyz, Int_t * index)  const
       if ( (xyz[0]>0) && (xyz[1]<0) ) angle=2*TMath::Pi()+angle;
     }
 
-  sector=Int_t((angle-fInnerAngleShift)/fInnerAngle);      
+  sector=Int_t(TMath::Nint((angle-fInnerAngleShift)/fInnerAngle));      
  
   Float_t cos,sin;
   AdjustCosSin(sector,cos,sin);
@@ -195,7 +95,7 @@ Int_t  AliTPCParam::Transform0to1(Float_t *xyz, Int_t * index)  const
 
   if (x1>fOuterRadiusLow)
     {
-      sector=Int_t((angle-fOuterAngleShift)/fOuterAngle)+fNInnerSector;      
+      sector=Int_t(TMath::Nint((angle-fOuterAngleShift)/fOuterAngle))+fNInnerSector;      
       if (xyz[2]<0)    sector+=(fNOuterSector>>1);            
     }
     else   
@@ -205,7 +105,7 @@ Int_t  AliTPCParam::Transform0to1(Float_t *xyz, Int_t * index)  const
   return sector;
 }
 
-Bool_t  AliTPCParam::Transform(Float_t *xyz, Int_t *index, Int_t* oindex)
+Bool_t  AliTPCParam::Transform(Float_t */*xyz*/, Int_t *index, Int_t* /*oindex*/)
 {
   //transformation from input coodination system to output coordination system
   switch (index[0]){
@@ -278,6 +178,7 @@ void  AliTPCParam::SetSectorAngles(Float_t innerangle, Float_t innershift, Float
 {
   //
   // set opening angles  
+  static const  Float_t  kDegtoRad = 0.01745329251994;
   fInnerAngle = innerangle;       //opening angle of Inner sector
   fInnerAngleShift = innershift;  //shift of first inner sector center to the 0
   fOuterAngle = outerangle;       //opening angle of outer sector
@@ -313,7 +214,7 @@ Float_t  AliTPCParam::GetOuterAngleShift() const
 } 
 
 
-Int_t AliTPCParam::GetIndex(Int_t sector, Int_t row)
+Int_t AliTPCParam::GetIndex(Int_t sector, Int_t row) const
 {
   //
   //give index of the given sector and pad row 
@@ -348,6 +249,95 @@ void AliTPCParam::SetDefault()
   //
   //set default parameters
   //
+  //const static  Int_t kMaxRows=600; 
+  //
+  //sector default parameters
+  //
+  static const  Float_t kInnerRadiusLow = 82.97;
+  static const  Float_t kInnerRadiusUp  = 133.17;
+  static const  Float_t kOuterRadiusLow = 133.58;
+  static const  Float_t kOuterRadiusUp  = 247.78;
+  static const  Float_t kInnerAngle = 20; // 20 degrees
+  static const  Float_t kInnerAngleShift = 10;
+  static const  Float_t kOuterAngle = 20; //  20 degrees
+  static const  Float_t kOuterAngleShift = 10;
+  static const  Float_t kInnerFrameSpace = 1.5;
+  static const  Float_t kOuterFrameSpace = 1.5;
+  static const  Float_t kInnerWireMount = 1.370825926;
+  static const  Float_t kOuterWireMount = 1.370825926;
+  static const  Float_t kZLength =250.;
+  static const  Int_t   kGeometryType = 0; //straight rows 
+  static const Int_t kNRowLow = 63;
+  static const Int_t kNRowUp1 = 64;
+  static const Int_t kNRowUp2 = 32;
+  static const Int_t  kNRowUp = 96;
+  //
+  //wires default parameters
+  //
+  static const Int_t    kNInnerWiresPerPad = 3;
+  static const Int_t    kInnerDummyWire = 2;
+  static const Float_t  kInnerWWPitch = 0.25;
+  static const Float_t  kRInnerFirstWire = 84.445;
+  static const Float_t  kRInnerLastWire = 132.445;
+  static const Float_t  kInnerOffWire = 0.5;
+  static const Int_t    kNOuter1WiresPerPad = 4;
+  static const Int_t    kNOuter2WiresPerPad = 6;
+  static const Float_t  kOuterWWPitch = 0.25;  
+  static const Float_t  kROuterFirstWire = 134.305;
+  static const Float_t  kROuterLastWire = 247.055;
+  static const Int_t    kOuterDummyWire = 2;
+  static const Float_t  kOuterOffWire = 0.5;
+  //
+  //pad default parameters
+  // 
+  static const Float_t  kInnerPadPitchLength = 0.75;
+  static const Float_t  kInnerPadPitchWidth = 0.40;
+  static const Float_t  kInnerPadLength = 0.75;
+  static const Float_t  kInnerPadWidth = 0.40;
+  static const Float_t  kOuter1PadPitchLength = 1.0;
+  static const Float_t  kOuterPadPitchWidth = 0.6;
+  static const Float_t  kOuter1PadLength = 1.0;
+  static const Float_t  kOuterPadWidth = 0.6;
+  static const Float_t  kOuter2PadPitchLength = 1.5;
+  static const Float_t  kOuter2PadLength = 1.5;
+
+  static const Bool_t   kBMWPCReadout = kTRUE; //MWPC readout - another possibility GEM 
+  static const Int_t    kNCrossRows = 1; //number of rows to cross-talk
+  
+  //
+  //gas default parameters
+  //
+  static const  Float_t  kDiffT = 2.2e-2; 
+  static const  Float_t  kDiffL = 2.2e-2;
+  static const  Float_t  kGasGain = 2.e4;
+  static const  Float_t  kDriftV  =2.83e6;
+  static const  Float_t  kOmegaTau = 0.145;
+  static const  Float_t  kAttCoef = 250.;
+  static const  Float_t  kOxyCont = 5.e-6;
+  //
+  //electronic default parameters
+  //
+  static const  Float_t  kPadCoupling=0.5;
+  static const  Int_t    kZeroSup=2;
+  static const  Float_t  kNoise = 1000;                            
+  static const  Float_t  kChipGain = 12;
+  static const  Float_t  kChipNorm = 0.4;
+  static const  Float_t  kTSample = 2.e-7; 
+  static const  Float_t  kTFWHM   = 1.9e-7;  //fwhm of charge distribution
+  static const  Int_t    kMaxTBin =445;  
+  static const  Int_t    kADCSat  =1024;  
+  static const  Float_t  kADCDynRange =2000.;  
+  //
+  //
+  //
+  static const  Float_t kBField =0.2; 
+  static const  Float_t kNPrimLoss =10.9;
+  static const  Float_t kNTotalLoss =39.9;
+  // 
+  //response constants
+  //
+  static const Int_t     kNResponseMax=100;
+  static const Float_t   kResponseThreshold=0.01;     
   fbStatus = kFALSE;
   //
   //set sector parameters
@@ -363,15 +353,26 @@ void AliTPCParam::SetDefault()
   SetSectorAngles(kInnerAngle,kInnerAngleShift,kOuterAngle,kOuterAngleShift);
   SetZLength(kZLength);
   SetGeometryType(kGeometryType);
+  SetRowNLow(kNRowLow);
+  SetRowNUp1 (kNRowUp1);
+  SetRowNUp2(kNRowUp2);
+  SetRowNUp(kNRowUp);
   //
   //set wire parameters
   //
   SetInnerNWires(kNInnerWiresPerPad);
   SetInnerDummyWire(kInnerDummyWire);
   SetInnerOffWire(kInnerOffWire);
-  SetOuterNWires(kNOuterWiresPerPad);
+  SetOuter1NWires(kNOuter1WiresPerPad);
+  SetOuter2NWire(kNOuter2WiresPerPad);
   SetOuterDummyWire(kOuterDummyWire);
   SetOuterOffWire(kOuterOffWire);
+  SetInnerWWPitch(kInnerWWPitch);
+  SetRInnerFirstWire(kRInnerFirstWire);
+  SetRInnerLastWire(kRInnerLastWire);
+  SetOuterWWPitch(kOuterWWPitch);
+  SetROuterFirstWire(kROuterFirstWire);
+  SetROuterLastWire(kROuterLastWire);  
   //
   //set pad parameter
   //
@@ -379,9 +380,11 @@ void AliTPCParam::SetDefault()
   SetInnerPadPitchWidth(kInnerPadPitchWidth);
   SetInnerPadLength(kInnerPadLength);
   SetInnerPadWidth(kInnerPadWidth);
-  SetOuterPadPitchLength(kOuterPadPitchLength);
+  SetOuter1PadPitchLength(kOuter1PadPitchLength); 
+  SetOuter2PadPitchLength(kOuter2PadPitchLength);
   SetOuterPadPitchWidth(kOuterPadPitchWidth);
-  SetOuterPadLength(kOuterPadLength);
+  SetOuter1PadLength(kOuter1PadLength);
+  SetOuter2PadLength(kOuter2PadLength);
   SetOuterPadWidth(kOuterPadWidth); 
   SetMWPCReadout(kBMWPCReadout);
   SetNCrossRows(kNCrossRows);
@@ -416,7 +419,7 @@ void AliTPCParam::SetDefault()
   //set response  parameters  
   //
   SetNResponseMax(kNResponseMax); 
-  SetResponseThreshold(kResponseThreshold);
+  SetResponseThreshold(static_cast<int>(kResponseThreshold));
 }
 
           
@@ -428,6 +431,7 @@ Bool_t AliTPCParam::Update()
   // for example we can change size of pads and according this recalculate number
   // of pad rows, number of of pads in given row ....
   //
+  const Float_t kQel = 1.602e-19; // elementary charge
   fbStatus = kFALSE;
 
   Int_t i,j;  //loop variables because HP 
@@ -466,29 +470,24 @@ Bool_t AliTPCParam::Update()
     fRotAngle[j+2] =angle;    
   }
   fZWidth = fTSample*fDriftV;  
-  fTotalNormFac = fPadCoupling*fChipNorm*q_el*1.e15*fChipGain*fADCSat/fADCDynRange;
-  fNoiseNormFac = q_el*1.e15*fChipGain*fADCSat/fADCDynRange;
+  fTotalNormFac = fPadCoupling*fChipNorm*kQel*1.e15*fChipGain*fADCSat/fADCDynRange;
+  fNoiseNormFac = kQel*1.e15*fChipGain*fADCSat/fADCDynRange;
   //wire section 
-  Int_t nwire;
+  /*  Int_t nwire;
   Float_t wspace; //available space for wire
   Float_t dummyspace; //dummyspace for wire
-
-  fInnerWWPitch = Float_t((Double_t)fInnerPadPitchLength/(Double_t)fNInnerWiresPerPad);  
   wspace =fInnerRadiusUp-fInnerRadiusLow-2*fInnerOffWire;
   nwire = Int_t(wspace/fInnerWWPitch);
   wspace = Float_t(nwire)*fInnerWWPitch;
-  dummyspace =(fInnerRadiusUp-fInnerRadiusLow-wspace)/2.; 
-  fRInnerFirstWire = fInnerRadiusLow+dummyspace;
-  fRInnerLastWire = fRInnerFirstWire+fInnerWWPitch*(Float_t)(nwire);
-
-  fOuterWWPitch = Float_t((Double_t)fOuterPadPitchLength/(Double_t)fNOuterWiresPerPad);  
+  dummyspace =(fInnerRadiusUp-fInnerRadiusLow-wspace)/2.;  
   wspace =fOuterRadiusUp-fOuterRadiusLow-2*fOuterOffWire;
   nwire = Int_t(wspace/fOuterWWPitch);
   wspace = Float_t(nwire)*fOuterWWPitch;
   dummyspace =(fOuterRadiusUp-fOuterRadiusLow-wspace)/2.; 
   fROuterFirstWire = fOuterRadiusLow+dummyspace;
   fROuterLastWire = fROuterFirstWire+fOuterWWPitch*(Float_t)(nwire);
-
+  */
   
   //
   //response data
@@ -520,6 +519,16 @@ Int_t AliTPCParam::GetNRowUp() const
   //get the number of pad rows in up sector
   return fNRowUp;
 }
+Int_t AliTPCParam::GetNRowUp1() const
+{
+  //get the number of pad rows in up1 sector
+  return fNRowUp1;
+}
+Int_t AliTPCParam::GetNRowUp2() const
+{
+  //get the number of pad rows in up2 sector
+  return fNRowUp2;
+}
 Float_t AliTPCParam::GetPadRowRadiiLow(Int_t irow) const
 {
   //get the pad row (irow) radii
@@ -556,183 +565,21 @@ Int_t AliTPCParam::GetNPadsUp(Int_t irow) const
   else
     return 0;
 }
+Float_t AliTPCParam::GetYInner(Int_t irow) const
+{
+  return fYInner[irow];
+}
 
 
-void AliTPCParam::Streamer(TBuffer &R__b)
+Float_t AliTPCParam::GetYOuter(Int_t irow) const
 {
-   // Stream an object of class AliTPC.
-
-   if (R__b.IsReading()) {
-      Version_t R__v = R__b.ReadVersion(); if (R__v) { }
-      AliDetectorParam::Streamer(R__b);
-      if (R__v < 2) return;
-      //---------------------------------------------------------------------
-      //   ALICE TPC sector geometry
-      //--------------------------------------------------------------------  
-      R__b >> fInnerRadiusLow;   // lower radius of inner sector-IP
-      R__b >> fInnerRadiusUp;    // upper radius of inner  sector-IP
-      R__b >> fOuterRadiusUp;    // upper radius of outer  sector-IP
-      R__b >> fOuterRadiusLow;   // lower radius of outer sector-IP
-      R__b >> fInnerAngle;       //opening angle of Inner sector
-      R__b >> fInnerAngleShift;  //shift of first inner sector center to the 0
-      R__b >> fOuterAngle;       //opening angle of outer sector
-      R__b >> fOuterAngleShift;  //shift of first sector center to the 0  
-      R__b >> fInnerFrameSpace;  //spce for inner frame in the phi direction 
-      R__b >> fOuterFrameSpace;  //spce for outer frame in the phi direction 
-      R__b >> fInnerWireMount;
-      R__b >> fOuterWireMount;
-      //R__b >> fNInnerSector;      //!number of inner sectors - calculated
-      //R__b >> fNOuterSector;      //!number of outer sectors -calculated
-      //R__b >> fNSector;           //! total number of sectors -calculated
-      R__b >> fZLength;           //length of the drift region of the TPC
-      //R__b.ReadFastArray(fRotAngle,fNSector*4);      //  sin and cos of rotation angles for 
-      R__b >> fGeometryType;      //type of geometry -0 straight rows
-                                 //  diferent sectors
-      //---------------------------------------------------------------------
-      //   ALICE TPC wires  geometry
-      //--------------------------------------------------------------------
-      R__b >> fNInnerWiresPerPad;//  Number of wires per pad
-      //R__b >> fInnerWWPitch;     // pitch between wires  in inner sector - calculated
-      R__b >> fInnerDummyWire;   //number of wires without pad readout
-      R__b >> fInnerOffWire;//oofset of first wire to the begining of the sector
-      //R__b >> fRInnerFirstWire;  //position of the first wire  -calculated
-      //R__b >> fRInnerLastWire;   //position of the last wire    -calculated
-      R__b >> fNOuterWiresPerPad;//  Number of wires per pad
-      //R__b >> fOuterWWPitch;     // pitch between wires in outer sector   - calculated
-      R__b >> fOuterDummyWire;   //number of wires without pad readout
-      R__b >> fOuterOffWire;//oofset of first wire to the begining of the sector
-      //R__b >> fROuterFirstWire;  //position of the first wire  -calulated
-      //R__b >> fROuterLastWire;   //position of the last wire    -calculated            
-      //---------------------------------------------------------------------
-      //   ALICE TPC pad parameters
-      //--------------------------------------------------------------------
-      R__b >> fInnerPadPitchLength;    //Inner pad pitch length
-      R__b >> fInnerPadPitchWidth;     //Inner pad pitch width
-      R__b >> fInnerPadLength;         //Inner pad  length
-      R__b >> fInnerPadWidth;          //Inner pad  width
-      R__b >> fOuterPadPitchLength;    //Outer pad pitch length
-      R__b >> fOuterPadPitchWidth;     //Outer pad pitch width
-      R__b >> fOuterPadLength;         //Outer pad  length
-      R__b >> fOuterPadWidth;          //Outer pad  width
-      R__b >> fBMWPCReadout;           //indicate wire readout 
-      R__b >> fNCrossRows;             //number of pad rows to crostalk
-      R__b >> fNRowLow;           //  number of pad rows per low sector 
-      R__b >> fNRowUp;            //  number of pad rows per sector up 
-      //R__b >> fPadRowLow[600]; // Lower sector, pad row radii
-      //R__b >> fPadRowUp[600];  // Upper sector, pad row radii
-      //R__b >> fNPadsLow[600];     // Lower sector, number of pads per row
-      //R__b >> fNPadsUp[600];      //  Upper sector, number of pads per row
-      //---------------------------------------------------------------------
-      //   ALICE TPC Gas Parameters
-      //--------------------------------------------------------------------
-      R__b >> fDiffT;          //tangencial diffusion constant
-      R__b >> fDiffL;          //longutudinal diffusion constant
-      R__b >> fGasGain;        //gas gain constant
-      R__b >> fDriftV;          //drift velocity constant
-      R__b >> fOmegaTau;       //omega tau ExB coeficient
-      R__b >> fAttCoef;        //attachment coefitients
-      R__b >> fOxyCont;        //oxygen content
-      //---------------------------------------------------------------------
-      //   ALICE TPC  Electronics Parameters
-      //--------------------------------------------------------------------
-      R__b >> fPadCoupling;     //coupling factor ration of  anode signal 
-      //and total pads signal  
-      R__b >> fZeroSup;         //zero suppresion constant
-      R__b >> fNoise;         //noise sigma constant
-      R__b >> fChipGain;      //preamp shaper constant
-      R__b >> fChipNorm;      //preamp shaper normalisation       
-      R__b >> fTSample; // sampling time
-      R__b >> fZWidth;  //derived value calculated using TSample and driftw 
-      R__b >> fTSigma;  // width of the Preamp/Shaper function
-      R__b >> fMaxTBin; //maximum time bin number   
-      R__b >> fADCSat;  //saturation value of ADC (10 bits)
-      R__b >> fADCDynRange; // input dynamic range (mV)
-      //--------------------------------------------------------        
-   } else {
-      R__b.WriteVersion(AliTPCParam::IsA());
-      AliDetectorParam::Streamer(R__b);      
-     //---------------------------------------------------------------------
-      //   ALICE TPC sector geometry
-      //--------------------------------------------------------------------  
-      R__b << fInnerRadiusLow;   // lower radius of inner sector-IP
-      R__b << fInnerRadiusUp;    // upper radius of inner  sector-IP
-      R__b << fOuterRadiusUp;    // upper radius of outer  sector-IP
-      R__b << fOuterRadiusLow;   // lower radius of outer sector-IP
-      R__b << fInnerAngle;       //opening angle of Inner sector
-      R__b << fInnerAngleShift;  //shift of first inner sector center to the 0
-      R__b << fOuterAngle;       //opening angle of outer sector
-      R__b << fOuterAngleShift;  //shift of first sector center to the 0  
-      R__b << fInnerFrameSpace;  //spce for inner frame in the phi direction 
-      R__b << fOuterFrameSpace;  //spce for outer frame in the phi direction 
-      R__b << fInnerWireMount;
-      R__b << fOuterWireMount;
-      //R__b << fNInnerSector;      //!number of inner sectors - calculated
-      //R__b << fNOuterSector;      //!number of outer sectors -calculated
-      //R__b << fNSector;           //! total number of sectors -calculated
-      R__b << fZLength;           //length of the drift region of the TPC
-      //R__b.WriteFastArray(fRotAngle,fNSector*4);      //  sin and cos of rotation angles for 
-      R__b << fGeometryType;      //type of geometry -0 straight rows
-      
-                                 //  diferent sectors
-      //---------------------------------------------------------------------
-      //   ALICE TPC wires  geometry
-      //--------------------------------------------------------------------
-      R__b << fNInnerWiresPerPad;//  Number of wires per pad
-      // R__b << fInnerWWPitch;     // pitch between wires  in inner sector - calculated
-      R__b << fInnerDummyWire;   //number of wires without pad readout
-      R__b << fInnerOffWire;//oofset of first wire to the begining of the sector
-      //R__b << fRInnerFirstWire;  //position of the first wire  -calculated
-      //R__b << fRInnerLastWire;   //position of the last wire    -calculated
-      R__b << fNOuterWiresPerPad;//  Number of wires per pad
-      //R__b << fOuterWWPitch;     // pitch between wires in outer sector   - calculated
-      R__b << fOuterDummyWire;   //number of wires without pad readout
-      R__b << fOuterOffWire;//oofset of first wire to the begining of the sector
-      //R__b << fROuterFirstWire;  //position of the first wire  -calulated
-      //R__b << fROuterLastWire;   //position of the last wire    -calculated            
-      //---------------------------------------------------------------------
-      //   ALICE TPC pad parameters
-      //--------------------------------------------------------------------
-      R__b << fInnerPadPitchLength;    //Inner pad pitch length
-      R__b << fInnerPadPitchWidth;     //Inner pad pitch width
-      R__b << fInnerPadLength;         //Inner pad  length
-      R__b << fInnerPadWidth;          //Inner pad  width
-      R__b << fOuterPadPitchLength;    //Outer pad pitch length
-      R__b << fOuterPadPitchWidth;     //Outer pad pitch width
-      R__b << fOuterPadLength;         //Outer pad  length
-      R__b << fOuterPadWidth;          //Outer pad  width
-      R__b << fBMWPCReadout;           //indicate wire readout 
-      R__b << fNCrossRows;             // number of rows to cross talk
-      R__b << fNRowLow;           //  number of pad rows per low sector 
-      R__b << fNRowUp;            //  number of pad rows per sector up 
-      // R__b << fPadRowLow[600]; // Lower sector, pad row radii
-      //R__b << fPadRowUp[600];  // Upper sector, pad row radii
-      //R__b << fNPadsLow[600];     // Lower sector, number of pads per row
-      //R__b << fNPadsUp[600];      //  Upper sector, number of pads per row
-      //---------------------------------------------------------------------
-      //   ALICE TPC Gas Parameters
-      //--------------------------------------------------------------------
-      R__b << fDiffT;          //tangencial diffusion constant
-      R__b << fDiffL;          //longutudinal diffusion constant
-      R__b << fGasGain;        //gas gain constant
-      R__b << fDriftV;          //drift velocity constant
-      R__b << fOmegaTau;       //omega tau ExB coeficient
-      R__b << fAttCoef;        //attachment coefitients
-      R__b << fOxyCont;        //oxygen content
-      //---------------------------------------------------------------------
-      //   ALICE TPC  Electronics Parameters
-      //--------------------------------------------------------------------
-      R__b << fPadCoupling;     //coupling factor ration of  anode signal 
-      //and total pads signal  
-      R__b << fZeroSup;         //zero suppresion constant
-      R__b << fNoise;         //noise sigma constant
-      R__b << fChipGain;      //preamp shaper constant
-      R__b << fChipNorm;      //preamp shaper normalisation     
-      R__b << fTSample; // sampling time
-      R__b << fZWidth;  //derived value calculated using TSample and driftw 
-      R__b << fTSigma;  // width of the Preamp/Shaper function
-      R__b << fMaxTBin; //maximum time bin number   
-      R__b << fADCSat;  //saturation value of ADC (10 bits)
-      R__b << fADCDynRange; // input dynamic range (mV)       
-   }
+  return fYOuter[irow];
 }
 
+
+
+
+
+
+
+