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
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
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
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
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