Fix for #86401 port to Release code for Pass0
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Sep 2011 20:04:16 +0000 (20:04 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 6 Sep 2011 20:04:16 +0000 (20:04 +0000)
PWG1/CalibMacros/Pass0/AddTaskT0Calib.C

index 8f79a75..c55b63f 100755 (executable)
@@ -1,3 +1,6 @@
+
+
+void    readCDB (TObject *task1);
 //_____________________________________________________________________________
 AliAnalysisTask  *AddTaskT0Calib(Int_t runNumber)
 {
@@ -20,9 +23,10 @@ AliAnalysisTask  *AddTaskT0Calib(Int_t runNumber)
   //ConfigOCDB(runNumber);
 
   // setup task
- AliT0CalibOffsetChannelsTask  *task1 = new AliT0CalibOffsetChannelsTask("CalibObjectsTrain1");
-   mgr->AddTask(task1);
-
+  AliT0CalibOffsetChannelsTask  *task1 = new AliT0CalibOffsetChannelsTask("CalibObjectsTrain1");
+  readCDB(task1);
+  mgr->AddTask(task1);
+  
   //  AliT0AnalysisTaskQA * task2 = new AliT0AnalysisTaskQA("QA task");
   //    mgr->AddTask(task2);
 
@@ -35,3 +39,47 @@ AliAnalysisTask  *AddTaskT0Calib(Int_t runNumber)
   mgr->ConnectOutput(task1,1,coutput1);
   return task1;
 }
+//_____________________________________________________________________________
+void    readCDB (TObject *task1) {
+
+  Float_t zero_timecdb[24]={0};
+  Float_t *timecdb = zero_timecdb;
+  Float_t cfdvalue[24][5];
+  Float_t zero_shiftcdb[4]={0};
+  Float_t *shiftcdb = zero_shiftcdb;
+  AliT0CalibOffsetChannelsTask *mytask = (AliT0CalibOffsetChannelsTask*)task1;
+
+  //  AliCDBManager* man = AliCDBManager::Instance();
+  //  man->SetDefaultStorage("raw://");
+  // man->SetRun(158124);
+  AliCDBEntry *entryCalib1 = man->Get("T0/Calib/TimeDelay");
+  if(!entryCalib1) {
+    AliError::(Form("Cannot find any AliCDBEntry for [Calib, TimeDelay]!"));
+    return;
+  }
+  else
+    {
+      AliT0CalibTimeEq *clb = (AliT0CalibTimeEq*)entryCalib1->GetObject();
+      timecdb = clb->GetTimeEq();
+      for(Int_t i=0; i<24; i++) 
+       for (Int_t i0=0; i0<5; i0++){
+         cfdvalue[i][i0] = clb->GetCFDvalue(i, i0);
+       }
+    }
+  for (Int_t i=0; i<24; i++) {
+    mytask->SetCFDvalue(i,cfdvalue[i][0]);
+    mytask->SetTimeEq(i,timecdb[i]);
+  } 
+
+  AliCDBEntry *entryCalib2 = man->Get("T0/Calib/TimeAdjust");
+  if(!entryCalib2) {
+     AliError(Form("Cannot find any AliCDBEntry for [Calib, TimeAdjust]!"));
+  }
+ else
+    {
+      AliT0CalibSeasonTimeShift *clb1 = (AliT0CalibSeasonTimeShift*)entryCalib2->GetObject();
+      shiftcdb = clb1->GetT0Means();
+    }
+  
+  for (Int_t i=0; i<4; i++)  mytask->SetT0Means(i,shiftcdb[i]);
+}