1 // Example to check the contents of a bad channels OCDB file locally
2 // Author: Gustavo Conesa Balbastre (LPSC-Grenoble)
4 void PrintBadChannels(char * file = "$ALICE_ROOT/OCDB/EMCAL/Calib/Pedestals/Run0_999999999_v0_s0.root")
7 TFile * f = new TFile(file,"READ");
9 AliCDBEntry * cdb = (AliCDBEntry*) f->Get("AliCDBEntry");
11 AliCaloCalibPedestal * caloped = (AliCaloCalibPedestal *) cdb->GetObject();
13 TObjArray map = caloped->GetDeadMap();
15 printf("MAP entries %d\n",map.GetEntries());
17 AliEMCALGeometry * geom = AliEMCALGeometry::GetInstance("EMCAL_COMPLETE12SMV1_DCAL_8SM");
24 for(Int_t iSM = 0; iSM < geom->GetNumberOfSuperModules(); iSM ++)
31 printf(">>> SM %d <<< Entries %d \n",iSM,((TH2D*)map[iSM])->GetEntries());
33 for(Int_t i = 0; i < ((TH2D*)map[iSM])->GetNbinsX() ; i++)
35 for(Int_t j = 0; j < ((TH2D*)map[iSM])->GetNbinsY() ; j++)
37 if(((TH2D*)map[iSM])->GetBinContent(i, j)!=AliCaloCalibPedestal::kAlive)
39 Int_t id = geom->GetAbsCellIdFromCellIndexes(iSM,j,i);
40 printf("\t Bin (%d-%d) Id %d Content: %d \n",i,j,id,((TH2D*)map[iSM])->GetBinContent(i, j));
44 if(((TH2D*)map[iSM])->GetBinContent(i, j)==AliCaloCalibPedestal::kDead ) ndead++;
45 if(((TH2D*)map[iSM])->GetBinContent(i, j)==AliCaloCalibPedestal::kHot ) nhot ++;
46 if(((TH2D*)map[iSM])->GetBinContent(i, j)==AliCaloCalibPedestal::kWarning) nwarm++;
50 printf("Summary : --- dead %d --- hot %d --- warm %d --- bad %d\n",ndead,nhot,nwarm,nbad);
59 printf("All SM summary : --- dead %d --- hot %d --- warm %d --- bad %d\n",ndeadTotal,nhotTotal,nwarmTotal,nbadTotal);
61 printf("Total BAD %d\n", caloped->GetDeadTowerCount());