]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HMPID/HplotDA.C
Utility to display the pedestal and error files from DA.
[u/mrichter/AliRoot.git] / HMPID / HplotDA.C
CommitLineData
20071be0 1#if !defined(__CINT__) || defined(__MAKECINT__)
2#include <Riostream.h>
3
4#include <TSystem.h>
5#include <TCanvas.h>
6#include <TH2F.h>
7#include <TH1F.h>
8#include <TH1I.h>
9
10#include "AliHMPIDRawStream.h"
11#endif
12
13
14
15TH2F hgPedMapMean[6];
16TH2F hgPedMapSigma[6];
17TH1F hgPedMapMean1D[6];
18TH1F hgPedMapSigma1D[6];
19TH2F hgPedMapMeanSigma[6];
20TH1I hgDdlErr;
21
22//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
23void Convert(Int_t ddl,Int_t r,Int_t d,Int_t a,Int_t &ch, Int_t &pc, Int_t &px, Int_t &py)
24{
25
26 Int_t a2y[6]={3,2,4,1,5,0};//pady for a given address (for single DILOGIC chip)
27
28 Int_t ch=ddl/2;
29 Int_t tmp=(r-1)/8; Int_t pc=(ddl%2)? 5-2*tmp:2*tmp;
30 Int_t px=(d-1)*8+a/6;
31 tmp=(ddl%2)?(24-r):r-1; Int_t py=6*(tmp%8)+a2y[a%6];
32}
33
34//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
35void ProcPed(Int_t nDDL)
36{
37
38 if(gSystem->IsFileInIncludePath(Form("./HmpidPedDdl%02i.txt",nDDL)))
39 ifstream infile(Form("./HmpidPedDdl%02i.txt",nDDL));
40 else return;
41
42 for(Int_t ni=0;ni<6;ni++)
43 {
44 hgPedMapMean[ni] = new TH2F(Form("hPedMapMean_DDL%d_PC_%d" ,nDDL,ni), Form("Pedestal: Mean, DDL(0-13): %d PC(0-5): %d;padx;pady" ,nDDL,ni),80,0,80,48,0,48);
45 hgPedMapSigma[ni] = new TH2F(Form("hPedMapSigma_DDL%d_PC_%d",nDDL,ni), Form("Pedestal: Sigma, DDL(0-13): %d PC(0-5): %d;padx;pady",nDDL,ni),80,0,80,48,0,48);
46 hgPedMapMean1D[ni] = new TH1F(Form("hPedMapMean1D_DDL%d_PC_%d" ,nDDL,ni), Form("Pedestal: Mean, DDL(0-13): %d PC(0-5): %d;pad;Mean" ,nDDL,ni),3841,-0.5,3840.5);
47 hgPedMapSigma1D[ni] = new TH1F(Form("hPedMapSigma1D_DDL%d_PC_%d" ,nDDL,ni), Form("Pedestal: Sigma, DDL(0-13): %d PC(0-5): %d;pad;Sigma" ,nDDL,ni),3841,-0.5,3840.5);
48 hgPedMapMeanSigma[ni] = new TH2F(Form("hPedMapMeanSigma_DDL%d_PC_%d" ,nDDL,ni),Form("Pedestal, DDL(0-13): %d PC(0-5): %d;Mean;Sigma"),300,0,300,50,0,5);
49 }
50
51 Int_t nSigCut,r,d,a,hard; Float_t mean,sigma;
52 Int_t ch=0,pc=0,px=0,py=0;
53 Int_t cnt=0;
54 Int_t runNumber=-99999;
55 Char_t tName[10];
56 Int_t ldcId;
57 Int_t timeStamp;
58 Int_t nEv;
59 Printf("Start reading DDL: %d ...",nDDL);
60 infile>>tName>>runNumber;
61 infile>>tName>>ldcId;
62 infile>>tName>>timeStamp;
63 infile>>tName>>nEv;
64 infile>>tName>>nSigCut;
65 Printf("RunNumber: %d, LdcId: %d TimeStamp: %d nEv: %d",runNumber,ldcId,timeStamp,nEv);
66 while(!infile.eof()){
67 infile>>dec>>r>>d>>a>>mean>>sigma>>hex>>hard;
68 Convert(nDDL,r,d,a,ch,pc,px,py);
69 hgPedMapMean[pc].Fill(px,py,mean);
70 hgPedMapSigma[pc].Fill(px,py,sigma);
71 hgPedMapMean1D[pc].Fill(cnt%3840,mean);
72 hgPedMapSigma1D[pc].Fill(cnt%3840,sigma);
73 hgPedMapMeanSigma[pc].Fill(mean,sigma);
74 cnt++;
75
76 }
77 infile.close();
78 Printf("Stop reading DDL: %d ...",nDDL);
79
80 gStyle->SetPalette(1);
81
82 TCanvas *cped = new TCanvas("cped","cped",800,800); cped->Divide(2,2);
83 TCanvas *cped2 = new TCanvas("cped2","cped2",800,800); cped2->Divide(2,2);
84
85 for(Int_t npc=0;npc<6;npc++) {
86 if(hgPedMapMean[npc].GetEntries()==0) continue;
87 cped->cd(1); hgPedMapMean[npc].Draw("surf1");
88 cped->cd(2); hgPedMapSigma[npc].Draw("surf1");
89
90 cped->cd(3); hgPedMapMean[npc].SetStats(0);hgPedMapMean[npc].Draw("colz");
91 cped->cd(4); hgPedMapSigma[npc].SetStats(0);hgPedMapSigma[npc].Draw("colz");
92 cped->SaveAs(Form("PedMap1_DDL%d_PC_%d.eps",nDDL,npc));
93 cped->SaveAs(Form("PedMap1_DDL%d_PC_%d.gif",nDDL,npc));
94 //cped->SaveAs(Form("PedMap1_DDL%d_PC_%d.pdf",nDDL,npc));
95
96 cped2->cd(1); hgPedMapMean1D[npc].Draw();
97 cped2->cd(2); hgPedMapSigma1D[npc].Draw();
98 cped2->cd(3); hgPedMapMeanSigma[npc].Draw("colz");
99 cped2->SaveAs(Form("PedMap2_DDL%d_PC_%d.eps",nDDL,npc));
100 cped2->SaveAs(Form("PedMap2_DDL%d_PC_%d.gif",nDDL,npc));
101 //cped2->SaveAs(Form("PedMap2_DDL%d_PC_%d.pdf",nDDL,npc));
102
103 }
104
105
106}//ProcPed()
107//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
108void ProcErr(Int_t nDDL)
109{
110 if(gSystem->IsFileInIncludePath(Form("./HmpidErrorsDdl%02i.txt",nDDL)))
111 ifstream infile(Form("./HmpidErrorsDdl%02i.txt",nDDL));
112 else return;
113
114 hgDdlErr = new TH1I(Form("hPedErr_DDL%d",nDDL),Form("DDL(%d) Decoding Errors",nDDL),AliHMPIDRawStream::kSumErr+1,0,AliHMPIDRawStream::kSumErr);
115 for(Int_t ilabel=0; ilabel< AliHMPIDRawStream::kSumErr; ilabel++) {
116 hgDdlErr->SetStats(0);
117 hgDdlErr->GetXaxis()->CenterLabels(kTRUE);
118 hgDdlErr->GetXaxis()->SetBinLabel((ilabel+1),Form("%i %s",ilabel+1,AliHMPIDRawStream::GetErrName(ilabel)));
119 }
120 hgDdlErr->SetFillColor(5);
121
122
123 Int_t runNumber=-99999;
124 Char_t tName[10];
125 Int_t ldcId;
126 Int_t timeStamp;
127 Int_t nEv;Int_t rerr;
128 Printf("Start reading Error File DDL: %d ...",nDDL);
129 infile>>tName>>runNumber;
130 infile>>tName>>ldcId;
131 infile>>tName>>timeStamp;
132 infile>>tName>>nEv;
133 Printf("RunNumber: %d, LdcId: %d TimeStamp: %d nEv: %d",runNumber,ldcId,timeStamp,nEv);
134 for(Int_t ierr=0;ierr<AliHMPIDRawStream::kSumErr;ierr++)
135 {
136 infile>>rerr;hgDdlErr->SetBinContent(ierr+1,rerr);
137 }
138
139
140 TCanvas *cerr = new TCanvas("cped","cped");
141 cerr->cd();
142 hgDdlErr->Draw();
143 cerr->SaveAs(Form("PedError_DDL%d.eps",nDDL));
144 cerr->SaveAs(Form("PedError_DDL%d.gif",nDDL));
145
146}
147//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
148void HplotDA()
149{
150 for(Int_t i=0;i<14;i++)
151 {
152 ProcPed(i);
153 ProcErr(i);
154 }
155}
156//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++