]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibDB.cxx
make Init methods public
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibDB.cxx
index 15cb9a447a92b1d8de1e645f94cb1e56ba96c8b0..892bf51e2f6ba50a28c7ce41184df7d7629beda2 100644 (file)
@@ -172,13 +172,16 @@ AliTPCcalibDB::AliTPCcalibDB():
   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 
 
 {
@@ -203,12 +206,15 @@ AliTPCcalibDB::AliTPCcalibDB(const AliTPCcalibDB& ):
   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 
 {
   //
@@ -269,15 +275,15 @@ void AliTPCcalibDB::SetRun(Long64_t run)
   //  
   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
@@ -290,6 +296,13 @@ void AliTPCcalibDB::Update(){
     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);
@@ -725,7 +738,9 @@ void  AliTPCcalibDB::SetExBField(Float_t bz){
 
 
 
-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
   //
@@ -738,8 +753,11 @@ void AliTPCcalibDB::GetRunInformations( Int_t run){
     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());
@@ -756,13 +774,29 @@ void AliTPCcalibDB::GetRunInformations( Int_t run){
     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);
@@ -789,7 +823,7 @@ AliGRPObject *AliTPCcalibDB::GetGRP(Int_t run){
   //
   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; 
   }
@@ -802,7 +836,7 @@ TMap *  AliTPCcalibDB::GetGRPMap(Int_t run){
   //
   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; 
   }
@@ -834,7 +868,7 @@ AliDCSSensor * AliTPCcalibDB::GetPressureSensor(Int_t run, Int_t type){
   //
   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; 
   }
@@ -849,22 +883,23 @@ AliTPCSensorTempArray * AliTPCcalibDB::GetTemperatureSensor(Int_t run){
   //
   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){
@@ -873,19 +908,33 @@ 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;