]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFAnalysisTaskCalibPass0.cxx
- changes to the Material budget, resolution and QA code
[u/mrichter/AliRoot.git] / TOF / AliTOFAnalysisTaskCalibPass0.cxx
index d0a943d904533f7927c19d8190e78ce103a710a6..e9c9f107cc2b58448943ceda9b0422b71799cf56 100644 (file)
@@ -92,6 +92,7 @@ AliTOFAnalysisTaskCalibPass0::AliTOFAnalysisTaskCalibPass0() :
   fHistoVertexTimestamp(NULL),
   fHistoDeltatTimestamp(NULL),
   fHistoDeltazEta(NULL),
+  fHistoDeltatEta(NULL),
   fHistoDeltazCosTheta(NULL),
   fHistoAcceptedTracksEtaPt(NULL),
   fHistoMatchedTracksEtaPt(NULL)
@@ -175,6 +176,7 @@ AliTOFAnalysisTaskCalibPass0::InitRun()
   fHistoVertexTimestamp->SetTitle(Form("run: %d, startTimestamp: %u, BPTX: %d", fRunNumber, fStartTime, useBPTX));
   fHistoDeltatTimestamp->SetTitle(Form("run: %d, startTimestamp: %u, BPTX: %d", fRunNumber, fStartTime, useBPTX));
   fHistoDeltazEta->SetTitle(Form("run: %d, startTimestamp: %u, BPTX: %d", fRunNumber, fStartTime, useBPTX));
+  fHistoDeltatEta->SetTitle(Form("run: %d, startTimestamp: %u, BPTX: %d", fRunNumber, fStartTime, useBPTX));
   fHistoDeltazCosTheta->SetTitle(Form("run: %d, startTimestamp: %u, BPTX: %d", fRunNumber, fStartTime, useBPTX));
   fHistoAcceptedTracksEtaPt->SetTitle(Form("run: %d, startTimestamp: %u, BPTX: %d", fRunNumber, fStartTime, useBPTX));
   fHistoMatchedTracksEtaPt->SetTitle(Form("run: %d, startTimestamp: %u, BPTX: %d", fRunNumber, fStartTime, useBPTX));
@@ -274,6 +276,9 @@ AliTOFAnalysisTaskCalibPass0::UserCreateOutputObjects()
   fHistoDeltazEta = new TH2F("hHistoDeltazEta", "Matching residuals (longitudinal);#eta;#Deltaz (cm);", etaBins, etaMin, etaMax, deltazBins, deltazMin, deltazMax);
   fHistoList->Add(fHistoDeltazEta);
 
+  fHistoDeltatEta = new TH2F("hHistoDeltatEta", "Global time shift (T0-fill) vs #eta; #eta; t - t_{exp}^{(#pi)} (ps);", etaBins, etaMin, etaMax, deltatBins, deltatMin, deltatMax);
+  fHistoList->Add(fHistoDeltatEta);
+
   fHistoDeltazCosTheta = new TH2F("hHistoDeltazCosTheta", "Matching residuals (longitudinal);cos #theta;#Deltaz (cm);", etaBins, etaMin, etaMax, deltazBins, deltazMin, deltazMax);
   fHistoList->Add(fHistoDeltazCosTheta);
 
@@ -309,7 +314,7 @@ AliTOFAnalysisTaskCalibPass0::UserExec(Option_t *)
   /* loop over ESD tracks */
   Int_t nTracks = fESDEvent->GetNumberOfTracks();
   AliESDtrack *track;
-  Double_t eta, costheta, pt, time, timei[AliPID::kSPECIES], deltat, deltaz;
+  Double_t eta, costheta, pt, time, timei[AliPID::kSPECIESC], deltat, deltaz;
   for (Int_t itrk = 0; itrk < nTracks; itrk++) {
     /* get track */
     track = fESDEvent->GetTrack(itrk);
@@ -338,6 +343,7 @@ AliTOFAnalysisTaskCalibPass0::UserExec(Option_t *)
     /* fill histos */
     fHistoDeltatTimestamp->Fill(fElapsedTime, deltat);
     fHistoDeltazEta->Fill(eta, deltaz);
+    fHistoDeltatEta->Fill(eta, deltat);
     fHistoDeltazCosTheta->Fill(costheta, deltaz);
     
   } /* end of loop over ESD tracks */
