From: rpreghen Date: Wed, 9 Sep 2009 10:20:57 +0000 (+0000) Subject: added CheckActiveChannels.C macro used to check active channels as declared in TOF... X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=263be2fef347ef2f59b362c80f537064cdabb4d8;p=u%2Fmrichter%2FAliRoot.git added CheckActiveChannels.C macro used to check active channels as declared in TOF OCDB entries. it fills histograms with channel status corresponding to specified run number and save on file --- diff --git a/TOF/CheckActiveChannels.C b/TOF/CheckActiveChannels.C new file mode 100644 index 00000000000..ea4c49165bc --- /dev/null +++ b/TOF/CheckActiveChannels.C @@ -0,0 +1,62 @@ +CheckActiveChannels(const Char_t *); +CheckActiveChannels(Int_t); +CheckActiveChannelsFromCDBEntry(AliCDBEntry *); + +//____________________________________________________________________ + +CheckActiveChannels(const Char_t *fileName) +{ + + TFile *file = TFile::Open(fileName); + AliCDBEntry *cdbe = (AliCDBEntry *)file->Get("AliCDBEntry"); + CheckActiveChannelsFromCDBEntry(cdbe); + +} + +//____________________________________________________________________ + +CheckActiveChannels(Int_t run) +{ + + TGrid *alien = TGrid::Connect("alien://"); + if (!alien || !alien->IsConnected()) return; + AliCDBManager *cdbm = AliCDBManager::Instance(); + cdbm->SetDefaultStorage("raw://"); + cdbm->SetRun(80015); + AliCDBEntry *cdbe = cdbm->Get("TOF/Calib/Status"); + CheckActiveChannelsFromCDBEntry(cdbe); + +} + +//____________________________________________________________________ + +CheckActiveChannelsFromCDBEntry(AliCDBEntry *cdbe) +{ + + AliTOFChannelOnlineStatusArray *array = (AliTOFChannelOnlineStatusArray *)cdbe->GetObject(); + TH1F *hStatus_hw_ok = new TH1F("hStatus_hw_ok", "HW status;index;status ok", array->GetSize(), 0., array->GetSize();); + TH1F *hStatus_pulser_ok = new TH1F("hStatus_pulser_ok", "pulser status;index;status ok", array->GetSize(), 0., array->GetSize();); + TH1F *hStatus_noise_ok = new TH1F("hStatus_noise_ok", "noise status;index;status ok", array->GetSize(), 0., array->GetSize();); + TH1F *hStatus_active = new TH1F("hStatus_active", "active status;index;status ok", array->GetSize(), 0., array->GetSize();); + Bool_t hw_ok, pulser_ok, noise_ok; + for (Int_t i = 0; i < array->GetSize(); i++) { + hw_ok = array->GetHWStatus(i) & AliTOFChannelOnlineStatusArray::kTOFHWOk; + pulser_ok = array->GetPulserStatus(i) & AliTOFChannelOnlineStatusArray::kTOFPulserOk; + noise_ok = array->GetNoiseStatus(i) & AliTOFChannelOnlineStatusArray::kTOFNoiseOk; + hStatus_hw_ok->SetBinContent(i + 1, hw_ok); + hStatus_pulser_ok->SetBinContent(i + 1, pulser_ok); + hStatus_noise_ok->SetBinContent(i + 1, noise_ok); + hStatus_active->SetBinContent(i + 1, hw_ok && pulser_ok && noise_ok); + } + printf("%d active channels\n", hStatus_active->Integral()); + + TFile *fileout = TFile::Open("ChannelStatus.root", "RECREATE"); + hStatus_hw_ok->Write(); + hStatus_pulser_ok->Write(); + hStatus_noise_ok->Write(); + hStatus_active->Write(); + fileout->Close(); + +} + +