]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - T0/AliT0CalibOffsetChannelsTask.cxx
coverity fixes (Saehanseul Oh <saehanseul.oh@cern.ch>)
[u/mrichter/AliRoot.git] / T0 / AliT0CalibOffsetChannelsTask.cxx
index 99eefd25b80bd000348cb4af57065dd7441dd67a..34313580f197e849fb05a1d22b4581cfd2512bef 100644 (file)
@@ -27,13 +27,16 @@ ClassImp(AliT0CalibOffsetChannelsTask)
 AliT0CalibOffsetChannelsTask::AliT0CalibOffsetChannelsTask() \r
   : AliAnalysisTaskSE(),  fESD(0x0), fTzeroObject(0x0),\r
   fTzeroORA(0x0), fTzeroORC(0x0), fResolution(0x0), fTzeroORAplusORC(0x0),\r
-  fRunNumber(0)\r
+    fRunNumber(0),fRefPMTA(12), fRefPMTC(0)\r
 {\r
   // Constructor\r
 \r
   for( int ip=0; ip < 24; ip++){\r
     fTimeDiff[ip] = 0;\r
     fCFD[ip]      = 0;\r
+    fCDBdelays[ip]= 0;\r
+    fCDBcfds[ip]= 0;\r
+    if (ip<4 ) fCDBT0s[ip]= 0;\r
   }\r
 \r
   // Define input and output slots here\r
@@ -47,13 +50,17 @@ AliT0CalibOffsetChannelsTask::AliT0CalibOffsetChannelsTask()
 AliT0CalibOffsetChannelsTask::AliT0CalibOffsetChannelsTask(const char *name) \r
   : AliAnalysisTaskSE(name), fESD(0), fTzeroObject(0),\r
   fTzeroORA(0x0), fTzeroORC(0x0), fResolution(0x0), fTzeroORAplusORC(0x0),\r
-  fRunNumber(0)\r
+    fRunNumber(0),fRefPMTA(12), fRefPMTC(0)\r
 {\r
   // Constructor\r
  \r
   for( int ip=0; ip < 24; ip++){\r
     fTimeDiff[ip] = 0;\r
     fCFD[ip]      = 0;\r
+    fCDBdelays[ip]= 0;\r
+    fCDBcfds[ip]= 0;\r
+    if (ip<4 ) fCDBT0s[ip]= 0;\r
+\r
   }\r
  \r
   // Define input and output slots here\r
@@ -106,16 +113,19 @@ AliT0CalibOffsetChannelsTask::~AliT0CalibOffsetChannelsTask()
 void AliT0CalibOffsetChannelsTask::UserCreateOutputObjects()\r
 {\r
   // Create histograms\r
+  Float_t low = fCDBcfds[fRefPMTC] - 500;\r
+  Float_t high = fCDBcfds[fRefPMTA] + 500;\r
+  printf(" AliT0CalibOffsetChannelsTask::UserCreateOutputObjects ::low %f high %f \n", low, high);\r
   for (Int_t i=0; i<24; i++) {\r
-    fTimeDiff[i]   = new TH1F (Form("CFD1minCFD%d",i+1),"fTimeDiff",300, -300, 300);\r
-    fCFD[i]        = new TH1F(Form("CFD%d",i+1),"CFD",500, 2000, 3000);//6000, 7000);\r
-    // fCFD[i]        = new TH1F(Form("CFD%d",i+1),"CFD",500, -1000, 1000);//6000, 7000);\r
+    fTimeDiff[i]   = new TH1F (Form("CFD1minCFD%d",i+1),"fTimeDiff",150, -300, 300);\r
+    fCFD[i]        = new TH1F(Form("CFD%d",i+1),"CFD",250,low, high);//6000, 7000);\r
+    //    fCFD[i]        = new TH1F(Form("CFD%d",i+1),"CFD",250, -1000, 1000);//6000, 7000);\r
   }\r
 \r
-  fTzeroORAplusORC = new TH1F("fTzeroORAplusORC","ORA+ORC /2",400,-2000,2000);   //or A plus or C \r
-  fResolution      = new TH1F("fResolution","fResolution",400,-2000,2000);// or A minus or C spectrum\r
-  fTzeroORA        = new TH1F("fTzeroORA","fTzeroORA",400,-2000,2000);// or A spectrum\r
-  fTzeroORC        = new TH1F("fTzeroORC","fTzeroORC",400,-2000,2000);// or C spectrum\r
+  fTzeroORAplusORC = new TH1F("fTzeroORAplusORC","ORA+ORC /2",200,-4000,4000);   //or A plus or C \r
+  fResolution      = new TH1F("fResolution","fResolution",200,-1000,1000);// or A minus or C spectrum\r
+  fTzeroORA        = new TH1F("fTzeroORA","fTzeroORA",200,-4000,4000);// or A spectrum\r
+  fTzeroORC        = new TH1F("fTzeroORC","fTzeroORC",200,-4000,4000);// or C spectrum\r
 \r
   \r
   fTzeroObject     = new TObjArray(0);\r
@@ -143,44 +153,64 @@ void AliT0CalibOffsetChannelsTask::UserExec(Option_t *)
   // Called for each event\r
 \r
   // Post output data.\r
+\r
   fESD = dynamic_cast<AliESDEvent*>(InputEvent());\r
   if (!fESD) {\r
     printf("ERROR: fESD not available\n");\r
     return;\r
   }\r
-\r
-  fRunNumber =  fESD->GetRunNumber() ; \r
-\r
+  Int_t trigT0 = fESD->GetT0Trig();\r
+  Bool_t eq = kTRUE;\r
+  fRunNumber =  fESD->GetRunNumber() ;\r
+  if( fRunNumber<165747) eq = kFALSE;\r
+    \r
   const Double32_t* time = fESD->GetT0time();\r
-  for (Int_t i=0; i<12; i++) {\r
-    if( time[i] != 0 ){\r
-      fCFD[i]->Fill( time[i]);\r
-      if(  time[0] != 0 ) \r
-       fTimeDiff[i]->Fill( time[i]-time[0]);\r
-    }\r
-  }\r
-  for (Int_t i=12; i<24; i++) {\r
-    if( time[i] != 0) {\r
-      fCFD[i]->Fill( time[i]);\r
-      if( time[12] != 0 ) \r
-       fTimeDiff[i]->Fill( time[i]-time[12]);\r
+  const Double32_t* amp = fESD->GetT0amplitude();\r
+  \r
+  Double32_t diff;\r
+  for (Int_t i=0; i<24; i++) {\r
+    if( time[i] > 0  && amp[i]>0.1 ){\r
+      if (eq)  {\r
+       fCFD[i]->Fill( time[i] );\r
+       if(  time[fRefPMTC] > 0 && i<12)   {\r
+         diff =  time[i]-time[fRefPMTC];\r
+         fTimeDiff[i]->Fill( diff);\r
+       }\r
+       if(  time[fRefPMTA] >0  && i>11)  {\r
+         diff =  time[i]-time[fRefPMTA] ;\r
+         fTimeDiff[i]->Fill( diff);\r
+       }\r
+      } //eq=1\r
+      else  {\r
+       fCFD[i]->Fill( time[i] + fCDBdelays[i] );\r
+       if(  time[fRefPMTC] > 0 && i<12) {\r
+         diff =  time[i]-time[fRefPMTC] + fCDBdelays[i];\r
+         fTimeDiff[i]->Fill( diff);\r
+       } //C\r
+       if(  time[fRefPMTA] >0  && i>11) {\r
+         diff =  time[i]-time[fRefPMTA] + fCDBdelays[i];\r
+         fTimeDiff[i]->Fill( diff);\r
+       } //A\r
+      } //eq=0\r
     }\r
+    \r
   }\r
-  const Double32_t* mean = fESD->GetT0TOF();\r
-  Double32_t meanTOF = mean[0] ;\r
-  Double32_t orA = mean[1] ;\r
-  Double32_t orC = mean[2];\r
\r
-  if(orA<99999) fTzeroORA->Fill(orA);\r
-  if(orC<99999) fTzeroORC->Fill(orC);\r
-  if(orA<99999 && orC<99999) fResolution->Fill((orA-orC)/2.);\r
-  if(orA<99999 && orC<99999) fTzeroORAplusORC->Fill(meanTOF); \r
-\r
-  //  printf("%f   %f  %f\n",orA,orC,meanTOF);\r
+  if (trigT0>5) {\r
+    const Double32_t* mean = fESD->GetT0TOF();\r
+    Double32_t meanTOF = mean[0]  +  fCDBT0s[0] ;\r
+    Double32_t orA = mean[1]  +  fCDBT0s[1] ;\r
+    Double32_t orC = mean[2] + fCDBT0s[2] ;\r
+    \r
+    if(orA<9999) fTzeroORA->Fill(orA);\r
+    if(orC<9999) fTzeroORC->Fill(orC);\r
+    if(orA<9999 && orC<9999) fResolution->Fill((orA-orC)/2.);\r
+    if(orA<9999 && orC<9999) fTzeroORAplusORC->Fill(meanTOF); \r
+  } //if TVDC on\r
+    //  printf("%f   %f  %f\n",orA,orC,meanTOF);\r
   PostData(1, fTzeroObject);\r
-}      \r
+  }      \r
  //________________________________________________________________________\r
-void AliT0CalibOffsetChannelsTask::Terminate(Option_t *) \r
+  void AliT0CalibOffsetChannelsTask::Terminate(Option_t *) \r
 {\r
   \r
    // Called once at the end of the query\r