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)