253 for (
int i = 0; i < 120; i++ ) { VXS[i].resize( 600 ); }
255 for (
int i = 0; i < 97; i++ )
257 if ( 53 <= i && i <= 58 )
continue;
258 if ( 86 <= i && i <= 89 )
continue;
259 if ( _mode == 74110 || _mode == -100 ) vmode.push_back( i );
261 if ( _mode == 74110 || _mode == -100 )
263 vmode.push_back( 74100 );
264 vmode.push_back( 74101 );
265 vmode.push_back( 74102 );
266 vmode.push_back( 74103 );
267 vmode.push_back( 74104 );
268 vmode.push_back( 74105 );
269 vmode.push_back( 74110 );
272 std::cout <<
"==== Parameters set by users=====" << std::endl;
273 for (
int i = 0; i < ncommand; i++ ) { std::cout << commands[i] << std::endl; }
274 std::cout <<
"===================================" << std::endl;
276 std::cout << threshold <<
" " << beamEnergySpread << std::endl;
292 std::cout <<
"Bad daughter specified" << std::endl;
307 std::cout <<
"The decay daughters are " << std::endl;
308 for (
int i = 2; i <
getNArg(); i++ )
313 std::cout << std::endl;
315 else if (
getArg( 0 ) == -2 )
321 for (
int i = 1; i <
getNArg(); i++ )
324 else if (
getArg( 0 ) == -100 )
329 for (
int i = 1; i <
getNArg(); i++ ) { vmd.push_back(
getArg( i ) ); }
330 std::cout <<
" multi-exclusive mode " << std::endl;
331 for (
int i = 1; i <
getNArg(); i++ ) { std::cout <<
getArg( i ) <<
" "; }
332 std::cout << std::endl;
333 if ( vmd[vmd.size() - 1] == 74110 )
335 std::cout <<
"74110 is not allowd for multimode simulation" << std::endl;
359 std::cout <<
"ConExc:number of parameter should be 1,2 or 3, but you set " <<
getNArg()
374 myfile =
new TFile(
"mydbg.root",
"RECREATE" );
375 xs =
new TTree(
"xs",
"momentum of rad. gamma and hadrons" );
376 xs->Branch(
"imode", &imode,
"imode/I" );
377 xs->Branch(
"pgam", pgam,
"pgam[4]/D" );
378 xs->Branch(
"phds", phds,
"phds[4]/D" );
379 xs->Branch(
"ph1", ph1,
"ph1[4]/D" );
380 xs->Branch(
"ph2", ph2,
"ph2[4]/D" );
381 xs->Branch(
"mhds", &mhds,
"mhds/D" );
382 xs->Branch(
"mass1", &mass1,
"mass1/D" );
383 xs->Branch(
"mass2", &mass2,
"mass2/D" );
384 xs->Branch(
"costheta", &costheta,
"costheta/D" );
385 xs->Branch(
"cosp", &cosp,
"cosp/D" );
386 xs->Branch(
"cosk", &cosk,
"cosk/D" );
387 xs->Branch(
"sumxs", &sumxs,
"sumxs/D" );
388 xs->Branch(
"selectmode", &selectmode,
"selectmode/D" );
394 std::cout <<
"parent mass = " << parentMass << std::endl;
417 std::cout <<
"The CMS energy is lower than the threshold of the final states"
422 else if ( _mode == -2 ) { mth =
myxsection->getXlw(); }
427 std::cout <<
"The specified mode is " << _mode << std::endl;
432 double Esig = 0.0001;
433 double x = 2 * Egamcut /
_cms;
435 double mhscut = sqrt(
s * ( 1 - x ) );
438 float fe, fst2, fder, ferrder, fdeg, ferrdeg;
443 if ( 3.0943 <
_cms &&
_cms < 3.102 )
445 std::cout <<
"sum of leptonic, hadronic contributions(u,d,s,c,b) to vacuum polarization: "
446 << vph <<
" @" << fe <<
"GeV" << std::endl;
457 for (
int ii = 0; ii < 3; ii++ )
460 if ( mx < mR || _mode != 74110 )
continue;
461 double narRxs =
Ros_xs( mx, BR_ee[ii], ResId[ii] );
462 std::cout <<
"The corss section for gamma " <<
EvtPDL::name( ResId[ii] ).c_str()
463 <<
" is: " << narRxs <<
"*Br (nb)." << std::endl;
464 ISRXS.push_back( narRxs );
465 ISRM.push_back( mR );
466 ISRFLAG.push_back( 1. );
467 ISRID.push_back( ResId[ii] );
470 std::cout <<
"==========================================================================="
476 std::cout <<
"SetMthr= " <<
SetMthr << std::endl;
477 EgamH = (
s - mhdL * mhdL ) / 2 / sqrt(
s );
481 std::cout <<
"_er0= " << _er0 << std::endl;
483 std::cout <<
"_xs1= " << _xs0 << std::endl;
484 double xs1_err = _er1;
487 double xb = 2 * Esig /
_cms;
490 std::cout <<
"_xs0= " << _xs0 << std::endl;
495 double stp = ( EgamH - Egamcut ) / Nstp;
496 for (
int i = 0; i < Nstp; i++ )
498 double Eg0 = EgamH - i * stp;
499 double Eg1 = EgamH - ( i + 1 ) * stp;
504 AA[i] = ( Eg1 + Eg0 ) / 2;
507 double binwidth = mh2 - mhi;
509 if ( i == 0 ) AF[0] = xsi;
510 if ( i >= 1 ) AF[i] = AF[i - 1] + xsi;
511 RadXS[i] = xsi / stp;
517 AF[599] = AF[598] + _xs0;
521 std::cout <<
"mhdL = " << mhdL <<
", SetMthr= " <<
SetMthr <<
", EgamH = " << EgamH
523 for (
int i = 0; i < vmode.size(); i++ )
525 if ( _mode == 74110 || _mode == -100 )
mk_VXS( Esig, Egamcut, EgamH, i );
547 for (
int i = 0; i < vmode.size(); i++ )
550 if ( md < 74100 || md > 74106 )
continue;
551 std::string partname =
"";
552 if ( md == 74100 ) { partname =
"J/psi"; }
553 else if ( md == 74101 ) { partname =
"psi(2S)"; }
554 else if ( md == 74102 ) { partname =
"psi(3770)"; }
555 else if ( md == 74103 ) { partname =
"phi"; }
556 else if ( md == 74104 ) { partname =
"omega"; }
557 else if ( md == 74105 ) { partname =
"rho0"; }
558 else if ( md == 74106 ) { partname =
"rho(3S)0"; }
560 std::cout <<
"The observed cross section for gamma " << partname <<
": " << VXS[i][599]
561 <<
" nb" << std::endl;
565 for (
int i = 0; i < 600; i++ )
575 std::cout <<
"EgamH = " << EgamH <<
", obsvXS = " << _xs0 + _xs1 <<
", _xs1 = " << _xs1
576 <<
", _xs0 = " << _xs0 << std::endl;
577 std::cout <<
"EgamH = " << EgamH <<
", AF[599] = " << AF[599] <<
", AF[598] = " << AF[598]
578 <<
", _xs0 = " << _xs0 << std::endl;
584 double bornXS =
myxsection->getXsection( mx );
586 double obsvXS = _xs0 + _xs1;
587 double obsvXS_er = _er0 + xs1_err;
588 double corr = obsvXS / bornXS;
589 double corr_er = corr * sqrt( bornXS_er * bornXS_er / bornXS / bornXS +
590 obsvXS_er * obsvXS_er / obsvXS / obsvXS );
594 std::cout <<
"EvtConExc::init : The Born cross section at this point is zero!"
600 std::cout <<
"EvtConExc::init : The observed cross section at this point is zero!"
608 std::cout <<
"" << std::endl;
609 std::cout <<
"========= Generation using cross section (Egamcut=" << Egamcut
610 <<
" GeV) ==============" << std::endl;
611 std::cout <<
" sqrt(s)= " << mx <<
" GeV " << std::endl;
612 if ( _mode >= 0 || _mode == -2 || _mode == -100 )
614 std::cout <<
"The generated born cross section (sigma_b): " << _xs0 <<
"+/-" << _er0
615 <<
" in Unit " << _unit.c_str() << std::endl;
616 std::cout <<
"The generated radiative correction cross section (sigma_isr): " << _xs1
617 <<
"+/-" << xs1_err <<
" in Unit " << _unit.c_str() << std::endl;
619 <<
"The Born process is sampled according to the ratio sigma_b/(sigma_b+sigma_isr)"
621 std::cout <<
"The radiative correction factor f_ISR*f_vacuum= sigma_obs/sigma_born(s) = "
622 << corr <<
"+/-" << fabs( corr_er ) <<
"," << std::endl;
623 std::cout <<
"which is calcualted with these quantities:" << std::endl;
624 std::cout <<
"the observed cross section is " << obsvXS <<
"+/-" << obsvXS_er
625 << _unit.c_str() << std::endl;
626 std::cout <<
"and the Born cross section (s) is " << bornXS <<
"+/-" << bornXS_er
627 << _unit.c_str() << std::endl;
628 std::cout <<
"and the vaccum polarziation factor (lep. + hadr.) 1/|1-Pi|^2= " << vph
631 <<
" GeV, " <<
myxsection->getMsg().c_str() << std::endl;
632 std::cout <<
"==========================================================================="
635 else if ( _mode == -1 )
637 std::cout <<
"The generated born cross section (sigma_b): " << _xs0 <<
" *Br_ee"
638 <<
" in Unit " << _unit.c_str() << std::endl;
639 std::cout <<
"The generated radiative correction cross section (sigma_isr): " << _xs1
640 <<
"*Br_ee in Unit " << _unit.c_str() << std::endl;
642 <<
"The Born process is sampled according to the ratio sigma_b/(sigma_b+sigma_isr)"
644 std::cout <<
"The radiative correction factor sigma_obs/sigma_born(s) = (1+delta) = "
645 << corr <<
"+/-" << fabs( corr_er ) << std::endl;
646 std::cout <<
"==========================================================================="
649 std::cout << std::endl;
650 std::cout << std::endl;
653 if ( _mode == 74110 )
655 std::cout <<
" Summary of Born cross section for each exclusive mode" << std::endl;
656 std::cout <<
"Mode index "
657 <<
" Born cross section at " << mx <<
" GeV "
658 <<
" final states" << std::endl;
660 std::cout <<
"End of summary Born cross section" << std::endl;
668 if ( _xs0 == 0 && _xs1 == 0 )
670 std::cout <<
"EvtConExc::ini() has zero cross section" << std::endl;
674 std::cout << std::endl;
675 std::cout << std::endl;
679 if ( mydbg && _mode != 74110 )
682 double xx[10000], yy[10000], xer[10000], yer[10000];
683 for (
int i = 0; i < nd; i++ )
691 myth =
new TH1F(
"myth",
"Exp.data", 200, xx[0], xx[nd] );
692 for (
int i = 0; i < nd; i++ ) { myth->Fill( xx[i], yy[i] ); }
693 myth->SetError( yer );
698 else if ( mydbg && _mode == 74110 )
701 double xx[10000], yy[10000], xer[10000], yer[10000], ysum[10000], yysum[10000];
702 for (
int i = 0; i < nd; i++ )
708 std::cout <<
"yy " << yy[i] << std::endl;
714 TGraphErrors* Gdt =
new TGraphErrors( nd, xx, yy, xer, yer );
716 myth =
new TH1F(
"myth",
"Exp.data", 600,
xlow, xhigh );
717 Xsum =
new TH1F(
"sumxs",
"sum of exclusive xs", 600,
xlow, xhigh );
718 double mstp = ( xhigh -
xlow ) / 600;
719 for (
int i = 0; i < 600; i++ )
723 if ( xsi == 0 )
continue;
724 myth->Fill( mx, xsi );
728 for (
int i = 0; i < 600; i++ )
732 if ( ysum[i] == 0 )
continue;
733 Xsum->Fill( mx, ysum[i] );
737 for (
int i = 0; i < nd; i++ ) { yysum[i] =
sumExc( xx[i] ); }
739 myth->SetError( yer );
743 TGraphErrors* Gsum =
new TGraphErrors( nd, xx, yysum, xer, yer );
745 double ex[600] = { 600 * 0 };
746 double ey[600], ta[600];
747 double exz[600] = { 600 * 0 };
748 double eyz[600] = { 600 * 0 };
749 for (
int i = 0; i < 600; i++ ) { ey[i] = AF[i] * 0.001; }
750 TGraphErrors* gr0 =
new TGraphErrors( 600, MH, AF, ex, ey );
751 TGraphErrors* gr1 =
new TGraphErrors( 600, MH, RadXS, exz, eyz );
752 TPostScript* ps =
new TPostScript(
"xsobs.ps", 111 );
753 TCanvas* c1 =
new TCanvas(
"c1",
"TGraphs for data", 200, 10, 600, 400 );
756 gStyle->SetCanvasColor( 0 );
757 gStyle->SetStatBorderSize( 1 );
765 gr0->SetMarkerStyle( 10 );
767 gr0->GetXaxis()->SetTitle(
"M_{hadrons} (GeV)" );
768 gr0->GetYaxis()->SetTitle(
"observed cross section (nb)" );
776 gr1->SetMarkerStyle( 10 );
778 gr1->GetXaxis()->SetTitle(
"M_{hadrons} (GeV)" );
779 gr1->GetYaxis()->SetTitle(
"Rad*BornXS" );
783 TMultiGraph* mg =
new TMultiGraph();
784 mg->SetTitle(
"Exclusion graphs" );
785 Gdt->SetMarkerStyle( 2 );
786 Gdt->SetMarkerSize( 1 );
787 Gsum->SetLineColor( 2 );
788 Gsum->SetLineWidth( 1 );
798 mg->GetXaxis()->SetTitle(
"M_{hadrons} (GeV)" );
799 mg->GetYaxis()->SetTitle(
"observed cross section (nb)" );
807 Gdt->SetMarkerStyle( 2 );
809 Gdt->GetXaxis()->SetTitle(
"M_{hadrons} (GeV)" );
810 Gdt->GetYaxis()->SetTitle(
"observed cross section (nb)" );
817 Gsum->SetMarkerStyle( 2 );
818 Gsum->SetMarkerSize( 1 );
820 Gsum->SetLineWidth( 0 );
821 Gsum->GetXaxis()->SetTitle(
"M_{hadrons} (GeV)" );
822 Gsum->GetYaxis()->SetTitle(
"observed cross section (nb)" );
830 Gdt->SetMarkerStyle( 2 );
831 Gdt->SetMarkerSize( 1 );
832 Gdt->SetMaximum( 8000.0 );
833 Gsum->SetLineColor( 2 );
834 Gsum->SetLineWidth( 1.5 );
837 Gsum->GetXaxis()->SetTitle(
"M_{hadrons} (GeV)" );
838 Gsum->GetYaxis()->SetTitle(
"cross section (nb)" );
2306 if ( myvpho != p->
getId() )
2308 std::cout <<
"Parent needs to be vpho, but found " <<
EvtPDL::name( p->
getId() )
2340 if ( _mode == 74110 )
2343 std::vector<int> vmod;
2345 int mn[83] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22,
2346 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 40, 41, 44, 45,
2349 50, 51, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2350 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 90, 91, 92, 93, 94, 95, 96, 74100,
2351 74101, 74102, 74103, 74104, 74105, 74110 };
2352 int mn2[84] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21,
2353 22, 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 40, 41, 44, 45,
2356 50, 51, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2357 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 90, 91, 92, 93, 94, 95, 96, 74100,
2358 74101, 74102, 74103, 74104, 74105, 74110 };
2360 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
2361 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
2362 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 46, 50, 51,
2363 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
2364 84, 85, 90, 91, 92, 93, 94, 95, 96, 74100, 74101, 74102, 74110 };
2372 for (
int i = 0; i < 83; i++ ) { vmod.push_back( mn[i] ); }
2376 for (
int i = 0; i < 84; i++ ) { vmod.push_back( mn2[i] ); }
2388 if ( pm < _xs0 / ( _xs0 + _xs1 ) )
2393 _selectedMode = mymode;
2394 std::cout <<
"A selected mode is " << mymode <<
" with Mhds= " << mhds
2406 for (
int i = 0; i < _ndaugs; i++ )
2413 if ( totMass > p->
mass() )
goto checkA;
2423 mydaugs[0] = daugs[0];
2430 for (
int i = 0; i < 2; i++ )
2439 if ( totMass > p->
mass() )
goto checkB;
2454 if ( mhds <
SetMthr )
goto Sampling_mhds;
2455 double xeng = 1 - mhds * mhds / (
_cms *
_cms );
2458 if ( mydbg ) mass2 = mhds;
2464 if ( mymode == -10 )
goto Sampling_mhds;
2466 if ( mhds < 2.3 && mymode == 74110 )
2467 {
goto ModeSelection; }
2468 std::cout <<
"A selected mode is " << mymode <<
" with Mhds= " << mhds
2470 _selectedMode = mymode;
2487 mydaugs[0] = myvpho;
2492 mydaugs[0] = daugs[0];
2499 ISRphotonAng_sampling:
2502 for (
int i = 0; i < 2; i++ )
2509 if ( totMass > p->
mass() )
goto ISRphotonAng_sampling;
2512 if ( !
checkdecay( p ) )
goto ISRphotonAng_sampling;
2523 double gx = vgam.
get( 1 );
2524 double gy = vgam.
get( 2 );
2525 double sintheta = sqrt( gx * gx + gy * gy ) / vgam.
d3mag();
2534 pgam[0] = vgam.
get( 0 );
2535 pgam[1] = vgam.
get( 1 );
2536 pgam[2] = vgam.
get( 2 );
2537 pgam[3] = vgam.
get( 3 );
2539 phds[0] = vhds.
get( 0 );
2540 phds[1] = vhds.
get( 1 );
2541 phds[2] = vhds.
get( 2 );
2542 phds[3] = vhds.
get( 3 );
2543 costheta = vgam.
get( 3 ) / vgam.
d3mag();
2544 selectmode = mymode;
2548 _modeFlag[1] = _selectedMode;
2556 if ( _mode == -100 )
2565 if ( pm < _xs0 / ( _xs0 + _xs1 ) )
2570 _selectedMode = mymode;
2571 std::cout <<
"A selected mode is " << mymode <<
" with Mhds= " << mhds
2583 for (
int i = 0; i < _ndaugs; i++ )
2590 if ( totMass > p->
mass() )
goto checkAA;
2601 if ( !byn_ang )
goto checkAA;
2607 mydaugs[0] = daugs[0];
2614 for (
int i = 0; i < 2; i++ )
2623 if ( totMass > p->
mass() )
goto checkBA;
2638 if ( mhds <
SetMthr )
goto Sampling_mhds_A;
2639 double xeng = 1 - mhds * mhds / (
_cms *
_cms );
2642 if ( mydbg ) mass2 = mhds;
2647 if ( mymode == -10 )
goto Sampling_mhds_A;
2649 std::cout <<
"A selected mode is " << mymode <<
" with Mhds= " << mhds
2651 _selectedMode = mymode;
2668 mydaugs[0] = myvpho;
2673 mydaugs[0] = daugs[0];
2680 ISRphotonAng_sampling_A:
2683 for (
int i = 0; i < 2; i++ )
2690 if ( totMass > p->
mass() )
goto ISRphotonAng_sampling_A;
2693 if ( !
checkdecay( p ) )
goto ISRphotonAng_sampling_A;
2707 double gx = vgam.
get( 1 );
2708 double gy = vgam.
get( 2 );
2709 double sintheta = sqrt( gx * gx + gy * gy ) / vgam.
d3mag();
2714 _modeFlag[0] = -100;
2715 _modeFlag[1] = _selectedMode;
2721 pgam[0] = vgam.
get( 0 );
2722 pgam[1] = vgam.
get( 1 );
2723 pgam[2] = vgam.
get( 2 );
2724 pgam[3] = vgam.
get( 3 );
2726 phds[0] = vhds.
get( 0 );
2727 phds[1] = vhds.
get( 1 );
2728 phds[2] = vhds.
get( 2 );
2729 phds[3] = vhds.
get( 3 );
2730 costheta = vgam.
get( 3 ) / vgam.
d3mag();
2731 selectmode = mymode;
2746 if ( pm < _xs0 / ( _xs0 + _xs1 ) )
2749 mhds =
_cms - 0.0001;
2758 double xeng = 1 - mhds * mhds / (
_cms *
_cms );
2761 for (
int i = 0; i < 2; i++ )
2769 SetP4( p, mhds, xeng, theta );
2777 if ( ( _xs0 + _xs1 ) == 0 )
2779 std::cout <<
"EvtConExc::zero total xsection" << std::endl;
2783 double xsratio = _xs0 / ( _xs0 + _xs1 );
2787 if (
getNArg() == 3 && radflag == 1 )
2792 else if (
getNArg() == 3 && radflag == 0 )
2804 double summassx = 0;
2806 for (
int i = 0; i < _ndaugs; i++ )
2814 if ( summassx > p->
mass() )
goto masscheck;
2823 if ( !byn_ang )
goto angular_hadron;
2835 double xeng = 1 - mhdr * mhdr / (
_cms *
_cms );
2846 costheta =
cos( theta );
2850 for (
int i = 0; i < 2; i++ )
2858 SetP4( p, mhdr, xeng, theta );
2871 std::cout <<
"The decay chain: " << std::endl;
2876 if ( mydbg ) { xs->Fill(); }
3904 std::vector<int> vmod;
3906 int mn[83] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3907 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 40, 41, 44, 45,
3910 50, 51, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3911 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 90, 91, 92, 93, 94, 95, 96, 74100,
3912 74101, 74102, 74103, 74104, 74105, 74110 };
3913 int mn2[84] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22,
3914 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 40, 41, 44, 45,
3917 50, 51, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3918 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 90, 91, 92, 93, 94, 95, 96, 74100,
3919 74101, 74102, 74103, 74104, 74105, 74110 };
3923 for (
int i = 0; i < 83; i++ ) { vmod.push_back( mn[i] ); }
3927 for (
int i = 0; i < 84; i++ ) { vmod.push_back( mn2[i] ); }
3934 for (
int i = 0; i < vmod.size(); i++ )
3936 int mymode = vmod[i];
3937 if ( mymode == 74110 )
continue;
3941 if (
myxsection->getUnit() ==
"pb" ) { uscale = 0.001; }
3942 else { uscale = 1; }
3943 xsum += uscale *
myxsection->getXsection( mx );
3950 std::vector<int> vmod;
3952 int mn[83] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3953 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 40, 41, 44, 45,
3956 50, 51, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3957 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 90, 91, 92, 93, 94, 95, 96, 74100,
3958 74101, 74102, 74103, 74104, 74105, 74110 };
3959 int mn2[84] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22,
3960 23, 24, 25, 26, 27, 28, 29, 32, 33, 34, 35, 36, 37, 38, 40, 41, 44, 45,
3963 50, 51, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
3964 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 90, 91, 92, 93, 94, 95, 96, 74100,
3965 74101, 74102, 74103, 74104, 74105, 74110 };
3969 for (
int i = 0; i < 83; i++ ) { vmod.push_back( mn[i] ); }
3973 for (
int i = 0; i < 84; i++ ) { vmod.push_back( mn2[i] ); }
3981 for (
int i = 0; i < vmod.size(); i++ )
3983 int mymode = vmod[i];
3987 if (
myxsection->getUnit() ==
"pb" ) { uscale = 0.001; }
3988 else { uscale = 1; }
3989 double mixs = uscale *
myxsection->getXsection( mx );
3990 if ( mymode == 74110 )
3997 std::cout << setw( 5 ) << mymode <<
" : ";
3998 std::cout << setw( 10 ) << mixs <<
" nb ";
3999 for (
int ii = 0; ii < _ndaugs; ii++ )
4000 { std::cout << setw( 10 ) <<
EvtPDL::name( daugs[ii] ) <<
" "; }
4001 std::cout << std::endl;
4003 std::cout << setw( 6 ) <<
"LUARLW " << setw( 10 ) << hxs - xsum <<
" nb " << setw( 10 )
4004 <<
" anything " << std::endl;
4005 std::cout <<
"Total hadron cross section here is " << hxs <<
" nb" << std::endl;