]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCcalibDB.cxx
M AliTPCcalibBase.h - SetRun function
[u/mrichter/AliRoot.git] / TPC / AliTPCcalibDB.cxx
index 4de9c718f07883bac5acaf63a6846e878c0644e2..c1d95fcba7953ae138df734f7515a3ad4317454f 100644 (file)
@@ -180,6 +180,7 @@ AliTPCcalibDB::AliTPCcalibDB():
   fPadTime0(0),
   fDistortionMap(0),
   fComposedCorrection(0),
+  fComposedCorrectionArray(0),
   fPadNoise(0),
   fPedestals(0),
   fCalibRaw(0),
@@ -222,6 +223,7 @@ AliTPCcalibDB::AliTPCcalibDB(const AliTPCcalibDB& ):
   fPadTime0(0),
   fDistortionMap(0),
   fComposedCorrection(0),
+  fComposedCorrectionArray(0),
   fPadNoise(0),
   fPedestals(0),
   fCalibRaw(0),
@@ -459,7 +461,14 @@ void AliTPCcalibDB::Update(){
   if (entry){
     //entry->SetOwner(kTRUE);
     fComposedCorrection=dynamic_cast<AliTPCCorrection*>(entry->GetObject());
-    fComposedCorrection->Init();
+    if (fComposedCorrection) fComposedCorrection->Init();
+    fComposedCorrectionArray=dynamic_cast<TObjArray*>(entry->GetObject());
+    if (fComposedCorrectionArray){
+      for (Int_t i=0; i<fComposedCorrectionArray->GetEntries(); i++){
+       AliTPCCorrection* composedCorrection= dynamic_cast<AliTPCCorrection*>(fComposedCorrectionArray->At(i));
+       if (composedCorrection) composedCorrection->Init();
+      }
+    }
   }else{
     AliError("TPC - Missing calibration entry-  TPC/Calib/Correction")
   }  
@@ -1925,3 +1934,15 @@ AliTPCCalPad* AliTPCcalibDB::MakeDeadMap(Double_t notInMap, const char* nameMapp
 }
 
 
+
+AliTPCCorrection * AliTPCcalibDB::GetTPCComposedCorrection(Float_t field) const{
+  //
+  // GetComposed correction for given field setting
+  //
+  if (!fComposedCorrectionArray) return 0;
+  if (field>0.1) return (AliTPCCorrection *)fComposedCorrectionArray->At(1);
+  if (field<-0.1) return (AliTPCCorrection *)fComposedCorrectionArray->At(2);
+  return (AliTPCCorrection *)fComposedCorrectionArray->At(0);
+  
+}
+