]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HMPID/HplotDA.C
Change accordingly to the new pedestal file format
[u/mrichter/AliRoot.git] / HMPID / HplotDA.C
CommitLineData
48cbaaf6 1/*
20071be0 2#if !defined(__CINT__) || defined(__MAKECINT__)
48cbaaf6 3*/
20071be0 4#include <Riostream.h>
5
6#include <TSystem.h>
7#include <TCanvas.h>
8#include <TH2F.h>
9#include <TH1F.h>
10#include <TH1I.h>
11
48cbaaf6 12#include "AliHMPIDDigit.h"
20071be0 13#include "AliHMPIDRawStream.h"
48cbaaf6 14/*
20071be0 15#endif
48cbaaf6 16*/
20071be0 17
18
48cbaaf6 19TH2F hgPedMapMean[14][6];
20TH2F hgPedMapSigma[14][6];
21TH1F hgPedMapMean1D[14][6];
22TH1F hgPedMapSigma1D[14][6];
23TH2F hgPedMapMeanSigma[14][6];
20071be0 24
48cbaaf6 25TH1I hgDdlErr[14];
20071be0 26
48cbaaf6 27Int_t fgRunNum;
28//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20071be0 29void 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)
30{
48cbaaf6 31
20071be0 32
33 Int_t a2y[6]={3,2,4,1,5,0};//pady for a given address (for single DILOGIC chip)
34
35 Int_t ch=ddl/2;
48cbaaf6 36 Int_t tmp=(24-r)/8; Int_t pc=(ddl%2)? 5-2*tmp:2*tmp;
20071be0 37 Int_t px=(d-1)*8+a/6;
48cbaaf6 38 tmp=(ddl%2)?r-1:(24-r); Int_t py=6*(tmp%8)+a2y[a%6];
20071be0 39}
48cbaaf6 40//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20071be0 41void ProcPed(Int_t nDDL)
42{
43
44 if(gSystem->IsFileInIncludePath(Form("./HmpidPedDdl%02i.txt",nDDL)))
45 ifstream infile(Form("./HmpidPedDdl%02i.txt",nDDL));
46 else return;
47
48 for(Int_t ni=0;ni<6;ni++)
49 {
48cbaaf6 50 hgPedMapMean[nDDL][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);
51 hgPedMapSigma[nDDL][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);
52 hgPedMapMean1D[nDDL][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);
53 hgPedMapSigma1D[nDDL][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);
54 hgPedMapMeanSigma[nDDL][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);
20071be0 55 }
56
57 Int_t nSigCut,r,d,a,hard; Float_t mean,sigma;
58 Int_t ch=0,pc=0,px=0,py=0;
59 Int_t cnt=0;
60 Int_t runNumber=-99999;
61 Char_t tName[10];
62 Int_t ldcId;
63 Int_t timeStamp;
48cbaaf6 64 Int_t nEv,nDdlEv;
65 Int_t nBadEv;Float_t nBadEvPer;
20071be0 66 Printf("Start reading DDL: %d ...",nDDL);
67 infile>>tName>>runNumber;
68 infile>>tName>>ldcId;
69 infile>>tName>>timeStamp;
70 infile>>tName>>nEv;
48cbaaf6 71 infile>>tName>>nDdlEv;
72 infile>>tName>>nBadEv;
73 infile>>tName>>nBadEvPer;
20071be0 74 infile>>tName>>nSigCut;
48cbaaf6 75
20071be0 76 Printf("RunNumber: %d, LdcId: %d TimeStamp: %d nEv: %d",runNumber,ldcId,timeStamp,nEv);
48cbaaf6 77
20071be0 78 while(!infile.eof()){
79 infile>>dec>>r>>d>>a>>mean>>sigma>>hex>>hard;
80 Convert(nDDL,r,d,a,ch,pc,px,py);
48cbaaf6 81 hgPedMapMean[nDDL][pc].Fill(px,py,mean);
82 hgPedMapSigma[nDDL][pc].Fill(px,py,sigma);
83 hgPedMapMean1D[nDDL][pc].Fill(cnt%3840,mean);
84 hgPedMapSigma1D[nDDL][pc].Fill(cnt%3840,sigma);
85 hgPedMapMeanSigma[nDDL][pc].Fill(mean,sigma);
86 cnt++;
20071be0 87 }
88 infile.close();
89 Printf("Stop reading DDL: %d ...",nDDL);
48cbaaf6 90
91 /* fill the overall histos */
92
93 fgRunNum=runNumber;
20071be0 94 gStyle->SetPalette(1);
95
96 TCanvas *cped = new TCanvas("cped","cped",800,800); cped->Divide(2,2);
97 TCanvas *cped2 = new TCanvas("cped2","cped2",800,800); cped2->Divide(2,2);
98
99 for(Int_t npc=0;npc<6;npc++) {
48cbaaf6 100 if(hgPedMapMean[nDDL][npc].GetEntries()==0) continue;
101 cped->cd(1); hgPedMapMean[nDDL][npc].Draw("surf1");
102 cped->cd(2); hgPedMapSigma[nDDL][npc].Draw("surf1");
20071be0 103
48cbaaf6 104 cped->cd(3); hgPedMapMean[nDDL][npc].SetStats(0);hgPedMapMean[nDDL][npc].Draw("colz");
105 cped->cd(4); hgPedMapSigma[nDDL][npc].SetStats(0);hgPedMapSigma[nDDL][npc].Draw("colz");
20071be0 106 cped->SaveAs(Form("PedMap1_DDL%d_PC_%d.eps",nDDL,npc));
107 cped->SaveAs(Form("PedMap1_DDL%d_PC_%d.gif",nDDL,npc));
108 //cped->SaveAs(Form("PedMap1_DDL%d_PC_%d.pdf",nDDL,npc));
109
48cbaaf6 110 cped2->cd(1); hgPedMapMean1D[nDDL][npc].Draw();
111 cped2->cd(2); hgPedMapSigma1D[nDDL][npc].Draw();
112 cped2->cd(3); hgPedMapMeanSigma[nDDL][npc].Draw("colz");
20071be0 113 cped2->SaveAs(Form("PedMap2_DDL%d_PC_%d.eps",nDDL,npc));
114 cped2->SaveAs(Form("PedMap2_DDL%d_PC_%d.gif",nDDL,npc));
115 //cped2->SaveAs(Form("PedMap2_DDL%d_PC_%d.pdf",nDDL,npc));
116
117 }
118
119
120}//ProcPed()
121//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
122void ProcErr(Int_t nDDL)
123{
124 if(gSystem->IsFileInIncludePath(Form("./HmpidErrorsDdl%02i.txt",nDDL)))
125 ifstream infile(Form("./HmpidErrorsDdl%02i.txt",nDDL));
126 else return;
127
48cbaaf6 128 hgDdlErr[nDDL] = new TH1I(Form("hPedErr_DDL%d",nDDL),Form("DDL(%d) Decoding Errors",nDDL),AliHMPIDRawStream::kSumErr+1,-0.5,AliHMPIDRawStream::kSumErr+0.5);
20071be0 129 for(Int_t ilabel=0; ilabel< AliHMPIDRawStream::kSumErr; ilabel++) {
48cbaaf6 130 hgDdlErr[nDDL].SetStats(0);
131 hgDdlErr[nDDL].GetXaxis()->CenterLabels(kTRUE);
132 hgDdlErr[nDDL].GetXaxis()->SetBinLabel((ilabel+1),Form("%i %s",ilabel+1,AliHMPIDRawStream::GetErrName(ilabel)));
133 hgDdlErr[nDDL].SetYTitle("Error #");
134 }
135 hgDdlErr[nDDL].SetFillColor(5);
20071be0 136
137
138 Int_t runNumber=-99999;
139 Char_t tName[10];
140 Int_t ldcId;
141 Int_t timeStamp;
48cbaaf6 142 Int_t nEv,nDdlEv;
143 Int_t rerr;Int_t nBadEv;Float_t nBadEvPer;
144 Printf("Start reading Error File DDL: %d ...",nDDL);
20071be0 145 infile>>tName>>runNumber;
146 infile>>tName>>ldcId;
147 infile>>tName>>timeStamp;
48cbaaf6 148 infile>>tName>>nEv;
149 infile>>tName>>nDdlEv;
150 infile>>tName>>nBadEv;
151 infile>>tName>>nBadEvPer;
20071be0 152 Printf("RunNumber: %d, LdcId: %d TimeStamp: %d nEv: %d",runNumber,ldcId,timeStamp,nEv);
153 for(Int_t ierr=0;ierr<AliHMPIDRawStream::kSumErr;ierr++)
154 {
48cbaaf6 155 infile>>rerr;hgDdlErr[nDDL].SetBinContent(ierr+1,rerr);
20071be0 156 }
157
158
159 TCanvas *cerr = new TCanvas("cped","cped");
48cbaaf6 160 cerr.cd();
161 hgDdlErr[nDDL]->Draw();
20071be0 162 cerr->SaveAs(Form("PedError_DDL%d.eps",nDDL));
163 cerr->SaveAs(Form("PedError_DDL%d.gif",nDDL));
164
165}
166//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
48cbaaf6 167void PlotErrAllCh()
168{
169
170 TCanvas *chmpid1= new TCanvas("chmpid1","chmpid1",1024,768);
171 TPaveLabel *pl = new TPaveLabel(1,16.3,24,17.5,Form("HMPID Pedestal values Run #: %d",fgRunNum),"br");
172 pl->SetFillColor(18);
173 pl->SetTextFont(32);
174 pl->SetTextColor(49);
175 pl->Draw();
176 chmpid1->Divide(6,9);
177 chmpid1->cd(1);
178 hgPedMapMean[0][0].Draw("colz");
179
180 chmpid1->SaveAs(Form("hmpid_pedestal_run_%d.eps",fgRunNum));
181
182
183 TCanvas *chmpid3= new TCanvas("chmpid3","chmpid3",1280,960);
184 chmpid3->Divide(6,3);
185
186 /* chamber layout */
187
188 chmpid3->cd(1); hgDdlErr[12]->Draw(); chmpid3->cd(2); hgDdlErr[13]->Draw(); /* */ chmpid3->cd(3); hgDdlErr[10]->Draw(); chmpid3->cd(4); hgDdlErr[11]->Draw(); /* */ /* empty empty */
189 chmpid3->cd(7); hgDdlErr[8]->Draw(); chmpid3->cd(8); hgDdlErr[9]->Draw(); /* */ chmpid3->cd(9); hgDdlErr[6]->Draw(); chmpid3->cd(10); hgDdlErr[7]->Draw(); /* */ chmpid3->cd(11); hgDdlErr[4]->Draw(); chmpid3->cd(12); hgDdlErr[5]->Draw();
190 /* empty empty */ /* */ chmpid3->cd(15); hgDdlErr[2]->Draw(); chmpid3->cd(16); hgDdlErr[3]->Draw(); /* */ chmpid3->cd(17); hgDdlErr[0]->Draw(); chmpid3->cd(18); hgDdlErr[1]->Draw();
191
192 chmpid3->SaveAs(Form("hmpid_pedestal_run_%d_errors.eps",fgRunNum));
193 chmpid3->SaveAs(Form("hmpid_pedestal_run_%d_errors.gif",fgRunNum));
194}
195//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20071be0 196void HplotDA()
197{
198 for(Int_t i=0;i<14;i++)
199 {
200 ProcPed(i);
201 ProcErr(i);
202 }
48cbaaf6 203
204 PlotErrAllCh();
205
206
20071be0 207}
208//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++