END average err. calculatuon ----------------------------------—
14 double v_tr_sc[nDt]={0,50,100,200,300,400,500,600};
18 double v_rt_sc[nDa]={0,1,3,5};
22 TGraphErrors *gr_theta_b[nSc];
23 TGraphErrors *gr_theta_a[nSc];
24 TGraphErrors *gr_theta_r[nSc];
25 TGraphErrors *gr_events[nSc];
26 TGraphErrors *gr_theta_rms_b[nSc];
27 TGraphErrors *gr_theta_rms_a[nSc];
28 TGraphErrors *gr_theta_rms_r[nSc];
29 TGraphErrors *gr_mis_b[6][nSc];
30 TGraphErrors *gr_mis_a[6][nSc];
32 Double_t *theta_mean_b[nSc], *theta_mean_a[nSc], *theta_mean_r[nSc];
33 Double_t *theta_rms_b[nSc], *theta_rms_a[nSc], *theta_rms_r[nSc];
35 Double_t *err_theta_mean_b[nSc], *err_theta_mean_a[nSc], *err_theta_mean_r[nSc];
36 Double_t *err_theta_rms_b[nSc], *err_theta_rms_a[nSc], *err_theta_rms_r[nSc];
38 Double_t *mis_b[nSc][6], *mis_a[nSc][6];
41 for(
int iDa=0;iDa<nDa;iDa++){
43 TString resnameout= pathG+
"/MisalignConstSUM_AlignmentLimits_";
44 resnameout+=v_rt_sc[iDa];
47 resnameout+=
"SumDataSample";
48 TString resnameout_pdf = resnameout+
".pdf";
49 TString resnameout_pdf_o = resnameout_pdf+
"(";
50 TString resnameout_pdf_c = resnameout_pdf+
")";
52 for(
int iSc=0;iSc<nSc;iSc++){
54 TString resname= pathG+
"/AlignmentLimits_";
55 resname+=v_rt_sc[iDa];
58 resname+=
"constsSample";
60 TFile *
f =
new TFile(in,
"READ");
61 gr_events[iSc] = (TGraphErrors *)f->Get(
"number_ev_sum5");
63 gr_theta_b[iSc] = (TGraphErrors *)f->Get(
"th_mean_b_sum5");
64 gr_theta_a[iSc] = (TGraphErrors *)f->Get(
"th_mean_a_sum5");
65 gr_theta_r[iSc] = (TGraphErrors *)f->Get(
"th_mean_r_sum5");
66 gr_theta_rms_b[iSc] = (TGraphErrors *)f->Get(
"th_rms_b_sum5");
67 gr_theta_rms_a[iSc] = (TGraphErrors *)f->Get(
"th_rms_a_sum5");
68 gr_theta_rms_r[iSc] = (TGraphErrors *)f->Get(
"th_rms_r_sum5");
69 for(
int ialc=0;ialc<6;ialc++){
73 gr_mis_b[ialc][iSc] = (TGraphErrors *)f->Get(nameb);
77 gr_mis_a[ialc][iSc] = (TGraphErrors *)f->Get(namea);
78 mis_b[iSc][ialc] = gr_mis_b[ialc][iSc]->GetY();
79 mis_a[iSc][ialc] = gr_mis_a[ialc][iSc]->GetY();
83 events[iSc] = gr_events[iSc]->GetY();
84 err_events[iSc] = gr_events[iSc]->GetEY();
85 theta_mean_b[iSc] = gr_theta_b[iSc]->GetY();
86 err_theta_mean_b[iSc] = gr_theta_b[iSc]->GetEY();
87 theta_mean_a[iSc] = gr_theta_a[iSc]->GetY();
88 err_theta_mean_a[iSc] = gr_theta_a[iSc]->GetEY();
89 theta_mean_r[iSc] = gr_theta_r[iSc]->GetY();
90 err_theta_mean_r[iSc] = gr_theta_r[iSc]->GetEY();
91 theta_rms_b[iSc] = gr_theta_rms_b[iSc]->GetY();
92 err_theta_rms_b[iSc] = gr_theta_rms_b[iSc]->GetEY();
93 theta_rms_a[iSc] = gr_theta_rms_a[iSc]->GetY();
94 err_theta_rms_a[iSc] = gr_theta_rms_a[iSc]->GetEY();
95 theta_rms_r[iSc] = gr_theta_rms_r[iSc]->GetY();
96 err_theta_rms_r[iSc] = gr_theta_rms_r[iSc]->GetEY();
100 double av_theta_mean_b[nDt],av_theta_rms_b[nDt];
101 double av_theta_mean_a[nDt],av_theta_rms_a[nDt];
102 double av_theta_mean_r[nDt],av_theta_rms_r[nDt];
103 double av_err_theta_mean_b[nDt],av_err_theta_rms_b[nDt];
104 double av_err_theta_mean_a[nDt],av_err_theta_rms_a[nDt];
105 double av_err_theta_mean_r[nDt],av_err_theta_rms_r[nDt];
107 double avEr_theta_mean_b[nDt],avEr_theta_rms_b[nDt];
108 double avEr_theta_mean_a[nDt],avEr_theta_rms_a[nDt];
109 double avEr_theta_mean_r[nDt],avEr_theta_rms_r[nDt];
110 double av_events[nDt], av_err_events[nDt], avEr_events[nDt];
111 double av_mis_a_mean[6][nDt];
112 double av_mis_b_mean[6][nDt];
115 double avEr_mis_a_mean[6][nDt];
116 double avEr_mis_b_mean[6][nDt];
117 for(
int idt=0;idt<nDt;idt++){
118 av_theta_mean_b[idt] = 0;
119 av_theta_rms_b[idt] = 0;
120 av_theta_mean_a[idt] = 0;
121 av_theta_rms_a[idt] = 0;
122 av_theta_mean_r[idt] = 0;
123 av_theta_rms_r[idt] = 0;
124 av_err_theta_mean_b[idt] = 0;
125 av_err_theta_rms_b[idt] = 0;
126 av_err_theta_mean_a[idt] = 0;
127 av_err_theta_rms_a[idt] = 0;
128 av_err_theta_mean_r[idt] = 0;
129 av_err_theta_rms_r[idt] = 0;
131 avEr_theta_mean_b[idt] = 0;
132 avEr_theta_rms_b[idt] =0;
133 avEr_theta_mean_a[idt] = 0;
134 avEr_theta_rms_a[idt] = 0;
135 avEr_theta_mean_r[idt] = 0;
136 avEr_theta_rms_r[idt] = 0;
139 av_err_events[idt] = 0;
140 avEr_events[idt] = 0;
142 for(
int ialc=0;ialc<6;ialc++){
143 av_mis_a_mean[ialc][idt] = 0;
144 av_mis_b_mean[ialc][idt] = 0;
145 avEr_mis_a_mean[ialc][idt] = 0;
146 avEr_mis_b_mean[ialc][idt] = 0;
150 double i_nS = 1./nSc;
151 double i_nS_r = 1./(nSc-1);
153 for(
int idt=0;idt<nDt;idt++){
154 for(
int isum=0;isum<nSc;isum++){
156 av_theta_mean_b[idt]+=theta_mean_b[isum][idt];
157 av_theta_mean_a[idt]+=theta_mean_a[isum][idt];
158 av_theta_mean_r[idt]+=theta_mean_r[isum][idt];
159 av_theta_rms_b[idt]+=theta_rms_b[isum][idt];
160 av_theta_rms_a[idt]+=theta_rms_a[isum][idt];
161 av_theta_rms_r[idt]+=theta_rms_r[isum][idt];
162 av_events[idt] += events[isum][idt];
164 av_err_theta_mean_b[idt]+=err_theta_mean_b[isum][idt];
165 av_err_theta_mean_a[idt]+=err_theta_mean_a[isum][idt];
166 av_err_theta_mean_r[idt]+=err_theta_mean_r[isum][idt];
167 av_err_theta_rms_b[idt]+=err_theta_rms_b[isum][idt];
168 av_err_theta_rms_a[idt]+=err_theta_rms_a[isum][idt];
169 av_err_theta_rms_r[idt]+=err_theta_rms_r[isum][idt];
170 av_err_events[idt] += err_events[isum][idt];
172 for(
int ialc=0;ialc<6;ialc++){
173 av_mis_a_mean[ialc][idt] += mis_a[isum][ialc][idt];
174 av_mis_b_mean[ialc][idt] += mis_b[isum][ialc][idt];
177 av_theta_mean_b[idt] *=i_nS;
178 av_theta_mean_a[idt] *=i_nS;
179 av_theta_mean_r[idt] *=i_nS;
180 av_theta_rms_b[idt] *=i_nS;
181 av_theta_rms_a[idt] *=i_nS;
182 av_theta_rms_r[idt] *=i_nS;
183 av_events[idt] *=i_nS;
184 av_err_theta_mean_b[idt] *=i_nS;
185 av_err_theta_mean_a[idt] *=i_nS;
186 av_err_theta_mean_r[idt] *=i_nS;
187 av_err_theta_rms_b[idt] *=i_nS;
188 av_err_theta_rms_a[idt] *=i_nS;
189 av_err_theta_rms_r[idt] *=i_nS;
190 av_err_events[idt] *=i_nS;
191 for(
int ialc=0;ialc<6;ialc++){
192 av_mis_a_mean[ialc][idt] *= i_nS;
193 av_mis_b_mean[ialc][idt] *= i_nS;
199 for(
int idt=0;idt<nDt;idt++){
200 for(
int isum=0;isum<nSc;isum++){
201 avEr_events[idt] += (events[isum][idt]-av_events[idt])*(events[isum][idt]-av_events[idt]);
202 avEr_theta_mean_b[idt]+=(theta_mean_b[isum][idt]-av_theta_mean_b[idt])*(theta_mean_b[isum][idt]-av_theta_mean_b[idt]);
203 avEr_theta_mean_a[idt]+=(theta_mean_a[isum][idt]-av_theta_mean_a[idt])*(theta_mean_a[isum][idt]-av_theta_mean_a[idt]);
204 avEr_theta_mean_r[idt]+=(theta_mean_r[isum][idt]-av_theta_mean_r[idt])*(theta_mean_r[isum][idt]-av_theta_mean_r[idt]);
205 avEr_theta_rms_b[idt]+=(theta_rms_b[isum][idt]-av_theta_rms_b[idt])*(theta_rms_b[isum][idt]-av_theta_rms_b[idt]);
206 avEr_theta_rms_a[idt]+=(theta_rms_a[isum][idt]-av_theta_rms_a[idt])*(theta_rms_a[isum][idt]-av_theta_rms_a[idt]);
207 avEr_theta_rms_r[idt]+=(theta_rms_r[isum][idt]-av_theta_rms_r[idt])*(theta_rms_r[isum][idt]-av_theta_rms_r[idt]);
208 for(
int ialc=0;ialc<6;ialc++){
209 avEr_mis_a_mean[ialc][idt] +=(mis_a[isum][ialc][idt]-av_mis_a_mean[ialc][idt])*(mis_a[isum][ialc][idt]-av_mis_a_mean[ialc][idt]);
210 avEr_mis_b_mean[ialc][idt] +=(mis_b[isum][ialc][idt]-av_mis_b_mean[ialc][idt])*(mis_b[isum][ialc][idt]-av_mis_b_mean[ialc][idt]);
213 avEr_theta_mean_b[idt] *=i_nS_r;
214 avEr_theta_mean_a[idt] *=i_nS_r;
215 avEr_theta_mean_r[idt] *=i_nS_r;
216 avEr_theta_rms_b[idt] *=i_nS_r;
217 avEr_theta_rms_a[idt] *=i_nS_r;
218 avEr_theta_rms_r[idt] *=i_nS_r;
219 avEr_events[idt] *=i_nS_r;
220 avEr_theta_mean_b[idt] =
sqrt(avEr_theta_mean_b[idt]+av_err_theta_mean_b[idt]*av_err_theta_mean_b[idt]);
221 avEr_theta_mean_a[idt] =
sqrt(avEr_theta_mean_a[idt]+av_err_theta_mean_a[idt]*av_err_theta_mean_a[idt]);
222 avEr_theta_mean_r[idt] =
sqrt(avEr_theta_mean_r[idt]+av_err_theta_mean_r[idt]*av_err_theta_mean_r[idt]);
225 avEr_theta_rms_b[idt] =
sqrt(avEr_theta_rms_b[idt]+av_err_theta_rms_b[idt]*av_err_theta_rms_b[idt]);
226 avEr_theta_rms_a[idt] =
sqrt(avEr_theta_rms_a[idt]+av_err_theta_rms_a[idt]*av_err_theta_rms_a[idt]);
227 avEr_theta_rms_r[idt] =
sqrt(avEr_theta_rms_r[idt]+av_err_theta_rms_r[idt]*av_err_theta_rms_r[idt]);
230 avEr_events[idt] =
sqrt(avEr_events[idt]+av_err_events[idt]*av_err_events[idt]);
231 for(
int ialc=0;ialc<6;ialc++){
232 avEr_mis_a_mean[ialc][idt] *=i_nS_r;
233 avEr_mis_b_mean[ialc][idt] *=i_nS_r;
234 avEr_mis_a_mean[ialc][idt] =
sqrt(avEr_mis_a_mean[ialc][idt]);
235 avEr_mis_b_mean[ialc][idt] =
sqrt(avEr_mis_b_mean[ialc][idt]);
237 cout<<
"av_events["<<idt<<
"]="<<av_events[idt]<<
" +/- "<< avEr_events[idt]<<endl;
244 TFile *fout =
new TFile(out,
"RECREATE");
246 TGraphErrors *gr_av_theta_b =
new TGraphErrors(nDt,av_mis_b_mean[0],av_theta_mean_b,avEr_mis_b_mean[0],avEr_theta_mean_b);
247 gr_av_theta_b->SetName(
"thetaMean_b");
248 gr_av_theta_b->GetXaxis()->SetTitle(
"#delta_{t}, #mum");
249 gr_av_theta_b->GetYaxis()->SetTitle(
"#theta_{mean}, #murad");
250 gr_av_theta_b->SetMarkerStyle(20+iDa);
251 gr_av_theta_b->SetMarkerSize(2.5);
252 gr_av_theta_b->SetMarkerColor(kGreen-3);
253 gr_av_theta_b->Draw(
"AP");
254 cRes.Print(resnameout_pdf_o);
256 gr_av_theta_b->Write();
257 TMultiGraph *mgr_theta_a =
new TMultiGraph(
"mgr_theta_mean_a",
"");
258 TGraphErrors *gr_av_theta_a =
new TGraphErrors(nDt,av_mis_b_mean[0],av_theta_mean_a,avEr_mis_b_mean[0],avEr_theta_mean_a);
259 gr_av_theta_a->SetName(
"thetaMean_a");
262 gr_av_theta_a->SetMarkerStyle(20+iDa);
263 gr_av_theta_a->SetMarkerSize(2.5);
264 gr_av_theta_a->SetMarkerColor(kOrange+7);
266 gr_av_theta_a->Write();
267 mgr_theta_a->Add(gr_av_theta_a);
268 TGraphErrors *gr_av_theta_r =
new TGraphErrors(nDt,av_mis_b_mean[0],av_theta_mean_r,avEr_mis_b_mean[0],avEr_theta_mean_r);
269 gr_av_theta_r->SetName(
"thetaMean_r");
272 gr_av_theta_r->SetMarkerStyle(20+iDa);
273 gr_av_theta_r->SetMarkerSize(1.5);
274 gr_av_theta_r->SetMarkerColor(15);
276 gr_av_theta_r->Write();
277 mgr_theta_a->Add(gr_av_theta_r);
278 mgr_theta_a->Draw(
"AP");
279 mgr_theta_a->GetXaxis()->SetTitle(
"#delta_{t}, #mum");
280 mgr_theta_a->GetYaxis()->SetTitle(
"#theta_{mean}, #murad");
281 cRes.Print(resnameout_pdf_o);
284 TGraphErrors *gr_av_theta_rms_b =
new TGraphErrors(nDt,av_mis_b_mean[0],av_theta_rms_b,avEr_mis_b_mean[0],avEr_theta_rms_b);
285 gr_av_theta_rms_b->SetName(
"thetaMean_b");
286 gr_av_theta_rms_b->GetXaxis()->SetTitle(
"#delta_{t}, #mum");
287 gr_av_theta_rms_b->GetYaxis()->SetTitle(
"#theta_{\sigma}, #murad");
288 gr_av_theta_rms_b->SetMarkerStyle(20+iDa);
289 gr_av_theta_rms_b->SetMarkerSize(2.5);
290 gr_av_theta_rms_b->SetMarkerColor(kGreen-3);
291 gr_av_theta_rms_b->Draw(
"AP");
292 gr_av_theta_rms_b->Write();
293 cRes.Print(resnameout_pdf_o);
295 TMultiGraph *mgr_theta_rms_a =
new TMultiGraph(
"mgr_theta_rms_a",
"");
296 TGraphErrors *gr_av_theta_rms_a =
new TGraphErrors(nDt,av_mis_b_mean[0],av_theta_rms_a,avEr_mis_b_mean[0],avEr_theta_rms_a);
297 gr_av_theta_rms_a->SetName(
"thetaMean_a");
300 gr_av_theta_rms_a->SetMarkerStyle(20+iDa);
301 gr_av_theta_rms_a->SetMarkerSize(2.5);
302 gr_av_theta_rms_a->SetMarkerColor(kOrange+7);
304 gr_av_theta_rms_a->Write();
305 mgr_theta_rms_a->Add(gr_av_theta_rms_a);
306 TGraphErrors *gr_av_theta_rms_r =
new TGraphErrors(nDt,av_mis_b_mean[0],av_theta_rms_r,avEr_mis_b_mean[0],avEr_theta_rms_r);
307 gr_av_theta_rms_r->SetName(
"thetaMean_r");
310 gr_av_theta_rms_r->SetMarkerStyle(20+iDa);
311 gr_av_theta_rms_r->SetMarkerSize(1.5);
312 gr_av_theta_rms_r->SetMarkerColor(15);
314 gr_av_theta_rms_r->Write();
315 mgr_theta_rms_a->Add(gr_av_theta_rms_r);
316 mgr_theta_rms_a->Draw(
"AP");
317 mgr_theta_rms_a->GetXaxis()->SetTitle(
"#delta_{t}, #mum");
318 mgr_theta_rms_a->GetYaxis()->SetTitle(
"#theta_{\sigma}, #murad");
319 cRes.Print(resnameout_pdf_o);
321 for(
int ialc=0;ialc<6;ialc++){
322 TGraphErrors *gr_av_mis_a =
new TGraphErrors(nDt,av_mis_b_mean[0],av_mis_a_mean[ialc],avEr_mis_b_mean[0],avEr_mis_a_mean[ialc]);
326 gr_av_mis_a->SetName(misconstname);
327 if(ialc==0) gr_av_mis_a->GetYaxis()->SetTitle(
"#Delta_{x}, #mum");
328 if(ialc==1) gr_av_mis_a->GetYaxis()->SetTitle(
"#Delta_{y}, #mum");
329 if(ialc==2) gr_av_mis_a->GetYaxis()->SetTitle(
"#Delta_{z}, #mum");
330 if(ialc==3) gr_av_mis_a->GetYaxis()->SetTitle(
"#Delta_{#alpha}, mrad");
331 if(ialc==4) gr_av_mis_a->GetYaxis()->SetTitle(
"#Delta_{#beta}, mrad");
332 if(ialc==5) gr_av_mis_a->GetYaxis()->SetTitle(
"#Delta_{#gamma}, mrad");
333 gr_av_mis_a->SetMarkerStyle(29);
334 gr_av_mis_a->SetMarkerSize(2.5);
335 gr_av_mis_a->SetMarkerColor(kOrange+7);
336 gr_av_mis_a->GetXaxis()->SetTitle(
"#delta_{t}, #mum");
337 gr_av_mis_a->Draw(
"AP");
338 cRes.Print(resnameout_pdf_o);
340 gr_av_mis_a->Write();
343 TGraphErrors *gr_av_ev =
new TGraphErrors(nDt,av_mis_b_mean[0],av_events,avEr_mis_b_mean[0],avEr_events);
344 gr_av_ev->SetName(
"ev_b");
345 gr_av_ev->GetYaxis()->SetTitle(
"number of tracks used in alignment, 10^{3}");
346 gr_av_ev->GetXaxis()->SetTitle(
"#delta_{t}, #mum");
347 gr_av_ev->SetMarkerStyle(21);
348 gr_av_ev->SetMarkerSize(2.5);
349 gr_av_ev->SetMarkerColor(kGreen-3);
350 gr_av_ev->Draw(
"AP");
351 cRes.Print(resnameout_pdf_c);
friend F32vec4 sqrt(const F32vec4 &a)