if (!time0TPC){
AliFatal("Time unisochronity missing");
}
+ AliTPCCorrection * correctionDelta = calib->GetTPCComposedCorrectionDelta();
if (!param){
AliFatal("Parameters missing");
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
//
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];
+ }
}
//
// 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;
//
}
//
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;
}
}
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;