]>
Commit | Line | Data |
---|---|---|
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 | 19 | TH2F hgPedMapMean[14][6]; |
20 | TH2F hgPedMapSigma[14][6]; | |
21 | TH1F hgPedMapMean1D[14][6]; | |
22 | TH1F hgPedMapSigma1D[14][6]; | |
23 | TH2F hgPedMapMeanSigma[14][6]; | |
20071be0 | 24 | |
48cbaaf6 | 25 | TH1I hgDdlErr[14]; |
20071be0 | 26 | |
48cbaaf6 | 27 | Int_t fgRunNum; |
28 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
20071be0 | 29 | void 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 | 41 | void 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 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | |
122 | void 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 | 167 | void 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 | 196 | void 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 | //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |