46 long double T11[51],T12[51],T13[51],T14[51],T16[51];
47 long double T111[51],T112[51],T113[51],T114[51],T116[51];
48 long double T122[51],T123[51],T124[51],T126[51];
49 long double T133[51],T134[51],T136[51];
50 long double T144[51],T146[51];
51 long double T166[51],along[51];
53 long double T21[51],T22[51],T23[51],T24[51],T26[51];
54 long double T211[51],T212[51],T213[51],T214[51],T216[51];
55 long double T222[51],T223[51],T224[51],T226[51];
56 long double T233[51],T234[51],T236[51];
57 long double T244[51],T246[51];
60 long double T31[51],T32[51],T33[51],T34[51],T36[51];
61 long double T311[51],T312[51],T313[51],T314[51],T316[51];
62 long double T322[51],T323[51],T324[51],T326[51];
63 long double T333[51],T334[51],T336[51];
64 long double T344[51],T346[51];
67 long double T41[51],T42[51],T43[51],T44[51],T46[51];
68 long double T411[51],T412[51],T413[51],T414[51],T416[51];
69 long double T422[51],T423[51],T424[51],T426[51];
70 long double T433[51],T434[51],T436[51];
71 long double T444[51],T446[51];
75 Int_t kpass[51],rpass[51];
85 long double rapport = 0;
86 long double offset = 0;
92 long double dist1 = 0;
93 long double dist2 = 0;
94 long double ouvrescaleh = 0;
95 long double ouvrescalev = 0;
106 long double rres = 0;
108 long double shiftx = 0;
109 long double shifty = 0;
114 long double dpspmax = 0;
115 long double dpsppas = 0;
117 long double ppion = 0;
119 long double resoldet = 0;
120 long double betapion = 0;
121 long double diffmul = 0;
122 long double resoldmx = 0;
123 long double resoldmy = 0;
125 long double xmax = 0;
126 long double ymax = 0;
127 long double xpmax = 0;
128 long double ypmax = 0;
129 long double dpmax = 0;
131 long double relem = 0;
158 long double seuil = 0;
166 long double xpf1 = 0;
167 long double ypf1 = 0;
169 long double xpf2 = 0;
171 long double ypf2 = 0;
172 long double xdet1 = 0;
173 long double ydet1 = 0;
174 long double xdet2 = 0;
175 long double ydet2 = 0;
177 long double deltax = 0;
178 long double deltay = 0;
179 long double xhad = 0;
180 long double yhad = 0;
181 long double radius = 0;
184 long double xdet1sav = 0;
187 long double xdet2sav = 0;
188 long double ydet1sav = 0;
189 long double ydet2sav = 0;
191 long double alfa = 0;
192 long double beta = 0;
193 long double gamma = 0;
194 long double discri = 0;
195 long double galfa = 0;
196 long double gbeta = 0;
197 long double ggamma = 0;
198 long double gdelta = 0;
205 long double yyy1 = 0;
206 long double yyp1 = 0;
207 long double yyy2 = 0;
208 long double yyp2 = 0;
209 long double yyy3 = 0;
210 long double yyp3 = 0;
211 long double yyy4 = 0;
212 long double yyp4 = 0;
213 long double yyy5 = 0;
214 long double yyp5 = 0;
215 long double teta = 0;
221 long double deter = 0;
224 long double poids = 0;
225 long double xfth = 0;
226 long double yfth = 0;
227 long double xfcal = 0;
228 long double yfcal = 0;
233 long double xabs = 0;
234 long double yabs = 0;
236 long double reste = 0;
239 long double alossfraction = 0;
243 long double sig11 = 0;
245 long double sig22 = 0;
247 long double sig33 = 0;
250 long double sig44 = 0;
254 long double sig55 = 0;
259 long double sig66 = 0;
272 Int_t ouvh[51] = {0,6.,6.,6.,6.,7.,7.,7.,7.,7.,6.,
273 6.,6.,6.,6.,6.,5.,5.,6.,6.,6.,
274 6.,6.,6.,6.,6.,6.,6.,6.,6.,6.,
275 6.,6.,0.6,5.,5.,5.,5.,5.,5.,5.,
276 5.,5.,5.,5.,5.,5.,5.,5.,5.,5. };
277 Int_t ouvv[51] = {0,6.,6.,6.,6.,3.5,3.5,3.5,3.5,3.5,3.5,
278 3.5,6.,6.,6.,6.,6.,4.,4.,6.,6.,
279 6.,3.5,3.5,6.,6.,6.,6.,6.,6.,6.,
280 6.,6.,0.6,5.,5.,5.,5.,5.,5.,5.,
281 5.,5.,5.,5.,5.,5.,5.,5.,5.,5.};
282 Int_t kind[11]= {0, 2, 4, 6, 10, 13, 17, 23, 26, 29, 33 };
288 plik1.open(
"pibeam_set6.data");
293 plik2.open(
"pibeam_set3.out");
302 long double renorgauss=sqrt(3./5.);
304 long double rhosi=2.33;
305 long double amasspi=0.13958;
309 for(Int_t iii=0; iii<51; iii++)
318 double rT166 = 0,rT266 = 0,rT366 = 0,rT466 = 0,raa = 0,ralong = 0;
320 TFile *output =
new TFile(
"piony.root",
"RECREATE");
322 TTree *tree =
new TTree(
"Pion",
"Pionbeam");
323 tree->Branch(
"sectors", §or);
324 tree->Branch(
"T166", &rT166);
325 tree->Branch(
"T266", &rT266);
326 tree->Branch(
"T366", &rT366);
327 tree->Branch(
"T466", &rT466);
328 tree->Branch(
"aa", &raa);
329 tree->Branch(
"along", &ralong);
333 for(Int_t i=1; i<nelem; i++)
346 plik1>>along[i]>>txt2>>aa>>sig11>>txt5;
347 plik1>>aa>>sig22>>txt5>>r12;
348 plik1>>aa>>sig33>>txt5>>r13>>r23;
349 plik1>>aa>>sig44>>txt5>>r14>>r24>>r34;
350 plik1>>aa>>sig55>>txt5>>r15>>r25>>r35>>r45;
351 plik1>>aa>>sig66>>txt5>>r16>>r26>>r36>>r46>>r56;
355 getline(plik1,str,
'\n');
356 getline(plik1,str,
'\n');
359 plik1>>T11[i]>>T12[i]>>T13[i]>>T14[i]>>aa>>T16[i];
361 cout << T11[i] << endl;
363 plik1>>T21[i]>>T22[i]>>T23[i]>>T24[i]>>aa>>T26[i];
364 plik1>>T31[i]>>T32[i]>>T33[i]>>T34[i]>>aa>>T36[i]>>std::fixed;
366 plik1>>T41[i]>>T42[i]>>T43[i]>>T44[i]>>aa>>T46[i];
367 plik1>>aa>>aa>>aa>>aa>>aa>>aa;
368 plik1>>aa>>aa>>aa>>aa>>aa>>aa;
376 plik1>>ind1>>ind23>>T111[i];
377 plik1>>ind1>>ind23>>T112[i]>>ind1>>ind23>>T122[i];
378 plik1>>ind1>>ind23>>T113[i]>>ind1>>ind23>>T123[i]>>ind1>>ind23>>T133[i];
379 plik1>>ind1>>ind23>>T114[i]>>ind1>>ind23>>T124[i]>>ind1>>ind23>>T134[i]>>ind1>>ind23>>T144[i];
380 plik1>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa;
381 plik1>>ind1>>ind23>>T116[i]>>ind1>>ind23>>T126[i]>>ind1>>ind23>>T136[i]>>ind1>>ind23>>T146[i]>>ind1>>ind23>>aa>>ind1>>ind23>>T166[i];
383 plik2<<
".."<<i<<
".."<<T166[i]<<endl;
388 plik1>>ii>>ii>>T211[i];
389 plik1>>ii>>ii>>T212[i]>>ii>>ii>>T222[i];
390 plik1>>ii>>ii>>T213[i]>>ii>>ii>>T223[i]>>ii>>ii>>T233[i];
391 plik1>>ii>>ii>>T214[i]>>ii>>ii>>T224[i]>>ii>>ii>>T234[i]>>ii>>ii>>T244[i];
392 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
393 plik1>>ii>>ii>>T216[i]>>ii>>ii>>T226[i]>>ii>>ii>>T236[i]>>ii>>ii>>T246[i]>>ii>>ii>>aa>>ii>>ii>>T266[i];
395 plik2<<
".."<<i<<
".."<<T266[i]<<endl;
401 plik1>>ind1>>ind23>>T311[i];
402 plik1>>ind1>>ind23>>T312[i]>>ind1>>ind23>>T322[i];
403 plik1>>ind1>>ind23>>T313[i]>>ind1>>ind23>>T323[i]>>ind1>>ind23>>T333[i];
404 plik1>>ind1>>ind23>>T314[i]>>ind1>>ind23>>T324[i]>>ind1>>ind23>>T334[i]>>ind1>>ind23>>T344[i];
405 plik1>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa;
406 plik1>>ind1>>ind23>>T316[i]>>ind1>>ind23>>T326[i]>>ind1>>ind23>>T336[i]>>ind1>>ind23>>T346[i]>>ind1>>ind23>>aa>>ind1>>ind23>>T366[i];
408 plik2<<
".."<<i<<
".."<<T366[i]<<endl;
415 plik1>>ii>>ii>>T411[i];
416 plik1>>ii>>ii>>T412[i]>>ii>>ii>>T422[i];
417 plik1>>ii>>ii>>T413[i]>>ii>>ii>>T423[i]>>ii>>ii>>T433[i];
418 plik1>>ii>>ii>>T414[i]>>ii>>ii>>T424[i]>>ii>>ii>>T434[i]>>ii>>ii>>T444[i];
419 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
420 plik1>>ii>>ii>>T416[i]>>ii>>ii>>T426[i]>>ii>>ii>>T436[i]>>ii>>ii>>T446[i]>>ii>>ii>>aa>>ii>>ii>>T466[i];
422 plik2<<
".."<<i<<
".."<<T466[i]<<endl;
429 plik1>>ii>>ii>>aa>>ii>>ii>>aa;
430 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
431 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
432 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
433 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
435 plik2<<
".."<<i<<
".."<<aa<<endl;
450 rapport = -100 * T12[i] / T126[i];
452 if (rapport < - 15) {
459 rx = float(i) + 0.01;
462 plik2<<
"..along ="<<along[i]<<
"..T126 ="<<T126[i]<<endl;
464 getline(plik1,str,
'\n');
580 plik2<<
".."<<T11[idet2 - 1]<<
".."<<T12[idet2 - 1]<<
".."<<T13[idet2]<<
".."<<T16[idet2 - 1]<<endl;
581 plik2<<
".."<<T11[idet2]<<
".."<<T12[idet2]<<
".."<<T13[idet2]<<
".."<<T14[idet2]<<
".."<<T16[idet2]<<endl;;
582 plik2<<
".."<<T31[idet2 - 1]<<
".."<<T32[idet2 - 1]<<
".."<<T33[idet2]<<
".."<<T36[idet2 - 1]<<endl;
583 plik2<<
".."<<T31[idet2]<<
".."<<T32[idet2]<<
".."<<T33[idet2]<<
".."<<T34[idet2]<<
".."<<T36[idet2]<<endl;
587 TFile *output1 =
new TFile(
"piony1.root",
"RECREATE");
588 TTree *treex =
new TTree(
"Pion1",
"Pionbeam1");
589 treex->Branch(
"reste", &rreste);
590 treex->Branch(
"etape", &retape);
591 TH1F *random =
new TH1F(
"random",
"random",3000,-1.5,1.5);
610 r1 = float(idet2) + 0.001;
613 r1 = float(ii1) + 0.001;
614 ii2 = idet1 - 10 * ii1;
615 r2 = float(ii2) + 0.001;
616 r3 = float(idet2) + 0.001;
619 r3 = float(ii3) + 0.001;
620 ii4 = idet2 - 10 * ii3;
621 r4 = float(ii4) + 0.001;
658 dx = 0.05 / pow(10., rh);
661 dy = 0.05 / pow(10., rv);
679 esi = 300. / 10000. * rhosi;
681 resoldet = 800. / pow(10, rres) / 10000.;
685 betapion = ppion / sqrt(pow(ppion,2) + pow(amasspi,2));
686 diffmul = 13.6 / ppion / betapion * sqrt(esi / x0si);
688 resoldmx = T12[idet2] * diffmul / T22[idet1];
689 resoldmx = resoldmx / pow(10., rdm);
691 resoldmy = T34[idet2] * diffmul / T44[idet1];
692 resoldmy = resoldmy / pow(10., rdm);
695 plik2<<
"diff mul = "<<diffmul<<
"resol="<<resoldet*10<<endl;
709 for(Int_t k = 1; k < nelem; k++){
711 relem = float(k) + 0.1;
714 z1 = 10. * fabs(T31[k] * xmax);
715 z2 = 10. * fabs(T32[k] * xpmax);
716 z3 = 10. * fabs(T33[k] * ymax);
717 z4 = 10. * fabs(T34[k] * ypmax);
718 z5 = 10. * fabs(T36[k] * dpmax);
719 z6 = 10. * fabs(T322[k] * xpmax * xpmax);
720 z7 = 10. * fabs(T323[k] * xpmax * ymax);
721 z8 = 10. * fabs(T324[k] * xpmax * ypmax);
722 z9 = 10. * fabs(T326[k] * xpmax * dpmax);
723 z10 = 10. * fabs(T333[k] * ymax * ymax);
724 z11 = 10. * fabs(T334[k] * ymax * ypmax);
725 z12 = 10. * fabs(T336[k] * ymax * dpmax);
726 z13 = 10. * fabs(T344[k] * ypmax * ypmax);
727 z14 = 10. * fabs(T346[k] * ypmax * dpmax);
728 z15 = 10. * fabs(T366[k] * dpmax * dpmax);
734 double rxf = 0,ryf = 0,rdp = 0,rxpf = 0,rypf = 0, relement = 0;
736 TFile *output_new =
new TFile(
"piony_new.root",
"RECREATE");
737 TTree *treec =
new TTree(
"Pion5",
"Pionbeam5");
738 treec->Branch(
"xi", &rxf);
739 treec->Branch(
"yi", &ryf);
740 treec->Branch(
"dp", &rdp);
741 treec->Branch(
"xpi", &rxpf);
742 treec->Branch(
"ypi", &rypf);
743 treec->Branch(
"elemnt", &relement);
746 for(Int_t itir = 0; itir < ntir; itir++)
816 for(Int_t k = 1; k < nelem; k++){
832 yf=T31[k]*xi+T32[k]*xpi+T33[k]*yi+T34[k]*ypi+T36[k]*dp;
834 xpf=T21[k]*xi+T22[k]*xpi+T23[k]*yi+T24[k]*ypi+T26[k]*dp;
835 ypf=T41[k]*xi+T42[k]*xpi+T43[k]*yi+T44[k]*ypi+T46[k]*dp;
843 xf=xf1+T111[k]*xi*xi+T112[k]*xi*xpi+T113[k]*xi*yi;
844 xf=xf+T114[k]*xi*ypi+T116[k]*xi*dp;
845 xf=xf+T122[k]*xpi*xpi+T123[k]*xpi*yi+T124[k]*xpi*ypi;
846 xf=xf+T126[k]*xpi*dp;
847 xf=xf+T133[k]*yi*yi+T134[k]*yi*ypi+T136[k]*yi*dp;
848 xf=xf+T144[k]*ypi*ypi+T146[k]*ypi*dp;
856 xpf=xpf1+T211[k]*xi*xi+T212[k]*xi*xpi+T213[k]*xi*yi;
857 xpf=xpf+T214[k]*xi*ypi+T216[k]*xi*dp;
858 xpf=xpf+T222[k]*xpi*xpi+T223[k]*xpi*yi+T224[k]*xpi*ypi;
859 xpf=xpf+T226[k]*xpi*dp;
860 xpf=xpf+T233[k]*yi*yi+T234[k]*yi*ypi+T236[k]*yi*dp;
861 xpf=xpf+T244[k]*ypi*ypi+T246[k]*ypi*dp;
862 xpf=xpf+T266[k]*dp*dp;
864 yf=yf1+T311[k]*xi*xi+T312[k]*xi*xpi+T313[k]*xi*yi;
865 yf=yf+T314[k]*xi*ypi+T316[k]*xi*dp;
866 yf=yf+T322[k]*xpi*xpi+T323[k]*xpi*yi+T324[k]*xpi*ypi;
867 yf=yf+T326[k]*xpi*dp;
868 yf=yf+T333[k]*yi*yi+T334[k]*yi*ypi+T336[k]*yi*dp;
869 yf=yf+T344[k]*ypi*ypi+T346[k]*ypi*dp;
872 ypf=ypf1+T411[k]*xi*xi+T412[k]*xi*xpi+T413[k]*xi*yi;
873 ypf=ypf+T414[k]*xi*ypi+T416[k]*xi*dp;
874 ypf=ypf+T422[k]*xpi*xpi+T423[k]*xpi*yi+T424[k]*xpi*ypi;
875 ypf=ypf+T426[k]*xpi*dp;
876 ypf=ypf+T433[k]*yi*yi+T434[k]*yi*ypi+T436[k]*yi*dp;
877 ypf=ypf+T444[k]*ypi*ypi+T446[k]*ypi*dp;
878 ypf=ypf+T466[k]*dp*dp;
890 if (fabs(xf) > (ouvrescaleh * ouvh[k])) { iok = 0;}
891 if (fabs(yf) > (ouvrescalev * ouvv[k])) { iok = 0;}
899 deltax = fabs((xf2 - xf1) / xf1 * 100);
902 deltay = fabs((yf2 - yf1) / yf1 * 100);
907 if ((k == 30) && (iok == 1)) {
910 xf = xf1 + T111[33] * xi * xi + T112[33] * xi * xpi + T113[33] * xi * yi;
911 xf = xf + T114[33] * xi * ypi + T116[33] * xi * dp;
912 xf = xf + T122[33] * xpi * xpi + T123[33] * xpi * yi + T124[33] * xpi * ypi;
913 xf = xf + T126[33] * xpi * dp;
914 xf = xf + T133[33] * yi * yi + T134[33] * yi * ypi + T136[33] * yi * dp;
915 xf = xf +T144[33] * ypi * ypi + T146[33] * ypi * dp;
916 xf = xf +T166[33] * dp * dp;
917 yf = yf1 + T311[33] * xi * xi + T312[33] * xi * xpi + T313[33] * xi * yi;
918 yf = yf + T314[33] * xi * ypi + T316[33] * xi * dp;
919 yf = yf + T322[33] * xpi * xpi + T323[33] * xpi * yi + T324[33] * xpi * ypi;
920 yf = yf + T326[33] * xpi * dp;
921 yf = yf + T333[33] * yi * yi + T334[33] * yi * ypi + T336[33] * yi * dp;
922 yf = yf + T344[33] * ypi * ypi + T346[33] * ypi * dp;
923 yf = yf + T366[33] * dp * dp;
924 radius = sqrt(pow(xf,2) + pow(yf,2));
936 cout << xf2 <<
":" << yf2 <<
":" << xpf2 <<
":" << ypf2 << endl;
1095 TFile *output2 =
new TFile(
"piony2.root",
"RECREATE");
1096 TTree *treez =
new TTree(
"Pion2",
"Pionbeam2");
1097 treez->Branch(
"alossfraction", &rreste);
1098 treez->Branch(
"dpsp", &retape);
1103 for(Int_t ki=1; ki<nelem; ki++){
1104 reste = 100. * float(ipass[ki]) / float(ntir);
1105 plik2<<
"etape.."<<ki<<
"..reste.."<<reste<<endl;
1106 ri = float(ki) + 0.01;
1109 if (retape > 0) treex->Fill();
1114 for(Int_t kij = 1; kij<16; kij++){
1115 rpass[kij] = float(kpass[kij]) * 15. / float(ntir) * 100.;
1116 plik2<<
"dpsp.."<<kij - 7<<
"..transsmision.."<<rpass[kij]<<endl;
1117 rrpass = rpass[kij];
1119 if (dpsp > 0) treez->Fill();
1121 plik2<<
"idineg...."<<idineg<<endl;
1122 alossfraction = float(itotq9 - itotpass) / float(itotq9);
1123 plik2<<
"fraction hors cible.."<<alossfraction * 100.;
1130 output_new->Write();