ROOT logo
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 *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();

}
 CheckCalibStatus.C:1
 CheckCalibStatus.C:2
 CheckCalibStatus.C:3
 CheckCalibStatus.C:4
 CheckCalibStatus.C:5
 CheckCalibStatus.C:6
 CheckCalibStatus.C:7
 CheckCalibStatus.C:8
 CheckCalibStatus.C:9
 CheckCalibStatus.C:10
 CheckCalibStatus.C:11
 CheckCalibStatus.C:12
 CheckCalibStatus.C:13
 CheckCalibStatus.C:14
 CheckCalibStatus.C:15
 CheckCalibStatus.C:16
 CheckCalibStatus.C:17
 CheckCalibStatus.C:18
 CheckCalibStatus.C:19
 CheckCalibStatus.C:20
 CheckCalibStatus.C:21
 CheckCalibStatus.C:22
 CheckCalibStatus.C:23
 CheckCalibStatus.C:24
 CheckCalibStatus.C:25
 CheckCalibStatus.C:26
 CheckCalibStatus.C:27
 CheckCalibStatus.C:28
 CheckCalibStatus.C:29
 CheckCalibStatus.C:30
 CheckCalibStatus.C:31
 CheckCalibStatus.C:32
 CheckCalibStatus.C:33
 CheckCalibStatus.C:34
 CheckCalibStatus.C:35
 CheckCalibStatus.C:36
 CheckCalibStatus.C:37
 CheckCalibStatus.C:38
 CheckCalibStatus.C:39
 CheckCalibStatus.C:40
 CheckCalibStatus.C:41
 CheckCalibStatus.C:42
 CheckCalibStatus.C:43
 CheckCalibStatus.C:44
 CheckCalibStatus.C:45
 CheckCalibStatus.C:46
 CheckCalibStatus.C:47
 CheckCalibStatus.C:48
 CheckCalibStatus.C:49
 CheckCalibStatus.C:50
 CheckCalibStatus.C:51
 CheckCalibStatus.C:52
 CheckCalibStatus.C:53
 CheckCalibStatus.C:54
 CheckCalibStatus.C:55
 CheckCalibStatus.C:56
 CheckCalibStatus.C:57
 CheckCalibStatus.C:58
 CheckCalibStatus.C:59
 CheckCalibStatus.C:60
 CheckCalibStatus.C:61
 CheckCalibStatus.C:62
 CheckCalibStatus.C:63
 CheckCalibStatus.C:64
 CheckCalibStatus.C:65
 CheckCalibStatus.C:66
 CheckCalibStatus.C:67
 CheckCalibStatus.C:68
 CheckCalibStatus.C:69
 CheckCalibStatus.C:70
 CheckCalibStatus.C:71
 CheckCalibStatus.C:72
 CheckCalibStatus.C:73
 CheckCalibStatus.C:74
 CheckCalibStatus.C:75
 CheckCalibStatus.C:76
 CheckCalibStatus.C:77
 CheckCalibStatus.C:78
 CheckCalibStatus.C:79
 CheckCalibStatus.C:80