+CheckCalibStatus(Int_t run)
+{
+
+ TGrid::Connect("alien");
+ AliCDBManager *cdb = AliCDBManager::Instance();
+ cdb->SetDefaultStorage("raw://");
+ cdb->SetRun(run);
+ AliCDBEntry *cdbe = cdb->Get("TOF/Calib/Status");
+ CheckCalibStatus(cdbe);
+
+}
+
CheckCalibStatus(const Char_t *fileName)
{
TFile *file = TFile::Open(fileName);
AliCDBEntry *cdbe = (AliCDBEntry *)file->Get("AliCDBEntry");
+ CheckCalibStatus(cdbe);
+}
+
+CheckCalibStatus(AliCDBEntry *cdbe)
+{
+
+ if (!cdbe) {
+ printf("invalid CDB entry\n");
+ return;
+ }
+
AliTOFChannelOnlineStatusArray *array = (AliTOFChannelOnlineStatusArray *)cdbe->GetObject();
- TH1F *h = new TH1F("h", "Channel status;index;status", array->GetSize(), 0., array->GetSize(););
- for (Int_t i = 0; i < array->GetSize(); i++)
- h->SetBinContent(i + 1, array->GetStatus(i));
-
- h->Draw();
+ TH1F *hStatus = new TH1F("hStatus", "Channel status;index;status", array->GetSize(), 0., array->GetSize(););
+ TH1F *hChEnabled = new TH1F("hChEnabled", "Channel enabled;index;enabled", array->GetSize(), 0., array->GetSize(););
+ TH1F *hChNoisy = new TH1F("hChNoisy", "Channel noise flag;index;noise flag", array->GetSize(), 0., array->GetSize(););
+ TH2F *hNoiseMap = new TH2F("hNoiseMap", "Noise map;sector;strip", 72, 0., 18., 91, 0., 91.);
+ TH2F *hEnableMap = new TH2F("hEnableMap", "Enable map;sector;strip", 72, 0., 18., 91, 0., 91.);
+ TH2F *hStatusMap = new TH2F("hStatusMap", "Status map;sector;strip", 72, 0., 18., 91, 0., 91.);
+
+ AliTOFcalibHisto calib;
+ calib.LoadCalibHisto();
+ calib.LoadCalibStat(); /* temp */
+
+ Int_t sector, sectorStrip, padx, fea;
+ Float_t hitmapx, hitmapy;
+ for (Int_t i = 0; i < array->GetSize(); i++) {
+ hStatus->SetBinContent(i + 1, array->GetStatus(i));
+ 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;
+
+ if (array->GetHWStatus(i) == AliTOFChannelOnlineStatusArray::kTOFHWOk)
+ hEnableMap->Fill(hitmapx, hitmapy);
+ if (calib.GetCalibStat(AliTOFcalibHisto::kStripStat, i) == 1)
+ hStatusMap->Fill(hitmapx, hitmapy);
+ if (array->GetNoiseStatus(i) == AliTOFChannelOnlineStatusArray::kTOFNoiseBad) {
+ hChNoisy->SetBinContent(i + 1, 1);
+ hNoiseMap->Fill(hitmapx, hitmapy);
+ }
+
+ if (array->GetHWStatus(i) == AliTOFChannelOnlineStatusArray::kTOFHWOk &&
+ array->GetNoiseStatus(i) != AliTOFChannelOnlineStatusArray::kTOFNoiseBad &&
+ calib.GetCalibStat(AliTOFcalibHisto::kStripStat, i) == 1) {
+ hChEnabled->SetBinContent(i + 1, 1);
+ }
+
+ }
+
+ TFile *fout = TFile::Open("CheckCalibStatus.root", "RECREATE");
+ hStatus->Write();
+ hChNoisy->Write();
+ hChEnabled->Write();
+ hNoiseMap->Write();
+ hEnableMap->Write();
+ hStatusMap->Write();
+ fout->Close();
}