]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCParam.h
Transition PWG3 --> PWGHF
[u/mrichter/AliRoot.git] / TPC / AliTPCParam.h
index 8243161336198995227fee6416fb00898a3b3a06..d3bf7da2a6c8c00e556c0247060e1b771db31537 100644 (file)
@@ -219,7 +219,7 @@ public:
   Int_t    GetNInnerSector() const {return fNInnerSector;}
   Int_t    GetNOuterSector() const {return fNOuterSector;}
   Int_t    GetNSector() const {return fNSector;}
-  Float_t  GetZLength(Int_t sector=0) const {return (sector<35) ? fZLength-0.275 : fZLength-0.302;}
+  Float_t  GetZLength(Int_t sector=0) const;
   Int_t    GetGeometryType() const {return fGeometryType;}
 
   //
@@ -520,8 +520,9 @@ inline void AliTPCParam::Transform1to2(Float_t *xyz, Int_t *index) const
   //we must have information about sector!
   //rotate to given sector
   Double_t xyzmaster[3] = {xyz[0],xyz[1],xyz[2]};
-  Double_t xyzlocal[3];  
-  fGlobalMatrix[index[1]]->MasterToLocal(xyzmaster,xyzlocal);
+  Double_t xyzlocal[3]={0,0,0};
+  if (index[1]>=0 && index[1]<fNSector) 
+    fGlobalMatrix[index[1]]->MasterToLocal(xyzmaster,xyzlocal);
   xyz[0] = xyzlocal[0];
   xyz[1] = xyzlocal[1];
   xyz[2] = xyzlocal[2];
@@ -544,9 +545,9 @@ inline void AliTPCParam::Transform2to1(Float_t *xyz, Int_t *index) const
   xyz[1]=y1;
   xyz[2]=fZLength-xyz[2]; 
   if (index[1]<fNInnerSector)
-    if ( index[1]>=(fNInnerSector>>1)) xyz[2]*=-1.;
+    {if ( index[1]>=(fNInnerSector>>1))        xyz[2]*=-1.;}
   else 
-    if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) )    xyz[2]*=-1;      
+    {if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) )    xyz[2]*=-1;}
   index[0]=1;
 }
 
@@ -666,6 +667,13 @@ inline void AliTPCParam::Transform4to8(Float_t *xyz, Int_t *index) const
   //transform xyz coordinates to 'digit' coordinates
   //
 
+  if (index[1]<fNInnerSector) {
+    if ( index[1]>=(fNInnerSector>>1)) xyz[1]*=-1.;
+  }
+  else {
+    if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1;      
+  }
+
   xyz[2]/=fZWidth;  
   if  (index[1]<fNInnerSector) {    
     xyz[0]/=fInnerPadPitchLength;
@@ -685,6 +693,13 @@ inline void AliTPCParam::Transform8to4(Float_t *xyz, Int_t *index) const
   //
   //transforms 'digit' coordinates to xyz coordinates
   //
+  if (index[1]<fNInnerSector) {
+    if ( index[1]>=(fNInnerSector>>1)) xyz[1]*=-1.;
+  }
+  else {
+    if ( (index[1]-fNInnerSector) >= (fNOuterSector>>1) ) xyz[1]*=-1;      
+  }
+
   xyz[2]*=fZWidth;
   if  (index[1]<fNInnerSector) {    
     xyz[0]*=fInnerPadPitchLength;
@@ -733,5 +748,8 @@ inline void  AliTPCParam::Transform8to6(Float_t *xyz, Int_t *index) const
   }  
   index[0]=6;
 }
-
+inline Float_t AliTPCParam::GetZLength(Int_t sector) const
+{ if(sector <18 || (sector>35&&sector<54)) return   fZLength-0.275;
+  else return fZLength-0.302;
+}
 #endif