// - > Don't use it for reconstruction - Only for Calibration studies
//
if (run<0) return;
- if (fRunList[run]>0 &&force==kFALSE) return;
AliCDBEntry * entry = 0;
- if (run>= fRunList.GetSize()){
+ if (run>= fRunList.fN){
fRunList.Set(run*2+1);
fGRPArray.Expand(run*2+1);
fGRPMaps.Expand(run*2+1);
fVdriftArray.Expand(run*2+1);
fDriftCorrectionArray.Expand(run*2+1);
fTimeGainSplinesArray.Expand(run*2+1);
+ //
+ //
+ fALTROConfigData->Expand(run*2+1); // ALTRO configuration data
+ fPulserData->Expand(run*2+1); // Calibration Pulser data
+ fCEData->Expand(run*2+1); // CE data
+ fTimeGainSplines->Expand(run*2+1); // Array of AliSplineFits: at 0 MIP position in
}
+ if (fRunList[run]>0 &&force==kFALSE) return;
fRunList[run]=1; // sign as used
Double_t result;
// mode 1 automatic mode - according to the distance to the valid calibration
// -
- Double_t deltaP=0, driftP=0, wP = 0.;
- Double_t deltaLT=0, driftLT=0, wLT = 0.;
- Double_t deltaCE=0, driftCE=0, wCE = 0.;
+ Double_t deltaP=0, driftP=0, wP = 0.;
+ Double_t deltaITS=0,driftITS=0, wITS= 0.;
+ Double_t deltaLT=0, driftLT=0, wLT = 0.;
+ Double_t deltaCE=0, driftCE=0, wCE = 0.;
driftP = fDButil->GetVDriftTPC(deltaP,run,timeStamp);
+ driftITS= fDButil->GetVDriftTPCITS(deltaITS,run,timeStamp);
driftCE = fDButil->GetVDriftTPCCE(deltaCE, run,timeStamp,36000,2);
driftLT = fDButil->GetVDriftTPCLaserTracks(deltaLT,run,timeStamp,36000,2);
+ deltaITS = TMath::Abs(deltaITS);
deltaP = TMath::Abs(deltaP);
deltaLT = TMath::Abs(deltaLT);
deltaCE = TMath::Abs(deltaCE);
if (mode==1) {
- const Double_t kEpsilon=0.0000000001;
- Double_t meanDist= (deltaP+deltaLT+deltaCE)*0.3;
- if (meanDist<1.) return driftLT;
- wP = meanDist/(deltaP +0.005*meanDist);
- wLT = meanDist/(deltaLT+0.005*meanDist);
- wCE = meanDist/(deltaCE+0.001*meanDist);
+ const Double_t kEpsilon=0.00000000001;
+ const Double_t kdeltaT=360.; // 10 minutes
+ wITS = 64.*kdeltaT/(deltaITS +kdeltaT);
+ wLT = 16.*kdeltaT/(deltaLT +kdeltaT);
+ wP = 0. *kdeltaT/(deltaP +kdeltaT);
+ wCE = 1. *kdeltaT/(deltaCE +kdeltaT);
+ //
+ //
+ if (TMath::Abs(driftP)<kEpsilon) wP=0; // invalid calibration
+ if (TMath::Abs(driftITS)<kEpsilon)wITS=0; // invalid calibration
+ if (TMath::Abs(driftLT)<kEpsilon) wLT=0; // invalid calibration
if (TMath::Abs(driftCE)<kEpsilon) wCE=0; // invalid calibration
- result = (driftP*wP+driftLT*wLT+driftCE*wCE)/(wP+wLT+wCE);
+ if (wP+wITS+wLT+wCE<kEpsilon) return 0;
+ result = (driftP*wP+driftITS*wITS+driftLT*wLT+driftCE*wCE)/(wP+wITS+wLT+wCE);
}
return result;
// Notice - Extrapolation outside of calibration range - using constant function
//
Double_t result=0;
- if (mode==1) result=fDButil->GetTriggerOffsetTPC(run,timeStamp);
- result *=fParam->GetZLength();
-
+ if (mode==2) {
+ // TPC-TPC mode
+ result=fDButil->GetTriggerOffsetTPC(run,timeStamp);
+ result *=fParam->GetZLength();
+ }
+ if (mode==1){
+ // TPC-ITS mode
+ Double_t dist=0;
+ result= fDButil->GetTime0TPCITS(dist, run, timeStamp);
+ }
return result;
}