]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCTransform.cxx
Removing non-existing classes
[u/mrichter/AliRoot.git] / TPC / AliTPCTransform.cxx
index daadb94bd2a59d041133d2270997b469b3974884..b6c0b5903261b9c1a877efa0c526e09d45b7e02a 100755 (executable)
@@ -156,6 +156,7 @@ void AliTPCTransform::Transform(Double_t *x,Int_t *i,UInt_t /*time*/,
   if (!time0TPC){
     AliFatal("Time unisochronity missing");
   }
+  AliTPCCorrection * correctionDelta = calib->GetTPCComposedCorrectionDelta(); 
 
   if (!param){
     AliFatal("Parameters missing");
@@ -163,8 +164,8 @@ void AliTPCTransform::Transform(Double_t *x,Int_t *i,UInt_t /*time*/,
 
   Double_t xx[3];
   //  Apply Time0 correction - Pad by pad fluctuation
-  //
-  x[2]-=time0TPC->GetCalROC(sector)->GetValue(row,pad);
+  //  
+  if (!calib->HasAlignmentOCDB()) x[2]-=time0TPC->GetCalROC(sector)->GetValue(row,pad);
   //
   // Tranform from pad - time coordinate system to the rotated global (tracking) system
   //
@@ -199,6 +200,13 @@ void AliTPCTransform::Transform(Double_t *x,Int_t *i,UInt_t /*time*/,
     xx[0]=distPoint[0];
     xx[1]=distPoint[1];
     xx[2]=distPoint[2];
+    if (correctionDelta&&fCurrentRecoParam->GetUseAlignmentTime()){  // appply time dependent correction if available and enabled
+      Float_t distPointDelta[3]={xx[0],xx[1],xx[2]};
+      correctionDelta->CorrectPoint(distPointDelta, sector);
+      xx[0]=distPointDelta[0];
+      xx[1]=distPointDelta[1];
+      xx[2]=distPointDelta[2];
+    }
   } 
 
 
@@ -304,6 +312,7 @@ void AliTPCTransform::Local2RotatedGlobal(Int_t sector, Double_t *x) const {
   //
   // simple caching non thread save
   static Double_t vdcorrectionTime=1;
+  static Double_t vdcorrectionTimeGY=0;
   static Double_t time0corrTime=0;
   static Int_t    lastStampT=-1;
   //
@@ -323,15 +332,13 @@ void AliTPCTransform::Local2RotatedGlobal(Int_t sector, Double_t *x) const {
     }
     //
     if(fCurrentRecoParam&&fCurrentRecoParam->GetUseDriftCorrectionGY()>0) {
-      Float_t xyzPad[3];
-      AliTPCROC::Instance()->GetPositionGlobal(sector, TMath::Nint(x[0]) ,TMath::Nint(x[1]), xyzPad);
       
-      Double_t corrGy= (1+(xyzPad[1])*AliTPCcalibDB::Instance()->
+      Double_t corrGy= AliTPCcalibDB::Instance()->
                        GetVDriftCorrectionGy(fCurrentTimeStamp, 
                                              AliTPCcalibDB::Instance()->GetRun(),
                                              sector%36>=18,
-                                             fCurrentRecoParam->GetUseDriftCorrectionGY()));
-      vdcorrectionTime *=corrGy;
+                                             fCurrentRecoParam->GetUseDriftCorrectionGY());
+      vdcorrectionTimeGY = corrGy;
     }
   }
 
@@ -345,7 +352,9 @@ void AliTPCTransform::Local2RotatedGlobal(Int_t sector, Double_t *x) const {
   const Int_t kNIS=param->GetNInnerSector(), kNOS=param->GetNOuterSector();
   Double_t sign = 1.;
   Double_t zwidth    = param->GetZWidth()*driftCorr;
-  if (AliTPCRecoParam:: GetUseTimeCalibration()) zwidth*=vdcorrectionTime;
+  Float_t xyzPad[3];
+  AliTPCROC::Instance()->GetPositionGlobal(sector, TMath::Nint(x[0]) ,TMath::Nint(x[1]), xyzPad);
+  if (AliTPCRecoParam:: GetUseTimeCalibration()) zwidth*=vdcorrectionTime*(1+xyzPad[1]*vdcorrectionTimeGY);
   Double_t padWidth  = 0;
   Double_t padLength = 0;
   Double_t    maxPad    = 0;