]>
Commit | Line | Data |
---|---|---|
8d024204 | 1 | #if !defined(__CINT__) || defined(__MAKECINT__) |
78018435 | 2 | #include <Riostream.h> |
8d024204 | 3 | #include <TFile.h> |
4 | #include <TH1F.h> | |
de18f32b | 5 | #include <TH2F.h> |
8d024204 | 6 | #include <TGraph.h> |
7 | #include <TStyle.h> | |
8 | #include <TLegend.h> | |
9 | #include <TLegendEntry.h> | |
de18f32b | 10 | #include <TLine.h> |
8d024204 | 11 | #include <TSystem.h> |
12 | #include <TGrid.h> | |
13 | #include <TMath.h> | |
14 | #include <TGraphErrors.h> | |
15 | #include <TCanvas.h> | |
16 | #include <TLatex.h> | |
17 | #include <TObjArray.h> | |
18 | #include "AliCDBEntry.h" | |
19 | #include "AliITSDriftSpeedArraySDD.h" | |
20 | #include "AliITSgeomTGeo.h" | |
21 | #endif | |
22 | ||
e8eba358 | 23 | /* $Id: PlotDriftSpeedSDDVsTime.C 41510 2010-06-01 09:21:24Z prino $ */ |
8d024204 | 24 | |
25 | ||
26 | // Macro to plot the drift speed vs. time from the OCDB files | |
27 | // created from INJECTOR runs (OCDB/ITS/Calib/DriftSpeedSDD) | |
28 | // Origin: F. Prino (prino@to.infn.it) | |
29 | ||
30 | void FillErrors(Float_t errSpeed[260]); | |
31 | ||
a26920b9 | 32 | void PlotDriftSpeedSDDVsTime(Int_t year=2012, Int_t firstRun=172600, |
78018435 | 33 | Int_t lastRun=999999999, |
8d024204 | 34 | Int_t anode=128){ |
8d024204 | 35 | TGrid::Connect("alien:",0,0,"t"); |
8d024204 | 36 | Float_t errSpeed[260]; |
37 | FillErrors(errSpeed); | |
63c8701c | 38 | Int_t iAn=anode; |
39 | if(anode>256) iAn=anode-256; | |
40 | ||
78018435 | 41 | TString cmd=Form("gbbox find \"/alice/data/%d/OCDB/ITS/Calib/DriftSpeedSDD\" \"Run*.root\" > runSpeedAlien.txt",year); |
42 | gSystem->Exec(cmd.Data()); | |
8d024204 | 43 | FILE* listruns=fopen("runSpeedAlien.txt","r"); |
44 | Char_t filnam[200],filnamalien[200]; | |
45 | TGraphErrors** gvdrvstime=new TGraphErrors*[520]; | |
46 | TGraphErrors** gvdrvsrun=new TGraphErrors*[520]; | |
63c8701c | 47 | TGraphErrors** gstatusinjvstime=new TGraphErrors*[520]; |
48 | TGraphErrors** gstatusinjvsrun=new TGraphErrors*[520]; | |
49 | ||
50 | ||
55d5b638 | 51 | TGraph* gGoodInjVsRun=new TGraph(0); |
52 | gGoodInjVsRun->SetName("gGoodInjVsRun"); | |
579d7449 | 53 | TGraph* gRescaledSpeedVsRun=new TGraph(0); |
54 | gRescaledSpeedVsRun->SetName("gRescaledSpeedVsRun"); | |
55d5b638 | 55 | TGraph* gAverSpeedVsRun=new TGraph(0); |
56 | gAverSpeedVsRun->SetName("gAverSpeedVsRun"); | |
57 | TGraph* gGoodInjVsTime=new TGraph(0); | |
58 | gGoodInjVsTime->SetName("gGoodInjVsTime"); | |
579d7449 | 59 | TGraph* gRescaledSpeedVsTime=new TGraph(0); |
60 | gRescaledSpeedVsTime->SetName("gRescaledSpeedVsTime"); | |
55d5b638 | 61 | TGraph* gAverSpeedVsTime=new TGraph(0); |
62 | gAverSpeedVsTime->SetName("gAverSpeedVsIime"); | |
e9ef0fc2 | 63 | |
64 | TGraph* gGoodInjVsRunL3=new TGraph(0); | |
65 | gGoodInjVsRunL3->SetName("gGoodInjVsRunL3"); | |
579d7449 | 66 | TGraph* gRescaledSpeedVsRunL3=new TGraph(0); |
67 | gRescaledSpeedVsRunL3->SetName("gRescaledSpeedVsRunL3"); | |
e9ef0fc2 | 68 | TGraph* gAverSpeedVsRunL3=new TGraph(0); |
69 | gAverSpeedVsRunL3->SetName("gAverSpeedVsRunL3"); | |
70 | TGraph* gGoodInjVsTimeL3=new TGraph(0); | |
71 | gGoodInjVsTimeL3->SetName("gGoodInjVsTimeL3"); | |
579d7449 | 72 | TGraph* gRescaledSpeedVsTimeL3=new TGraph(0); |
73 | gRescaledSpeedVsTimeL3->SetName("gRescaledSpeedVsTimeL3"); | |
e9ef0fc2 | 74 | TGraph* gAverSpeedVsTimeL3=new TGraph(0); |
75 | gAverSpeedVsTimeL3->SetName("gAverSpeedVsIimeL3"); | |
76 | ||
77 | TGraph* gGoodInjVsRunL4=new TGraph(0); | |
78 | gGoodInjVsRunL4->SetName("gGoodInjVsRunL4"); | |
579d7449 | 79 | TGraph* gRescaledSpeedVsRunL4=new TGraph(0); |
80 | gRescaledSpeedVsRunL4->SetName("gRescaledSpeedVsRunL4"); | |
e9ef0fc2 | 81 | TGraph* gAverSpeedVsRunL4=new TGraph(0); |
82 | gAverSpeedVsRunL4->SetName("gAverSpeedVsRunL4"); | |
83 | TGraph* gGoodInjVsTimeL4=new TGraph(0); | |
84 | gGoodInjVsTimeL4->SetName("gGoodInjVsTimeL4"); | |
579d7449 | 85 | TGraph* gRescaledSpeedVsTimeL4=new TGraph(0); |
86 | gRescaledSpeedVsTimeL4->SetName("gRescaledSpeedVsTimeL4"); | |
e9ef0fc2 | 87 | TGraph* gAverSpeedVsTimeL4=new TGraph(0); |
88 | gAverSpeedVsTimeL4->SetName("gAverSpeedVsIimeL4"); | |
89 | ||
90 | TGraph* gFracGoodInjVsRun=new TGraph(0); | |
91 | gFracGoodInjVsRun->SetName("gFracGoodInjVsRun"); | |
579d7449 | 92 | TGraph* gFracRescaledSpeedVsRun=new TGraph(0); |
93 | gFracRescaledSpeedVsRun->SetName("gFracRescaledSpeedVsRun"); | |
e9ef0fc2 | 94 | TGraph* gFracAverSpeedVsRun=new TGraph(0); |
95 | gFracAverSpeedVsRun->SetName("gFracAverSpeedVsRun"); | |
96 | TGraph* gFracGoodInjVsTime=new TGraph(0); | |
97 | gFracGoodInjVsTime->SetName("gFracGoodInjVsTime"); | |
579d7449 | 98 | TGraph* gFracRescaledSpeedVsTime=new TGraph(0); |
99 | gFracRescaledSpeedVsTime->SetName("gFracRescaledSpeedVsTime"); | |
e9ef0fc2 | 100 | TGraph* gFracAverSpeedVsTime=new TGraph(0); |
101 | gFracAverSpeedVsTime->SetName("gAverSpeedVsIime"); | |
102 | ||
103 | TGraph* gFracGoodInjVsRunL3=new TGraph(0); | |
104 | gFracGoodInjVsRunL3->SetName("gFracGoodInjVsRunL3"); | |
579d7449 | 105 | TGraph* gFracRescaledSpeedVsRunL3=new TGraph(0); |
106 | gFracRescaledSpeedVsRunL3->SetName("gFracRescaledSpeedVsRunL3"); | |
e9ef0fc2 | 107 | TGraph* gFracAverSpeedVsRunL3=new TGraph(0); |
108 | gFracAverSpeedVsRunL3->SetName("gFracAverSpeedVsRunL3"); | |
109 | TGraph* gFracGoodInjVsTimeL3=new TGraph(0); | |
110 | gFracGoodInjVsTimeL3->SetName("gFracGoodInjVsTimeL3"); | |
579d7449 | 111 | TGraph* gFracRescaledSpeedVsTimeL3=new TGraph(0); |
112 | gFracRescaledSpeedVsTimeL3->SetName("gFracRescaledSpeedVsTimeL3"); | |
e9ef0fc2 | 113 | TGraph* gFracAverSpeedVsTimeL3=new TGraph(0); |
114 | gFracAverSpeedVsTimeL3->SetName("gFracAverSpeedVsIimeL3"); | |
115 | ||
116 | TGraph* gFracGoodInjVsRunL4=new TGraph(0); | |
117 | gFracGoodInjVsRunL4->SetName("gFracGoodInjVsRunL4"); | |
579d7449 | 118 | TGraph* gFracRescaledSpeedVsRunL4=new TGraph(0); |
119 | gFracRescaledSpeedVsRunL4->SetName("gFracRescaledSpeedVsRunL4"); | |
e9ef0fc2 | 120 | TGraph* gFracAverSpeedVsRunL4=new TGraph(0); |
121 | gFracAverSpeedVsRunL4->SetName("gFracAverSpeedVsRunL4"); | |
122 | TGraph* gFracGoodInjVsTimeL4=new TGraph(0); | |
123 | gFracGoodInjVsTimeL4->SetName("gFracGoodInjVsTimeL4"); | |
579d7449 | 124 | TGraph* gFracRescaledSpeedVsTimeL4=new TGraph(0); |
125 | gFracRescaledSpeedVsTimeL4->SetName("gFracRescaledSpeedVsTimeL4"); | |
e9ef0fc2 | 126 | TGraph* gFracAverSpeedVsTimeL4=new TGraph(0); |
127 | gFracAverSpeedVsTimeL4->SetName("gFracAverSpeedVsIimeL4"); | |
55d5b638 | 128 | |
8d024204 | 129 | for(Int_t iMod=0; iMod<260;iMod++){ |
63c8701c | 130 | for(Int_t iSide=0; iSide<2; iSide++){ |
131 | Int_t index=2*iMod+iSide; | |
132 | gvdrvstime[index]=new TGraphErrors(0); | |
133 | gvdrvstime[index]->SetTitle(Form("Module %d Side %d",iMod+240,iSide)); | |
134 | gvdrvstime[index]->SetName(Form("gspmod%ds%dt",iMod+240,iSide)); | |
135 | gvdrvsrun[index]=new TGraphErrors(0); | |
136 | gvdrvsrun[index]->SetTitle(Form("Module %d Side %d",iMod+240,iSide)); | |
137 | gvdrvsrun[index]->SetName(Form("gspmod%ds%dr",iMod+240,iSide)); | |
138 | gstatusinjvstime[index]=new TGraphErrors(0); | |
139 | gstatusinjvstime[index]->SetTitle(Form("Module %d Side %d",iMod+240,iSide)); | |
140 | gstatusinjvstime[index]->SetName(Form("gstinmod%ds%dt",iMod+240,iSide)); | |
141 | gstatusinjvsrun[index]=new TGraphErrors(0); | |
142 | gstatusinjvsrun[index]->SetTitle(Form("Module %d Side %d",iMod+240,iSide)); | |
143 | gstatusinjvsrun[index]->SetName(Form("gstinmod%ds%dr",iMod+240,iSide)); | |
144 | } | |
8d024204 | 145 | } |
63c8701c | 146 | |
147 | Float_t driftField=(1800-45)/291/0.012; | |
9c3758ab | 148 | Int_t nrun,nrun2,nv,ns; |
dfd1761f | 149 | UInt_t timeZero; |
4d8feb56 | 150 | if(year==2009) timeZero=1247762992; |
151 | else if(year==2010) timeZero=1262300400; | |
a26920b9 | 152 | else if(year==2011) timeZero=1293836400; // 1/1/2011 at 0:00 CEST |
153 | else timeZero=1325372400; | |
8d024204 | 154 | while(!feof(listruns)){ |
155 | fscanf(listruns,"%s\n",filnam); | |
78018435 | 156 | Char_t directory[100]; |
157 | sprintf(directory,"/alice/data/%d",year); | |
158 | if(!strstr(filnam,directory)) continue; | |
159 | sscanf(filnam,"/alice/data/%d/OCDB/ITS/Calib/DriftSpeedSDD/Run%d_%d_v%d_s%d.root",&year,&nrun,&nrun2,&nv,&ns); | |
160 | ||
161 | if(year==2009 && (nrun<85639 && nrun2> 85639)) continue;// protection for files with swapped ladders 4-5 of layer 3 | |
2420973e | 162 | if(year==2009 && (nrun>100000 && nv< 325)) continue; // protection for files with swapped ladder 0-1 of layer 4 |
78018435 | 163 | |
8d024204 | 164 | if(nrun<firstRun) continue; |
165 | if(nrun>lastRun) continue; | |
166 | sprintf(filnamalien,"alien://%s",filnam); | |
167 | printf("Open file: %s\n",filnam); | |
168 | TFile *f= TFile::Open(filnamalien); | |
e9ef0fc2 | 169 | if(f==0x0)continue; |
8d024204 | 170 | AliCDBEntry *ent=(AliCDBEntry*)f->Get("AliCDBEntry"); |
171 | TObjArray *drspSDD = (TObjArray *)ent->GetObject(); | |
172 | ||
55d5b638 | 173 | Int_t iGoodInj=0; |
579d7449 | 174 | Int_t iRescaledSpeed=0; |
55d5b638 | 175 | Int_t iAverSpeed=0; |
e9ef0fc2 | 176 | |
177 | Int_t iGoodInjL3=0; | |
579d7449 | 178 | Int_t iRescaledSpeedL3=0; |
e9ef0fc2 | 179 | Int_t iAverSpeedL3=0; |
180 | ||
181 | Int_t iGoodInjL4=0; | |
579d7449 | 182 | Int_t iRescaledSpeedL4=0; |
e9ef0fc2 | 183 | Int_t iAverSpeedL4=0; |
184 | ||
185 | Int_t totalgoodinj=520; | |
186 | Int_t totalgoodinjL3=168; | |
187 | Int_t totalgoodinjL4=352; | |
188 | ||
189 | Float_t fracGoodInj=0.; | |
190 | Float_t fracGoodInjL3=0.; | |
191 | Float_t fracGoodInjL4=0.; | |
192 | ||
579d7449 | 193 | Float_t fracRescaledSpeed=0.; |
194 | Float_t fracRescaledSpeedL3=0.; | |
195 | Float_t fracRescaledSpeedL4=0.; | |
196 | ||
e9ef0fc2 | 197 | Float_t fracAverSpeed=0.; |
198 | Float_t fracAverSpeedL3=0.; | |
199 | Float_t fracAverSpeedL4=0.; | |
55d5b638 | 200 | |
8d024204 | 201 | AliITSDriftSpeedArraySDD *vdriftarr; |
55d5b638 | 202 | AliITSDriftSpeedArraySDD *vdriftarr0; |
203 | AliITSDriftSpeedArraySDD *vdriftarr1; | |
204 | ||
63c8701c | 205 | UInt_t timest=0; |
206 | Float_t timeday=0; | |
207 | Bool_t goodTime=kFALSE; | |
208 | ||
209 | for(Int_t iHyb=0; iHyb<520;iHyb++){ | |
210 | if(!goodTime){ | |
211 | vdriftarr=(AliITSDriftSpeedArraySDD*)drspSDD->At(iHyb); | |
a26920b9 | 212 | UInt_t statusInj=vdriftarr->GetInjectorStatus(); |
63c8701c | 213 | if(statusInj>0){ |
214 | timest=vdriftarr->GetTimestamp(0); | |
215 | if(timest>0 && timest>timeZero){ | |
216 | timeday=float(timest-timeZero)/60./60./24.; | |
217 | goodTime=kTRUE; | |
218 | } | |
219 | } | |
220 | } | |
221 | } | |
222 | ||
8d024204 | 223 | for(Int_t iMod=0; iMod<260;iMod++){ |
63c8701c | 224 | |
55d5b638 | 225 | Int_t i0=2*iMod; |
226 | Int_t i1=1+2*iMod; | |
227 | vdriftarr0=(AliITSDriftSpeedArraySDD*)drspSDD->At(i0); | |
228 | vdriftarr1=(AliITSDriftSpeedArraySDD*)drspSDD->At(i1); | |
63c8701c | 229 | |
230 | ||
a26920b9 | 231 | UInt_t statusInj0=vdriftarr0->GetInjectorStatus(); |
232 | UInt_t statusInj1=vdriftarr1->GetInjectorStatus(); | |
63c8701c | 233 | Int_t npt=gstatusinjvsrun[i0]->GetN(); |
a26920b9 | 234 | gstatusinjvsrun[i0]->SetPoint(npt,(Float_t)nrun,(Float_t)statusInj0); |
235 | gstatusinjvsrun[i1]->SetPoint(npt,(Float_t)nrun,(Float_t)statusInj1); | |
63c8701c | 236 | gstatusinjvsrun[i0]->SetPointError(npt,0,0); |
237 | gstatusinjvsrun[i1]->SetPointError(npt,0,0); | |
238 | if(goodTime){ | |
579d7449 | 239 | Int_t npt2=gstatusinjvstime[i0]->GetN(); |
a26920b9 | 240 | gstatusinjvstime[i0]->SetPoint(npt2,timeday,(Float_t)statusInj0); |
241 | gstatusinjvstime[i1]->SetPoint(npt2,timeday,(Float_t)statusInj1); | |
579d7449 | 242 | gstatusinjvstime[i0]->SetPointError(npt2,0,0); |
243 | gstatusinjvstime[i1]->SetPointError(npt2,0,0); | |
63c8701c | 244 | } |
245 | ||
246 | Float_t vdrift0=vdriftarr0->GetDriftSpeed(0,iAn); | |
247 | Float_t vdrift1=vdriftarr1->GetDriftSpeed(0,iAn); | |
248 | Float_t mob=vdrift0*1.E5/driftField; | |
249 | Float_t temper=293.15*TMath::Power((mob/1350.),-1/2.4); | |
250 | if(iMod==497-240) printf("Run %s Time %d Day %f Speed=%f Temp=%f\n",filnam,timest,timeday,vdrift0,temper); | |
251 | ||
579d7449 | 252 | if(statusInj0>1){ |
e9ef0fc2 | 253 | iGoodInj++; |
254 | if(iMod<84)iGoodInjL3++; | |
255 | else iGoodInjL4++; | |
579d7449 | 256 | npt=gvdrvsrun[i0]->GetN(); |
63c8701c | 257 | gvdrvsrun[i0]->SetPoint(npt,(Float_t)nrun,vdrift0); |
258 | gvdrvsrun[i0]->SetPointError(npt,0,errSpeed[iMod]); | |
259 | if(goodTime){ | |
579d7449 | 260 | Int_t npt2=gvdrvstime[i0]->GetN(); |
261 | gvdrvstime[i0]->SetPoint(npt2,timeday,vdrift0); | |
262 | gvdrvstime[i0]->SetPointError(npt2,0,errSpeed[iMod]); | |
63c8701c | 263 | } |
579d7449 | 264 | }else if(statusInj0==1){ |
265 | iRescaledSpeed++; | |
266 | if(iMod<84)iRescaledSpeedL3++; | |
267 | else iRescaledSpeedL4++; | |
268 | }else{ | |
e9ef0fc2 | 269 | iAverSpeed++; |
270 | if(iMod<84)iAverSpeedL3++; | |
271 | else iAverSpeedL4++; | |
272 | } | |
93e3d4c8 | 273 | if(statusInj1>1){ |
e9ef0fc2 | 274 | iGoodInj++; |
275 | if(iMod<84)iGoodInjL3++; | |
276 | else iGoodInjL4++; | |
579d7449 | 277 | npt=gvdrvsrun[i1]->GetN(); |
63c8701c | 278 | gvdrvsrun[i1]->SetPoint(npt,(Float_t)nrun,vdrift1); |
279 | gvdrvsrun[i1]->SetPointError(npt,0,errSpeed[iMod]); | |
280 | if(goodTime){ | |
579d7449 | 281 | Int_t npt2=gvdrvstime[i1]->GetN(); |
282 | gvdrvstime[i1]->SetPoint(npt2,timeday,vdrift1); | |
283 | gvdrvstime[i1]->SetPointError(npt2,0,errSpeed[iMod]); | |
63c8701c | 284 | } |
579d7449 | 285 | }else if(statusInj1==1){ |
286 | iRescaledSpeed++; | |
287 | if(iMod<84)iRescaledSpeedL3++; | |
288 | else iRescaledSpeedL4++; | |
e9ef0fc2 | 289 | }else{ |
290 | iAverSpeed++; | |
291 | if(iMod<84)iAverSpeedL3++; | |
292 | else iAverSpeedL4++; | |
293 | } | |
8d024204 | 294 | } |
63c8701c | 295 | |
55d5b638 | 296 | Int_t npt=gGoodInjVsRun->GetN(); |
579d7449 | 297 | |
e9ef0fc2 | 298 | fracGoodInj=(Float_t)iGoodInj/(Float_t)totalgoodinj; |
299 | fracGoodInjL3=(Float_t)iGoodInjL3/(Float_t)totalgoodinjL3; | |
300 | fracGoodInjL4=(Float_t)iGoodInjL4/(Float_t)totalgoodinjL4; | |
301 | ||
579d7449 | 302 | fracRescaledSpeed = (Float_t)iRescaledSpeed/(Float_t)totalgoodinj; |
303 | fracRescaledSpeedL3 = (Float_t)iRescaledSpeedL3/(Float_t)totalgoodinjL3; | |
304 | fracRescaledSpeedL4 = (Float_t)iRescaledSpeedL3/(Float_t)totalgoodinjL4; | |
305 | ||
e9ef0fc2 | 306 | fracAverSpeed = (Float_t)iAverSpeed/(Float_t)totalgoodinj; |
307 | fracAverSpeedL3 = (Float_t)iAverSpeedL3/(Float_t)totalgoodinjL3; | |
308 | fracAverSpeedL4 = (Float_t)iAverSpeedL4/(Float_t)totalgoodinjL4; | |
309 | ||
55d5b638 | 310 | gGoodInjVsRun->SetPoint(npt,(Float_t)nrun,iGoodInj); |
579d7449 | 311 | gRescaledSpeedVsRun->SetPoint(npt,(Float_t)nrun,iRescaledSpeed); |
55d5b638 | 312 | gAverSpeedVsRun->SetPoint(npt,(Float_t)nrun,iAverSpeed); |
313 | ||
e9ef0fc2 | 314 | gGoodInjVsRunL3->SetPoint(npt,(Float_t)nrun,iGoodInjL3); |
579d7449 | 315 | gRescaledSpeedVsRunL3->SetPoint(npt,(Float_t)nrun,iRescaledSpeedL3); |
e9ef0fc2 | 316 | gAverSpeedVsRunL3->SetPoint(npt,(Float_t)nrun,iAverSpeedL3); |
317 | ||
318 | gGoodInjVsRunL4->SetPoint(npt,(Float_t)nrun,iGoodInjL4); | |
579d7449 | 319 | gRescaledSpeedVsRunL4->SetPoint(npt,(Float_t)nrun,iRescaledSpeedL4); |
e9ef0fc2 | 320 | gAverSpeedVsRunL4->SetPoint(npt,(Float_t)nrun,iAverSpeedL4); |
321 | ||
322 | ||
323 | gFracGoodInjVsRun->SetPoint(npt,(Float_t)nrun,(Double_t)fracGoodInj); | |
579d7449 | 324 | gFracRescaledSpeedVsRun->SetPoint(npt,(Float_t)nrun,(Double_t)fracRescaledSpeed); |
e9ef0fc2 | 325 | gFracAverSpeedVsRun->SetPoint(npt,(Float_t)nrun,(Double_t)fracAverSpeed); |
326 | ||
327 | gFracGoodInjVsRunL3->SetPoint(npt,(Float_t)nrun,(Double_t)fracGoodInjL3); | |
579d7449 | 328 | gFracRescaledSpeedVsRunL3->SetPoint(npt,(Float_t)nrun,(Double_t)fracRescaledSpeedL3); |
e9ef0fc2 | 329 | gFracAverSpeedVsRunL3->SetPoint(npt,(Float_t)nrun,(Double_t)fracAverSpeedL3); |
330 | ||
331 | gFracGoodInjVsRunL4->SetPoint(npt,(Float_t)nrun,(Double_t)fracGoodInjL4); | |
579d7449 | 332 | gFracRescaledSpeedVsRunL4->SetPoint(npt,(Float_t)nrun,(Double_t)fracRescaledSpeedL4); |
e9ef0fc2 | 333 | gFracAverSpeedVsRunL4->SetPoint(npt,(Float_t)nrun,(Double_t)fracAverSpeedL4); |
334 | ||
55d5b638 | 335 | npt=gGoodInjVsTime->GetN(); |
e9ef0fc2 | 336 | |
55d5b638 | 337 | gGoodInjVsTime->SetPoint(npt,timeday,iGoodInj); |
579d7449 | 338 | gRescaledSpeedVsTime->SetPoint(npt,timeday,iRescaledSpeed); |
55d5b638 | 339 | gAverSpeedVsTime->SetPoint(npt,timeday,iAverSpeed); |
e9ef0fc2 | 340 | |
341 | gGoodInjVsTimeL3->SetPoint(npt,timeday,iGoodInjL3); | |
579d7449 | 342 | gRescaledSpeedVsTimeL3->SetPoint(npt,timeday,iRescaledSpeedL3); |
e9ef0fc2 | 343 | gAverSpeedVsTimeL3->SetPoint(npt,timeday,iAverSpeedL3); |
344 | ||
345 | gGoodInjVsTimeL4->SetPoint(npt,timeday,iGoodInjL4); | |
579d7449 | 346 | gRescaledSpeedVsTimeL4->SetPoint(npt,timeday,iRescaledSpeedL4); |
e9ef0fc2 | 347 | gAverSpeedVsTimeL4->SetPoint(npt,timeday,iAverSpeedL4); |
348 | ||
349 | ||
350 | gFracGoodInjVsTime->SetPoint(npt,timeday,(Double_t)fracGoodInj); | |
579d7449 | 351 | gFracRescaledSpeedVsTime->SetPoint(npt,timeday,(Double_t)fracRescaledSpeed); |
e9ef0fc2 | 352 | gFracAverSpeedVsTime->SetPoint(npt,timeday,(Double_t)fracAverSpeed); |
353 | ||
354 | gFracGoodInjVsTimeL3->SetPoint(npt,timeday,(Double_t)fracGoodInjL3); | |
579d7449 | 355 | gFracRescaledSpeedVsTimeL3->SetPoint(npt,timeday,(Double_t)fracRescaledSpeedL3); |
e9ef0fc2 | 356 | gFracAverSpeedVsTimeL3->SetPoint(npt,timeday,(Double_t)fracAverSpeedL3); |
357 | ||
358 | gFracGoodInjVsTimeL4->SetPoint(npt,timeday,(Double_t)fracGoodInjL4); | |
579d7449 | 359 | gFracRescaledSpeedVsTimeL4->SetPoint(npt,timeday,(Double_t)fracRescaledSpeedL4); |
e9ef0fc2 | 360 | gFracAverSpeedVsTimeL4->SetPoint(npt,timeday,(Double_t)fracAverSpeedL4); |
361 | ||
55d5b638 | 362 | printf("Number of half-modules with drift speed from injectors = %d\n",iGoodInj); |
363 | printf("Number of half-modules with average drift speed = %d\n",iAverSpeed); | |
579d7449 | 364 | printf("Number of half-modules with drift speed from injectors L3 = %d\n",iGoodInjL3); |
365 | printf("Number of half-modules with drift speed from golden module L3 = %d\n",iRescaledSpeedL3); | |
366 | printf("Number of half-modules with drift speed from injectors L4 = %d\n",iGoodInjL4); | |
367 | printf("Number of half-modules with drift speed from golden module L4 = %d\n",iRescaledSpeedL4); | |
e9ef0fc2 | 368 | |
f6b78d45 | 369 | f->Close(); |
8d024204 | 370 | } |
371 | ||
63c8701c | 372 | Char_t filout[100]; |
373 | sprintf(filout,"DriftSpVsTime_%d.root",year); | |
374 | TFile *ofil=new TFile(filout,"recreate"); | |
375 | for(Int_t iHyb=0; iHyb<520;iHyb++){ | |
376 | gvdrvstime[iHyb]->Write(); | |
377 | gvdrvsrun[iHyb]->Write(); | |
378 | gstatusinjvstime[iHyb]->Write(); | |
379 | gstatusinjvsrun[iHyb]->Write(); | |
380 | } | |
381 | gGoodInjVsRun->Write(); | |
579d7449 | 382 | gGoodInjVsRunL3->Write(); |
383 | gGoodInjVsRunL4->Write(); | |
63c8701c | 384 | gGoodInjVsTime->Write(); |
579d7449 | 385 | gGoodInjVsTimeL3->Write(); |
386 | gGoodInjVsTimeL4->Write(); | |
63c8701c | 387 | gAverSpeedVsRun->Write(); |
579d7449 | 388 | gAverSpeedVsRunL3->Write(); |
389 | gAverSpeedVsRunL4->Write(); | |
63c8701c | 390 | gAverSpeedVsTime->Write(); |
579d7449 | 391 | gAverSpeedVsTimeL3->Write(); |
392 | gAverSpeedVsTimeL4->Write(); | |
393 | gRescaledSpeedVsRun->Write(); | |
394 | gRescaledSpeedVsRunL3->Write(); | |
395 | gRescaledSpeedVsRunL4->Write(); | |
396 | gRescaledSpeedVsTime->Write(); | |
397 | gRescaledSpeedVsTimeL3->Write(); | |
398 | gRescaledSpeedVsTimeL4->Write(); | |
63c8701c | 399 | ofil->Close(); |
400 | ||
fc179f17 | 401 | // Int_t mod1=244-240; |
a26920b9 | 402 | Int_t mod1 = 275-240; |
403 | Int_t mod2=318-240; | |
f6b78d45 | 404 | // Int_t mod2=259-240; |
78018435 | 405 | // Int_t mod2=274-240; |
a26920b9 | 406 | Int_t mod3=413-240; |
fc179f17 | 407 | // Int_t mod4=453-240; |
a26920b9 | 408 | Int_t mod4=480-240; |
78018435 | 409 | // Int_t mod4=497-240; |
8d024204 | 410 | Int_t lay1,lad1,det1; |
411 | Int_t lay2,lad2,det2; | |
412 | Int_t lay3,lad3,det3; | |
413 | Int_t lay4,lad4,det4; | |
414 | AliITSgeomTGeo::GetModuleId(mod1+240,lay1,lad1,det1); | |
415 | AliITSgeomTGeo::GetModuleId(mod2+240,lay2,lad2,det2); | |
416 | AliITSgeomTGeo::GetModuleId(mod3+240,lay3,lad3,det3); | |
417 | AliITSgeomTGeo::GetModuleId(mod4+240,lay4,lad4,det4); | |
8d024204 | 418 | |
419 | gStyle->SetOptTitle(0); | |
55d5b638 | 420 | TCanvas* c0=new TCanvas("c0","Vdrift vs. time"); |
8d024204 | 421 | c0->SetGridx(); |
422 | c0->SetGridy(); | |
63c8701c | 423 | gvdrvstime[2*mod1]->SetMarkerStyle(20); |
424 | gvdrvstime[2*mod2]->SetMarkerStyle(22); | |
425 | gvdrvstime[2*mod2]->SetMarkerColor(2); | |
426 | gvdrvstime[2*mod2]->SetLineColor(2); | |
427 | gvdrvstime[2*mod3]->SetMarkerStyle(29); | |
428 | gvdrvstime[2*mod3]->SetMarkerColor(3); | |
429 | gvdrvstime[2*mod3]->SetLineColor(3); | |
430 | gvdrvstime[2*mod4]->SetMarkerStyle(27); | |
431 | gvdrvstime[2*mod4]->SetMarkerColor(4); | |
432 | gvdrvstime[2*mod4]->SetLineColor(4); | |
433 | gvdrvstime[2*mod1]->Draw("AP"); | |
434 | gvdrvstime[2*mod1]->SetMinimum(6.3); | |
435 | gvdrvstime[2*mod1]->SetMaximum(6.75); | |
78018435 | 436 | Char_t title[100]; |
437 | if(year==2009){ | |
4d8feb56 | 438 | sprintf(title,"Time (days since July 16th 2009)"); |
78018435 | 439 | }else if (year==2010){ |
4d8feb56 | 440 | sprintf(title,"Time (days since January 1st 2010)"); |
a26920b9 | 441 | }else if (year==2011){ |
4d8feb56 | 442 | sprintf(title,"Time (days since January 1st 2011)"); |
a26920b9 | 443 | }else{ |
444 | sprintf(title,"Time (days since January 1st 2012)"); | |
78018435 | 445 | } |
63c8701c | 446 | gvdrvstime[2*mod1]->GetXaxis()->SetTitle(title); |
447 | gvdrvstime[2*mod1]->GetYaxis()->SetTitle("Drift speed (#mum/ns)"); | |
448 | gvdrvstime[2*mod2]->Draw("PSAME"); | |
449 | gvdrvstime[2*mod3]->Draw("PSAME"); | |
450 | gvdrvstime[2*mod4]->Draw("PSAME"); | |
8d024204 | 451 | TLegend* leg=new TLegend(0.6,0.7,0.89,0.89); |
452 | leg->SetBorderSize(0); | |
453 | leg->SetFillColor(0); | |
454 | leg->SetFillStyle(0); | |
63c8701c | 455 | TLegendEntry* lent=leg->AddEntry(gvdrvstime[2*mod1],Form("Lay %d Lad %d Det %d",lay1,lad1,det1),"P"); |
456 | lent=leg->AddEntry(gvdrvstime[2*mod2],Form("Lay %d Lad %d Det %d",lay2,lad2,det2),"P"); | |
8d024204 | 457 | lent->SetTextColor(2); |
63c8701c | 458 | lent=leg->AddEntry(gvdrvstime[2*mod3],Form("Lay %d Lad %d Det %d",lay3,lad3,det3),"P"); |
8d024204 | 459 | lent->SetTextColor(3); |
63c8701c | 460 | lent=leg->AddEntry(gvdrvstime[2*mod4],Form("Lay %d Lad %d Det %d",lay4,lad4,det4),"P"); |
8d024204 | 461 | lent->SetTextColor(4); |
462 | leg->Draw(); | |
463 | ||
a26920b9 | 464 | TCanvas* c0b=new TCanvas("c0b","StatusInj vs. time"); |
465 | c0->SetGridx(); | |
466 | c0->SetGridy(); | |
467 | gstatusinjvstime[2*mod1]->SetMarkerStyle(20); | |
468 | gstatusinjvstime[2*mod2]->SetMarkerStyle(22); | |
469 | gstatusinjvstime[2*mod2]->SetMarkerColor(2); | |
470 | gstatusinjvstime[2*mod2]->SetLineColor(2); | |
471 | gstatusinjvstime[2*mod3]->SetMarkerStyle(29); | |
472 | gstatusinjvstime[2*mod3]->SetMarkerColor(3); | |
473 | gstatusinjvstime[2*mod3]->SetLineColor(3); | |
474 | gstatusinjvstime[2*mod4]->SetMarkerStyle(27); | |
475 | gstatusinjvstime[2*mod4]->SetMarkerColor(4); | |
476 | gstatusinjvstime[2*mod4]->SetLineColor(4); | |
477 | gstatusinjvstime[2*mod1]->Draw("AP"); | |
478 | gvdrvstime[2*mod1]->GetXaxis()->SetTitle(title); | |
479 | gvdrvstime[2*mod1]->GetYaxis()->SetTitle("Injector Status"); | |
480 | gvdrvstime[2*mod2]->Draw("PSAME"); | |
481 | gvdrvstime[2*mod3]->Draw("PSAME"); | |
482 | gvdrvstime[2*mod4]->Draw("PSAME"); | |
483 | leg->Draw(); | |
484 | ||
485 | ||
55d5b638 | 486 | TCanvas* c1=new TCanvas("c1","Vdrift vs. run"); |
8d024204 | 487 | c1->SetGridx(); |
488 | c1->SetGridy(); | |
63c8701c | 489 | gvdrvsrun[2*mod1]->SetMarkerStyle(20); |
490 | gvdrvsrun[2*mod2]->SetMarkerStyle(22); | |
491 | gvdrvsrun[2*mod2]->SetMarkerColor(2); | |
492 | gvdrvsrun[2*mod2]->SetLineColor(2); | |
493 | gvdrvsrun[2*mod3]->SetMarkerStyle(29); | |
494 | gvdrvsrun[2*mod3]->SetMarkerColor(3); | |
495 | gvdrvsrun[2*mod3]->SetLineColor(3); | |
496 | gvdrvsrun[2*mod4]->SetMarkerStyle(27); | |
497 | gvdrvsrun[2*mod4]->SetMarkerColor(4); | |
498 | gvdrvsrun[2*mod4]->SetLineColor(4); | |
499 | gvdrvsrun[2*mod1]->Draw("AP"); | |
500 | gvdrvsrun[2*mod1]->SetMinimum(6.3); | |
501 | gvdrvsrun[2*mod1]->SetMaximum(6.75); | |
502 | ||
503 | gvdrvsrun[2*mod1]->GetXaxis()->SetTitle("Run number"); | |
504 | gvdrvsrun[2*mod1]->GetYaxis()->SetTitle("Drift speed (#mum/ns)"); | |
505 | gvdrvsrun[2*mod2]->Draw("PSAME"); | |
506 | gvdrvsrun[2*mod3]->Draw("PSAME"); | |
507 | gvdrvsrun[2*mod4]->Draw("PSAME"); | |
8d024204 | 508 | leg->Draw(); |
194bd524 | 509 | |
510 | ||
511 | TH2F* hlay3=new TH2F("hlay3","Variation of the drift speed (%) Layer 3",6,-0.5,5.5,14,-0.5,13.5); | |
512 | hlay3->GetXaxis()->SetTitle("Detector"); | |
513 | hlay3->GetYaxis()->SetTitle("Ladder"); | |
514 | hlay3->GetXaxis()->SetTickLength(0); | |
515 | hlay3->GetYaxis()->SetTickLength(0); | |
516 | hlay3->SetStats(0); | |
517 | ||
518 | TH2F* hlay4=new TH2F("hlay4","Variation of the drift speed (%) Layer 4",8,-0.5,7.5,22,-0.5,21.5); | |
519 | hlay4->GetXaxis()->SetTitle("Detector"); | |
520 | hlay4->GetYaxis()->SetTitle("Ladder"); | |
521 | hlay4->GetXaxis()->SetTickLength(0); | |
522 | hlay4->GetYaxis()->SetTickLength(0); | |
523 | hlay4->GetYaxis()->SetTitle("Ladder"); | |
524 | hlay4->SetStats(0); | |
525 | ||
526 | Double_t run1,run2,vdr1,vdr2; | |
527 | Int_t lay,lad,det; | |
528 | for(Int_t iMod=0; iMod<260; iMod++){ | |
63c8701c | 529 | Int_t lastPoint=gvdrvsrun[2*iMod]->GetN()-1; |
530 | gvdrvsrun[2*iMod]->GetPoint(lastPoint,run2,vdr2); | |
531 | gvdrvsrun[2*iMod]->GetPoint(lastPoint-1,run1,vdr1); | |
194bd524 | 532 | Float_t diff=0.; |
533 | if(vdr1>0.) diff=100*(vdr2-vdr1)/vdr1; | |
534 | AliITSgeomTGeo::GetModuleId(iMod+240,lay,lad,det); | |
535 | if(lay==3) hlay3->SetBinContent(det,lad,diff); | |
536 | if(lay==4) hlay4->SetBinContent(det,lad,diff); | |
537 | } | |
538 | TLine* lin=new TLine(0,0,0,23); | |
539 | gStyle->SetPalette(1); | |
540 | ||
a26920b9 | 541 | TCanvas *c0c=new TCanvas("c0c","Percent difference Last Run - Previous Run",900,600); |
542 | c0c->Divide(2,1); | |
543 | c0c->cd(1); | |
194bd524 | 544 | hlay3->DrawCopy("colz"); |
545 | for(Int_t i=0;i<6;i++){ | |
546 | lin->SetY1(-0.5); | |
547 | lin->SetY2(13.5); | |
548 | lin->SetX1(i+0.5); | |
549 | lin->SetX2(i+0.5); | |
550 | lin->DrawClone(); | |
551 | } | |
552 | for(Int_t i=0;i<14;i++){ | |
553 | lin->SetX1(-0.5); | |
554 | lin->SetX2(5.5); | |
555 | lin->SetY1(i+0.5); | |
556 | lin->SetY2(i+0.5); | |
557 | lin->DrawClone(); | |
558 | } | |
a26920b9 | 559 | c0c->cd(2); |
194bd524 | 560 | hlay4->DrawCopy("colz"); |
561 | for(Int_t i=0;i<8;i++){ | |
562 | lin->SetY1(-0.5); | |
563 | lin->SetY2(21.5); | |
564 | lin->SetX1(i+0.5); | |
565 | lin->SetX2(i+0.5); | |
566 | lin->DrawClone(); | |
567 | } | |
568 | for(Int_t i=0;i<22;i++){ | |
569 | lin->SetX1(-0.5); | |
570 | lin->SetX2(7.5); | |
571 | lin->SetY1(i+0.5); | |
572 | lin->SetY2(i+0.5); | |
573 | lin->DrawClone(); | |
574 | } | |
55d5b638 | 575 | |
576 | TCanvas* c4=new TCanvas("c4","GoodMod vs. run"); | |
577 | c4->SetGridx(); | |
578 | c4->SetGridy(); | |
579 | gGoodInjVsRun->SetMarkerStyle(20); | |
e9ef0fc2 | 580 | gGoodInjVsRun->SetMinimum(50.); |
581 | gGoodInjVsRun->SetMaximum(370.); | |
582 | gGoodInjVsRunL3->SetMarkerStyle(22); | |
583 | gGoodInjVsRunL3->SetMarkerColor(2); | |
584 | gGoodInjVsRunL3->SetLineColor(2); | |
585 | gGoodInjVsRunL4->SetMarkerStyle(23); | |
586 | gGoodInjVsRunL4->SetMarkerColor(4); | |
587 | gGoodInjVsRunL4->SetLineColor(4); | |
588 | gGoodInjVsRun->Draw("AP"); | |
589 | gGoodInjVsRunL3->Draw("PSAME"); | |
590 | gGoodInjVsRunL4->Draw("PSAME"); | |
55d5b638 | 591 | gGoodInjVsRun->GetXaxis()->SetTitle("Run number"); |
592 | gGoodInjVsRun->GetYaxis()->SetTitle("Half-modules with drift speed from injectors"); | |
e9ef0fc2 | 593 | TLegend* leg2=new TLegend(0.6,0.3,0.89,0.5); |
594 | leg2->SetBorderSize(0); | |
595 | leg2->SetFillColor(0); | |
596 | leg2->SetFillStyle(0); | |
597 | TLegendEntry* lent2=leg2->AddEntry(gGoodInjVsRun,"All","P"); | |
598 | lent2->SetTextColor(1); | |
599 | lent2=leg2->AddEntry(gGoodInjVsRunL3,"Layer 3 ","P"); | |
600 | lent2->SetTextColor(2); | |
601 | lent2=leg2->AddEntry(gGoodInjVsRunL4,"Layer 4","P"); | |
602 | lent2->SetTextColor(4); | |
603 | leg2->Draw(); | |
604 | ||
605 | ||
606 | TCanvas* c4bis=new TCanvas("c4bis"," Frac GoodMod vs. run"); | |
607 | c4bis->SetGridx(); | |
608 | c4bis->SetGridy(); | |
609 | gFracGoodInjVsRun->SetMarkerStyle(20); | |
610 | gFracGoodInjVsRun->SetMinimum(0.); | |
611 | gFracGoodInjVsRun->SetMaximum(0.9); | |
612 | gFracGoodInjVsRunL3->SetMarkerStyle(22); | |
613 | gFracGoodInjVsRunL3->SetMarkerColor(2); | |
614 | gFracGoodInjVsRunL3->SetLineColor(2); | |
615 | gFracGoodInjVsRunL4->SetMarkerStyle(23); | |
616 | gFracGoodInjVsRunL4->SetMarkerColor(4); | |
617 | gFracGoodInjVsRunL4->SetLineColor(4); | |
618 | gFracGoodInjVsRun->Draw("AP"); | |
619 | gFracGoodInjVsRunL3->Draw("PSAME"); | |
620 | gFracGoodInjVsRunL4->Draw("PSAME"); | |
621 | gFracGoodInjVsRun->GetXaxis()->SetTitle("Run number"); | |
622 | gFracGoodInjVsRun->GetYaxis()->SetTitle("Fraction of Half-modules with drift speed from injectors"); | |
623 | gFracGoodInjVsRun->GetYaxis()->SetTitleSize(0.03); | |
624 | gFracGoodInjVsRun->GetYaxis()->SetTitleOffset(1.5); | |
625 | leg2->Draw(); | |
194bd524 | 626 | |
579d7449 | 627 | TCanvas* c4ter=new TCanvas("c4ter","RescaledMod vs. run"); |
628 | c4ter->SetGridx(); | |
629 | c4ter->SetGridy(); | |
630 | gRescaledSpeedVsRun->SetMarkerStyle(20); | |
631 | gRescaledSpeedVsRun->SetMinimum(0.); | |
632 | gRescaledSpeedVsRun->SetMaximum(120.); | |
633 | gRescaledSpeedVsRunL3->SetMarkerStyle(22); | |
634 | gRescaledSpeedVsRunL3->SetMarkerColor(2); | |
635 | gRescaledSpeedVsRunL3->SetLineColor(2); | |
636 | gRescaledSpeedVsRunL4->SetMarkerStyle(23); | |
637 | gRescaledSpeedVsRunL4->SetMarkerColor(4); | |
638 | gRescaledSpeedVsRunL4->SetLineColor(4); | |
639 | gRescaledSpeedVsRun->Draw("AP"); | |
640 | gRescaledSpeedVsRunL3->Draw("PSAME"); | |
641 | gRescaledSpeedVsRunL4->Draw("PSAME"); | |
642 | gRescaledSpeedVsRun->GetXaxis()->SetTitle("Run number"); | |
643 | gRescaledSpeedVsRun->GetYaxis()->SetTitle("Half-modules with drift speed from golden module"); | |
644 | leg2->Draw(); | |
645 | ||
55d5b638 | 646 | TCanvas* c5=new TCanvas("c5","GoodMod vs. time"); |
647 | c5->SetGridx(); | |
648 | c5->SetGridy(); | |
649 | gGoodInjVsTime->SetMarkerStyle(20); | |
e9ef0fc2 | 650 | gGoodInjVsTime->SetMinimum(50.); |
651 | gGoodInjVsTime->SetMaximum(370.); | |
652 | gGoodInjVsTimeL3->SetMarkerStyle(22); | |
653 | gGoodInjVsTimeL3->SetMarkerColor(2); | |
654 | gGoodInjVsTimeL3->SetLineColor(2); | |
655 | gGoodInjVsTimeL4->SetMarkerStyle(23); | |
656 | gGoodInjVsTimeL4->SetMarkerColor(4); | |
657 | gGoodInjVsTimeL4->SetLineColor(4); | |
658 | gGoodInjVsTime->Draw("AP"); | |
659 | gGoodInjVsTimeL3->Draw("PSAME"); | |
660 | gGoodInjVsTimeL4->Draw("PSAME"); | |
55d5b638 | 661 | gGoodInjVsTime->GetXaxis()->SetTitle(title); |
662 | gGoodInjVsTime->GetYaxis()->SetTitle("Half-modules with drift speed from injectors"); | |
e9ef0fc2 | 663 | leg2->Draw(); |
664 | ||
665 | TCanvas* c5bis=new TCanvas("c5bis","Frac GoodMod vs. time"); | |
666 | c5bis->SetGridx(); | |
667 | c5bis->SetGridy(); | |
668 | gFracGoodInjVsTime->SetMarkerStyle(20); | |
669 | gFracGoodInjVsTime->SetMinimum(0.); | |
670 | gFracGoodInjVsTime->SetMaximum(0.9); | |
671 | gFracGoodInjVsTimeL3->SetMarkerStyle(22); | |
672 | gFracGoodInjVsTimeL3->SetMarkerColor(2); | |
673 | gFracGoodInjVsTimeL3->SetLineColor(2); | |
674 | gFracGoodInjVsTimeL4->SetMarkerStyle(23); | |
675 | gFracGoodInjVsTimeL4->SetMarkerColor(4); | |
676 | gFracGoodInjVsTimeL4->SetLineColor(4); | |
677 | gFracGoodInjVsTime->Draw("AP"); | |
678 | gFracGoodInjVsTimeL3->Draw("PSAME"); | |
679 | gFracGoodInjVsTimeL4->Draw("PSAME"); | |
680 | gFracGoodInjVsTime->GetXaxis()->SetTitle(title); | |
681 | gFracGoodInjVsTime->GetYaxis()->SetTitleSize(0.03); | |
682 | gFracGoodInjVsTime->GetYaxis()->SetTitleOffset(1.5); | |
683 | gFracGoodInjVsTime->GetYaxis()->SetTitle("Fraction of Half-modules with drift speed from injectors"); | |
684 | leg2->Draw(); | |
685 | ||
579d7449 | 686 | TCanvas* c5ter=new TCanvas("c5ter","RescaledMod vs. time"); |
687 | c5ter->SetGridx(); | |
688 | c5ter->SetGridy(); | |
689 | gRescaledSpeedVsTime->SetMarkerStyle(20); | |
690 | gRescaledSpeedVsTime->SetMinimum(0.); | |
691 | gRescaledSpeedVsTime->SetMaximum(120.); | |
692 | gRescaledSpeedVsTimeL3->SetMarkerStyle(22); | |
693 | gRescaledSpeedVsTimeL3->SetMarkerColor(2); | |
694 | gRescaledSpeedVsTimeL3->SetLineColor(2); | |
695 | gRescaledSpeedVsTimeL4->SetMarkerStyle(23); | |
696 | gRescaledSpeedVsTimeL4->SetMarkerColor(4); | |
697 | gRescaledSpeedVsTimeL4->SetLineColor(4); | |
698 | gRescaledSpeedVsTime->Draw("AP"); | |
699 | gRescaledSpeedVsTimeL3->Draw("PSAME"); | |
700 | gRescaledSpeedVsTimeL4->Draw("PSAME"); | |
701 | gRescaledSpeedVsTime->GetXaxis()->SetTitle(title); | |
702 | gRescaledSpeedVsTime->GetYaxis()->SetTitleSize(0.03); | |
703 | gRescaledSpeedVsTime->GetYaxis()->SetTitleOffset(1.5); | |
704 | gRescaledSpeedVsTime->GetYaxis()->SetTitle("Half-modules with drift speed from golden module"); | |
705 | leg2->Draw(); | |
8d024204 | 706 | } |
707 | ||
708 | void FillErrors(Float_t errSpeed[260]){ | |
709 | Float_t err[260]={ | |
710 | 0.002308,0.005120,0.004632,0.001000,0.001735, | |
711 | 0.001000,0.001000,0.002667,0.004237,0.005297, | |
712 | 0.001000,0.005460,0.005149,0.003921,0.001000, | |
713 | 0.003906,0.001000,0.004871,0.001000,0.001000, | |
714 | 0.001000,0.001000,0.002261,0.002986,0.002056, | |
715 | 0.002848,0.001000,0.001777,0.002822,0.004651, | |
716 | 0.001000,0.003551,0.006466,0.001000,0.002083, | |
717 | 0.004531,0.001000,0.002213,0.001000,0.001000, | |
718 | 0.001000,0.001000,0.001000,0.003223,0.002800, | |
719 | 0.002147,0.001000,0.003364,0.001000,0.001000, | |
720 | 0.002515,0.003229,0.002552,0.005765,0.002368, | |
721 | 0.003473,0.002363,0.001000,0.003413,0.001000, | |
722 | 0.004906,0.001000,0.004346,0.004887,0.007138, | |
723 | 0.007242,0.004289,0.003970,0.002914,0.002199, | |
724 | 0.001000,0.003483,0.002154,0.002914,0.003097, | |
725 | 0.006034,0.003101,0.001000,0.002425,0.002651, | |
726 | 0.002771,0.002409,0.002260,0.003109,0.001000, | |
727 | 0.003384,0.003374,0.002212,0.004441,0.001000, | |
728 | 0.001000,0.001000,0.003578,0.001000,0.001000, | |
729 | 0.003517,0.003590,0.001787,0.003329,0.001000, | |
730 | 0.002770,0.001000,0.004032,0.003059,0.001000, | |
731 | 0.001000,0.001000,0.001000,0.001000,0.001000, | |
732 | 0.001000,0.004556,0.001000,0.001000,0.001000, | |
733 | 0.001000,0.001000,0.001000,0.004819,0.002100, | |
734 | 0.002624,0.003784,0.003772,0.002483,0.002792, | |
735 | 0.001000,0.004713,0.003214,0.003180,0.002145, | |
736 | 0.002470,0.003078,0.001000,0.007131,0.002770, | |
737 | 0.002533,0.001000,0.004362,0.002819,0.001000, | |
738 | 0.003630,0.004215,0.002975,0.001000,0.003790, | |
739 | 0.002345,0.001000,0.003999,0.004555,0.003989, | |
740 | 0.001000,0.001000,0.001000,0.003136,0.002426, | |
741 | 0.005144,0.002844,0.002310,0.002467,0.002503, | |
742 | 0.003811,0.003440,0.004773,0.003114,0.001000, | |
743 | 0.000583,0.001000,0.001000,0.003385,0.001000, | |
744 | 0.001000,0.001000,0.001000,0.003108,0.002109, | |
745 | 0.005325,0.003750,0.002810,0.003559,0.001000, | |
746 | 0.001000,0.003262,0.003903,0.001000,0.003622, | |
747 | 0.002533,0.002121,0.003733,0.005353,0.002221, | |
748 | 0.004767,0.003267,0.004892,0.002152,0.003398, | |
749 | 0.001000,0.003146,0.001000,0.002952,0.003310, | |
750 | 0.002644,0.002573,0.001000,0.003989,0.001000, | |
751 | 0.005294,0.003095,0.003479,0.002250,0.001000, | |
752 | 0.001000,0.005221,0.001000,0.001653,0.004330, | |
753 | 0.013188,0.007375,0.003226,0.003875,0.001000, | |
754 | 0.003653,0.001000,0.002655,0.001000,0.001000, | |
755 | 0.001000,0.001000,0.004718,0.001000,0.001000, | |
756 | 0.001000,0.002780,0.003680,0.001000,0.002787, | |
757 | 0.001000,0.004617,0.001000,0.001000,0.003231, | |
758 | 0.001887,0.002090,0.003326,0.129970,0.004907, | |
759 | 0.004334,0.001000,0.001000,0.003489,0.002573, | |
760 | 0.002566,0.002982,0.001000,0.001000,0.003436, | |
761 | 0.004016,0.003736,0.001784,0.004775,0.008090}; | |
762 | for(Int_t i=0;i<260;i++) errSpeed[i]=err[i]; | |
763 | ||
764 | ||
765 | } |