fTemperature(0),
fMapping(0),
fParam(0),
- fClusterParam(0),
+ fClusterParam(0),
+ fTimeGainSplines(0),
+ fTimeGainSplinesArray(100000),
fGRPArray(100000), //! array of GRPs - per run - JUST for calibration studies
fGRPMaps(100000), //! array of GRPs - per run - JUST for calibration studies
fGoofieArray(100000), //! array of GOOFIE values -per run - Just for calibration studies
fVoltageArray(100000),
fTemperatureArray(100000), //! array of temperature sensors - per run - Just for calibration studies
fVdriftArray(100000), //! array of v drift interfaces
+ fDriftCorrectionArray(100000), //! array of drift correction
fRunList(100000) //! run list - indicates try to get the run param
{
fMapping(0),
fParam(0),
fClusterParam(0),
+ fTimeGainSplines(0),
+ fTimeGainSplinesArray(100000),
fGRPArray(0), //! array of GRPs - per run - JUST for calibration studies
fGRPMaps(0), //! array of GRPs - per run - JUST for calibration studies
fGoofieArray(0), //! array of GOOFIE values -per run - Just for calibration studies
fVoltageArray(0),
fTemperatureArray(0), //! array of temperature sensors - per run - Just for calibration studies
fVdriftArray(0), //! array of v drift interfaces
+ fDriftCorrectionArray(0), //! array of v drift interfaces
fRunList(0) //! run list - indicates try to get the run param
{
//
//
if (fRun == run)
return;
- fRun = run;
+ fRun = run;
Update();
}
void AliTPCcalibDB::Update(){
- //
- AliCDBEntry * entry=0;
+ //
+ AliCDBEntry * entry=0;
Bool_t cdbCache = AliCDBManager::Instance()->GetCacheFlag(); // save cache status
AliCDBManager::Instance()->SetCacheFlag(kTRUE); // activate CDB cache
fPadGainFactor = (AliTPCCalPad*)entry->GetObject();
}
//
+ entry = GetCDBEntry("TPC/Calib/TimeGain");
+ if (entry){
+ //if (fTimeGainSplines) delete fTimeGainSplines;
+ entry->SetOwner(kTRUE);
+ fTimeGainSplines = (TObjArray*)entry->GetObject();
+ }
+ //
entry = GetCDBEntry("TPC/Calib/GainFactorDedx");
if (entry){
entry->SetOwner(kTRUE);
-void AliTPCcalibDB::GetRunInformations( Int_t run){
+
+
+void AliTPCcalibDB::UpdateRunInformations( Int_t run, Bool_t force){
//
// - > Don't use it for reconstruction - Only for Calibration studies
//
fVoltageArray.Expand(run*2+1);
fTemperatureArray.Expand(run*2+1);
fVdriftArray.Expand(run*2+1);
+ fDriftCorrectionArray.Expand(run*2+1);
+ fTimeGainSplinesArray.Expand(run*2+1);
}
- if (fRunList[run]>0) return;
+ if (fRunList[run]>0 &&force==kFALSE) return;
+ //
entry = AliCDBManager::Instance()->Get("GRP/GRP/Data",run);
if (entry) {
AliGRPObject * grpRun = dynamic_cast<AliGRPObject*>(entry->GetObject());
fGRPArray.AddAt(grpRun,run);
}
entry = AliCDBManager::Instance()->Get("TPC/Calib/Goofie",run);
- if (entry) fGoofieArray.AddAt(entry->GetObject(),run);
+ if (entry){
+ fGoofieArray.AddAt(entry->GetObject(),run);
+ }
//
entry = AliCDBManager::Instance()->Get("TPC/Calib/HighVoltage",run);
- if (entry) fVoltageArray.AddAt(entry->GetObject(),run);
+ if (entry) {
+ fVoltageArray.AddAt(entry->GetObject(),run);
+ }
+ //
+ entry = AliCDBManager::Instance()->Get("TPC/Calib/TimeGain",run);
+ if (entry) {
+ fTimeGainSplinesArray.AddAt(entry->GetObject(),run);
+ }
+ //
+ entry = AliCDBManager::Instance()->Get("TPC/Calib/TimeDrift",run);
+ if (entry) {
+ fDriftCorrectionArray.AddAt(entry->GetObject(),run);
+ }
//
entry = AliCDBManager::Instance()->Get("TPC/Calib/Temperature",run);
- if (entry) fTemperatureArray.AddAt(entry->GetObject(),run);
+ if (entry) {
+ fTemperatureArray.AddAt(entry->GetObject(),run);
+ }
fRunList[run]=1; // sign as used
AliDCSSensor * press = GetPressureSensor(run,0);
//
AliGRPObject * grpRun = dynamic_cast<AliGRPObject *>((Instance()->fGRPArray).At(run));
if (!grpRun) {
- Instance()->GetRunInformations(run);
+ Instance()->UpdateRunInformations(run);
grpRun = dynamic_cast<AliGRPObject *>(Instance()->fGRPArray.At(run));
if (!grpRun) return 0;
}
//
TMap * grpRun = dynamic_cast<TMap *>((Instance()->fGRPMaps).At(run));
if (!grpRun) {
- Instance()->GetRunInformations(run);
+ Instance()->UpdateRunInformations(run);
grpRun = dynamic_cast<TMap *>(Instance()->fGRPMaps.At(run));
if (!grpRun) return 0;
}
//
AliGRPObject * grpRun = dynamic_cast<AliGRPObject *>(fGRPArray.At(run));
if (!grpRun) {
- GetRunInformations(run);
+ UpdateRunInformations(run);
grpRun = dynamic_cast<AliGRPObject *>(fGRPArray.At(run));
if (!grpRun) return 0;
}
//
AliTPCSensorTempArray * tempArray = (AliTPCSensorTempArray *)fTemperatureArray.At(run);
if (!tempArray) {
- GetRunInformations(run);
+ UpdateRunInformations(run);
tempArray = (AliTPCSensorTempArray *)fTemperatureArray.At(run);
}
return tempArray;
}
-AliDCSSensorArray * AliTPCcalibDB::GetGoofieSensors(Int_t run){
+
+TObjArray * AliTPCcalibDB::GetTimeGainSplinesRun(Int_t run){
//
// Get temperature sensor array
//
- AliDCSSensorArray * goofieArray = (AliDCSSensorArray *)fGoofieArray.At(run);
- if (!goofieArray) {
- GetRunInformations(run);
- goofieArray = (AliDCSSensorArray *)fGoofieArray.At(run);
+ TObjArray * gainSplines = (TObjArray *)fTimeGainSplinesArray.At(run);
+ if (!gainSplines) {
+ UpdateRunInformations(run);
+ gainSplines = (TObjArray *)fTimeGainSplinesArray.At(run);
}
- return goofieArray;
+ return gainSplines;
}
AliDCSSensorArray * AliTPCcalibDB::GetVoltageSensors(Int_t run){
//
AliDCSSensorArray * voltageArray = (AliDCSSensorArray *)fVoltageArray.At(run);
if (!voltageArray) {
- GetRunInformations(run);
+ UpdateRunInformations(run);
voltageArray = (AliDCSSensorArray *)fVoltageArray.At(run);
}
return voltageArray;
}
+AliDCSSensorArray * AliTPCcalibDB::GetGoofieSensors(Int_t run){
+ //
+ // Get temperature sensor array
+ //
+ AliDCSSensorArray * goofieArray = (AliDCSSensorArray *)fGoofieArray.At(run);
+ if (!goofieArray) {
+ UpdateRunInformations(run);
+ goofieArray = (AliDCSSensorArray *)fGoofieArray.At(run);
+ }
+ return goofieArray;
+}
+
+
+
AliTPCCalibVdrift * AliTPCcalibDB::GetVdrift(Int_t run){
//
// Get the interface to the the vdrift
//
AliTPCCalibVdrift * vdrift = (AliTPCCalibVdrift*)fVdriftArray.At(run);
if (!vdrift) {
- GetRunInformations(run);
+ UpdateRunInformations(run);
vdrift= (AliTPCCalibVdrift*)fVdriftArray.At(run);
}
return vdrift;