153 double offsetp = 0.0;
154 double offsetc = 0.0;
173 if ( ptrk < 0.1 || ptrk > 1 )
break;
174 int index = int( ( ptrk - 0.1 ) / 0.05 );
175 if ( index <= 0 ) index = 1;
176 if ( index >= 17 ) index = 16;
178 if ( fabs( costm ) >= 0.8 )
break;
179 int index1 = int( ( costm + 0.8 ) / 0.1 );
180 if ( index1 <= 0 ) index1 = 1;
181 if ( index1 >= 15 ) index1 = 14;
184 if ( rundedx2 >= 11414 && rundedx2 <= 14604 )
186 offsetp =
cal_par( index, m_psipp_pi_ptrk_offset, ptrk, 0.125, 0.05 );
187 sigp =
cal_par( index, m_psipp_pi_ptrk_sigma, ptrk, 0.125, 0.05 );
188 offsetc =
cal_par( index1, m_psipp_pi_theta_offset, costm, -0.75, 0.1 );
189 sigcos =
cal_par( index1, m_psipp_pi_theta_sigma, costm, -0.75, 0.1 );
192 if ( rundedx2 <= -11414 && rundedx2 >= -14604 )
194 offsetp =
cal_par( index, m_psipp_mc_pi_ptrk_offset, ptrk, 0.125, 0.05 );
195 sigp =
cal_par( index, m_psipp_mc_pi_ptrk_sigma, ptrk, 0.125, 0.05 );
196 offsetc =
cal_par( index1, m_psipp_mc_pi_theta_offset, costm, -0.75, 0.1 );
197 sigcos =
cal_par( index1, m_psipp_mc_pi_theta_sigma, costm, -0.75, 0.1 );
200 offset = offsetp + sigp * offsetc;
201 chicor = ( chicor -
offset ) / ( sigcos * sigp );
208 if ( ptrk < 0.3 || ptrk > 0.8 )
break;
210 int index = int( ( ptrk - 0.3 ) / 0.1 );
211 if ( index <= 0 ) index = 1;
212 if ( index >= 4 ) index = 3;
214 int index1 = int( ( costm + 0.9 ) / 0.1 );
215 if ( index1 <= 0 ) index1 = 1;
216 if ( index1 >= 17 ) index1 = 16;
218 if ( rundedx2 >= 9947 && rundedx2 <= 10878 )
222 offsetp =
cal_par( index, m_jpsi_kap_ptrk_offset, ptrk, 0.35, 0.1 );
223 sigp =
cal_par( index, m_jpsi_kap_ptrk_sigma, ptrk, 0.35, 0.1 );
224 if ( fabs( costm ) <= 0.83 )
226 offsetc =
cal_par( index1, m_jpsi_kap_theta_offset, costm, -0.85, 0.1 );
227 sigcos =
cal_par( index1, m_jpsi_kap_theta_sigma, costm, -0.85, 0.1 );
232 offsetp =
cal_par( index, m_jpsi_kam_ptrk_offset, ptrk, 0.35, 0.1 );
233 sigp =
cal_par( index, m_jpsi_kam_ptrk_sigma, ptrk, 0.35, 0.1 );
234 if ( fabs( costm ) <= 0.83 )
236 offsetc =
cal_par( index1, m_jpsi_kam_theta_offset, costm, -0.85, 0.1 );
237 sigcos =
cal_par( index1, m_jpsi_kam_theta_sigma, costm, -0.85, 0.1 );
243 if ( rundedx2 <= -9947 && rundedx2 >= -10878 )
247 offsetp =
cal_par( index, m_jpsi_mc_kap_ptrk_offset, ptrk, 0.35, 0.1 );
248 sigp =
cal_par( index, m_jpsi_mc_kap_ptrk_sigma, ptrk, 0.35, 0.1 );
249 if ( fabs( costm ) <= 0.83 )
251 offsetc =
cal_par( index1, m_jpsi_mc_kap_theta_offset, costm, -0.85, 0.1 );
252 sigcos =
cal_par( index1, m_jpsi_mc_kap_theta_sigma, costm, -0.85, 0.1 );
257 offsetp =
cal_par( index, m_jpsi_mc_kam_ptrk_offset, ptrk, 0.35, 0.1 );
258 sigp =
cal_par( index, m_jpsi_mc_kam_ptrk_sigma, ptrk, 0.35, 0.1 );
259 if ( fabs( costm ) <= 0.83 )
261 offsetc =
cal_par( index1, m_jpsi_mc_kam_theta_offset, costm, -0.85, 0.1 );
262 sigcos =
cal_par( index1, m_jpsi_mc_kam_theta_sigma, costm, -0.85, 0.1 );
268 if ( rundedx2 >= 8093 && rundedx2 <= 9025 )
270 if ( ptrk < 0.3 || ptrk > 1.2 )
break;
271 index = int( ( ptrk - 0.3 ) / 0.1 );
272 if ( index <= 0 ) index = 1;
273 if ( index >= 8 ) index = 7;
276 offsetp =
cal_par( index, m_psip_kap_ptrk_offset, ptrk, 0.35, 0.1 );
277 sigp =
cal_par( index, m_psip_kap_ptrk_sigma, ptrk, 0.35, 0.1 );
281 offsetp =
cal_par( index, m_psip_kam_ptrk_offset, ptrk, 0.35, 0.1 );
282 sigp =
cal_par( index, m_psip_kam_ptrk_sigma, ptrk, 0.35, 0.1 );
287 if ( rundedx2 <= -8093 && rundedx2 >= -9025 )
290 if ( ptrk < 0.3 || ptrk > 1.2 )
break;
291 index = int( ( ptrk - 0.3 ) / 0.1 );
292 if ( index <= 0 ) index = 1;
293 if ( index >= 8 ) index = 7;
296 offsetp =
cal_par( index, m_psip_mc_kap_ptrk_offset, ptrk, 0.35, 0.1 );
297 sigp =
cal_par( index, m_psip_mc_kap_ptrk_sigma, ptrk, 0.35, 0.1 );
301 offsetp =
cal_par( index, m_psip_mc_kam_ptrk_offset, ptrk, 0.35, 0.1 );
302 sigp =
cal_par( index, m_psip_mc_kam_ptrk_sigma, ptrk, 0.35, 0.1 );
307 if ( rundedx2 >= 11414 && rundedx2 <= 14604 )
309 if ( ptrk < 0.15 || ptrk > 1 )
break;
310 index = int( ( ptrk - 0.15 ) / 0.05 );
311 if ( index <= 0 ) index = 1;
312 if ( index >= 16 ) index = 15;
313 if ( fabs( costm ) >= 0.8 )
break;
314 index1 = int( ( costm + 0.8 ) / 0.1 );
315 if ( index1 <= 0 ) index1 = 1;
316 if ( index1 >= 15 ) index1 = 14;
318 offsetp =
cal_par( index, m_psipp_ka_ptrk_offset, ptrk, 0.175, 0.05 );
319 sigp =
cal_par( index, m_psipp_ka_ptrk_sigma, ptrk, 0.175, 0.05 );
320 offsetc =
cal_par( index1, m_psipp_ka_theta_offset, costm, -0.75, 0.1 );
321 sigcos =
cal_par( index1, m_psipp_ka_theta_sigma, costm, -0.75, 0.1 );
324 if ( rundedx2 <= -11414 && rundedx2 >= -14604 )
326 if ( ptrk < 0.15 || ptrk > 1 )
break;
327 index = int( ( ptrk - 0.15 ) / 0.05 );
328 if ( index <= 0 ) index = 1;
329 if ( index >= 16 ) index = 15;
330 if ( fabs( costm ) >= 0.8 )
break;
331 index1 = int( ( costm + 0.8 ) / 0.1 );
332 if ( index1 <= 0 ) index1 = 1;
333 if ( index1 >= 15 ) index1 = 14;
334 offsetp =
cal_par( index, m_psipp_mc_ka_ptrk_offset, ptrk, 0.175, 0.05 );
335 sigp =
cal_par( index, m_psipp_mc_ka_ptrk_sigma, ptrk, 0.175, 0.05 );
336 offsetc =
cal_par( index1, m_psipp_mc_ka_theta_offset, costm, -0.75, 0.1 );
337 sigcos =
cal_par( index1, m_psipp_mc_ka_theta_sigma, costm, -0.75, 0.1 );
340 offset = offsetp + sigp * offsetc;
341 chicor = ( chicor -
offset ) / ( sigcos * sigp );
348 if ( ptrk < 0.3 || ptrk > 1.1 )
break;
349 int index = int( ( ptrk - 0.3 ) / 0.1 );
350 if ( index <= 0 ) index = 1;
351 if ( index >= 7 ) index = 6;
353 int index1 = int( ( costm + 0.9 ) / 0.1 );
354 if ( index1 <= 0 ) index1 = 1;
355 if ( index1 >= 17 ) index1 = 16;
359 if ( rundedx2 >= 9947 && rundedx2 <= 10878 )
363 offsetp =
cal_par( index, m_jpsi_protonp_ptrk_offset, ptrk, 0.35, 0.1 );
364 sigp =
cal_par( index, m_jpsi_protonp_ptrk_sigma, ptrk, 0.35, 0.1 );
365 if ( fabs( costm ) <= 0.83 )
367 offsetc =
cal_par( index1, m_jpsi_protonp_theta_offset, costm, -0.85, 0.1 );
368 sigcos =
cal_par( index1, m_jpsi_protonp_theta_sigma, costm, -0.85, 0.1 );
373 offsetp =
cal_par( index, m_jpsi_protonm_ptrk_offset, ptrk, 0.35, 0.1 );
374 sigp =
cal_par( index, m_jpsi_protonm_ptrk_sigma, ptrk, 0.35, 0.1 );
375 if ( fabs( costm ) <= 0.83 )
377 offsetc =
cal_par( index1, m_jpsi_protonm_theta_offset, costm, -0.85, 0.1 );
378 sigcos =
cal_par( index1, m_jpsi_protonm_theta_sigma, costm, -0.85, 0.1 );
384 if ( rundedx2 <= -9947 && rundedx2 >= -10878 )
388 offsetp =
cal_par( index, m_jpsi_mc_protonp_ptrk_offset, ptrk, 0.35, 0.1 );
389 sigp =
cal_par( index, m_jpsi_mc_protonp_ptrk_sigma, ptrk, 0.35, 0.1 );
390 if ( fabs( costm ) <= 0.83 )
392 offsetc =
cal_par( index1, m_jpsi_mc_protonp_theta_offset, costm, -0.85, 0.1 );
393 sigcos =
cal_par( index1, m_jpsi_mc_protonp_theta_sigma, costm, -0.85, 0.1 );
398 offsetp =
cal_par( index, m_jpsi_mc_protonm_ptrk_offset, ptrk, 0.35, 0.1 );
399 sigp =
cal_par( index, m_jpsi_mc_protonm_ptrk_sigma, ptrk, 0.35, 0.1 );
400 if ( fabs( costm ) <= 0.83 )
402 offsetc =
cal_par( index1, m_jpsi_mc_protonm_theta_offset, costm, -0.85, 0.1 );
403 sigcos =
cal_par( index1, m_jpsi_mc_protonm_theta_sigma, costm, -0.85, 0.1 );
409 if ( rundedx2 >= 8093 && rundedx2 <= 9025 )
413 offsetp =
cal_par( index, m_psip_protonp_ptrk_offset, ptrk, 0.35, 0.1 );
414 sigp =
cal_par( index, m_psip_protonp_ptrk_sigma, ptrk, 0.35, 0.1 );
418 offsetp =
cal_par( index, m_psip_protonm_ptrk_offset, ptrk, 0.35, 0.1 );
419 sigp =
cal_par( index, m_psip_protonm_ptrk_sigma, ptrk, 0.35, 0.1 );
424 if ( rundedx2 <= -8093 && rundedx2 >= -9025 )
428 offsetp =
cal_par( index, m_psip_mc_protonp_ptrk_offset, ptrk, 0.35, 0.1 );
429 sigp =
cal_par( index, m_psip_mc_protonp_ptrk_sigma, ptrk, 0.35, 0.1 );
433 offsetp =
cal_par( index, m_psip_mc_protonm_ptrk_offset, ptrk, 0.35, 0.1 );
434 sigp =
cal_par( index, m_psip_mc_protonm_ptrk_sigma, ptrk, 0.35, 0.1 );
439 if ( rundedx2 >= 11414 && rundedx2 <= 14604 )
441 if ( ptrk < 0.2 || ptrk > 1.1 )
break;
442 index = int( ( ptrk - 0.2 ) / 0.05 );
443 if ( index <= 0 ) index = 1;
444 if ( index >= 17 ) index = 16;
445 if ( fabs( costm ) >= 0.83 )
break;
446 index1 = int( ( costm + 0.9 ) / 0.1 );
447 if ( index1 <= 0 ) index1 = 1;
448 if ( index1 >= 17 ) index1 = 16;
450 offsetp =
cal_par( index, m_psipp_proton_ptrk_offset, ptrk, 0.225, 0.05 );
451 sigp =
cal_par( index, m_psipp_proton_ptrk_sigma, ptrk, 0.225, 0.05 );
452 offsetc =
cal_par( index1, m_psipp_proton_theta_offset, costm, -0.85, 0.1 );
453 sigcos =
cal_par( index1, m_psipp_proton_theta_sigma, costm, -0.85, 0.1 );
456 if ( rundedx2 <= -11414 && rundedx2 >= -14604 )
458 if ( ptrk < 0.2 || ptrk > 1.1 )
break;
459 index = int( ( ptrk - 0.2 ) / 0.1 );
460 if ( index <= 0 ) index = 1;
461 if ( index >= 8 ) index = 7;
462 if ( fabs( costm ) >= 0.83 )
break;
463 index1 = int( ( costm + 0.9 ) / 0.1 );
464 if ( index1 <= 0 ) index1 = 1;
465 if ( index1 >= 17 ) index1 = 16;
466 offsetp =
cal_par( index, m_psipp_mc_proton_ptrk_offset, ptrk, 0.25, 0.1 );
467 sigp =
cal_par( index, m_psipp_mc_proton_ptrk_sigma, ptrk, 0.25, 0.1 );
468 offsetc =
cal_par( index1, m_psipp_mc_proton_theta_offset, costm, -0.85, 0.1 );
469 sigcos =
cal_par( index1, m_psipp_mc_proton_theta_sigma, costm, -0.85, 0.1 );
471 offset = offsetp + sigp * offsetc;
472 chicor = ( chicor -
offset ) / ( sigcos * sigp );
476 default:
offset = 0.0;
break;
548 std::string jpsi_kap_mom =
path +
"/share/JPsi/kaon/dedx_kap.txt";
549 std::string jpsi_kap_mom_mc =
path +
"/share/JPsi/kaon/dedx_kap_mc.txt";
550 ifstream inputmomdata6( jpsi_kap_mom.c_str(), std::ios_base::in );
551 if ( !inputmomdata6 )
553 cout <<
" can not open: " << jpsi_kap_mom << endl;
556 ifstream inputmomdata6mc( jpsi_kap_mom_mc.c_str(), std::ios_base::in );
557 if ( !inputmomdata6mc )
559 cout <<
" can not open: " << jpsi_kap_mom_mc << endl;
562 for (
int i = 0; i < 12; i++ )
564 inputmomdata6 >> m_jpsi_kap_ptrk_offset[i];
565 inputmomdata6 >> m_jpsi_kap_ptrk_sigma[i];
566 inputmomdata6mc >> m_jpsi_mc_kap_ptrk_offset[i];
567 inputmomdata6mc >> m_jpsi_mc_kap_ptrk_sigma[i];
571 std::string jpsi_kam_mom =
path +
"/share/JPsi/kaon/dedx_kam.txt";
572 std::string jpsi_kam_mom_mc =
path +
"/share/JPsi/kaon/dedx_kam_mc.txt";
573 ifstream inputmomdata7( jpsi_kam_mom.c_str(), std::ios_base::in );
574 if ( !inputmomdata7 )
576 cout <<
" can not open: " << jpsi_kam_mom << endl;
579 ifstream inputmomdata7mc( jpsi_kam_mom_mc.c_str(), std::ios_base::in );
580 if ( !inputmomdata7mc )
582 cout <<
" can not open: " << jpsi_kam_mom_mc << endl;
585 for (
int i = 0; i < 12; i++ )
587 inputmomdata7 >> m_jpsi_kam_ptrk_offset[i];
588 inputmomdata7 >> m_jpsi_kam_ptrk_sigma[i];
589 inputmomdata7mc >> m_jpsi_mc_kam_ptrk_offset[i];
590 inputmomdata7mc >> m_jpsi_mc_kam_ptrk_sigma[i];
594 std::string jpsi_kap_the =
path +
"/share/JPsi/kaon/dedx_kap_theta.txt";
595 std::string jpsi_kap_the_mc =
path +
"/share/JPsi/kaon/dedx_kap_theta_mc.txt";
596 ifstream inputmomdata8( jpsi_kap_the.c_str(), std::ios_base::in );
597 if ( !inputmomdata8 )
599 cout <<
" can not open: " << jpsi_kap_the << endl;
602 ifstream inputmomdata8mc( jpsi_kap_the_mc.c_str(), std::ios_base::in );
603 if ( !inputmomdata8mc )
605 cout <<
" can not open: " << jpsi_kap_the_mc << endl;
608 for (
int i = 0; i < 18; i++ )
610 inputmomdata8 >> m_jpsi_kap_theta_offset[i];
611 inputmomdata8 >> m_jpsi_kap_theta_sigma[i];
612 inputmomdata8mc >> m_jpsi_mc_kap_theta_offset[i];
613 inputmomdata8mc >> m_jpsi_mc_kap_theta_sigma[i];
617 std::string jpsi_kam_the =
path +
"/share/JPsi/kaon/dedx_kam_theta.txt";
618 std::string jpsi_kam_the_mc =
path +
"/share/JPsi/kaon/dedx_kam_theta_mc.txt";
619 ifstream inputmomdata9( jpsi_kam_the.c_str(), std::ios_base::in );
620 if ( !inputmomdata9 )
622 cout <<
" can not open: " << jpsi_kam_the << endl;
625 ifstream inputmomdata9mc( jpsi_kam_the_mc.c_str(), std::ios_base::in );
626 if ( !inputmomdata9mc )
628 cout <<
" can not open: " << jpsi_kam_the_mc << endl;
631 for (
int i = 0; i < 18; i++ )
633 inputmomdata9 >> m_jpsi_kam_theta_offset[i];
634 inputmomdata9 >> m_jpsi_kam_theta_sigma[i];
635 inputmomdata9mc >> m_jpsi_mc_kam_theta_offset[i];
636 inputmomdata9mc >> m_jpsi_mc_kam_theta_sigma[i];
640 std::string jpsi_protonp_mom =
path +
"/share/JPsi/proton/dedx_protonp.txt";
641 std::string jpsi_protonp_mom_mc =
path +
"/share/JPsi/proton/dedx_protonp_mc.txt";
642 ifstream inputmomdata12( jpsi_protonp_mom.c_str(), std::ios_base::in );
643 if ( !inputmomdata12 )
645 cout <<
" can not open: " << jpsi_protonp_mom << endl;
648 ifstream inputmomdata12mc( jpsi_protonp_mom_mc.c_str(), std::ios_base::in );
649 if ( !inputmomdata12mc )
651 cout <<
" can not open: " << jpsi_protonp_mom_mc << endl;
654 for (
int i = 0; i < 8; i++ )
656 inputmomdata12 >> m_jpsi_protonp_ptrk_offset[i];
657 inputmomdata12 >> m_jpsi_protonp_ptrk_sigma[i];
658 inputmomdata12mc >> m_jpsi_mc_protonp_ptrk_offset[i];
659 inputmomdata12mc >> m_jpsi_mc_protonp_ptrk_sigma[i];
663 std::string jpsi_protonm_mom =
path +
"/share/JPsi/proton/dedx_protonm.txt";
664 std::string jpsi_protonm_mom_mc =
path +
"/share/JPsi/proton/dedx_protonm_mc.txt";
665 ifstream inputmomdata13( jpsi_protonm_mom.c_str(), std::ios_base::in );
666 if ( !inputmomdata13 )
668 cout <<
" can not open: " << jpsi_protonm_mom << endl;
671 ifstream inputmomdata13mc( jpsi_protonm_mom_mc.c_str(), std::ios_base::in );
672 if ( !inputmomdata13mc )
674 cout <<
" can not open: " << jpsi_protonm_mom_mc << endl;
677 for (
int i = 0; i < 8; i++ )
679 inputmomdata13 >> m_jpsi_protonm_ptrk_offset[i];
680 inputmomdata13 >> m_jpsi_protonm_ptrk_sigma[i];
681 inputmomdata13mc >> m_jpsi_mc_protonm_ptrk_offset[i];
682 inputmomdata13mc >> m_jpsi_mc_protonm_ptrk_sigma[i];
686 std::string jpsi_protonp_the =
path +
"/share/JPsi/proton/dedx_protonp_theta.txt";
687 std::string jpsi_protonp_the_mc =
path +
"/share/JPsi/proton/dedx_protonp_theta_mc.txt";
689 ifstream inputmomdata14( jpsi_protonp_the.c_str(), std::ios_base::in );
690 if ( !inputmomdata14 )
692 cout <<
" can not open: " << jpsi_protonp_the << endl;
695 ifstream inputmomdata14mc( jpsi_protonp_the_mc.c_str(), std::ios_base::in );
696 if ( !inputmomdata14mc )
698 cout <<
" can not open: " << jpsi_protonp_the_mc << endl;
701 for (
int i = 0; i < 18; i++ )
703 inputmomdata14 >> m_jpsi_protonp_theta_offset[i];
704 inputmomdata14 >> m_jpsi_protonp_theta_sigma[i];
705 inputmomdata14mc >> m_jpsi_mc_protonp_theta_offset[i];
706 inputmomdata14mc >> m_jpsi_mc_protonp_theta_sigma[i];
710 std::string jpsi_protonm_the =
path +
"/share/JPsi/proton/dedx_protonm_theta.txt";
711 std::string jpsi_protonm_the_mc =
path +
"/share/JPsi/proton/dedx_protonm_theta_mc.txt";
712 ifstream inputmomdata15( jpsi_protonm_the.c_str(), std::ios_base::in );
713 if ( !inputmomdata15 )
715 cout <<
" can not open: " << jpsi_protonm_the << endl;
718 ifstream inputmomdata15mc( jpsi_protonm_the_mc.c_str(), std::ios_base::in );
719 if ( !inputmomdata15mc )
721 cout <<
" can not open: " << jpsi_protonm_the_mc << endl;
724 for (
int i = 0; i < 18; i++ )
726 inputmomdata15 >> m_jpsi_protonm_theta_offset[i];
727 inputmomdata15 >> m_jpsi_protonm_theta_sigma[i];
728 inputmomdata15mc >> m_jpsi_mc_protonm_theta_offset[i];
729 inputmomdata15mc >> m_jpsi_mc_protonm_theta_sigma[i];
733 std::string psip_kap_mom =
path +
"/share/Psip/kaon/dedx_kap.txt";
734 std::string psip_kap_mom_mc =
path +
"/share/Psip/kaon/dedx_kap_mc.txt";
735 ifstream inputmomdata24( psip_kap_mom.c_str(), std::ios_base::in );
736 if ( !inputmomdata24 )
738 cout <<
" can not open: " << psip_kap_mom << endl;
741 ifstream inputmomdata24mc( psip_kap_mom_mc.c_str(), std::ios_base::in );
742 if ( !inputmomdata24mc )
744 cout <<
" can not open: " << psip_kap_mom_mc << endl;
747 for (
int i = 0; i < 9; i++ )
749 inputmomdata24 >> m_psip_kap_ptrk_offset[i];
750 inputmomdata24 >> m_psip_kap_ptrk_sigma[i];
751 inputmomdata24mc >> m_psip_mc_kap_ptrk_offset[i];
752 inputmomdata24mc >> m_psip_mc_kap_ptrk_sigma[i];
756 std::string psip_kam_mom =
path +
"/share/Psip/kaon/dedx_kam.txt";
757 std::string psip_kam_mom_mc =
path +
"/share/Psip/kaon/dedx_kam_mc.txt";
758 ifstream inputmomdata25( psip_kam_mom.c_str(), std::ios_base::in );
759 if ( !inputmomdata25 )
761 cout <<
" can not open: " << psip_kam_mom << endl;
764 ifstream inputmomdata25mc( psip_kam_mom_mc.c_str(), std::ios_base::in );
765 if ( !inputmomdata25mc )
767 cout <<
" can not open: " << psip_kam_mom_mc << endl;
770 for (
int i = 0; i < 9; i++ )
772 inputmomdata25 >> m_psip_kam_ptrk_offset[i];
773 inputmomdata25 >> m_psip_kam_ptrk_sigma[i];
774 inputmomdata25mc >> m_psip_mc_kam_ptrk_offset[i];
775 inputmomdata25mc >> m_psip_mc_kam_ptrk_sigma[i];
779 std::string psip_protonp_mom =
path +
"/share/Psip/proton/dedx_protonp.txt";
780 std::string psip_protonp_mom_mc =
path +
"/share/Psip/proton/dedx_protonp_mc.txt";
781 ifstream inputmomdata26( psip_protonp_mom.c_str(), std::ios_base::in );
782 if ( !inputmomdata26 )
784 cout <<
" can not open: " << psip_protonp_mom << endl;
787 ifstream inputmomdata26mc( psip_protonp_mom_mc.c_str(), std::ios_base::in );
788 if ( !inputmomdata26mc )
790 cout <<
" can not open: " << psip_protonp_mom_mc << endl;
793 for (
int i = 0; i < 9; i++ )
795 inputmomdata26 >> m_psip_protonp_ptrk_offset[i];
796 inputmomdata26 >> m_psip_protonp_ptrk_sigma[i];
797 inputmomdata26mc >> m_psip_mc_protonp_ptrk_offset[i];
798 inputmomdata26mc >> m_psip_mc_protonp_ptrk_sigma[i];
802 std::string psip_protonm_mom =
path +
"/share/Psip/proton/dedx_protonm.txt";
803 std::string psip_protonm_mom_mc =
path +
"/share/Psip/proton/dedx_protonm_mc.txt";
804 ifstream inputmomdata27( psip_protonm_mom.c_str(), std::ios_base::in );
805 if ( !inputmomdata27 )
807 cout <<
" can not open: " << psip_protonm_mom << endl;
810 ifstream inputmomdata27mc( psip_protonm_mom_mc.c_str(), std::ios_base::in );
811 if ( !inputmomdata27mc )
813 cout <<
" can not open: " << psip_protonm_mom_mc << endl;
816 for (
int i = 0; i < 9; i++ )
818 inputmomdata27 >> m_psip_protonm_ptrk_offset[i];
819 inputmomdata27 >> m_psip_protonm_ptrk_sigma[i];
820 inputmomdata27mc >> m_psip_mc_protonm_ptrk_offset[i];
821 inputmomdata27mc >> m_psip_mc_protonm_ptrk_sigma[i];
825 std::string psipp_pi_mom =
path +
"/share/Psipp/pion/dedx_pi.txt";
826 std::string psipp_pi_mom_mc =
path +
"/share/Psipp/pion/dedx_pi_mc.txt";
827 ifstream inputmomdata28( psipp_pi_mom.c_str(), std::ios_base::in );
828 if ( !inputmomdata28 )
830 cout <<
" can not open: " << psipp_pi_mom << endl;
833 ifstream inputmomdata28mc( psipp_pi_mom_mc.c_str(), std::ios_base::in );
834 if ( !inputmomdata28mc )
836 cout <<
" can not open: " << psipp_pi_mom_mc << endl;
839 for (
int i = 0; i < 18; i++ )
841 inputmomdata28 >> m_psipp_pi_ptrk_offset[i];
842 inputmomdata28 >> m_psipp_pi_ptrk_sigma[i];
843 inputmomdata28mc >> m_psipp_mc_pi_ptrk_offset[i];
844 inputmomdata28mc >> m_psipp_mc_pi_ptrk_sigma[i];
848 std::string psipp_pi_the =
path +
"/share/Psipp/pion/dedx_pi_theta.txt";
849 std::string psipp_pi_the_mc =
path +
"/share/Psipp/pion/dedx_pi_theta_mc.txt";
850 ifstream inputmomdata29( psipp_pi_the.c_str(), std::ios_base::in );
851 if ( !inputmomdata29 )
853 cout <<
" can not open: " << psipp_pi_the << endl;
856 ifstream inputmomdata29mc( psipp_pi_the_mc.c_str(), std::ios_base::in );
857 if ( !inputmomdata29mc )
859 cout <<
" can not open: " << psipp_pi_the_mc << endl;
862 for (
int i = 0; i < 16; i++ )
864 inputmomdata29 >> m_psipp_pi_theta_offset[i];
865 inputmomdata29 >> m_psipp_pi_theta_sigma[i];
866 inputmomdata29mc >> m_psipp_mc_pi_theta_offset[i];
867 inputmomdata29mc >> m_psipp_mc_pi_theta_sigma[i];
871 std::string psipp_ka_mom =
path +
"/share/Psipp/kaon/dedx_ka.txt";
872 std::string psipp_ka_mom_mc =
path +
"/share/Psipp/kaon/dedx_ka_mc.txt";
873 ifstream inputmomdata30( psipp_ka_mom.c_str(), std::ios_base::in );
874 if ( !inputmomdata30 )
876 cout <<
" can not open: " << psipp_ka_mom << endl;
879 ifstream inputmomdata30mc( psipp_ka_mom_mc.c_str(), std::ios_base::in );
880 if ( !inputmomdata30mc )
882 cout <<
" can not open: " << psipp_ka_mom_mc << endl;
885 for (
int i = 0; i < 17; i++ )
887 inputmomdata30 >> m_psipp_ka_ptrk_offset[i];
888 inputmomdata30 >> m_psipp_ka_ptrk_sigma[i];
889 inputmomdata30mc >> m_psipp_mc_ka_ptrk_offset[i];
890 inputmomdata30mc >> m_psipp_mc_ka_ptrk_sigma[i];
894 std::string psipp_ka_the =
path +
"/share/Psipp/kaon/dedx_ka_theta.txt";
895 std::string psipp_ka_the_mc =
path +
"/share/Psipp/kaon/dedx_ka_theta_mc.txt";
896 ifstream inputmomdata31( psipp_ka_the.c_str(), std::ios_base::in );
897 if ( !inputmomdata31 )
899 cout <<
" can not open: " << psipp_ka_the << endl;
902 ifstream inputmomdata31mc( psipp_ka_the_mc.c_str(), std::ios_base::in );
903 if ( !inputmomdata31mc )
905 cout <<
" can not open: " << psipp_ka_the_mc << endl;
908 for (
int i = 0; i < 16; i++ )
910 inputmomdata31 >> m_psipp_ka_theta_offset[i];
911 inputmomdata31 >> m_psipp_ka_theta_sigma[i];
912 inputmomdata31mc >> m_psipp_mc_ka_theta_offset[i];
913 inputmomdata31mc >> m_psipp_mc_ka_theta_sigma[i];
917 std::string psipp_proton_mom =
path +
"/share/Psipp/proton/dedx_proton.txt";
918 std::string psipp_proton_mom_mc =
path +
"/share/Psipp/proton/dedx_proton_mc.txt";
919 ifstream inputmomdata32( psipp_proton_mom.c_str(), std::ios_base::in );
920 if ( !inputmomdata32 )
922 cout <<
" can not open: " << psipp_proton_mom << endl;
925 ifstream inputmomdata32mc( psipp_proton_mom_mc.c_str(), std::ios_base::in );
926 if ( !inputmomdata32mc )
928 cout <<
" can not open: " << psipp_proton_mom_mc << endl;
931 for (
int i = 0; i < 18; i++ )
933 inputmomdata32 >> m_psipp_proton_ptrk_offset[i];
934 inputmomdata32 >> m_psipp_proton_ptrk_sigma[i];
936 for (
int i = 0; i < 9; i++ )
938 inputmomdata32mc >> m_psipp_mc_proton_ptrk_offset[i];
939 inputmomdata32mc >> m_psipp_mc_proton_ptrk_sigma[i];
943 std::string psipp_proton_the =
path +
"/share/Psipp/proton/dedx_proton_theta.txt";
944 std::string psipp_proton_the_mc =
path +
"/share/Psipp/proton/dedx_proton_theta_mc.txt";
945 ifstream inputmomdata33( psipp_proton_the.c_str(), std::ios_base::in );
946 if ( !inputmomdata33 )
948 cout <<
" can not open: " << psipp_proton_the << endl;
951 ifstream inputmomdata33mc( psipp_proton_the_mc.c_str(), std::ios_base::in );
952 if ( !inputmomdata33mc )
954 cout <<
" can not open: " << psipp_proton_the_mc << endl;
957 for (
int i = 0; i < 18; i++ )
959 inputmomdata33 >> m_psipp_proton_theta_offset[i];
960 inputmomdata33 >> m_psipp_proton_theta_sigma[i];
961 inputmomdata33mc >> m_psipp_mc_proton_theta_offset[i];
962 inputmomdata33mc >> m_psipp_mc_proton_theta_sigma[i];
995 double cosbin[30] = { -0.865, -0.7, -0.5, -0.325, -0.225, -0.19, -0.17, -0.15,
996 -0.13, -0.11, -0.09, -0.07, -0.05, -0.03, -0.01, 0.01,
997 0.03, 0.05, 0.07, 0.09, 0.11, 0.13, 0.15, 0.17,
998 0.19, 0.225, 0.325, 0.5, 0.7, 0.865 };
999 double corr_offset = 0;
1000 if (
n == 0 ||
n == 1 ||
n == 2 && ptrk > 0.20 ||
1001 n == 3 && ( ptrk > 0.43 || ptrk < 0.2 || fabs( cost ) > 0.2 ) ||
1002 n == 4 && ( ptrk > 0.43 || ptrk < 0.2 ) )
1007 double par_pip_offset[30][7] = {
1008 { -0.273711, 0.418852, -0.111059, 0.011915, 0.0595808, -0.064644, -0.00930414 },
1009 { -0.269974, 0.295548, -0.0805116, 0.112013, -0.0844919, -0.0101669, 0.0472545 },
1010 { -0.248076, 0.230898, -0.0954416, 0.00461465, -0.0513009, 0.0841044, -0.0320536 },
1011 { -0.20576, 0.15908, -0.0827095, -0.0534723, 0.011227, 0.0325395, -0.0518127 },
1012 { -0.168736, 0.129392, -0.05107, -0.126828, 0.126172, -0.0489699, -0.0373492 },
1013 { -0.176773, 0.163439, -0.100698, -0.111413, 0.115099, -0.0726195, -0.00490596 },
1014 { -0.0385498, -0.0807258, 0.0897135, -0.237934, 0.243725, -0.108172, -0.0188745 },
1015 { -0.109386, 0.119386, -0.154018, -0.119937, 0.110189, -0.0662777, -0.0217286 },
1016 { -0.0942173, 0.171144, -0.0806635, -0.182887, 0.22318, -0.137083, 0.0174856 },
1017 { -0.0209689, 0.0959425, -0.00407716, -0.186367, 0.309657, -0.158974, 0.0899474 },
1018 { -0.0742976, 0.194453, -0.245653, -0.119011, 0.169814, -0.0985074, -0.0145252 },
1019 { -0.00874818, 0.381593, -0.398284, 0.133183, 0.0303175, -0.024684, -0.0535397 },
1020 { 0.264664, 0.128337, -0.322216, 0.00757683, 0.072456, -0.0374562, -0.0347229 },
1021 { 0.756099, -0.426524, 0.0622856, -0.194491, 0.148391, -0.027508, -0.0244935 },
1022 { 1.01453, -0.255592, -0.28767, 0.285283, -0.249035, 0.257705, -0.188833 },
1023 { 0.992926, -0.470497, -0.193231, 0.07265, -0.14322, 0.124669, -0.147956 },
1024 { 0.461868, 0.0132674, -0.211087, 0.057901, 0.0263037, 0.0836409, -0.108405 },
1025 { 0.1606, 0.0849392, -0.189776, -0.0816648, 0.0954246, -0.00679478, -0.0341808 },
1026 { 0.00423913, 0.0757551, 0.0444685, -0.281896, 0.379112, -0.212121, 0.0594902 },
1027 { -0.253426, 0.326755, -0.225738, -0.0691578, 0.109788, -0.0812613, -0.0482903 },
1028 { -0.344417, 0.464815, -0.268857, 0.0137453, 0.146423, -0.0908125, 0.0131566 },
1029 { 0.180595, -0.471044, 0.600536, -0.680218, 0.666876, -0.345305, 0.215572 },
1030 { -0.202407, 0.290958, -0.0843309, -0.0730275, 0.157111, -0.0836953, 0.0374609 },
1031 { -0.222727, 0.258844, -0.0676259, -0.123459, 0.18615, -0.0793805, 0.0245286 },
1032 { -0.320709, 0.351355, -0.22756, 0.019593, 0.0261016, 0.0191958, -0.0449903 },
1033 { -0.275517, 0.305623, -0.147753, -0.0221624, 0.0685188, -0.00113907, -0.0110694 },
1034 { -0.237632, 0.222056, -0.0967139, -0.0467247, 0.0196372, 0.013321, -0.0537844 },
1035 { -0.254455, 0.247849, -0.0727208, -0.0359449, -0.0293587, 0.0650545, -0.0368777 },
1036 { -0.260665, 0.296247, -0.0244744, 0.0393139, -0.0729511, 0.0271136, 0.00654422 },
1037 { -0.312108, 0.443109, -0.0993222, 0.0326532, 4.76077e-05, -0.026312, 0.00211329 } };
1038 while ( cost >= cosbin[tmp] && tmp != 28 ) { tmp++; }
1039 if ( tmp == 0 ) tmp += 1;
1041 for (
int j = 0; j < 7; j++ )
1043 double cosbin_tmp[3] = { cosbin[tmp - 1], cosbin[tmp], cosbin[tmp + 1] };
1044 double par_pip_offset_tmp[3] = { par_pip_offset[tmp - 1][j], par_pip_offset[tmp][j],
1045 par_pip_offset[tmp + 1][j] };
1046 par_cos[j] =
interpolation( cost, cosbin_tmp, par_pip_offset_tmp );
1048 double ptrk_tmp = ( ptrk - 0.17 ) / 0.1;
1049 corr_offset = ROOT::Math::ChebyshevN( 6, ptrk_tmp, par_cos );
1054 double par_kp_offset[3][5] = { { 0.00, 0.00, 0.00, 0.00, 0.00 },
1055 { 0.90, 0.90, 0.75, 0.15, 0.00 },
1056 { 0.00, 0.00, 0.00, 0.00, 0.00 } };
1057 double p_bin[6] = { 0.175, 0.225, 0.275, 0.325, 0.375, 0.425 };
1058 int bin_p = ( ptrk - 0.175 ) / 0.05;
1060 ( par_kp_offset[0][bin_p] - par_kp_offset[1][bin_p] ) * fabs( cost ) / 0.1 +
1061 par_kp_offset[1][bin_p];
1063 ( par_kp_offset[0][bin_p + 1] - par_kp_offset[1][bin_p + 1] ) * fabs( cost ) / 0.1 +
1064 par_kp_offset[1][bin_p + 1];
1065 corr_offset = ( int_p2 - int_p1 ) * ( ptrk - p_bin[bin_p] ) + int_p1;
1071 double par_p_offset[30][6] = {
1072 { -0.826976, 1.26319, 0.0168621, -0.350471, 0.208162, -0.0422268 },
1073 { -0.655279, 1.17488, -0.624155, 0.0140827, 0.16105, -0.119258 },
1074 { -0.316389, 0.678636, -0.746556, 0.476035, -0.189224, 0.0435277 },
1075 { 0.151886, -0.0224519, -0.287477, 0.274142, -0.153749, 0.0734597 },
1076 { 0.448262, -0.362655, -0.0415588, 0.110434, -0.0833664, 0.0432422 },
1077 { 0.622144, -0.564482, 0.13891, -0.0124711, -0.00501423, -0.00480475 },
1078 { 0.70422, -0.680696, 0.15964, -0.0148526, -0.0430492, -0.0110849 },
1079 { 0.910677, -0.964731, 0.367566, -0.107582, 0.0527411, 0 },
1080 { 1.0095, -1.10729, 0.394171, -0.119731, 0.0157713, 0 },
1081 { 1.22613, -1.46063, 0.636896, -0.195013, 0.0624278, 0 },
1082 { 1.54499, -1.90653, 0.818578, -0.312619, 0.0763852, 0 },
1083 { 1.98669, -2.52962, 1.10066, -0.335902, 0.0635311, 0 },
1084 { 2.58488, -3.35617, 1.53409, -0.555987, 0.160924, 0 },
1085 { 3.2245, -4.24687, 1.85847, -0.643344, 0.1679, 0 },
1086 { 3.88496, -4.6193, 1.77549, -0.482142, 0.0735315, 0 },
1087 { 3.72702, -4.64294, 1.89108, -0.510733, 0.0914982, 0 },
1088 { 2.44759, -3.709, 1.62889, -0.530121, 0.122125, 0 },
1089 { 1.48439, -2.52461, 1.10631, -0.38799, 0.0801175, 0 },
1090 { 0.90893, -1.66597, 0.723416, -0.209917, 0.0630468, 0 },
1091 { 0.560033, -1.07386, 0.398224, -0.103849, 0.00455556, 0 },
1092 { 0.419805, -0.809094, 0.318519, -0.0969289, 0.0118289, 0 },
1093 { 0.287319, -0.436034, 0.0837204, 0.0581752, -0.0808111, 0.0359385 },
1094 { 0.258884, -0.357818, 0.0475784, 0.0384534, -0.0402014, -0.000481745 },
1095 { 0.21925, -0.246146, 0.00484353, 0.0531687, -0.031646, 0.0224279 },
1096 { 0.16258, -0.193137, -0.0671331, 0.0707033, -0.0645643, 0.00244481 },
1097 { 0.145212, -0.095416, -0.152871, 0.155015, -0.0852023, 0.0387718 },
1098 { 0.00824374, 0.111452, -0.341958, 0.296775, -0.163263, 0.0740253 },
1099 { -0.348253, 0.699121, -0.755615, 0.479183, -0.188644, 0.043546 },
1100 { -0.662414, 1.16992, -0.664637, 0.0413632, 0.145736, -0.110265 },
1101 { -0.852959, 1.28192, -0.0518724, -0.297676, 0.164896, -0.0247413 } };
1102 while ( cost >= cosbin[tmp] && tmp != 28 ) { tmp++; }
1103 if ( tmp == 0 ) tmp += 1;
1105 for (
int j = 0; j < 6; j++ )
1107 double cosbin_tmp[3] = { cosbin[tmp - 1], cosbin[tmp], cosbin[tmp + 1] };
1108 double par_p_offset_tmp[3] = { par_p_offset[tmp - 1][j], par_p_offset[tmp][j],
1109 par_p_offset[tmp + 1][j] };
1110 par_cos[j] =
interpolation( cost, cosbin_tmp, par_p_offset_tmp );
1112 double ptrk_tmp = ( ptrk - 0.33 ) / 0.1;
1113 corr_offset = ROOT::Math::Chebyshev5( ptrk_tmp, par_cos[0], par_cos[1], par_cos[2],
1114 par_cos[3], par_cos[4], par_cos[5] );
1115 if ( cost > 0.83 && ptrk < 0.3 )
return 2 * corr_offset;
1119 std::cerr << __FILE__ <<
":" << __LINE__ <<
" Should not reach here!" << std::endl;
1124 double cosbin[30] = { -0.865, -0.7, -0.5, -0.325, -0.225, -0.19, -0.17, -0.15,
1125 -0.13, -0.11, -0.09, -0.07, -0.05, -0.03, -0.01, 0.01,
1126 0.03, 0.05, 0.07, 0.09, 0.11, 0.13, 0.15, 0.17,
1127 0.19, 0.225, 0.325, 0.5, 0.7, 0.865 };
1128 double corr_sigma = 1;
1129 if (
n == 0 ||
n == 1 ||
n == 2 && ptrk > 0.20 ||
1130 n == 3 && ( ptrk > 0.43 || ptrk < 0.2 || fabs( cost ) > 0.2 ) ||
1131 n == 4 && ( ptrk > 0.43 || ptrk < 0.2 ) )
1136 double par_pip_sigma[30][8] = {
1137 { 0.980745, -0.0320824, 0.148076, -0.0185231, -0.0287245, -0.0146609, 0.0291458,
1139 { 0.909279, 0.171988, 0.0389074, -0.0877263, 0.0104833, 0.0392911, -0.0306531,
1141 { 0.952309, 0.168354, 0.0100906, -0.0781473, 0.0874947, -0.0399515, -0.0040687,
1143 { 1.01305, 0.110082, 0.0356032, -0.0320006, 0.0398265, 0.00283998, -0.00353269,
1145 { 1.10214, -0.0464266, 0.0844326, -0.0133869, -0.0233443, 0.0470427, -0.0233875,
1147 { 1.13722, -0.0694168, 0.0810207, -0.00461111, -0.0657331, 0.0435981, -0.0305237,
1149 { 1.12494, -0.0402269, 0.039213, 0.0410197, -0.0849904, 0.0588127, -0.0110273,
1151 { 1.19926, -0.124029, 0.0915294, 0.0051942, -0.0546915, 0.0774849, -0.0186289,
1153 { 1.29678, -0.285694, 0.230571, -0.127148, 0.0295359, -0.0319002, 0.0336125,
1155 { 1.34107, -0.299083, 0.21921, -0.115439, 0.0098274, -0.0225279, 0.0177997,
1157 { 1.37443, -0.292003, 0.170567, -0.0571655, -0.0168999, 0.0336943, 0.00351935,
1159 { 1.53528, -0.469584, 0.286359, -0.136798, -0.0158706, -0.00297735, 0.00902674,
1161 { 1.76254, -0.697432, 0.422368, -0.120523, -0.070091, 0.094326, -0.030649,
1163 { 1.94569, -0.911353, 0.454219, 0.0156298, -0.319211, 0.379627, -0.238878, 0.0963599 },
1164 { 2.43193, -1.66075, 1.11878, -0.488709, 0.0340719, 0.160446, -0.0920272, 0.0514607 },
1165 { 2.0932, -1.05913, 0.580453, -0.0946158, -0.236143, 0.29226, -0.176364, 0.0320375 },
1166 { 1.92749, -0.929276, 0.553641, -0.170987, -0.098254, 0.135239, -0.075694,
1168 { 1.875, -0.988737, 0.679303, -0.365717, 0.0721803, 0.0117188, -0.00415287,
1170 { 1.58964, -0.578412, 0.43666, -0.221821, 0.051573, -0.00910371, 0.0148332,
1172 { 1.37654, -0.303804, 0.192889, -0.0902226, -0.00981288, -0.0260383, 0.0428074,
1174 { 1.33936, -0.328366, 0.265274, -0.150611, 0.0536288, -0.0520476, 0.0561347,
1176 { 1.21193, -0.144586, 0.0934788, -0.0178466, -0.0531063, 0.0124997, 0.0153325,
1178 { 1.17235, -0.0870064, 0.0758076, 0.00109802, -0.0561468, 0.030234, 0.011407,
1180 { 1.16807, -0.127506, 0.118003, -0.0407013, -0.00810034, -0.00531038, 0.0271216,
1182 { 1.10302, -0.0128453, 0.0366757, 0.0430047, -0.0677478, 0.0658191, -0.0213085,
1184 { 1.09825, -0.0253014, 0.0807453, -0.0315216, -0.00550889, 0.0126133, 0.00452082,
1186 { 1.0199, 0.0937959, 0.0449512, -0.0539498, 0.0544941, -0.0364448, 0.0205853,
1188 { 0.964461, 0.159884, 0.0289211, -0.0837419, 0.0984221, -0.0551503, 0.00340403,
1190 { 0.92457, 0.159631, 0.0423011, -0.07931, 0.0114676, 0.0488719, -0.0348463,
1192 { 1.00597, -0.0291862, 0.131163, -0.03148, -0.024414, -0.039103, 0.0488831,
1194 while ( cost >= cosbin[tmp] && tmp != 28 ) { tmp++; }
1195 if ( tmp == 0 ) tmp += 1;
1197 for (
int j = 0; j < 8; j++ )
1199 double cosbin_tmp[3] = { cosbin[tmp - 1], cosbin[tmp], cosbin[tmp + 1] };
1200 double par_pip_sigma_tmp[3] = { par_pip_sigma[tmp - 1][j], par_pip_sigma[tmp][j],
1201 par_pip_sigma[tmp + 1][j] };
1202 par_cos[j] =
interpolation( cost, cosbin_tmp, par_pip_sigma_tmp );
1204 double ptrk_tmp = ( ptrk - 0.17 ) / 0.1;
1205 double corr_sigma = ROOT::Math::ChebyshevN( 7, ptrk_tmp, par_cos );
1206 if ( corr_sigma < 1 )
return 1;
1207 else return corr_sigma;
1211 double par_kp_sigma[3][5] = { { 1.00, 1.00, 1.00, 1.00, 1.00 },
1212 { 1.80, 1.80, 1.51, 1.41, 1.00 },
1213 { 1.00, 1.00, 1.00, 1.00, 1.00 } };
1214 double p_bin[6] = { 0.175, 0.225, 0.275, 0.325, 0.375, 0.425 };
1215 int bin_p = ( ptrk - 0.175 ) / 0.05;
1216 double int_p1 = ( par_kp_sigma[0][bin_p] - par_kp_sigma[1][bin_p] ) * fabs( cost ) / 0.1 +
1217 par_kp_sigma[1][bin_p];
1219 ( par_kp_sigma[0][bin_p + 1] - par_kp_sigma[1][bin_p + 1] ) * fabs( cost ) / 0.1 +
1220 par_kp_sigma[1][bin_p + 1];
1221 corr_sigma = ( int_p2 - int_p1 ) * ( ptrk - p_bin[bin_p] ) + int_p1;
1227 double par_p_sigma[30][8] = {
1228 { 0.794024, 0.0425693, 0.0236678, -0.0382406, 0.0695961, -0.0580967, 0.035697,
1230 { 0.832773, -0.00113245, -0.031817, 0.0606602, -0.0447306, -0.00903627, 0.025789,
1232 { 0.908858, -0.087108, 0.0549567, 0.00174534, -0.0270899, 0.0429156, -0.0280865,
1234 { 1.04046, -0.246353, 0.133491, -0.049544, 0.0180147, 0, 0, 0 },
1235 { 1.25697, -0.492783, 0.244496, -0.0930121, 0.0267921, 0, 0, 0 },
1236 { 1.40495, -0.656157, 0.341844, -0.13557, 0.0444445, 0, 0, 0 },
1237 { 1.48819, -0.722884, 0.375376, -0.133594, 0.0550627, 0, 0, 0 },
1238 { 1.73349, -1.02811, 0.545484, -0.22501, 0.0867905, 0, 0, 0 },
1239 { 1.86727, -1.11375, 0.566508, -0.209777, 0.0683113, 0, 0, 0 },
1240 { 2.17391, -1.50475, 0.78278, -0.317744, 0.0926452, 0, 0, 0 },
1241 { 2.4923, -1.78499, 0.944323, -0.412239, 0.144967, 0, 0, 0 },
1242 { 2.96861, -2.37577, 1.24553, -0.50482, 0.135875, 0, 0, 0 },
1243 { 3.31789, -2.67592, 1.3589, -0.552132, 0.210676, 0, 0, 0 },
1244 { 3.7896, -3.26956, 1.68685, -0.702016, 0.155152, 0, 0, 0 },
1245 { 3.86579, -3.22667, 1.54792, -0.607399, 0.174962, 0, 0, 0 },
1246 { 3.91034, -3.35332, 1.66152, -0.618642, 0.152329, 0, 0, 0 },
1247 { 3.33904, -2.66857, 1.27733, -0.460009, 0.0800364, 0, 0, 0 },
1248 { 2.97639, -2.27119, 1.1101, -0.410801, 0.120688, 0, 0, 0 },
1249 { 2.55881, -1.83093, 0.905367, -0.339415, 0.107886, 0, 0, 0 },
1250 { 2.34426, -1.713, 0.866848, -0.370726, 0.087723, 0, 0, 0 },
1251 { 1.98031, -1.24099, 0.640849, -0.232078, 0.0726222, 0, 0, 0 },
1252 { 1.74302, -0.984163, 0.490949, -0.172, 0.0443975, 0, 0, 0 },
1253 { 1.56317, -0.802742, 0.388115, -0.14842, 0.0359668, 0, 0, 0 },
1254 { 1.44037, -0.668254, 0.352312, -0.120142, 0.0549672, 0, 0, 0 },
1255 { 1.34493, -0.583195, 0.310501, -0.130395, 0.0447765, 0, 0, 0 },
1256 { 1.22836, -0.433327, 0.229097, -0.0728195, 0.022962, 0, 0, 0 },
1257 { 1.05117, -0.246895, 0.142671, -0.0529643, 0.016318, 0, 0, 0 },
1258 { 0.909469, -0.0691198, 0.0377954, 0.019234, -0.0322931, 0.0460066, -0.0270032,
1260 { 0.843402, -0.0106399, -0.0217012, 0.0502854, -0.0341327, -0.0117776, 0.0292822,
1262 { 0.826268, -0.00178627, 0.0679738, -0.065918, 0.0696007, -0.0648257, 0.0328222,
1264 while ( cost >= cosbin[tmp] && tmp != 28 ) { tmp++; }
1265 if ( tmp == 0 ) tmp += 1;
1267 for (
int j = 0; j < 8; j++ )
1269 double cosbin_tmp[3] = { cosbin[tmp - 1], cosbin[tmp], cosbin[tmp + 1] };
1270 double par_p_sigma_tmp[3] = { par_p_sigma[tmp - 1][j], par_p_sigma[tmp][j],
1271 par_p_sigma[tmp + 1][j] };
1272 par_cos[j] =
interpolation( cost, cosbin_tmp, par_p_sigma_tmp );
1274 double ptrk_tmp = ( ptrk - 0.33 ) / 0.1;
1275 corr_sigma = ROOT::Math::ChebyshevN( 7, ptrk_tmp, par_cos );
1276 if ( corr_sigma < 1 )
return 1;
1277 else return corr_sigma;
1280 std::cerr << __FILE__ <<
":" << __LINE__ <<
" Should not reach here!" << std::endl;