156 Bool_t readfile = kTRUE;
163 plik1>>along[i]>>txt2>>aa>>sig11>>txt5;
164 plik1>>aa>>sig22>>txt5>>r12;
165 plik1>>aa>>sig33>>txt5>>r13>>r23;
166 plik1>>aa>>sig44>>txt5>>r14>>r24>>r34;
167 plik1>>aa>>sig55>>txt5>>r15>>r25>>r35>>r45;
168 plik1>>aa>>sig66>>txt5>>r16>>r26>>r36>>r46>>r56;
170 getline(plik1,str,
'\n');
171 getline(plik1,str,
'\n');
173 plik1>>T11[i]>>T12[i]>>T13[i]>>T14[i]>>aa>>T16[i];
174 plik1>>T21[i]>>T22[i]>>T23[i]>>T24[i]>>aa>>T26[i];
175 plik1>>T31[i]>>T32[i]>>T33[i]>>T34[i]>>aa>>T36[i]>>std::fixed;
177 plik1>>T41[i]>>T42[i]>>T43[i]>>T44[i]>>aa>>T46[i];
178 plik1>>aa>>aa>>aa>>aa>>aa>>aa;
179 plik1>>aa>>aa>>aa>>aa>>aa>>aa;
186 plik1>>ind1>>ind23>>T111[i];
187 plik1>>ind1>>ind23>>T112[i]>>ind1>>ind23>>T122[i];
188 plik1>>ind1>>ind23>>T113[i]>>ind1>>ind23>>T123[i]>>ind1>>ind23>>T133[i];
189 plik1>>ind1>>ind23>>T114[i]>>ind1>>ind23>>T124[i]>>ind1>>ind23>>T134[i]>>ind1>>ind23>>T144[i];
190 plik1>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa;
191 plik1>>ind1>>ind23>>T116[i]>>ind1>>ind23>>T126[i]>>ind1>>ind23>>T136[i]>>ind1>>ind23>>T146[i]>>ind1>>ind23>>aa>>ind1>>ind23>>T166[i];
198 plik1>>ii>>ii>>T211[i];
199 plik1>>ii>>ii>>T212[i]>>ii>>ii>>T222[i];
200 plik1>>ii>>ii>>T213[i]>>ii>>ii>>T223[i]>>ii>>ii>>T233[i];
201 plik1>>ii>>ii>>T214[i]>>ii>>ii>>T224[i]>>ii>>ii>>T234[i]>>ii>>ii>>T244[i];
202 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
203 plik1>>ii>>ii>>T216[i]>>ii>>ii>>T226[i]>>ii>>ii>>T236[i]>>ii>>ii>>T246[i]>>ii>>ii>>aa>>ii>>ii>>T266[i];
211 plik1>>ind1>>ind23>>T311[i];
212 plik1>>ind1>>ind23>>T312[i]>>ind1>>ind23>>T322[i];
213 plik1>>ind1>>ind23>>T313[i]>>ind1>>ind23>>T323[i]>>ind1>>ind23>>T333[i];
214 plik1>>ind1>>ind23>>T314[i]>>ind1>>ind23>>T324[i]>>ind1>>ind23>>T334[i]>>ind1>>ind23>>T344[i];
215 plik1>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa>>ind1>>ind23>>aa;
216 plik1>>ind1>>ind23>>T316[i]>>ind1>>ind23>>T326[i]>>ind1>>ind23>>T336[i]>>ind1>>ind23>>T346[i]>>ind1>>ind23>>aa>>ind1>>ind23>>T366[i];
225 plik1>>ii>>ii>>T411[i];
226 plik1>>ii>>ii>>T412[i]>>ii>>ii>>T422[i];
227 plik1>>ii>>ii>>T413[i]>>ii>>ii>>T423[i]>>ii>>ii>>T433[i];
228 plik1>>ii>>ii>>T414[i]>>ii>>ii>>T424[i]>>ii>>ii>>T434[i]>>ii>>ii>>T444[i];
229 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
230 plik1>>ii>>ii>>T416[i]>>ii>>ii>>T426[i]>>ii>>ii>>T436[i]>>ii>>ii>>T446[i]>>ii>>ii>>aa>>ii>>ii>>T466[i];
239 plik1>>ii>>ii>>aa>>ii>>ii>>aa;
240 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
241 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
242 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
243 plik1>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa>>ii>>ii>>aa;
245 getline(plik1,str,
'\n');
256 Info(
"InitBeamLine",
"Read %i elements from file %s", nelem-1,
filename);
312 if (beam->P() > target->P()) {
325 projector->Modify(NULL, NULL, &num, 0);
335 for(Int_t k = 1; k < nelem; k++){
344 yf = T31[k]*xi+T32[k]*xpi+T33[k]*yi+T34[k]*ypi+T36[k]*dp;
346 xpf = T21[k]*xi+T22[k]*xpi+T23[k]*yi+T24[k]*ypi+T26[k]*dp;
347 ypf = T41[k]*xi+T42[k]*xpi+T43[k]*yi+T44[k]*ypi+T46[k]*dp;
353 xf = xf1+T111[k]*xi*xi+T112[k]*xi*xpi+T113[k]*xi*yi;
354 xf = xf+T114[k]*xi*ypi+T116[k]*xi*dp;
355 xf = xf+T122[k]*xpi*xpi+T123[k]*xpi*yi+T124[k]*xpi*ypi;
356 xf = xf+T126[k]*xpi*dp;
357 xf = xf+T133[k]*yi*yi+T134[k]*yi*ypi+T136[k]*yi*dp;
358 xf = xf+T144[k]*ypi*ypi+T146[k]*ypi*dp;
359 xf = xf+T166[k]*dp*dp;
364 xpf = xpf1+T211[k]*xi*xi+T212[k]*xi*xpi+T213[k]*xi*yi;
365 xpf = xpf+T214[k]*xi*ypi+T216[k]*xi*dp;
366 xpf = xpf+T222[k]*xpi*xpi+T223[k]*xpi*yi+T224[k]*xpi*ypi;
367 xpf = xpf+T226[k]*xpi*dp;
368 xpf = xpf+T233[k]*yi*yi+T234[k]*yi*ypi+T236[k]*yi*dp;
369 xpf = xpf+T244[k]*ypi*ypi+T246[k]*ypi*dp;
370 xpf = xpf+T266[k]*dp*dp;
372 yf = yf1+T311[k]*xi*xi+T312[k]*xi*xpi+T313[k]*xi*yi;
373 yf = yf+T314[k]*xi*ypi+T316[k]*xi*dp;
374 yf = yf+T322[k]*xpi*xpi+T323[k]*xpi*yi+T324[k]*xpi*ypi;
375 yf = yf+T326[k]*xpi*dp;
376 yf = yf+T333[k]*yi*yi+T334[k]*yi*ypi+T336[k]*yi*dp;
377 yf = yf+T344[k]*ypi*ypi+T346[k]*ypi*dp;
378 yf = yf+T366[k]*dp*dp;
380 ypf = ypf1+T411[k]*xi*xi+T412[k]*xi*xpi+T413[k]*xi*yi;
381 ypf = ypf+T414[k]*xi*ypi+T416[k]*xi*dp;
382 ypf = ypf+T422[k]*xpi*xpi+T423[k]*xpi*yi+T424[k]*xpi*ypi;
383 ypf = ypf+T426[k]*xpi*dp;
384 ypf = ypf+T433[k]*yi*yi+T434[k]*yi*ypi+T436[k]*yi*dp;
385 ypf = ypf+T444[k]*ypi*ypi+T446[k]*ypi*dp;
386 ypf = ypf+T466[k]*dp*dp;
399 out_xpi[k] = xpf2/1000.;
400 out_ypi[k] = ypf2/1000.;
406 Double_t
p = global_p * (1. + out_dp[num_target]);
407 Double_t p_z =
p / sqrt(1.+ tan(out_xpi[num_target])*tan(out_xpi[num_target]) +
408 tan(out_ypi[num_target])*tan(out_ypi[num_target]));
409 Double_t p_x = p_z * tan(out_xpi[num_target]);
410 Double_t p_y = p_z * tan(out_ypi[num_target]);
412 real_beam->SetXYZM(p_x, p_y, p_z,
makeStaticData()->GetParticleMass(real_beam->
ID()));
421 for (
int i=0; i<beam_counter; i++) {
423 for (
int k=1; k<nelem-1; k++) {
424 if (along[k]*1000. <= detector_distance[i] && detector_distance[i] < along[k+1]*1000.) {
426 Double_t frac = (detector_distance[i] - along[k]*1000.) / (along[k+1]*1000. - along[k]*1000.);
428 Double_t my_xi = out_xi[k] + frac*(out_xi[k+1] - out_xi[k]);
429 Double_t my_yi = out_yi[k] + frac*(out_yi[k+1] - out_yi[k]);
430 Double_t my_dp = out_dp[k] + frac*(out_dp[k+1] - out_dp[k]);
431 Double_t my_xpi = out_xpi[k] + frac*(out_xpi[k+1] - out_xpi[k]);
432 Double_t my_ypi = out_ypi[k] + frac*(out_ypi[k+1] - out_ypi[k]);
433 p = global_p * (1. + my_dp);
437 p_z =
p / sqrt(1.+ tan(my_xpi)*tan(my_xpi) + tan(my_ypi)*tan(my_ypi));
438 p_x = p_z * tan(my_xpi);
439 p_y = p_z * tan(my_ypi);
440 *(beam_particles[i]) = *(real_beam);
441 beam_particles[i]->SetVertex(my_xi, my_yi, detector_distance[i]);
442 beam_particles[i]->SetPx(p_x);
443 beam_particles[i]->SetPy(p_y);
444 beam_particles[i]->SetPz(p_z);
453 for (
int k=1; k<nelem-1; k++) {
454 if (beamtube_size_x > 0 && out_xi[k] > beamtube_size_x) {
457 if (beamtube_size_y > 0 && out_yi[k] > beamtube_size_y) {
462 for (
int i=0; i<beam_counter; i++)
466 for (
int i=0; i<beam_counter; i++) {
469 = *(beam_particles[i]);