]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/CheckProblematic.C
handling of problematic channels
[u/mrichter/AliRoot.git] / TOF / CheckProblematic.C
diff --git a/TOF/CheckProblematic.C b/TOF/CheckProblematic.C
new file mode 100644 (file)
index 0000000..da4c958
--- /dev/null
@@ -0,0 +1,56 @@
+CheckProblematic(Int_t run, const Char_t *dbString = "raw://")
+{
+
+  TGrid::Connect("alien");
+  AliCDBManager *cdb = AliCDBManager::Instance();
+  cdb->SetDefaultStorage(dbString);
+  cdb->SetRun(run);
+  AliCDBEntry *cdbe = cdb->Get("TOF/Calib/Problematic");
+  CheckProblematic(cdbe);
+
+}
+
+CheckProblematic(const Char_t *fileName)
+{
+
+  TFile *file = TFile::Open(fileName);
+  AliCDBEntry *cdbe = (AliCDBEntry *)file->Get("AliCDBEntry");
+  CheckProblematic(cdbe);
+}
+
+CheckProblematic(AliCDBEntry *cdbe)
+{
+
+  if (!cdbe) {
+    printf("invalid CDB entry\n");
+    return;
+  }
+
+  TH1C *data = (TH1C *)cdbe->GetObject();
+
+  TH2F *hProblematicMap = new TH2F("hProblematicMap", "Problematic map;sector;strip", 72, 0., 18., 91, 0., 91.);
+
+  AliTOFcalibHisto calib;
+  calib.LoadCalibHisto();
+  calib.LoadCalibStat(); /* temp */
+
+  Int_t sector, sectorStrip, padx, fea;
+  Float_t efficiency, hitmapx, hitmapy;
+  for (Int_t i = 0; i <  data->GetNbinsX(); i++) {
+    if (data->GetBinContent(i + 1) == 0) continue;
+    sector = calib.GetCalibMap(AliTOFcalibHisto::kSector, i);
+    sectorStrip = calib.GetCalibMap(AliTOFcalibHisto::kSectorStrip, i);
+    padx = calib.GetCalibMap(AliTOFcalibHisto::kPadX, i);
+    fea = padx / 12;
+    hitmapx = sector + ((Double_t)(3 - fea) + 0.5) / 4.;
+    hitmapy = sectorStrip;
+
+    hProblematicMap->Fill(hitmapx, hitmapy);
+  }
+
+  hProblematicMap->DrawCopy("colz");
+  TFile *fout = TFile::Open("CheckProblematic.root", "RECREATE");
+  hProblematicMap->Write();
+  fout->Close();
+
+}