ROOT logo
CheckEnabledChannels(const Char_t *runlist)
{

  ifstream is(runlist);
  Char_t buf[4096];
  Int_t run[1024];
  Int_t nrun = 0;
  while(!is.eof()) {
    is.getline(buf, 4096);
    if (is.eof()) break;
    run[nrun] = atoi(buf);
    printf("added run number %d\n", run[nrun]);
    nrun++;
  }
  printf("%d runs added\n", nrun);
  is.close();

  TH1F *hActive = new TH1F("hActive", "active channels;run;fraction", nrun, 0, nrun);
  TH1F *hReadout = new TH1F("hReadout", "good readout;run;fraction", nrun, 0, nrun);
  for (Int_t irun = 0; irun < nrun; irun++) {
    hr = CheckEnabledChannels(run[irun], kTRUE);
    ha = CheckEnabledChannels(run[irun], kFALSE);
    hReadout->SetBinContent(irun + 1, hr->Integral());
    hActive->SetBinContent(irun + 1, ha->Integral());
    hReadout->GetXaxis()->SetBinLabel(irun + 1, Form("%d", run[irun]));
    delete hr; delete ha;
  }
  
  hReadout->SetMarkerStyle(20);
  hReadout->SetMarkerColor(4);
  hActive->SetMarkerStyle(25);
  hActive->SetMarkerColor(2);
  hReadout->Sumw2();
  hActive->Sumw2();
  hReadout->Divide(hReadout, hActive, 1., 1., "B");
  hActive->Scale(1. / 152928.);
  hReadout->SetMinimum(0.);
  hReadout->SetMaximum(1.);
  hReadout->Draw("E");
  hActive->Draw("E, same");
  TLegend *l = gPad->BuildLegend();
  l->SetFillStyle(0);

}

TH1F *
CheckEnabledChannels(Int_t run, Bool_t checkROEff = kTRUE, const Char_t *dbString = "raw://")
{

  /* init */
  AliCDBManager *cdb = AliCDBManager::Instance();
  cdb->SetDefaultStorage(dbString);
  cdb->SetRun(run);
  AliTOFcalib calib;
  calib.Init();

  TH2F *hEnabledMap = new TH2F("hEnabledMap", "Enabled channel map;sector;strip", 72, 0., 18., 91, 0., 91.);
  TH1F *hEnabledFlag = new TH1F("hEnabledFlag", "Enabled channel flag;index;flag", 157248, 0., 157248.);

  AliTOFcalibHisto calibhisto;
  calibhisto.LoadCalibHisto();
  calibhisto.LoadCalibStat(); /* temp */

  Int_t sector, sectorStrip, padx, fea;
  Float_t hitmapx, hitmapy;
  /* loop over channels */
  for (Int_t ich = 0; ich < 157248; ich++) {
    if (!calib.IsChannelEnabled(ich, checkROEff)) continue;
    sector = calibhisto.GetCalibMap(AliTOFcalibHisto::kSector, ich);
    sectorStrip = calibhisto.GetCalibMap(AliTOFcalibHisto::kSectorStrip, ich);
    padx = calibhisto.GetCalibMap(AliTOFcalibHisto::kPadX, ich);
    fea = padx / 12;
    hitmapx = sector + ((Double_t)(3 - fea) + 0.5) / 4.;
    hitmapy = sectorStrip;
    hEnabledMap->Fill(hitmapx, hitmapy);
    hEnabledFlag->SetBinContent(ich + 1, 1);
  }
  
  hEnabledMap->DrawCopy("colz");
  return hEnabledFlag;

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