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: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