AliTPCcalibDB* calib=AliTPCcalibDB::Instance();
//
AliTPCCalPad * time0TPC = calib->GetPadTime0();
+ AliTPCCalPad * distortionMapY = calib->GetDistortionMap(0);
+ AliTPCCalPad * distortionMapZ = calib->GetDistortionMap(1);
AliTPCParam * param = calib->GetParameters();
if (!time0TPC){
AliFatal("Time unisochronity missing");
//
Global2RotatedGlobal(sector,xx);
+
+ //
+ // Apply non linear distortion correction
+ //
+ if (distortionMapY ){
+ //can be switch on for each dimension separatelly
+ if (fCurrentRecoParam->GetUseFieldCorrection()&0x2)
+ xx[1]-=distortionMapY->GetCalROC(sector)->GetValue(row,pad);
+ if (fCurrentRecoParam->GetUseFieldCorrection()&0x4)
+ xx[2]-=distortionMapZ->GetCalROC(sector)->GetValue(row,pad);
+ }
+
+
//
x[0]=xx[0];x[1]=xx[1];x[2]=xx[2];
}
fPadGainFactor(0),
fDedxGainFactor(0),
fPadTime0(0),
+ fDistortionMap(0),
fPadNoise(0),
fPedestals(0),
fCalibRaw(0),
fPadGainFactor(0),
fDedxGainFactor(0),
fPadTime0(0),
+ fDistortionMap(0),
fPadNoise(0),
fPedestals(0),
fCalibRaw(0),
// destructor
//
- // don't delete anything, CDB cache is active!
- //if (fPadGainFactor) delete fPadGainFactor;
- //if (fPadTime0) delete fPadTime0;
- //if (fPadNoise) delete fPadNoise;
}
//if (fPadGainFactor) delete fPadGainFactor;
entry->SetOwner(kTRUE);
fPadGainFactor = (AliTPCCalPad*)entry->GetObject();
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
//
entry = GetCDBEntry("TPC/Calib/TimeGain");
//if (fTimeGainSplines) delete fTimeGainSplines;
entry->SetOwner(kTRUE);
fTimeGainSplines = (TObjArray*)entry->GetObject();
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
//
entry = GetCDBEntry("TPC/Calib/GainFactorDedx");
if (entry){
entry->SetOwner(kTRUE);
fDedxGainFactor = (AliTPCCalPad*)entry->GetObject();
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
//
entry = GetCDBEntry("TPC/Calib/PadTime0");
//if (fPadTime0) delete fPadTime0;
entry->SetOwner(kTRUE);
fPadTime0 = (AliTPCCalPad*)entry->GetObject();
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
+
+ entry = GetCDBEntry("TPC/Calib/Distortion");
+ if (entry){
+ //if (fPadTime0) delete fPadTime0;
+ entry->SetOwner(kTRUE);
+ fDistortionMap =(TObjArray*)entry->GetObject();
+ }else{
+ //AliFatal("TPC - Missing calibration entry")
+ }
+
+
//
//
entry = GetCDBEntry("TPC/Calib/PadNoise");
//if (fPadNoise) delete fPadNoise;
entry->SetOwner(kTRUE);
fPadNoise = (AliTPCCalPad*)entry->GetObject();
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
entry = GetCDBEntry("TPC/Calib/Pedestals");
//if (fPadNoise) delete fPadNoise;
entry->SetOwner(kTRUE);
fParam = (AliTPCParam*)(entry->GetObject()->Clone());
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
entry = GetCDBEntry("TPC/Calib/ClusterParam");
if (entry){
entry->SetOwner(kTRUE);
fClusterParam = (AliTPCClusterParam*)(entry->GetObject()->Clone());
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
//ALTRO configuration data
if (entry){
entry->SetOwner(kTRUE);
fALTROConfigData=(TObjArray*)(entry->GetObject());
+ }else{
+ AliFatal("TPC - Missing calibration entry")
}
//Calibration Pulser data
}
//RAW calibration data
// entry = GetCDBEntry("TPC/Calib/Raw");
-// if (entry){
-// entry->SetOwner(kTRUE);
-// TObjArray *arr=(TObjArray*)(entry->GetObject());
-// if (arr) fCalibRaw=(AliTPCCalibRaw*)arr->At(0);
-// }
-// //QA calibration data
-// entry = GetCDBEntry("TPC/Calib/QA");
-// if (entry){
-// entry->SetOwner(kTRUE);
-// fDataQA=dynamic_cast<AliTPCdataQA*>(entry->GetObject());
-// }
entry = GetCDBEntry("TPC/Calib/Mapping");
if (entry){
}
}
- //QA calibration data
+ //CTP calibration data
entry = GetCDBEntry("GRP/CTP/CTPtiming");
if (entry){
//entry->SetOwner(kTRUE);
fCTPTimeParams=dynamic_cast<AliCTPTimeParams*>(entry->GetObject());
- }
-
-
- //entry = GetCDBEntry("TPC/Calib/ExB");
- //if (entry) {
- // entry->SetOwner(kTRUE);
- // fExB=dynamic_cast<AliTPCExB*>(entry->GetObject()->Clone());
- //}
+ }else{
+ AliFatal("TPC - Missing calibration entry")
+ }
//
- // ExB - calculate during initialization - in simulation /reconstruction
- // - not invoked here anymore
- //fExB = GetExB(-5,kTRUE);
- //
if (!fTransform) {
fTransform=new AliTPCTransform();
fTransform->SetCurrentRun(AliCDBManager::Instance()->GetRun());
entry->SetOwner(kTRUE);
fDataQA=dynamic_cast<AliTPCdataQA*>(entry->GetObject());
}
-
+ // High voltage
+ entry = AliCDBManager::Instance()->Get("TPC/Calib/HighVoltage",fRun);
+ if (entry) {
+ fVoltageArray.AddAt(entry->GetObject(),fRun);
+ }
+
}
fGoofieArray.AddAt(entry->GetObject(),run);
}
//
- entry = AliCDBManager::Instance()->Get("TPC/Calib/HighVoltage",run);
- if (entry) {
- fVoltageArray.AddAt(entry->GetObject(),run);
- }
+
//
entry = AliCDBManager::Instance()->Get("TPC/Calib/TimeGain",run);
if (entry) {
fTimeGainSplinesArray.AddAt(entry->GetObject(),run);
+ }else{
+ AliFatal("TPC - Missing calibration entry TimeGain")
}
//
entry = AliCDBManager::Instance()->Get("TPC/Calib/TimeDrift",run);
if (entry) {
fDriftCorrectionArray.AddAt(entry->GetObject(),run);
+ }else{
+ AliFatal("TPC - Missing calibration entry TimeDrift")
}
//
entry = AliCDBManager::Instance()->Get("TPC/Calib/Temperature",run);