]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - T0/AliT0CalibOffsetChannelsTask.cxx
add new histogram with mass vs long axis for 4 energy bins
[u/mrichter/AliRoot.git] / T0 / AliT0CalibOffsetChannelsTask.cxx
index 981158e22bb0c2666b5371c4931accde4e42aaf3..3b36281764fa3be440e7b4562c11632da8bdd549 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
@@ -73,10 +80,11 @@ AliT0CalibOffsetChannelsTask::~AliT0CalibOffsetChannelsTask()
   delete fTzeroORC;\r
   delete fResolution;\r
   delete fTzeroORAplusORC;\r
-  for (Int_t i=0; i<24; i++) {\r
-    delete  fTimeDiff[i];\r
-    delete  fCFD[i];\r
+  for( Int_t  ip=0; ip < 24; ip++){\r
+    delete fTimeDiff[ip];\r
+    delete fCFD[ip];\r
   }\r
+  \r
   delete fTzeroObject;\r
 }\r
 \r
@@ -105,15 +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
+    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",400,-4000,4000);   //or A plus or C \r
+  fResolution      = new TH1F("fResolution","fResolution",400,-2500,2500);// 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
@@ -150,24 +162,33 @@ void AliT0CalibOffsetChannelsTask::UserExec(Option_t *)
   fRunNumber =  fESD->GetRunNumber() ; \r
 \r
   const Double32_t* time = fESD->GetT0time();\r
+  const Double32_t* amp = fESD->GetT0amplitude();\r
+  Double32_t diff;\r
   for (Int_t i=0; i<12; i++) {\r
-    if( time[i]>1 ){\r
-      fCFD[i]->Fill( time[i]);\r
-      if(  time[0]>1 ) \r
-       fTimeDiff[i]->Fill( time[i]-time[0]);\r
+    if( time[i] !=0  && amp[i]>0.1 ){\r
+      fCFD[i]->Fill( time[i] );\r
+      //  printf(" time %f ocdb %f \n", time[i],fCDBcfds[i]); \r
+      \r
+      if(  time[fRefPMTC] != 0 ) {\r
+       diff =  time[i]-time[fRefPMTC] + fCDBdelays[i];\r
+       fTimeDiff[i]->Fill( diff);\r
+      }\r
     }\r
   }\r
   for (Int_t i=12; i<24; i++) {\r
-    if( time[i]>1) {\r
+    if( time[i] != 0 && amp[i]>0.1) {\r
       fCFD[i]->Fill( time[i]);\r
-      if( time[12]>1 ) \r
-       fTimeDiff[i]->Fill( time[i]-time[12]);\r
+      //  printf(" time %f ocdb %f \n", time[i],fCDBcfds[i]); \r
+       if( time[fRefPMTA] != 0 ) {\r
+       diff =  time[i]-time[fRefPMTA] + fCDBdelays[i];\r
+       fTimeDiff[i]->Fill( diff);\r
+      }\r
     }\r
   }\r
   const Double32_t* mean = fESD->GetT0TOF();\r
-  Double32_t meanTOF = mean[0] + 100000. ;\r
-  Double32_t orA = mean[1] + 100000.;\r
-  Double32_t orC = mean[2] + 100000.;\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