]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/CheckCalibStatus.C
fix for pid in pr task: sjena
[u/mrichter/AliRoot.git] / TOF / CheckCalibStatus.C
1 CheckCalibStatus(Int_t run)
2 {
3
4   TGrid::Connect("alien");
5   AliCDBManager *cdb = AliCDBManager::Instance();
6   cdb->SetDefaultStorage("raw://");
7   cdb->SetRun(run);
8   AliCDBEntry *cdbe = cdb->Get("TOF/Calib/Status");
9   CheckCalibStatus(cdbe);
10
11 }
12
13 CheckCalibStatus(const Char_t *fileName)
14 {
15
16   TFile *file = TFile::Open(fileName);
17   AliCDBEntry *cdbe = (AliCDBEntry *)file->Get("AliCDBEntry");
18   CheckCalibStatus(cdbe);
19 }
20
21 CheckCalibStatus(AliCDBEntry *cdbe)
22 {
23
24   if (!cdbe) {
25     printf("invalid CDB entry\n");
26     return;
27   }
28
29   AliTOFChannelOnlineStatusArray *array = (AliTOFChannelOnlineStatusArray *)cdbe->GetObject();
30
31   TH1F *hStatus = new TH1F("hStatus", "Channel status;index;status", array->GetSize(), 0., array->GetSize(););
32   TH1F *hChEnabled = new TH1F("hChEnabled", "Channel enabled;index;enabled", array->GetSize(), 0., array->GetSize(););
33   TH1F *hChNoisy = new TH1F("hChNoisy", "Channel noise flag;index;noise flag", array->GetSize(), 0., array->GetSize(););
34   TH2F *hNoiseMap = new TH2F("hNoiseMap", "Noise map;sector;strip", 72, 0., 18., 91, 0., 91.);
35   TH2F *hEnableMap = new TH2F("hEnableMap", "Enable map;sector;strip", 72, 0., 18., 91, 0., 91.);
36   TH2F *hStatusMap = new TH2F("hStatusMap", "Status map;sector;strip", 72, 0., 18., 91, 0., 91.);
37
38   AliTOFcalibHisto calib;
39   calib.LoadCalibHisto();
40   calib.LoadCalibStat(); /* temp */
41
42   Int_t sector, sectorStrip, padx, fea;
43   Float_t hitmapx, hitmapy;
44   for (Int_t i = 0; i <  array->GetSize(); i++) {
45     hStatus->SetBinContent(i + 1, array->GetStatus(i));
46     sector = calib.GetCalibMap(AliTOFcalibHisto::kSector, i);
47     sectorStrip = calib.GetCalibMap(AliTOFcalibHisto::kSectorStrip, i);
48     padx = calib.GetCalibMap(AliTOFcalibHisto::kPadX, i);
49     fea = padx / 12;
50     hitmapx = sector + ((Double_t)(3 - fea) + 0.5) / 4.;
51     hitmapy = sectorStrip;
52
53     if (array->GetHWStatus(i) == AliTOFChannelOnlineStatusArray::kTOFHWOk) 
54       hEnableMap->Fill(hitmapx, hitmapy);
55     if (calib.GetCalibStat(AliTOFcalibHisto::kStripStat, i) == 1) 
56       hStatusMap->Fill(hitmapx, hitmapy);
57     if (array->GetNoiseStatus(i) == AliTOFChannelOnlineStatusArray::kTOFNoiseBad) {
58       hChNoisy->SetBinContent(i + 1, 1);
59       hNoiseMap->Fill(hitmapx, hitmapy);
60     }
61
62     if (array->GetHWStatus(i) == AliTOFChannelOnlineStatusArray::kTOFHWOk &&
63         array->GetNoiseStatus(i) != AliTOFChannelOnlineStatusArray::kTOFNoiseBad &&
64         calib.GetCalibStat(AliTOFcalibHisto::kStripStat, i) == 1) {
65       hChEnabled->SetBinContent(i + 1, 1);
66     }
67    
68   }
69
70   TFile *fout = TFile::Open("CheckCalibStatus.root", "RECREATE");
71   hStatus->Write();
72   hChNoisy->Write();
73   hChEnabled->Write();
74   hNoiseMap->Write();
75   hEnableMap->Write();
76   hStatusMap->Write();
77   fout->Close();
78
79 }