@@ -447,6 +453,7 @@ AliTOFAnalysisTaskCalibPass0::DoProcessOutput(const Char_t *filename, AliCDBStor
   TH2F *histoVertexTimestamp = NULL;
   TH2F *histoDeltatTimestamp = NULL;
   TH2F *histoDeltazEta = NULL;
+  TH2F *histoDeltatEta = NULL;
   TH2F *histoDeltazCosTheta = NULL;
   TH2F *histoAcceptedTracksEtaPt = NULL;
   TH2F *histoMatchedTracksEtaPt = NULL;
@@ -455,6 +462,7 @@ AliTOFAnalysisTaskCalibPass0::DoProcessOutput(const Char_t *filename, AliCDBStor
     histoVertexTimestamp = (TH2F *)list->FindObject("hHistoVertexTimestamp");
     histoDeltatTimestamp = (TH2F *)list->FindObject("hHistoDeltatTimestamp");
     histoDeltazEta = (TH2F *)list->FindObject("hHistoDeltazEta");
+    histoDeltatEta = (TH2F *)list->FindObject("hHistoDeltatEta");
     histoDeltazCosTheta = (TH2F *)list->FindObject("hHistoDeltazCosTheta");
     histoAcceptedTracksEtaPt = (TH2F *)list->FindObject("hHistoAcceptedTracksEtaPt");
     histoMatchedTracksEtaPt = (TH2F *)list->FindObject("hHistoMatchedTracksEtaPt");
@@ -464,6 +472,7 @@ AliTOFAnalysisTaskCalibPass0::DoProcessOutput(const Char_t *filename, AliCDBStor
     histoVertexTimestamp = (TH2F *)file->Get("hHistoVertexTimestamp");
     histoDeltatTimestamp = (TH2F *)file->Get("hHistoDeltatTimestamp");
     histoDeltazEta = (TH2F *)file->Get("hHistoDeltazEta");
+    histoDeltatEta = (TH2F *)file->Get("hHistoDeltatEta");
     histoDeltazCosTheta = (TH2F *)file->Get("hHistoDeltazCosTheta");
     histoAcceptedTracksEtaPt = (TH2F *)file->Get("hHistoAcceptedTracksEtaPt");
     histoMatchedTracksEtaPt = (TH2F *)file->Get("hHistoMatchedTracksEtaPt");
@@ -484,6 +493,11 @@ AliTOFAnalysisTaskCalibPass0::DoProcessOutput(const Char_t *filename, AliCDBStor
     fStatus = kInputError;
     return kFALSE;
   }
+  if (!histoDeltatEta) {
+    AliError(Form("cannot get \"hHistoDeltatEta\" object from file %s", filename));
+    fStatus = kInputError;
+    return kFALSE;
+  }
   if (!histoDeltazCosTheta) {
     AliError(Form("cannot get \"hHistoDeltazCosTheta\" object from file %s", filename));
     fStatus = kInputError;
@@ -562,12 +576,14 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
   if (!ostr) {
     AliError("problems while getting run number from histogram title");
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   str = ostr->GetString();
   if (!str.BeginsWith("run:")) {
     AliError("problems while getting run number from histogram title");
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   str.Remove(0, 5);
@@ -575,6 +591,7 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
   if (runNb <= 0) {
     AliError(Form("bad run number: %d", runNb));
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   AliInfo(Form("got run number: %d", runNb));
@@ -584,6 +601,7 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
   if (!ostr) {
     AliError("problems while getting start timestamp from histogram title");
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   str = ostr->GetString();
@@ -591,6 +609,7 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
   if (!str.BeginsWith("startTimestamp:")) {
     AliError("problems while getting start timestamp from histogram title");
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   str.Remove(0, 16);
@@ -598,6 +617,7 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
   if (startTimestamp <= 0) {
     AliError(Form("bad start timestamp: %d", startTimestamp));
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   TTimeStamp ts = startTimestamp;
@@ -608,6 +628,7 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
   if (!ostr) {
     AliError("problems while getting BPTX from histogram title");
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   str = ostr->GetString();
@@ -615,12 +636,15 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
   if (!str.BeginsWith("BPTX:")) {
     AliError("problems while getting BPTX from histogram title");
     fStatus = kDataError;
+    delete strarr;
     return kFALSE;
   }
   str.Remove(0, 6);
   Bool_t useBPTX = atoi(str.Data());
   AliInfo(Form("got BPTX: %d", useBPTX));
 
+  delete strarr;
+
   /*** CALIBRATION STAGE ***/
 
   /* get fit function */
@@ -765,9 +789,9 @@ AliTOFAnalysisTaskCalibPass0::CalibrateAndStore(TH2F *histoVertexTimestamp, TH2F
     tofReso[ipoint] = timeZeroSigma[ipoint];
     t0Spread[ipoint] = vertexSigma[ipoint] / 2.99792457999999984e-02;
   }
-  UInt_t run[1] = {runNb};
+  UInt_t run[1] = {static_cast<UInt_t>(runNb)};
   UInt_t runFirstPoint[1] = {0};
-  UInt_t runLastPoint[1] = {nPoints - 1};
+  UInt_t runLastPoint[1] = {static_cast<UInt_t>(nPoints - 1)};
   
   /* create run params object */
   AliTOFRunParams obj(nPoints, 1);