70 : theEnvironment(theEnv)
85 G4cout <<
"G4QEnviron::Const: t4M=" << tot4Mom <<
",tC=" << totCharge
86 <<
",tB=" << totBaryoN <<
G4endl;
93 : theEnvironment(90000000)
105 theTargetPDG=targPDG;
106 G4int nHadrons=projHadrons.size();
109 G4cout<<
"--->>G4QE::Const: Called targPDG="<<targPDG<<
", nInpHadr="<<nHadrons<<
G4endl;
111 if(nHadrons<1 || targPDG==90000000)
113 G4cout <<
"---Warning---G4QEnv::Const:a#ofINPHadr=" << nHadrons
114 <<
",tPDG=" << targPDG <<
G4endl;
118 for (
G4int ih=0; ih<nHadrons; ih++)
122 G4cout <<
"*G4QE::Const:iH#" << ih <<
"," << curQH->
GetQC()
140 if(
sqr(h1M+h2M) < chM2 )
147 ed <<
"QChip DecIn2 error: CM=" << std::sqrt(chM2) <<
" -> h1="
148 << h1QPDG <<
"(" << h1M <<
") + h2=" << h1QPDG <<
"(" << h2M
149 <<
") = " << h1M+h2M <<
" **Failed**" <<
G4endl;
150 G4Exception(
"G4QEnvironment::G4QEnvironment()",
"HAD_CHPS_0000",
155 theQHadrons.push_back(h1H);
157 theProjectiles.push_back(curQH);
160 G4cout<<
"G4QE::Constr: QChipolino -> H1="<<h1QPDG<<h14M<<
G4endl;
163 theQHadrons.push_back(curQH);
165 G4cout<<
"G4QE::Constr: QChipolino -> H2="<<h2QPDG<<h24M<<
G4endl;
171 ed <<
"LowMassChipolino in Input: " << ih <<
"," << curQH->
GetQC()
172 << curQH->
Get4Momentum() <<
", chipoM=" << std::sqrt(chM2) <<
" < m1="
173 << h1M <<
"(" << h1QPDG <<
") + m2=" << h2M <<
"(" << h2QPDG <<
") = "
175 G4Exception(
"G4QEnvironment::G4QEnvironment()",
"HAD_CHPS_0001",
179 theQHadrons.push_back(curQH);
181 theProjectiles.push_back(curQH);
184 else if(targPDG!=90000000)
190 theQHadrons.push_back(curQH);
192 if (nHadrons<0)
G4cout<<
"***Warning****G4QE::Const:NH="<<nHadrons<<
" < 0 !"<<
G4endl;
206 G4cout<<
"G4QE::C:PDG="<<targPDG<<
",C="<<totCharge<<
",M="<<targM<<
",n="<<nHadrons<<
G4endl;
208 for(
G4int ipr=0; ipr<nHadrons; ipr++)
212 theProjectiles.push_back(curQH);
221 G4cout<<
"G4QE::C:#"<<ipr<<
",PDG="<<hPDG<<hQC<<
",4M="<<h4Mom<<
",hNFr="<<hNFrag<<
G4endl;
225 G4cout<<
"G4QEnv::Const:tC="<<totCharge<<
",tB="<<totBaryoN<<
",tot4M="<<tot4Mom<<
G4endl;
228 G4cout<<
"G4QEnv::Const: --> tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
234 G4cout<<
"G4QEnv:Const:Before NCI:n="<<nP<<
",F="<<projHadrons[0]->GetNFragments()<<
",tC="
235 <<totCharge<<
",tB="<<totBaryoN<<
", nCl="<<nCl<<
G4endl;
237 InitClustersVector(nCl,targA);
239 G4cout<<
"G4QEnv::Const:NucClust,n="<<nCl<<
",F="<<projHadrons[0]->GetNFragments()<<
",tC="
240 <<totCharge<<
",tB="<<totBaryoN<<
G4endl;
246 G4cout<<
"G4QEnv::Const:nH="<<nHadrons<<
",PDG="<<projHadrons[0]->GetPDGCode()<<
",tC="
247 <<totCharge<<
",tB="<<totBaryoN<<
G4endl;
254 G4cout<<
"G4QEnviron::Constructor: *** Only one input hadron*** PDG="<<opPDG<<
G4endl;
260 G4cout<<
"G4QEnvironment::Const: exM="<<exMass-targM<<
" > mPi0 ?"<<
G4endl;
262 if(exMass<targM+135.977)
269 G4cout<<
"G4QEnv::Const:Photon's added to Output, Env="<<theEnvironment<<
G4endl;
275 theQHadrons.push_back(photon);
282 if(!
G4QHadron(tot4Mom).DecayIn2(prot4m,gam4m))
285 G4cout<<
"*War*G4QEnv::Const:(P)Photon->Output, Env="<<theEnvironment<<
G4endl;
291 theQHadrons.push_back(photon);
295 theQHadrons.push_back(proton);
297 theQHadrons.push_back(photon);
300 G4cout<<
"G4QEnv::Const:Fill gamma and N from gam+N"<<targPDG<<prot4m<<
G4endl;
306 else if(opPDG==13 || opPDG==15)
309 if(opPDG==15) nuPDG=16;
334 G4cout<<
"G4QEnvironment::Const:mu4M="<<mu4m<<
",t4M="<<qt4m<<
",tgQP="<<qi4m<<
G4endl;
340 G4cout<<
"***G4QE::Constr:Muon error (1) 4M="<<mu4m<<
". Fill as it is."<<
G4endl;
342 theQHadrons.push_back(lepton);
346 G4cout<<
"G4QEnv::Const:i="<<qi4m<<
",t="<<qt4m<<
"->n="<<nu4m<<
"+q="<<qf4m<<
G4endl;
351 G4cout<<
"--G4QEnv::Const:M="<<tm<<
",GSM=="<<fnm<<
G4endl;
358 G4cout<<
"G4QEnv::Const:fM="<<tm<<fn4m<<
",GSM="<<fnm<<
G4endl;
366 G4cout<<
"***G4QE::Constr:Muon error (2) 4M="<<mu4m<<
". Fill as it is."<<
G4endl;
368 theQHadrons.push_back(muon);
373 EvaporateResidual(fnuc);
377 G4cout<<
"G4QEnv::Const:Fill neutrino (1) "<<nuPDG<<nu4m<<
G4endl;
379 theQHadrons.push_back(neutrino);
384 G4cout<<
"G4QEnv::Const:Fill neutrino (2) "<<nuPDG<<nu4m<<
G4endl;
386 theQHadrons.push_back(neutrino);
392 G4cout<<
"G4QEnv::Const: impossible to split nucleon after mu->nu"<<
G4endl;
398 G4cout<<
"***G4QE::Constr:LepCapError(3),M="<<fn4m.
m()<<
"<"<<fnm<<
G4endl;
400 theQHadrons.push_back(resid);
408 theQHadrons.push_back(photon);
411 G4cout<<
"G4QEnv::Const:Fill target "<<targQC<<qf4m<<
" in any form"<<
G4endl;
413 EvaporateResidual(fnuc);
427 for(
G4int ih=0; ih<nHadrons; ih++)
433 G4cout<<
"G4QE:C:"<<ih<<
",F="<<hNFrag<<
",0="<<projHadrons[0]->GetNFragments()<<
G4endl;
435 if(!hNFrag&&ch4M.
e()>0.)
462 theQHadrons.push_back(newHadr);
464 G4cout<<
"G4QEnviron::Constructor: Fill h="<<hPDG<<ch4M<<
G4endl;
465 for(
unsigned ipo=0; ipo<theQHadrons.size(); ipo++)
467 G4int hPDG = theQHadrons[ipo]->GetPDGCode();
469 G4int hNFrag= theQHadrons[ipo]->GetNFragments();
471 G4cout<<
"h#"<<ipo<<
": "<<hPDG<<hQC<<
",4M="<<h4Mom<<
",nFr="<<hNFrag<<
G4endl;
481 G4cout<<
"G4QE::Const:CreateQuasm, 4M="<<ch4M<<
",QC="<<hQC<<
",E="<<envPDG<<
",tC="
482 <<totCharge<<
",tB="<<totBaryoN<<
G4endl;
484 CreateQuasmon(hQC, ch4M, fake);
496 G4cout<<
"---Warning---G4QEnvironment::Constructor:Vacuum,1st Hadron wrong PDG="<<hPDG
505 G4cout<<
"---Warning---G4QEnviron::Constructor:Vacuum,Q<0, 1st HPDG="<<hPDG<<
G4endl;
512 if(!targPDG||targPDG==10)
G4cout<<
"G4QEnv::CreateQ; (1) PDG="<<targPDG<<
G4endl;
515 if(tQ<0||targPDG==10)
517 G4cout<<
"---Warning---G4QEnv::Constructor:TrgQC<0, Chipo?,PDG="<<targPDG<<
G4endl;
525 G4cout<<
"G4QEnv::Const:VacHadrTarg="<<h4Mom<<hQC<<
",E="<<theEnvironment<<
G4endl;
528 theQuasmons.push_back(curQuasmon);
532 if(nHadrons>1)
for(
G4int ih=0; ih<nHadrons; ih++)
538 theQHadrons.push_back(newHadr);
544 G4int nHad=theQHadrons.size();
545 if(nHad)
for(
G4int ih=0; ih<nHad; ih++)
547 finCharge+=theQHadrons[ih]->GetCharge();
548 finBaryoN+=theQHadrons[ih]->GetBaryonNumber();
550 G4int nQuas=theQuasmons.size();
551 if(nQuas)
for(
G4int iq=0; iq<nQuas; iq++)
553 finCharge+=theQuasmons[iq]->GetCharge();
554 finBaryoN+=theQuasmons[iq]->GetBaryonNumber();
556 if(finCharge!=totCharge || finBaryoN!=totBaryoN)
558 G4cout<<
"*::*G4QEnv::C:(0) tC="<<totCharge<<
",C="<<finCharge<<
",tB="<<totBaryoN
559 <<
",B="<<finBaryoN<<
",E="<<theEnvironment<<
G4endl;
560 if(nHad)
for(
G4int h=0; h<nHad; h++)
565 if(nQuas)
for(
G4int q=0; q<nQuas; q++)
579 G4int nQH = right.theQHadrons.size();
580 if(nQH)
for(
G4int ih=0; ih<nQH; ih++)
586 theQHadrons.push_back(curQH);
589 G4int nP = right.theProjectiles.size();
590 if(nP)
for(
G4int ip=0; ip<nP; ip++)
593 theProjectiles.push_back(curP);
595 theTargetPDG = right.theTargetPDG;
596 theWorld = right.theWorld;
597 nBarClust = right.nBarClust;
599 tot4Mom = right.tot4Mom;
600 totCharge = right.totCharge;
601 totBaryoN = right.totBaryoN;
604 G4int nQ = right.theQuasmons.size();
605 if(nQ)
for(
G4int iq=0; iq<nQ; iq++)
608 theQuasmons.push_back(curQ);
612 G4int nQC = right.theQCandidates.size();
613 if(nQC)
for(
G4int ic=0; ic<nQC; ic++)
616 theQCandidates.push_back(curQC);
619 theEnvironment = right.theEnvironment;
626 G4int nQH = right->theQHadrons.size();
627 if(nQH)
for(
G4int ih=0; ih<nQH; ih++)
633 theQHadrons.push_back(curQH);
637 G4int nP = right->theProjectiles.size();
638 if(nP)
for(
G4int ip=0; ip<nP; ip++)
641 theProjectiles.push_back(curP);
643 theTargetPDG = right->theTargetPDG;
644 theWorld = right->theWorld;
645 nBarClust = right->nBarClust;
646 f2all = right->f2all;
647 tot4Mom = right->tot4Mom;
648 totCharge = right->totCharge;
649 totBaryoN = right->totBaryoN;
652 G4int nQ = right->theQuasmons.size();
653 if(nQ)
for(
G4int iq=0; iq<nQ; iq++)
656 theQuasmons.push_back(curQ);
660 G4int nQC = right->theQCandidates.size();
661 if(nQC)
for(
G4int ic=0; ic<nQC; ic++)
664 theQCandidates.push_back(curQC);
667 theEnvironment = right->theEnvironment;
673 G4cout<<
"~G4QEnvironment: before theQCandidates nC="<<theQCandidates.size()<<
G4endl;
677 G4cout<<
"~G4QEnvironment: before theQuasmons nQ="<<theQuasmons.size()<<
G4endl;
679 for_each(theQuasmons.begin(), theQuasmons.end(),
DeleteQuasmon());
681 G4cout<<
"~G4QEnvironment: before theQHadrons nH="<<theQHadrons.size()<<
G4endl;
683 for_each(theQHadrons.begin(), theQHadrons.end(),
DeleteQHadron());
685 G4cout<<
"~G4QEnvironment: before theProjectiles nP="<<theProjectiles.size()<<
G4endl;
687 for_each(theProjectiles.begin(), theProjectiles.end(),
DeleteQHadron());
693 G4double G4QEnvironment::SolidAngle=0.8;
694 G4bool G4QEnvironment::EnergyFlux=
false;
695 G4bool G4QEnvironment::WeakDecays=
false;
696 G4bool G4QEnvironment::ElMaDecays=
true;
697 G4double G4QEnvironment::PiPrThresh=141.4;
698 G4double G4QEnvironment::M2ShiftVir=20000.;
699 G4double G4QEnvironment::DiNuclMass=1880.;
724 G4int iQH = theQHadrons.size();
725 if(iQH)
for(
G4int ii=0; ii<iQH; ii++)
delete theQHadrons[ii];
727 G4int nQH = right.theQHadrons.size();
728 if(nQH)
for(
G4int ih=0; ih<nQH; ih++)
734 theQHadrons.push_back(curQH);
737 theWorld = right.theWorld;
738 nBarClust = right.nBarClust;
742 G4int iQ = theQuasmons.size();
743 if(iQ)
for(
G4int jq=0; jq<iQ; jq++)
delete theQuasmons[jq];
745 G4int nQ = right.theQuasmons.size();
746 if(nQ)
for(
G4int iq=0; iq<nQ; iq++)
749 theQuasmons.push_back(curQ);
753 G4int iQC = theQCandidates.size();
754 if(iQC)
for(
G4int jc=0; jc<iQC; jc++)
delete theQCandidates[jc];
755 theQCandidates.clear();
756 G4int nQC = right.theQCandidates.size();
757 if(nQC)
for(
G4int ic=0; ic<nQC; ic++)
760 theQCandidates.push_back(curQC);
763 theEnvironment = right.theEnvironment;
774 static const G4double mNeu2 = mNeut*mNeut;
776 static const G4double mPro2 = mProt*mProt;
779 static const G4double mPi2 = mPi*mPi;
798 G4cout<<
"*Warning*G4QEnvironment::CreateQuasmon:Epr="<<projE<<
"<0,QC="<<projQC<<
G4endl;
803 G4bool Pr1 = theProjectiles.size() == 1;
804 if(Pr1 && std::fabs(
G4QPDGCode(projPDG).GetMass2()-projM2) > .1 ) Pr1=
false;
806 if(targPDG>80000000&&targPDG!=90000000&&(theEnvironment.
Get4Momentum().
m2())>1000.)
810 G4cout<<
"G4QEnvironment::CreateQ:Interact "<<projQC<<proj4M<<
"(m2="<<projM2<<
") + A="
811 <<targPDG<<
",M="<<tgMass<<
",tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
816 G4int envBN=envZ+envN+envS;
820 if(nCl<0)
G4cout<<
"---Warning---G4QEnv::CreaQ:nP="<<nP<<
" for Targ="<<targPDG<<
G4endl;
821 if (nCl<3) nBarClust=1;
822 else if(nCl<9) nBarClust=2;
828 if(r<7) nBarClust=3+d+
d;
829 else nBarClust=4+d+
d;
832 G4cout<<
"G4QE::CrQ:TNuc:Z="<<envZ<<
",N="<<envN<<
",nC="<<nBarClust<<
",tC="
833 <<totCharge<<
", tB="<<totBaryoN<<
G4endl;
835 G4bool pbpt=projE<PiPrThresh+(M2ShiftVir+projM2)/DiNuclMass;
839 if((projM2-mPi2<.00001||projE-mPi<2.7)&&projPDG==-211&&!fake) piF=
true;
841 if(pbpt&&projPDG==22) gaF=
true;
845 G4cout<<
"G4QEnv::CreateQ: Nucleus("<<targPDG<<
") is created ("<<nBarClust<<
" clast's)";
846 for(
G4int ic=0;ic<nBarClust;ic++)
853 G4cout<<
"G4QE::CrQ:ClusterProbabCalculation tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
864 if((projPDG==-2212||projPDG==-2112||projPDG==-3122||projPDG==-3112||projPDG==-3212||
865 projPDG==-3222) && envBN>1 && proj3M<10.)
870 G4cout<<
"G4QE::CreQ:Annihilation on a perif. nucleon, Z="<<envZ<<
",N="<<envN<<
G4endl;
877 G4int targNPDG = 90000000;
900 theEnvironment.
Reduce(targNPDG);
907 G4cout<<
"G4QEnviron::CQ:"<<targNPDG<<
" + Env="<<theEnvironment<<
",QC="<<valQ<<
G4endl;
919 G4cout<<
"G4QE::CreQ: before Fragment, vE="<<vE<<
",vP="<<vE.GetProbability()<<
",QQC="
920 <<valQ<<
",Q4M="<<q4Mom<<
G4endl;
924 G4cout<<
"G4QE::CrQ:NucleonAntinucleonAnnihilation's done,N="<<output->size()<<
G4endl;
928 G4cout<<
"G4QE::CrQ:>>AnnihilationIsDone,C="<<totCharge<<
",B="<<totBaryoN<<
G4endl;
934 G4int tNH = output->size();
939 G4cout<<
"G4QE::CQ:N="<<tNH<<
",T="<<totCharge<<
","<<totBaryoN<<
",A="<<ra<<
G4endl;
941 for (
G4int ind=0; ind<tNH; ind++)
952 G4cout<<
"G4QE::CrQ:"<<ind<<
","<<shDFL<<
",PDG="<<shPDG<<
",4M="<<sh4m<<
G4endl;
955 if(fabs(ra)<.1) solAnCut=3.;
958 if(shCHG<=0.) solAnCut=-3.;
961 else solAnCut+=1000*shCHG/shMOM/ra;
964 G4cout<<
"G4QE::CrQ: PDG="<<shPDG<<
", p="<<shMOM<<
", r="<<ra<<
G4endl;
969 G4cout<<
"G4QE::CQ:>H="<<shPDG<<
":"<<dir.
dot(shDIR)<<
">"<<solAnCut<<
G4endl;
972 if(dir.
dot(shDIR)>solAnCut && abs(shPDG)>99)
975 G4cout<<
"G4QE::CQ:>H="<<shPDG<<
":"<<dir.
dot(shDIR)<<
">"<<solAnCut<<
", P="
976 << shMOM <<
" < 120" <<
G4endl;
994 input.push_back(mqHadron);
998 G4cout<<
"G4QE::CrQ:Absorb#"<<ind<<
", PDG="<<hPDG<<
", h4M="<<h4M<<
G4endl;
1007 G4cout<<
"G4QE::CrQ: Fill OUT #"<<ind<<
",PDG="<<hPDG<<
",h4M="<<h4M<<
G4endl;
1011 theQHadrons.push_back(curHadron);
1020 G4int noh = theQHadrons.size();
1021 if(noh)
for(
G4int kh=0; kh<noh; kh++)
1024 G4cout<<
"G4QE::CreateQ:H#"<<kh<<
", QC="<<theQHadrons[kh]->GetQC()
1025 <<
", 4M="<<theQHadrons[kh]->Get4Momentum()<<
G4endl;
1028 G4int tmpS=tmpQHadVec->size();
1029 intQHadrons.resize(tmpS+intQHadrons.size());
1030 copy(tmpQHadVec->begin(), tmpQHadVec->end(), intQHadrons.end()-tmpS);
1031 tmpQHadVec->clear();
1034 theQHadrons.clear();
1036 G4int nInH=intQHadrons.size();
1037 G4cout<<
"G4QE::CrQ:nH="<<nInH<<
",C="<<totCharge<<
",B="<<totBaryoN<<
G4endl;
1042 G4cout<<
"*G4QEnv::CrQ:AnnihStack tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
1047 G4cout<<
"G4QE::CrQ:fakeQ, restPars tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
1054 G4cout<<
"G4QE::CrQ:befCl&Dest tC="<<totCharge<<
", tB="<<totBaryoN<<
G4endl;
1064 G4cout<<
"G4QEnv::CreateQ:*** #ofNotInterQH="<<noh<<
" is found ***"<<
G4endl;
1066 if(noh)
for(
G4int nh=0; nh<noh; nh++)
1069 G4cout<<
"G4QE::CreateQ: NotIntQH#"<<nh<<
", QC="<<(*outH)[nh]->GetQC()
1070 <<
", 4M="<<(*outH)[nh]->Get4Momentum()<<
G4endl;
1073 G4int tmpS=tmpQHadVec->size();
1074 intQHadrons.resize(tmpS+intQHadrons.size());
1075 copy(tmpQHadVec->begin(), tmpQHadVec->end(), intQHadrons.end()-tmpS);
1076 tmpQHadVec->clear();
1081 G4int nMQ = outQ->size();
1084 G4cout<<
"G4QE::CrQ:nMQ="<<nMQ<<
",tC="<<totCharge<<
", tB="<<totBaryoN<<
G4endl;
1088 if(nMQ)
for(
G4int mh=0; mh<nMQ; mh++)
1096 theQuasmons.push_back(curQ);
1102 G4int nsHadr = theQHadrons.size();
1103 G4cout<<
"G4QEnvironment::CreateQ: before return nH="<<nsHadr<<
G4endl;
1104 if(nsHadr)
for(
G4int jso=0; jso<nsHadr; jso++)
1106 G4int hsNF = theQHadrons[jso]->GetNFragments();
1110 G4int hPDGC=theQHadrons[jso]->GetPDGCode();
1111 G4cout<<
"G4QE::CrQ: H#"<<jso<<
",4M="<<hLorV<<hPDGC<<
G4endl;
1115 G4cout<<
"G4Q::CrQ:"<<jso<<
"NF=0,4M="<<theQHadrons[jso]->Get4Momentum()<<
G4endl;
1117 G4cout<<
"G4QEnvironment::CreateQ: before return tot4M="<<contr4M<<
G4endl;
1123 if (!efCounter)
return;
1128 PrepareInteractionProbabilities(EnFlQC,EnFlP);
1129 G4int nCandid = theQCandidates.size();
1131 G4cout<<
"G4QEnvironment::CrQ: InteractionProbabilities are done, nC="<<nCandid<<
G4endl;
1138 ed <<
"Cannot select a cluster: nC=" << nCandid <<
",E="
1139 << theEnvironment <<
G4endl;
1140 G4Exception(
"G4QEnvironment::CreateQuasmon()",
"HAD_CHPS_0000",
1143 G4double maxP = theQCandidates[nCandid-1]->GetIntegProbability();
1146 if(nCandid==1||maxP==0.)
1149 G4cout<<
"***G4QEnv::CrQ:MaxP=0||nCand=1: Use all Env., Env="<<theEnvironment<<
G4endl;
1152 theEnvironment=vacuum;
1158 G4cout<<
"G4QEnvironment::CrQ:nC="<<nCandid<<
", maxP="<<maxP<<
", totP="<<totP<<
G4endl;
1160 while(theQCandidates[i]->GetIntegProbability()<totP) i++;
1162 curQC = curCand->
GetQC();
1166 G4cout<<
"G4QEnv::CrQ:Cl#"<<i<<
"(of "<<nCandid<<
"),QC="<<curQC<<
",M="<<clMass<<
G4endl;
1169 if(pq4M.
m()>=clMass)
1172 G4cout<<
"G4QEnv::CQ:#"<<i<<
"("<<targClust<<curQC<<
") Env="<<theEnvironment<<
G4endl;
1174 theEnvironment.
Reduce(targClust.GetPDG());
1180 if(te4M.
m()>=teMass)
1183 G4cout<<
"***G4QEnv::CrQ: Deep virtual, use all Env,Env="<<theEnvironment<<
G4endl;
1186 theEnvironment=vacuum;
1191 theQHadrons.push_back(projH);
1192 G4cout<<
"---Warning---G4QE::CrQ:Fill Proj asItIs QC/4m="<<projQC<<proj4M<<
G4endl;
1199 if(Pr1&&projPDG==22&&projE<PiPrThresh+(M2ShiftVir+projM2)/DiNuclMass)
1205 G4cout<<
"G4QE::CrQ:Q="<<q4Mom<<valQ<<
"+vg="<<proj4M<<
",Env="<<theEnvironment<<
G4endl;
1208 theQuasmons.push_back(curQuasmon);
1210 else if(Pr1&&(std::fabs(projM2-mPi2)<.00001 && projE-mPi<0.1) && projPDG==-211 &&!fake)
1216 if(projE<mPi)
G4cout<<
"*VirtualPiM*G4QE::CrQ:Ener(pi-)="<<projE<<
"<mPi="<<mPi<<
G4endl;
1217 G4cout<<
"G4QEnv::CrQ:Q="<<q4Mom<<valQ<<
"+pi="<<proj4M<<
",E="<<theEnvironment<<
G4endl;
1220 theQuasmons.push_back(curQuasmon);
1227 theEnvironment=memEnviron;
1229 G4cout<<
"G4QEnv::CreQAll: Q="<<q4Mom<<valQ<<
", QEnv="<<theEnvironment<<
G4endl;
1232 theQuasmons.push_back(curQuasmon);
1234 else if(Pr1&&projPDG==2212&&
G4UniformRand()>15./(proj4M.
e()-mProt))
1262 if (prE<prM)
G4cout<<
"-Warn-G4QEnv::CreQAll:(scat w ex)E="<<prE<<
" < M="<<prM<<
G4endl;
1263 G4double Pi=std::sqrt(prE*prE-prM2);
1267 while ( std::fabs(cost) > 1. )
1271 G4cout<<
"-Warning-G4QEnv::CreQAll: c="<<cct<<
" (scat w ex) cost="<<cost<<
G4endl;
1276 om=(tnM2+rmu2+rt)/dtnM;
1279 G4cout<<
"G4QEnv::CreQAll: m2="<<tnM2<<
" < mu2="<<rmu2<<
" < "<<mu2<<
"=Max2"<<
G4endl;
1280 G4cout<<
"G4QEnv::CreQAll: -t="<<rt<<
" < "<<tmax<<
"=tmax"<<
G4endl;
1281 G4cout<<
"G4QEnv::CreQAl: om="<<om<<
" > m="<<tnM<<
", ep="<<ep<<
" > M="<<prM<<
G4endl;
1283 if(ep<scM)
G4cout<<
"+Warn-G4QEnv::CreQAl:(scat w ex)Eo="<<prE<<
" < M="<<prM<<
G4endl;
1284 po=std::sqrt(ep*ep-scM2);
1285 cost=(prE*ep-0.5*(rt+prM2+scM2))/Pi/po;
1288 if(om2<rmu2)
G4cout<<
"-Warn-G4QEnv::CreQA:(scat w ex)e2="<<om<<
" < mu2="<<tnM<<
G4endl;
1290 G4cout<<
"G4QEnv::CreQAll: ct="<<cost<<
",pio="<<Pi*po<<
",()="<<cost*Pi*po<<
G4endl;
1294 G4double pfs=po*std::sqrt(1.-cost*cost);
1300 if(vdir.
mag2() > 0.)
1309 G4ThreeVector fp=pfc*vx+pfs*(std::sin(phi)*vy+std::cos(phi)*vz);
1312 G4cout<<
"G4QEnv::CreQA:ps="<<po<<
"="<<fp.
mag()<<
",sM="<<prM<<
"="<<s4M.m()<<
G4endl;
1313 G4cout<<
"G4QEnv::CreQA:Ee="<<prE*ep<<
" =? "<<(prM2+rt/2-Pi*po*cost)<<G4endl;
1315 if(std::fabs(s4M.m()-scM)>.001)
G4cout<<
"-W-G4QE::CQA:M="<<prM<<
"#"<<s4M.m()<<
G4endl;
1318 G4cout<<
"G4QEnv::CreQA: ec="<<om<<
" = "<<c4M.
e()<<
", pc="<<ps<<
" = "
1319 <<c4M.
rho()<<
", mc2="<<rmu2<<
" = "<<c4M.
m2()<<
G4endl;
1320 G4cout<<
"G4QEnv::CQA:ht="<<(tnM2+rmu2)/2-tnM*om<<
"="<<prM2-prE*ep+Pi*po*cost<<G4endl;
1322 if(std::fabs(c4M.
m2()-rmu2)>.1)
1323 G4cout<<
"-W-G4QE::CrQ:m2="<<rmu2<<
"#"<<c4M.
m2()<<
",P="<<proj4M<<
",M="<<tnM<<
G4endl;
1325 theQHadrons.push_back(projH);
1327 theQuasmons.push_back(curQuasmon);
1334 G4cout<<
"G4QEnv::CreQAll: Q="<<q4Mom<<valQ<<
", QEnv="<<theEnvironment<<
G4endl;
1337 theQuasmons.push_back(curQuasmon);
1342 G4cout<<
"---Warning---G4QEnvironment::CreateQuasmon:Strange targPDG="<<targPDG<<
G4endl;
1348 void G4QEnvironment::PrepareInteractionProbabilities(
const G4QContent& projQC,
G4double AP)
1355 if(2>3) {allB=AP; allB=pPDG;}
1366 if(cPDG>80000000&&cPDG!=90000000&&!cST&&cCH>0&&cBN>0&&cCH<=cBN)
1373 G4cout<<
"G4QE::PIP:Z="<<zc<<
",N="<<nc<<
",nC="<<nOfCl<<
",dC="<<dOfCl<<
G4endl;
1375 if(cPDG==91000000||cPDG==90001000||cPDG==90000001)
1384 G4int qC = qQPDG.GetQCode();
1387 if (qC<-1) probab=0.;
1390 else if(pPDG==22 && AP<152.)
1392 if(cBN<2) probab=nOfCl*cBN*fact;
1399 probab=nOfCl*cBN*fact;
1407 else probab=nOfCl*cBN*fact;
1412 G4int pPDG = projQC.GetSPDGCode();
1416 G4double dq= abs(baryn-charge-charge);
1417 G4cout<<
"G4QE::PIP:P="<<probab<<
",ac="<<cBN<<
",dq="<<dq<<
",f="<<fact<<
",qC="
1418 <<qC<<
",rPDG="<<rPDG<<
",pPDG="<<pPDG<<
",nCP="<<nOfCl<<
",dCP="<<dOfCl<<
G4endl;
1425 if(allB>0.)f2all=(allB-denseB)/allB;
1430 void G4QEnvironment::InitClustersVector(
G4int maxClust,
G4int maxA)
1433 G4cout<<
"G4QEnvironment::InitClustersVector called with nC="<<maxClust<<
G4endl;
1435 if(maxClust>=0)
for (
G4int i=0; i<maxClust; i++)
1438 G4int clustQCode = i+53;
1440 G4cout<<
"G4QEnvironment::InitClustersVector: Before Init Q ="<<clustQCode<<
G4endl;
1444 G4int clusterPDG=clustQPDG.GetPDGCode();
1445 G4int clustB=clustQPDG.GetBaryNum();
1447 G4cout<<
"G4QEnvironment::InitClustersVector: Before insert ="<<clusterPDG<<
G4endl;
1450 if(clustB<=maxA) theQCandidates.push_back(
new G4QCandidate(clusterPDG));
1452 G4cout<<
"G4QEnvironment::InitClustersVector: Cluster # "<<i<<
" with code = "
1453 <<clusterPDG<<
", QC="<<clustQPDG.GetQuarkContent()<<
G4endl;
1461 static const G4int NUCPDG = 90000000;
1479 static const G4double fPi0 = 4*mPi0;
1491 G4int nQuasmons = theQuasmons.size();
1495 G4int nHad=theQHadrons.size();
1496 if(nHad)
for(
G4int ih=0; ih<nHad; ih++)
1498 finCharge+=theQHadrons[ih]->GetCharge();
1499 finBaryoN+=theQHadrons[ih]->GetBaryonNumber();
1502 if(nQuasmons)
for(
G4int iq=0; iq<nQuasmons; iq++)
1504 finCharge+=theQuasmons[iq]->GetCharge();
1505 finBaryoN+=theQuasmons[iq]->GetBaryonNumber();
1507 if(finCharge!=totCharge || finBaryoN!=totBaryoN)
1509 G4cout<<
"*::*G4QE::HQ:T(1) tC="<<totCharge<<
",C="<<finCharge<<
",tB="<<totBaryoN
1510 <<
",B="<<finBaryoN<<
",E="<<theEnvironment<<
G4endl;
1511 if(nHad)
for(
G4int h=0; h<nHad; h++)
1516 if(nQuasmons)
for(
G4int q=0; q<nQuasmons; q++)
1524 G4cout<<
"G4QE::HQE:*HADRONIZE Q-ENVIRONMENT="<<theEnvironment<<
",nQ="<<nQuasmons<<
G4endl;
1532 if(nPDG==90000000)
return theQHadrons;
1536 theQHadrons.push_back(rNucleus);
1538 G4cout<<
"G4QEnv::HadrQE: ---->> Fill Environment="<<theEnvironment<<
G4endl;
1543 if(theEnvironment.
GetPDG()==NUCPDG)
1546 G4cout<<
"G4QEnv::HadrQE: ***Vacuum*** #ofQ="<<nQuasmons<<
G4endl;
1549 for (
G4int is=0; is<nQuasmons; is++)
1556 G4int nsHadr = theQHadrons.size();
1557 if(nsHadr)
for(
G4int jso=0; jso<nsHadr; jso++)
1559 G4int hsNF = theQHadrons[jso]->GetNFragments();
1564 totInC += theQHadrons[jso]->GetCharge();
1570 if(nQuasmons)
for(
G4int lq=0; lq<nQuasmons; lq++)
if(theQuasmons[lq]->GetStatus())nlq++;
1571 if(nQuasmons)
for(
G4int iq=0; iq<nQuasmons; iq++)
1576 G4int nHad=theQHadrons.size();
1577 if(nHad)
for(
G4int ih=0; ih<nHad; ih++)
1579 f1Charge+=theQHadrons[ih]->GetCharge();
1580 f1BaryoN+=theQHadrons[ih]->GetBaryonNumber();
1582 G4int nQuas=theQuasmons.size();
1583 if(nQuas)
for(
G4int iqs=0; iqs<nQuas; iqs++)
1585 f1Charge+=theQuasmons[iqs]->GetCharge();
1586 f1BaryoN+=theQuasmons[iqs]->GetBaryonNumber();
1588 if(f1Charge!=totCharge || f1BaryoN!=totBaryoN)
1590 G4cout<<
"*::*G4QE::HQ:(2)q#"<<iq<<
",tC="<<totCharge<<
",C="<<f1Charge<<
",tB="
1591 <<totBaryoN<<
",B="<<f1BaryoN<<
",E="<<theEnvironment<<
G4endl;
1592 if(nHad)
for(
G4int h=0; h<nHad; h++)
1597 if(nQuas)
for(
G4int q=0; q<nQuas; q++)
1604 G4int ist=theQuasmons[iq]->GetStatus();
1608 G4int ast=theQuasmons[iq]->GetStatus();
1610 G4int nHadrons = output->size();
1612 G4cout<<
"G4QEnv::HadrQE: ***Vacuum*** Q#"<<iq<<
", nHadr="<<nHadrons<<
G4endl;
1616 for (
G4int ih=0; ih<nHadrons; ih++)
1621 G4cout<<
"G4QEnv::HadrQE:Vacuum, H#"<<ih<<
", QPDG="<<curH->
GetQPDG()
1624 theQHadrons.push_back(curH);
1635 if(tQBN>0&&totQM>gsM)
1639 G4cout<<
"G4QEnv::HadrQE:Vac,tQC"<<totQC<<
",t4M="<<tot4M<<
G4endl;
1641 EvaporateResidual(nuclQ);
1642 theQuasmons[iq]->KillQuasmon();
1645 else if(iq+1<nQuasmons&&nlq>1)
1647 G4int s_value=theQuasmons[iq+1]->GetStatus();
1648 theQuasmons[iq+1]->IncreaseBy(theQuasmons[iq]);
1649 theQuasmons[iq]->KillQuasmon();
1652 else if(iq+1==nQuasmons&&iq&&nlq>1)
1654 G4int s_value=theQuasmons[0]->GetStatus();
1655 theQuasmons[0]->IncreaseBy(theQuasmons[iq]);
1656 theQuasmons[iq]->KillQuasmon();
1662 G4cout<<
"***G4QE::HQE:"<<iq<<
",n="<<nHadrons<<
",Tot="<<totQC<<totQM<<
G4endl;
1663 for (
G4int kq=0; kq<nQuasmons; kq++)
1664 G4cout<<kq<<
",St/QC="<<theQuasmons[kq]->GetStatus()<<theQuasmons[kq]
1665 ->GetQC()<<
",M="<<theQuasmons[kq]->Get4Momentum().m()<<
G4endl;
1667 G4int nOfOUT = theQHadrons.size();
1670 while(nOfOUT && corrf)
1672 G4QHadron* theLast = theQHadrons[nOfOUT-1];
1679 if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1)
1681 G4QHadron* thePrev = theQHadrons[nOfOUT-2];
1682 theQHadrons.pop_back();
1683 theQHadrons.pop_back();
1684 theQHadrons.push_back(thePrev);
1688 lastQC = theLast->
GetQC();
1692 theQHadrons.pop_back();
1703 theQuasmons[iq]->InitQuasmon(totQC,tot4M);
1705 ast=theQuasmons[iq]->GetStatus();
1707 nHadrons=curout->size();
1709 G4cout<<
"G4QEnv::HadrQE:VacuumRecoverQ#"<<iq<<
",n="<<nHadrons<<
G4endl;
1713 for (
G4int ih=0; ih<nHadrons; ih++)
1718 G4cout<<
"G4QEnv::HadrQE:Recovered, H#"<<ih<<
", QPDG="
1721 totQC-=curH->
GetQC();
1723 theQHadrons.push_back(curH);
1725 delete (*curout)[ih];
1739 nOfOUT = theQHadrons.size();
1743 for (
G4int js=0; js<nQuasmons; js++)
1754 if(nOfOUT)
for(
G4int jpo=0; jpo<nOfOUT; jpo++)
1756 G4int hsNF = theQHadrons[jpo]->GetNFragments();
1761 tC -= theQHadrons[jpo]->GetCharge();
1764 G4cout<<
"G4QE::HQ:|||Vacuum|||4-MomCHECK|||d4M="<<t4M<<
",dC="<<tC<<
G4endl;
1768 if((!nOfOUT&&nQuasmons==1)||theEnvironment.
GetPDGCode()==NUCPDG)
1773 if(totS) totPDG-=totS*999999;
1775 G4cout<<
"G4QE::HQE: totPDG="<<totPDG<<
",totM="<<totQM<<
G4endl;
1779 EvaporateResidual(evH);
1788 ed <<
"Can't decay Quasmon: T="<< tot4M << totQC <<
",M=" << totQM
1789 <<
" < gsM="<< gsM <<
", d="<< dM <<
",Env="<< theEnvironment <<
G4endl;
1790 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
"HAD_CHPS_0000",
1804 G4cout<<
"G4QEnv::HadrQE:FRAGMENTATION IN NUCLEAR ENVIRONMENT nQ="<<nQuasmons<<
G4endl;
1807 for (
G4int is=0; is<nQuasmons; is++)
1814 G4int nsHadr = theQHadrons.size();
1815 if(nsHadr)
for(
G4int jso=0; jso<nsHadr; jso++)
1817 G4int hsNF = theQHadrons[jso]->GetNFragments();
1822 totInC += theQHadrons[jso]->GetCharge();
1829 for (
G4int is=0; is<nQuasmons; is++)
1833 totInQC += pQ->
GetQC();
1845 if(excE > fPi0) c3Max=(
G4int)(excE/mPi0);
1856 if(envA>1&&envA<19) premC = 36/envA;
1875 G4int nCnMax = c3Max;
1884 while (sumstat||totC<totCM)
1889 if(theEnvironment.
GetMass()>0.)
1892 f2BaryoN=theEnvironment.
GetA();
1894 G4int nHad=theQHadrons.size();
1895 if(nHad)
for(
G4int ih=0; ih<nHad; ih++)
1897 f2Charge+=theQHadrons[ih]->GetCharge();
1898 f2BaryoN+=theQHadrons[ih]->GetBaryonNumber();
1900 G4int nQuas=theQuasmons.size();
1901 if(nQuas)
for(
G4int iqs=0; iqs<nQuas; iqs++)
1903 f2Charge+=theQuasmons[iqs]->GetCharge();
1904 f2BaryoN+=theQuasmons[iqs]->GetBaryonNumber();
1906 if(f2Charge!=totCharge || f2BaryoN!=totBaryoN)
1908 G4cout<<
"*::*G4QE::HQ:(3)(NucEnv)i#"<<totC<<
",tC="<<totCharge<<
",C="<<f2Charge
1909 <<
",tB="<<totBaryoN<<
",B="<<f2BaryoN<<
",E="<<theEnvironment<<
G4endl;
1910 if(nHad)
for(
G4int h=0; h<nHad; h++)
1915 if(nQuas)
for(
G4int q=0; q<nQuas; q++)
1923 if( nQuasmons==1 && sumstat==3 ) cbR++;
1935 for (
G4int iq=0; iq<nQuasmons; iq++)
1947 G4cout<<
"G4QEnv::HadrQE:#"<<iq<<
", Qst="<<Qst<<
", Q="<<Q4M<<Q4M.
m()<<QQC<<
", Env="
1948 <<theEnvironment<<
",nQ="<<nQuasmons<<
G4endl;
1950 if(nQuasmons>1 && iq+1==nQuasmons && !Qst && Q4M==zeroLV)
1952 theQuasmons.pop_back();
1956 if(Qst==1||Qst==3||Qst==4)
1974 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
"HAD_CHPS_0001",
1981 totN=totN_temporary;
1982 totM=totN.GetMZNS();
1983 totPDG=totN.GetPDG();
1986 G4cout<<
"G4QEnv::HadrQE:totC="<<totC<<
"<totCM="<<totCM<<
",ss="<<sumstat<<
G4endl;
1988 if ( totC >= totCM || cbR > cbRM)
1992 EvaporateResidual(evH);
1998 if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)
1999 G4cout<<
"***G4QEnv::HadrQEnv: Meson (1) PDG="<<totPDG<<
", M="<<tot4M.
m()<<
G4endl;
2000 G4int nOH=theQHadrons.size();
2002 if(nOH)
for(
G4int ih=0; ih<nOH; ih++) s4M+=theQHadrons[ih]->Get4Momentum();
2003 G4cout<<
"G4QEnv::HadrQE:tBN="<<totBN<<
",s="<<sumstat<<
",fC="<<fCount<<
",eC="<<eCount
2004 <<
",En="<<theEnvironment<<
",nH="<<nOH<<
",tLV="<<s4M<<totQC<<nCount<<
G4endl;
2009 if(totPDG && totPDG!=10 && totPDG!=1114 && totPDG!=2224)
2011 else if(totPDG==1114) totM=mNeut+mPi;
2012 else if(totPDG==2224) totM=mProt+mPi;
2016 totM =totChip.GetQPDG1().GetMass()+totChip.GetQPDG2().GetMass();
2021 ed <<
"Impossible Hadron in CHIPS: totPDG=" << totPDG <<
", totQC="
2023 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
"HAD_CHPS_0002",
2027 totMass = tot4M.
m();
2028 G4bool Premium = eCount && premC && envM;
2030 if(sumstat && (fCount||Premium) && !force && count3<c3Max)
2032 if(!fCount) premC--;
2033 if(nQuasmons)
for (
G4int jq=0; jq<nQuasmons; jq++)
2038 G4cout<<
"G4QE::HQE:Status of Q#"<<jq<<
" (before Fragment)="<<status<<
G4endl;
2043 if(nQuas==1&&first) nQuas=-nQuas;
2046 G4cout<<
"G4QE::HQE:Q#"<<jq<<
",*afterFragm* Env="<<theEnvironment<<
G4endl;
2048 envM =theEnvironment.
GetMass();
2050 if(!status) eCount--;
2051 G4int nHadrons = output->size();
2053 G4cout<<
"G4QE::HQE:**AfterFragmAttempt**#"<<jq<<
",stat="<<status<<
", Q4M="
2054 <<pQ->
Get4Momentum()<<
", Env="<<theEnvironment<<
",nH="<<nHadrons
2055 <<
",c3="<<count3<<
" < "<<c3Max<<
",eC="<<eCount<<
G4endl;
2060 G4cout<<
"G4QEnv::HadrQE:SUM-4Mom e4M="<<theEnv4m<<theEnvironment<<
G4endl;
2061 for (
G4int js=0; js<nQuasmons; ++js)
2068 G4cout<<
"G4QE::HQE:SUM-4Mom q("<<js<<
")4M="<<Q4M<<
",QC="<<qQC<<
G4endl;
2074 G4int nsbHadr=theQHadrons.size();
2075 if(nsbHadr)
for(
G4int jpo=0; jpo<nsbHadr; jpo++)
2077 G4int hsNF = theQHadrons[jpo]->GetNFragments();
2081 G4int hPDG = theQHadrons[jpo]->GetPDGCode();
2082 G4cout<<
"G4QE::HQE:SUM-4-Mom eh("<<jpo<<
")4M="<<hs4Mom<<hPDG<<
G4endl;
2084 tC -= theQHadrons[jpo]->GetCharge();
2087 if(nHadrons)
for(
G4int kpo=0; kpo<nHadrons; ++kpo)
2096 G4cout<<
"G4QE::HQE:SUM-4-Mom qh("<<kpo<<
")4M="<<qhs4Mom<<hPDG<<
G4endl;
2101 G4cout<<
"G4QEnv::HadrQE:|||||4-MomCHECK||||d4M="<<t4M<<
",dC="<<tC<<
G4endl;
2103 if(!status||status==1||nHadrons)
2108 for (
G4int ih=0; ih<nHadrons; ++ih)
2117 G4cout<<
"->G4QEnv::HadrQE:H#"<<ih<<
", hC="<<hC<<
",hF="<<hF<<
",4M="
2125 hKE=hLV.
e()-hLV.
m();
2127 if(can && hKE < hCB)
2135 G4cout<<
"G4QE::HQE:Medium, H#"<<ih<<
", QPDG="<<inpH->
GetQPDG()
2145 G4cout<<
"G4QE::HQE:Med,H#"<<ih<<
",PDG="<<inpH->
GetQPDG()<<
",4M="
2158 G4double phCost=phZ/sqrt(phX*phX+phY*phY+phZ*phZ);
2159 G4cout<<
"G4QEnv::HadrQE:Medium, H#"<<ih<<
",QPDG="<<curH->
GetQPDG()
2160 <<
", 4M="<<ph4M<<
", ct="<<phCost<<
G4endl;
2170 G4int EnvA = EnvZ + EnvN + EnvS;
2174 G4cout<<
"=*=>G4QE::HQEnv: Env4M="<<Env4M<<
",Z="<<EnvZ<<
",N="<<EnvN
2179 if(EnvA>1 && qhdBN>-1 && qhdBN<2 && h4M.
vect().
mag() > 0.000001 && hPDG>111 &&
2180 hPDG!=222 && hPDG!=333)
2186 if(hPDG==111 || hPDG==222 || hPDG==333) pi0F=hPDG;
2188 pair<G4double,G4double> Xp=theQFScat->
FetchElTot(hP,hPDG,
false);
2192 pair<G4double,G4double>
Y=theQFScat->
FetchElTot(hP,hPDG,
false);
2194 G4double snd=(Xp.second+Y.second)/2;
2200 pair<G4double,G4double> Xn=theQFScat->
FetchElTot(hP,hPDG,
true);
2204 pair<G4double,G4double> Y=theQFScat->
FetchElTot(hP,hPDG,
true);
2206 G4double snd=(Xn.second+Y.second)/2;
2216 if(hM2 > 10000. && XSA > 0.)
2240 N4M = (mT/EnvM)*Env4M;
2241 newE.Set4Momentum(Env4M-N4M);
2243 G4cout<<
"==>G4QE::HQE:QEl,NPDG=="<<NPDG<<
",N4M="<<N4M
2244 <<
",hPDG="<<hPDG<<
",h4M="<<h4M<<
G4endl;
2246 pair<G4LorentzVector,G4LorentzVector> RS =
2247 theQFScat->
Scatter(NPDG, N4M, hPDG, h4M);
2249 G4cout<<
"**>G4QE::HQE:QEl,N4M="<<RS.first<<
",h4M="
2250 <<RS.second<<
",d="<<N4M+h4M-RS.first-RS.second<<
G4endl;
2252 if((RS.first).e() > 0.)
2256 theQHadrons.push_back(qfN);
2257 theEnvironment=newE;
2259 G4cout<<
"*>G4QE::HQE:QE,PDG="<<NPDG<<
",4M="
2260 <<RS.first<<
",***newEnv***: "<<newE<<
G4endl;
2264 if (NPDG==2212) totQC-=protQC;
2265 else if(NPDG==2112) totQC-=neutQC;
2266 else G4cout<<
"*W*>G4QE::HQE:QE,Bad PDG="<<NPDG<<
G4endl;
2279 N4M = (mT/EnvM)*Env4M;
2280 newE.Set4Momentum(Env4M-N4M);
2282 G4cout<<
"==>G4QE::HQE:QInEl,NPDG=="<<NPDG<<
",N4M="<<N4M
2283 <<
",hPDG="<<hPDG<<
",h4M="<<h4M<<
G4endl;
2288 theQHadrons.push_back((*Q)[0]);
2289 theQHadrons.push_back((*Q)[1]);
2290 theQHadrons.push_back((*Q)[2]);
2291 theEnvironment=newE;
2293 G4cout<<
"*>G4QE::HQE:QIE,PDG1="<<(*Q)[0]->GetPDGCode()
2294 <<
",4M1="<<(*Q)[0]->Get4Momentum()<<
G4endl;
2295 G4cout<<
"*>G4QE::HQE:QIE,PDG2="<<(*Q)[1]->GetPDGCode()
2296 <<
",4M1="<<(*Q)[1]->Get4Momentum()<<
G4endl;
2297 G4cout<<
"*>G4QE::HQE:QIE,PDG3="<<(*Q)[2]->GetPDGCode()
2298 <<
",4M1="<<(*Q)[2]->Get4Momentum()<<
G4endl;
2299 G4cout<<
"*>G4QE::HQE:QIE,***NewEnv***: "<<newE<<
G4endl;
2310 theQHadrons.push_back(curH);
2322 else if(status<0||status==2)
2325 G4cout<<
"G4QE::HQE:***PANIC***,status="<<status<<
",nC="<<nCount<<
G4endl;
2328 if(eCount==1 && status<0 && CheckGroundState(pQ,
true))
2338 else if(status<0&&nHadrons)
2340 G4cerr<<
"***G4QEnv::HadrQE: nH="<<nHadrons<<
"< status="<<status<<
G4endl;
2344 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
2347 else if(status==2 && eCount==1 && cAN<mcAN && envM>500.)
2350 G4cout<<
"G4QE::HQE:E="<<theEnvironment<<
",M="<<envM<<
",c="<<cAN<<
G4endl;
2357 G4int resPDG=envPDG-1;
2365 G4cout<<
"G4QE::HQE:P,eZ="<<envZ<<
",eN="<<envN<<
",rPDG="<<resPDG<<
G4endl;
2373 if(std::fabs(env4M.
e()-eM) > 0.001)
2375 res4M=(resM/eM)*env4M;
2376 nuc4M=(nucM/eM)*env4M;
2379 theQuasmons[0]->IncreaseBy(nucQC,nuc4M);
2381 G4cout<<
"G4QE::HQE:P,Q="<<nucQC<<nuc4M<<
",env="<<theEnvironment<<
G4endl;
2384 else if(status==2&&nCount>nCnMax)
2387 G4cout<<
"G4QE::HQE:PANIC,nC="<<nCount<<
">"<<nCnMax<<
G4endl;
2397 G4cout<<
"G4QEnv::HQE:M="<<cqMass<<
">fM="<<fqMass<<
",S="<<pqS<<
",C="<<pqC
2398 <<
",ePDG="<<theEnvironment.
GetPDG()<<
",qQC="<<qQC<<
",eC="<<eCount
2401 if(pqB>0&&pqS<0&&cqMass>fqMass)
2408 <<
", nH="<<theQHadrons.size()<<
G4endl;
2414 else if(theEnvironment.
GetPDG()!=NUCPDG)
2419 G4cout<<
"G4QE::HQE:TOTEVAP tPDG="<<totPDG<<
",t4M="<<tot4M<<
G4endl;
2423 EvaporateResidual(evH);
2436 G4cout<<
"G4QEnv::HQE:Q#"<<jq<<
",tM="<<tM<<
">gsM="<<curM<<curE<<
G4endl;
2440 G4int qPDG=qQC.GetZNSPDGCode();
2443 G4cout<<
"G4QE::HQE:nQ="<<nQuasmons<<
",eC="<<eCount<<
",qPDG="<<qPDG
2444 <<
",qM="<<qMass<<
",eM="<<envM<<
",tM="<<tM<<
",Q+E="<<qMass+envM
2447 if(eCount==1&&qPDG&&qMass&&tM>qMass+envM)
2452 G4cout<<
"G4QEnv::HadrQEnv: Q+E decay, nQ=1, qPDG=="<<qPDG<<
G4endl;
2455 if(qPDG==10 || qPDG==92000000 || qPDG==90002000 || qPDG==90000002)
2464 h1QPDG=QChip.GetQPDG1();
2466 h2QPDG=QChip.GetQPDG2();
2469 else if(qPDG==90002000)
2476 else if(qPDG==92000000)
2483 if(ddMass>mSigZ+mSigZ)
2488 if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2);
2492 if(ddMass>sma&&ddMass>smi)
2493 pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
2496 if(ddMass>sma) pr3+=sqrt((dd2-sma*sma)*dd2);
2511 else if(ddMass>mSigZ+mLamb)
2516 if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2);
2520 if(ddMass>sma && ddMass>smi)
2521 pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
2529 if(h1M+h2M+envM<totMass)
2534 if(!
G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M))
2537 ed <<
"QChip+E DecIn3 error: (0)tM=" << tot4M.
m()
2538 <<
"->h1=" << h1QPDG <<
"(" << h1M <<
")+h2="
2539 << h1QPDG <<
"(" << h2M <<
")+envM=" << envM
2540 <<
"==" << h1M+h2M+envM <<
G4endl;
2541 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
2545 theQHadrons.push_back(h1H);
2550 theQHadrons.push_back(h2H);
2555 theQHadrons.push_back(qeH);
2563 if(eCount==1&&CheckGroundState(pQ))
2576 G4cout<<
"--Warning--G4QE::HQE:tM="<<tot4M.
m()<<
"< h1="<<h1QPDG
2577 <<
"(M="<<h1M<<
")+h2="<<h1QPDG<<
"(M="<<h2M<<
")+EM="<<envM
2578 <<
"="<<h1M+h2M+envM<<
G4endl;
2583 EvaporateResidual(evH);
2591 if(!
G4QHadron(tot4M).RelDecayIn2(fq4M,qe4M,cq4M,1.,1.))
2593 G4cerr<<
"***G4QEnv::HadQE:(0)tM="<<tot4M.
m()<<
"-> qPDG="<<qPDG
2594 <<
"(M="<<qMass<<
") + envM="<<envM<<
")"<<
G4endl;
2599 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
2601 "Q+Env DecIn2 error");
2604 theQHadrons.push_back(qH);
2612 if(envPDG==92000000||envPDG==90002000||envPDG==90000002)
2614 else theQHadrons.push_back(qeH);
2624 else if(eCount>1&&(nCount>nCnMax||theEnvironment.
GetA()<2))
2628 G4cout<<
"G4QEnv::HQE:Evaporate Env+Quasm Env="<<curE<<
G4endl;
2631 EvaporateResidual(nucQE);
2635 <<
", nH="<<theQHadrons.size()<<
G4endl;
2641 if(eCount==1 && tM>=curM)
2646 G4cout<<
"G4QE::HQE:BefEv 4M="<<tot4M<<
",QC="<<totQC<<ttPDG<<
G4endl;
2653 if(ttPDG==10&&ttBN<2)
2665 if(!
G4QHadron(tot4M).DecayIn2(h14M,h24M))
2668 ed <<
"QChip (1) DecIn2 error: tM=" << ttM <<
"->h1="
2669 << h1QPDG <<
"(" << h1M <<
")+h2=" << h1QPDG
2670 <<
"(" << h2M <<
")=" << h1M+h2M <<
G4endl;
2671 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
2675 theQHadrons.push_back(h1H);
2680 theQHadrons.push_back(h2H);
2688 ed <<
" QChip (2) DecIn2 error: tM=" << ttM << totQC <<
"->h1="
2689 << h1QPDG <<
"(" << h2M <<
"=" << h1M+h2M <<
G4endl;
2690 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
2697 if(ttPDG<80000000&&ttBN<1)
2698 G4cout<<
"---Warning---G4QE::HQE: NotNuc, tPDG="<<ttPDG<<
G4endl;
2701 EvaporateResidual(evH);
2705 else if(eCount==1 && CheckGroundState(pQ,
true))
2721 G4cout<<
"G4QEnv::HadrQEnv: vacuum PDGQ="<<PDGQ<<
G4endl;
2723 if(!PDGQ) status=-1;
2725 else if(PDGQ==3112||PDGQ==3222||PDGQ==90999001||PDGQ==91000999)
2728 G4cout<<
"G4QEnv::HadrQEnv:Sigma Mass="<<cqMass<<
G4endl;
2734 if(PDGQ==3112||PDGQ==90999001)
2736 if(cqMass>mPi+mLamb)
2741 else if(cqMass>mSigM)
2749 else if(PDGQ==3222||PDGQ==91000999)
2752 if(cqMass>mPi+mLamb)
2759 else if(cqMass>mSigP)
2773 else if(cqMass<mPi+mNeut)
2784 if(!
G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom))
2786 G4cout<<
"---Warning---G4QE::HQE:H="<<hyPDG<<
"(m="<<hyM<<
")+G/Pi="
2787 <<pigPDG<<
"(m="<<pigM<<
")="<<hyM+pigM<<
">"<<cqMass<<
G4endl;
2790 if(!CheckGroundState(quasH,
true))
2793 theQHadrons.push_back(hadr);
2795 G4cout<<
"-Warn-G4QE::HQE:Sig,QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
2803 G4cout<<
"G4QEnv::HadronizeQEnv: Sigma="<<PDGQ<<cq4M<<
" -> Hyperon="
2804 <<hyPDG<<b4Mom<<
" + Gamma/Pi="<<pigPDG<<m4Mom<<
G4endl;
2807 theQHadrons.push_back(curBar);
2809 theQHadrons.push_back(curMes);
2815 else if(PDGQ==90999002||PDGQ==91001999)
2818 G4cout<<
"G4QEnv::HadrQEnv: Nucleon+Sigma Mass="<<cqMass<<
G4endl;
2827 if(cqMass<mNeut+mSigM)
2836 else if(PDGQ==91001999)
2842 if(cqMass<mProt+mSigP)
2852 if(!
G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom))
2854 G4cout<<
"--Warning--G4QE::HQE:S/D="<<hyPDG<<
"(m="<<hyM<<
")+N/Pi="
2855 <<pigPDG<<
"(m="<<pigM<<
")="<<hyM+pigM<<
">"<<cqMass<<
G4endl;
2858 if(!CheckGroundState(quasH,
true))
2861 theQHadrons.push_back(hadr);
2863 G4cout<<
"-Warn-G4QE::HQE:Sig,QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
2871 G4cout<<
"G4QEnv::HadronizeQEnv: NSigma="<<PDGQ<<cq4M<<
"-> Sigma/dN="
2872 <<hyPDG<<b4Mom<<
" + N/Pi="<<pigPDG<<m4Mom<<
G4endl;
2874 if(dinFlag) b4Mom/=2.;
2876 theQHadrons.push_back(curBar);
2880 theQHadrons.push_back(secBar);
2883 theQHadrons.push_back(curMes);
2889 else if(PDGQ==90999003||PDGQ==91002999)
2892 G4cout<<
"G4QEnv::HadrQEnv: DiNucleon+Sigma Mass="<<cqMass<<
G4endl;
2901 if(cqMass<pigM+mSigM)
2904 pigM=mNeut+mNeut+mNeut;
2910 else if(PDGQ==91002999)
2916 if(cqMass<pigM+mSigP)
2919 pigM=mProt+mProt+mProt;
2927 if(!
G4QHadron(cq4M).DecayIn2(b4Mom, m4Mom))
2929 G4cout<<
"--Warning--G4QE::HQE:S/Pi="<<hyPDG<<
"(m="<<hyM<<
")+D/T="
2930 <<pigPDG<<
"(m="<<pigM<<
")="<<hyM+pigM<<
">"<<cqMass<<
G4endl;
2933 if(!CheckGroundState(quasH,
true))
2936 theQHadrons.push_back(hadr);
2938 G4cout<<
"-Warn-G4QE::HQE:Sig,QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
2946 G4cout<<
"G4QEnv::HadronizeQEnv:2NSigma="<<PDGQ<<cq4M<<
"-> Sigma/Pi="
2947 <<hyPDG<<b4Mom<<
" + 2N/3N="<<pigPDG<<m4Mom<<dinFlag<<
G4endl;
2950 theQHadrons.push_back(curBar);
2951 if(dinFlag) m4Mom/=3.;
2954 theQHadrons.push_back(curMes);
2956 theQHadrons.push_back(secBar);
2960 theQHadrons.push_back(triBar);
2972 G4cout<<
"G4QEnv::HadrQEnv:#"<<jq<<
",qM="<<qM<<
">gsM="<<gsM<<
G4endl;
2974 if(fabs(qM-gsM)<0.0001)
2980 theQHadrons.push_back(resQ);
2986 else if(eCount==1 && qM<gsM && CheckGroundState(pQ,
true))
2989 G4cout<<
"G4QEnv::HadrQEnv:**>>** CGS Correction **>>**"<<
G4endl;
3003 G4cout<<
"G4QEnv::HadrQEnv:**||** Copy&Decay **||**"<<
G4endl;
3006 CopyAndDeleteHadronVector(decHV);
3015 else if(status==3) count3++;
3030 G4cout<<
"G4QEnv::HadrQEnv: ***PANIC*** for jq="<<jq<<
G4endl;
3034 if(nQuasmons>1)
for(
G4int ir=0; ir<nQuasmons; ir++)
3041 G4cout<<
"G4QEnv::HadrQEnv: ir="<<ir<<
",Qstatus="<<Qst<<
G4endl;
3072 G4cout<<
"G4QEnv::HQE: No Q-cand. nRQ="<<nRQ<<
",eC="<<eCount<<
G4endl;
3075 if(CheckGroundState(pQ,
true))
3085 G4cout<<
"G4QEnv::HadrQEnv:NO PANICsolution,t="<<tot4M<<totQC<<
G4endl;
3087 totQC=theEnvironment.
GetQC();
3089 if(nQuasmons)
for(
G4int jr=0; jr<nQuasmons; jr++)
3108 EvaporateResidual(evH);
3127 else if(totMass>totM+.001)
3130 G4cout<<
"G4QEnv::HadrQE: NQ="<<nQuasmons<<
",tM="<<totMass<<
",tPDG="<<totPDG<<
",tB="
3131 <<totBN<<
",GSM="<<totM<<
",dM="<<totMass-totM<<
",totQC="<<totQC<<
G4endl;
3141 if((resQPDG==0 || resQPDG==10) && resQB>0) resQPDG=quasQC.
GetZNSPDGCode();
3144 G4double de=totMass-envM-resQM-qCB;
3146 G4cout<<
"G4QEnv::HadrQE:NQ==1,tM="<<totMass<<
",qM="<<resQM<<
",eM="<<envM<<
",CB="
3147 <<qCB<<
",dE="<<totMass-envM-resQM-qCB<<
G4endl;
3154 if(!
G4QHadron(tot4M).RelDecayIn2(fe4M,fq4M,dir4M,1.,1.))
3157 ed <<
"Can't decay Q+E: t4M=" << tot4M <<
",d=" << de <<
G4endl;
3158 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
"HAD_CHPS_0008",
3162 theQHadrons.push_back(hQua);
3165 theQHadrons.push_back(hEnv);
3167 G4cout<<
"G4QEnv::HadrQEnv:fQ="<<resQPDG<<fq4M<<
", fE="<<envPDG<<fe4M<<
G4endl;
3173 G4cout<<
"G4QEnv::HadrQE: M="<<totMass<<
",PDG="<<totPDG<<
",B="<<totBN<<
",GSM="<<totM
3174 <<
",dM="<<totMass-totM<<
",totQC="<<totQC<<
G4endl;
3178 if(totPDG==90999999||totPDG==90999000||totPDG==90000999||totPDG==89999001)
3180 G4cout<<
"---Warning---G4QE::HQE:Meson(2) PDG="<<totPDG<<
",M="<<totMass<<
G4endl;
3182 else if(totPDG==1114||totPDG==2224)
3194 if(totMass<mBar+mMes)
3196 G4cout<<
"--Warning--G4QE::HQE:tM="<<totMass<<
"<GSM+mPi0="<<totM+mPi0<<
G4endl;
3199 if(!CheckGroundState(quasH,
true))
3202 theQHadrons.push_back(hadr);
3204 G4cout<<
"***G4QE::HQE:FillAsIs(-4),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3221 if(!
G4QHadron(tot4M).DecayIn2(b4Mom, m4Mom))
3223 G4cout<<
"---Warning---G4QEnv::HadronizeQE:B="<<bPDG<<
"(m="<<mBar<<
") + M="
3224 <<mPDG<<
"(m="<<mMes<<
")="<<mBar+mMes<<
" > mDel="<<totMass<<
G4endl;
3227 if(!CheckGroundState(quasH,
true))
3230 theQHadrons.push_back(hadr);
3232 G4cout<<
"***G4QE::HQE:FillAsIs(-3),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3240 G4cout<<
"G4QEnv::HadronizeQEnv: DELTA="<<totPDG<<tot4M<<
" -> Bar="
3241 <<bPDG<<b4Mom<<
" + Mes="<<mPDG<<m4Mom<<
G4endl;
3244 theQHadrons.push_back(curBar);
3246 G4cout<<
"G4QEnv::HadrQEnv:BaryonH="<<bPDG<<b4Mom<<
G4endl;
3249 theQHadrons.push_back(curMes);
3251 G4cout<<
"G4QEnv::HadrQEnv:MesonH="<<mPDG<<m4Mom<<
G4endl;
3267 if(!
G4QHadron(tot4M).DecayIn2(h14Mom, h24Mom))
3269 G4cout<<
"---Warning---G4QEnv::HadronizeQE:h1="<<h1PDG<<
"(m="<<h1M<<
") + h2="
3270 <<h2PDG<<
"(m="<<h2M<<
")="<<h1M+h2M<<
" > mChipo="<<totMass<<
G4endl;
3273 if(!CheckGroundState(quasH,
true))
3276 theQHadrons.push_back(hadr);
3278 G4cout<<
"***G4QE::HQE:FillAsIs(-2),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3286 G4cout<<
"G4QEnv::HadronizeQEnv: Chipo="<<tot4M<<
" -> h1="
3287 <<h1PDG<<h14Mom<<
" + Mes="<<h2PDG<<h24Mom<<
G4endl;
3290 theQHadrons.push_back(curH1);
3292 G4cout<<
"G4QEnv::HadrQEnv:HadronH="<<h1PDG<<h14Mom<<
G4endl;
3295 theQHadrons.push_back(curH2);
3297 G4cout<<
"G4QEnv::HadrQEnv:MesAsHadrPartnerH="<<h2PDG<<h24Mom<<
G4endl;
3301 else if(totBN<2&&totPDG&&totMass<totM+mPi0+.001)
3305 if(!
G4QHadron(tot4M).DecayIn2(h4Mom, g4Mom))
3307 G4cout<<
"---Warning---G4QEnv::HadronizeQEnv: h="<<totPDG<<
"(m="<<totM
3308 <<
") + gamma > mTot="<<totMass<<
G4endl;
3311 if(!CheckGroundState(quasH,
true))
3314 theQHadrons.push_back(hadr);
3316 G4cout<<
"***G4QE::HQE:FillAsIs(-1),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3324 G4cout<<
"G4QE::HQE:"<<tot4M<<
"->h="<<totPDG<<h4Mom<<
" + gamma="<<g4Mom<<
G4endl;
3327 theQHadrons.push_back(curG);
3333 G4cout<<
"G4QEnv::HadrQEnv:GamPartnerH="<<totPDG<<h4Mom<<
G4endl;
3335 if(totPDG==92000000||totPDG==90002000||totPDG==90000002)
3337 else theQHadrons.push_back(curH);
3340 else if(totBN<2&&totPDG)
3353 else if(totPDG==2224)
3360 else if(totPDG==113)
3369 if(!
G4QHadron(tot4M).DecayIn2(h4Mom, g4Mom))
3371 G4cout<<
"---Warning---G4QEnv::HadronizeQEnv: h="<<mbPDG<<
"(m="<<mbm
3372 <<
") + pi(m="<<mpi<<
")="<<mbm+mpi<<
" > mTot="<<totMass<<
G4endl;
3375 if(!CheckGroundState(quasH,
true))
3378 theQHadrons.push_back(hadr);
3380 G4cout<<
"***G4QE::HQE:FillAsIs(0),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3388 G4cout<<
"G4QE::HQE:"<<tot4M<<
"->h="<<mbPDG<<h4Mom<<
"+p="<<piPDG<<g4Mom<<
G4endl;
3391 if(totPDG==92000000||totPDG==90002000||totPDG==90000002)
3393 else theQHadrons.push_back(curH);
3396 G4cout<<
"G4QEnv::HadrQEnv:Gamma/Pi0H="<<piPDG<<g4Mom<<
G4endl;
3398 theQHadrons.push_back(curG);
3409 G4int nHadrons = curout->size();
3412 for (
G4int ih=0; ih<nHadrons; ih++)
3415 G4cout<<
"G4QEnv::HadrQE:NewB<2, H#"<<ih
3416 <<
", QPDG="<<(*curout)[ih]->GetQPDG()
3417 <<
", 4M="<<(*curout)[ih]->Get4Momentum()<<
G4endl;
3420 theQHadrons.push_back((*curout)[ih]);
3426 ed <<
" Quasmon decay? : MQ=" << tot4M.
m() <<
",QC=" << totQC
3428 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
"HAD_CHPS_0009",
3448 if (totBN>0&&totS<0&&totChg+totChg>=totBN)
3457 else if (totBN>0&&totS<0)
3465 else if (totBN>1&&totS>0&&(totChg<0||totChg>totBN-totS))
3471 if(-totChg<NSi) NSi=-totChg;
3479 G4int exChg=totChg-totBN+totS;
3480 if(exChg<NSi) NSi=exChg;
3488 else if (totBN>0&&totS>totBN&&totBN<totS+totChg)
3496 else if (totBN>0&&totS>totBN&&totChg<0)
3506 if (totBN>0&&totChg>totBN-totS)
3509 NPi=totChg-totBN+totS;
3514 else if (totBN>0&&totChg<0)
3522 else if (!totBN&&totChg>1-totS)
3530 else if (!totBN&&totChg<-1-totS)
3549 ed <<
"Impossible PDG for B=1: totPDG=0" <<
G4endl;
3550 G4Exception(
"G4QEnvironment::HadronizeQEnvironment()",
3557 totN=totN_temporary;
3558 totRM=totN.GetMZNS();
3559 totPDG=totN.GetPDG();
3568 if(fabs(totMass-sum)<eps)
3570 m4Mom=tot4M*(MaK/sum);
3571 n4Mom=tot4M*(totRM/sum);
3576 G4cout<<
"***G4QE::HadronizeQE:M="<<aKPDG<<
"(m="<<MaK<<
")+N="<<totPDG<<
"(m="
3577 <<totRM<<
")="<<sum<<
" > mSN="<<totMass<<
",d="<<sum-totMass<<
G4endl;
3581 if(!CheckGroundState(quasH,
true))
3584 theQHadrons.push_back(hadr);
3586 G4cout<<
"***G4QEnv::HQE:FillAsItIs(1),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3594 G4cout<<
"G4QEnv::HadronizeQEnv: SN="<<tot4M<<
" -> M="
3595 <<aKPDG<<m4Mom<<
" + N="<<totPDG<<n4Mom<<totQC<<
G4endl;
3598 if(NaK>1) oneK = m4Mom/NaK;
3599 for (
G4int jp=0; jp<NaK; jp++)
3602 theQHadrons.push_back(curK);
3605 EvaporateResidual(curN);
3612 if(!
G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
3614 G4cout<<
"---Warning---G4QE::HadronQE:K="<<aKPDG<<
"(m="<<MaK<<
")+PI="<<PiPDG
3615 <<
"(m="<<MPi<<
")+N="<<totPDG<<
"(m="<<totRM<<
")>tM="<<totMass<<
G4endl;
3618 if(!CheckGroundState(quasH,
true))
3621 theQHadrons.push_back(hadr);
3623 G4cout<<
"***G4QEnv::HQE:FillAsItIs(2),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3631 G4cout<<
"G4QEnv::HadronizeQEnv: SN="<<tot4M<<
" -> nK="<<aKPDG<<k4Mom
3632 <<
" + nPi="<<PiPDG<<m4Mom<<
" + N="<<totPDG<<n4Mom<<
G4endl;
3635 if(NPi>1) onePi = m4Mom/NPi;
3636 for (
G4int ip=0; ip<NPi; ip++)
3640 G4cout<<
"G4QEnv::HadrQEnv:SPion#"<<ip<<
",H="<<PiPDG<<onePi<<
G4endl;
3642 theQHadrons.push_back(curP);
3645 if(NaK>1) oneK = k4Mom/NaK;
3646 for (
G4int jp=0; jp<NaK; jp++)
3650 G4cout<<
"G4QEnv::HadrQEnv:Kaon#"<<jp<<
",H="<<aKPDG<<oneK<<
G4endl;
3652 theQHadrons.push_back(curP);
3655 EvaporateResidual(curN);
3666 if(fabs(totMass-sum)<eps)
3668 m4Mom=tot4M*(MSi/sum);
3669 n4Mom=tot4M*(totRM/sum);
3674 G4cout<<
"***G4QE::HadronizeQE:M="<<aKPDG<<
"(s="<<MSi<<
")+N="<<totPDG<<
"(m="
3675 <<totRM<<
")="<<sum<<
" > mSN="<<totMass<<
",d="<<sum-totMass<<
G4endl;
3679 if(!CheckGroundState(quasH,
true))
3682 theQHadrons.push_back(hadr);
3684 G4cout<<
"***G4QEnv::HQE:FillAsItIs(2),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3692 G4cout<<
"G4QEnv::HadronizeQEnv: SN="<<tot4M<<
" -> Sig="
3693 <<SiPDG<<m4Mom<<
" + N="<<totPDG<<n4Mom<<totQC<<
G4endl;
3696 if(NSi>1) oneS = m4Mom/NSi;
3697 for (
G4int jp=0; jp<NSi; jp++)
3700 theQHadrons.push_back(curS);
3703 EvaporateResidual(curN);
3710 if(!
G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
3712 G4cout<<
"---Warning---G4QE::HadronQE:S="<<SiPDG<<
"(m="<<MSi<<
")+PI="<<PiPDG
3713 <<
"(m="<<MPi<<
")+N="<<totPDG<<
"(m="<<totRM<<
")>tM="<<totMass<<
G4endl;
3716 if(!CheckGroundState(quasH,
true))
3719 theQHadrons.push_back(hadr);
3721 G4cout<<
"***G4QEnv::HQE:FillAsItIs(3),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3729 G4cout<<
"G4QEnv::HadronizeQEnv: SN="<<tot4M<<
" -> nS="<<SiPDG<<k4Mom
3730 <<
" + nPi="<<PiPDG<<m4Mom<<
" + N="<<totPDG<<n4Mom<<
G4endl;
3733 if(NPi>1) onePi = m4Mom/NPi;
3734 for (
G4int ip=0; ip<NPi; ip++)
3738 G4cout<<
"G4QEnv::HadrQEnv:SPion#"<<ip<<
",H="<<PiPDG<<onePi<<
G4endl;
3740 theQHadrons.push_back(curP);
3743 if(NSi>1) oneS = k4Mom/NSi;
3744 for (
G4int jp=0; jp<NSi; jp++)
3748 G4cout<<
"G4QEnv::HadrQEnv:Sigma#"<<jp<<
",H="<<SiPDG<<oneS<<
G4endl;
3750 theQHadrons.push_back(curP);
3753 EvaporateResidual(curN);
3763 if(!
G4QHadron(tot4M).DecayIn2(m4Mom, n4Mom))
3765 G4cout<<
"---Warning---G4QEnv::HadronizeQEnv:M="<<PiPDG<<
"(m="<<MPi<<
")+N="
3766 <<totPDG<<
"(m="<<totRM<<
")="<<MPi+totRM<<
" > mSN="<<totMass<<
G4endl;
3769 if(!CheckGroundState(quasH,
true))
3772 theQHadrons.push_back(hadr);
3774 G4cout<<
"***G4QEnv::HQE:FillAsItIs(5),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3782 G4cout<<
"G4QEnv::HadronizeQEnv: SN="<<tot4M<<
" -> M="<<PiPDG<<m4Mom<<
" + N="
3783 <<totPDG<<n4Mom<<totQC<<
G4endl;
3786 theQHadrons.push_back(curK);
3788 EvaporateResidual(curN);
3793 G4int N2Pi = NPi-N1Pi;
3800 if(!
G4QHadron(tot4M).DecayIn3(m4Mom, k4Mom, n4Mom))
3802 G4cout<<
"---Warning---G4QEnv::HadronizeQE:N*Pi="<<PiPDG<<
"(m="<<mM<<
")+N="
3803 <<totPDG<<
"(m="<<totRM<<
") >(?)SN="<<totMass<<
G4endl;
3806 if(!CheckGroundState(quasH,
true))
3809 theQHadrons.push_back(hadr);
3811 G4cout<<
"***G4QEnv::HQE:FillAsItIs(5),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3819 G4cout<<
"G4QEnv::HadronizeQEnv: SN="<<tot4M<<
" -> N*PI="<<PiPDG
3820 <<
" (4M1="<<m4Mom<<
" + 4M2="<<k4Mom<<
") + N="<<totPDG<<n4Mom<<
G4endl;
3823 if(N1Pi>1) one1=m4Mom/N1Pi;
3824 for (
G4int ip=0; ip<N1Pi; ip++)
3827 theQHadrons.push_back(curP);
3830 if(N2Pi>1) one2=k4Mom/N2Pi;
3831 for (
G4int jp=0; jp<N2Pi; jp++)
3834 theQHadrons.push_back(curP);
3837 EvaporateResidual(curN);
3843 G4cout<<
"G4QE::HadrQEnv: Try FinalEvaporation t4M="<<tot4M<<
",tQC="<<totQC<<
G4endl;
3847 EvaporateResidual(evH);
3852 if(totPDG==90000000 || fabs(totMass)<0.000001)
3859 G4cout<<
"G4QEnv::HadrQEnv:GroundState tM-GSM="<<dM<<
",GSM="<<totM<<
",tPDG="<<totPDG
3860 <<
",nQ="<<nQuasmons<<
G4endl;
3866 G4int spbRN=totRN.SplitBaryon();
3870 G4cout<<
"G4QE::HadrQE:ExcitedNucleus, dM="<<dM<<
">0,tBN="<<totBN<<
",nQ="<<
G4endl;
3874 EvaporateResidual(evH);
3876 else if(nQuasmons==1&&QPDG!=22&&QPDG!=111)
3880 G4cout<<
"G4QEnv::HadrQEnv: nQ=1, QPDG=="<<QPDG<<
G4endl;
3885 ed <<
"(2)Can't Decay QEnv: Quasmon is an unknown QHadron: PDG="<< QPDG<<
G4endl;
3886 G4Exception(
"G4QEnvironment::HadronizeQEnvironmen()",
"HAD_CHPS_0011",
3890 else if(QPDG==10||QPDG==92000000||QPDG==90002000||QPDG==90000002)
3900 h1QPDG=QChip.GetQPDG1();
3902 h2QPDG=QChip.GetQPDG2();
3905 else if(QPDG==90002000)
3912 else if(QPDG==92000000)
3919 if(ddMass>mSigZ+mSigZ)
3924 if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2);
3928 if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
3931 if(ddMass>sma) pr3+=sqrt((dd2-sma*sma)*dd2);
3946 else if(ddMass>mSigZ+mLamb)
3951 if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2);
3955 if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
3963 if(h1M+h2M+envM<totMass)
3968 if(!
G4QHadron(tot4M).DecayIn3(h14M,h24M,e4M))
3970 G4cout<<
"Warning->G4QE::HQE:M="<<tot4M.
m()<<
","<<totMass<<
"->"<<h1QPDG<<
"("
3971 <<h1M<<
")+"<<h1QPDG<<
"("<<h2M<<
")+"<<envM<<
"="<<h1M+h2M+envM<<
G4endl;
3974 if(!CheckGroundState(quasH,
true))
3977 theQHadrons.push_back(hadr);
3979 G4cout<<
"***G4QEnv::HQE:FillAsItIs(6),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
3988 theQHadrons.push_back(h1H);
3993 theQHadrons.push_back(h2H);
3998 theQHadrons.push_back(qeH);
4004 G4cout<<
"***G4QEnv::HadQEnv:tM="<<tot4M.
m()<<totQC<<
"< h1="<<h1QPDG<<
"(M="<<h1M
4005 <<
")+h2="<<h1QPDG<<
"(M="<<h2M<<
")+eM="<<envM<<
"="<<h1M+h2M+envM<<
G4endl;
4010 EvaporateResidual(evH);
4015 G4int nHadrs=theQHadrons.size();
4016 for(
G4int ih=0; ih<nHadrs; ++ih)
4022 if(tch4M.
m() > chM + totM)
4026 if(!
G4QHadron(tch4M).DecayIn2(h14M,h24M))
4028 G4cout<<
"-Warning->G4QE::HQE:M="<<tch4M.
m()<<
"->"<<chM<<
"+"<<totM<<
"="
4040 theQHadrons.push_back(rH);
4046 G4cout<<
"***G4QEnv::HadQEnv: Evaporate the total residual tRN="<<totRN<<
G4endl;
4050 EvaporateResidual(evH);
4057 G4cout<<
"***G4QEnv::HadrQE: M="<<totMass<<
",dM="<<dM<<
",nQ="<<nQuasmons<<
G4endl;
4059 G4int nOfOUT = theQHadrons.size();
4062 G4QHadron* theLast = theQHadrons[nOfOUT-1];
4069 if(gam!=22&&!nFr&&lastS<0&&lastS+totS<0&&nOfOUT>1)
4071 G4QHadron* thePrev = theQHadrons[nOfOUT-2];
4072 theQHadrons.pop_back();
4073 theQHadrons.pop_back();
4074 theQHadrons.push_back(thePrev);
4078 lastQC = theLast->
GetQC();
4082 theQHadrons.pop_back();
4097 totPDG=newN.GetPDG();
4098 totM =newN.GetMZNS();
4105 G4int PDG2=newNp.GetPDG();
4109 if (m3_value+mK0<m2_value+mK)
4114 PDG2=newN0.GetPDG();
4116 if(totMass>m1+m2_value)
4120 if(!
G4QHadron(tot4M).DecayIn2(fq4M,qe4M))
4122 G4cout<<
"---Warning---G4QE::HadQE:tM="<<tot4M.m()<<
"->aK="<<PDG1<<
"(M="
4123 <<m1<<
")+ResA="<<PDG2<<
"(M="<<m2_value<<
")="<<m1+m2_value<<
G4endl;
4126 if(!CheckGroundState(quasH,
true))
4129 theQHadrons.push_back(hadr);
4131 G4cout<<
"***G4QE::HQE:FillAsIs(7),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
4142 theQHadrons.push_back(H1);
4147 theQHadrons.push_back(H2);
4159 G4int PDG3=newNp0.GetPDG();
4160 G4double m3_value=newNp0.GetMZNS();
4165 if (m4+mK0+mK0<m3_value+mK+mK0 && m4+mK0+mK0<=m5+mK+mK)
4170 PDG3=newN00.GetPDG();
4172 else if(m5+mK+mK<m3_value+mK+mK0 && m5+mK+mK<=m4+mK0+mK0)
4177 PDG3=newNpp.GetPDG();
4179 if(totMass>m1+m2_value+m3_value)
4184 if(!
G4QHadron(tot4M).DecayIn3(k14M,k24M,ra4M))
4186 G4cout<<
"--Warning--G4QE::HQE:tM="<<tot4M.m()<<
"->aK="<<PDG1<<
"(M="<<m1
4187 <<
")+K2="<<PDG2<<
"(M="<<m2_value<<
")+A="<<PDG3<<
"(M="<<m3_value<<
")"<<
G4endl;
4190 if(!CheckGroundState(quasH,
true))
4193 theQHadrons.push_back(hadr);
4195 G4cout<<
"***G4QE::HQE:FillAsIs(8),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
4203 theQHadrons.push_back(H1);
4208 theQHadrons.push_back(H2);
4213 theQHadrons.push_back(H3);
4225 if (totPDG==1114||totPDG==2224||totPDG==10)
4252 if(!
G4QHadron(tot4M).DecayIn2(fq4M,qe4M))
4254 G4cout<<
"---Warning---G4QE::HaQE:tM="<<tot4M.m()<<
"-> h1="<<PDG1<<
"(M="
4255 <<m1<<
") + h2="<<PDG2<<
"(M="<<m2_value<<
")="<<m1+m2_value<<
G4endl;
4258 if(!CheckGroundState(quasH,
true))
4261 theQHadrons.push_back(hadr);
4263 G4cout<<
"***G4QE::HQE:FillAsIs(9),QC="<<totQC<<
",4M="<<tot4M<<
G4endl;
4271 theQHadrons.push_back(H1);
4279 theQHadrons.push_back(H2);
4291 G4cout<<
"G4QEnv::HadrQE: Add H="<<last4M<<lastQC<<
",tM="<<tot4M<<totM<<totQC
4292 <<
",dM="<<dM<<
", tB="<<totBN<<
", tS="<<totS<<
G4endl;
4294 if(dM>-0.001&&totPDG)
4298 EvaporateResidual(evH);
4301 nOfOUT = theQHadrons.size();
4303 nOfOUT = theQHadrons.size();
4306 G4cout<<
"---Warning---G4QEnv::HadrQE:M="<<totMass<<
"<gsM="<<totM<<
",dM="<<dM
4307 <<
", tPDG="<<totPDG<<
", t4M="<<tot4M<<
G4endl;
4311 EvaporateResidual(evH);
4317 G4cout<<
"***G4QEnv::HadrQE: M="<<totMass<<
",dM="<<dM<<
",nQ="<<nQuasmons<<
G4endl;
4321 if(!CheckGroundState(quasH,
true))
4325 G4cout<<
"G4QE::HQE:CheckGS failed H="<<totQC<<tot4M<<
G4endl;
4327 theQHadrons.push_back(hadr);
4339 void G4QEnvironment::CleanUp()
4342 theEnvironment=vacuum;
4343 G4int nQuasmons = theQuasmons.size();
4344 if (nQuasmons)
for (
G4int iq=0; iq<nQuasmons; iq++)theQuasmons[iq]->KillQuasmon();
4354 static const G4double mAlPr = mAlph+mProt;
4355 static const G4double mAlNt = mAlph+mNeut;
4356 static const G4double dProt = mProt+mProt;
4357 static const G4double dNeut = mNeut+mNeut;
4358 static const G4double dAlph = mAlph+mAlph;
4377 if(
sqr(h1M+h2M) < chM2 )
4381 if(!
G4QHadron(ch4M).DecayIn2(h14M,h24M))
4384 ed <<
"QChipolino DecIn2 error: CM=" << std::sqrt(chM2) <<
" -> h1="
4385 << h1QPDG <<
"(" << h1M <<
") + h2=" << h1QPDG <<
"(" << h2M
4386 <<
") = " << h1M+h2M <<
" **Failed**" <<
G4endl;
4387 G4Exception(
"G4QEnvironment::EvaporateResidual()",
"HAD_CHPS_0000",
4392 theQHadrons.push_back(h1H);
4394 G4cout<<
"G4QE::EvaporateResidual: Chipolino -> H1="<<h1QPDG<<h14M<<
G4endl;
4397 theQHadrons.push_back(qH);
4399 G4cout<<
"G4QE::EvaporateResidual: Chipolino -> H2="<<h2QPDG<<h24M<<
G4endl;
4409 ed <<
"LowMassChipolino in Input: ChipoMeson=" << qH->
GetQC()
4410 << qH->
Get4Momentum() <<
", chipoM=" << std::sqrt(chM2) <<
" < m1="
4411 << h1M <<
"(" << h1QPDG <<
") + m2=" << h2M <<
"(" << h2QPDG <<
") = "
4413 G4Exception(
"G4QEnvironment::EvaporateResidual()",
"HAD_CHPS_0001",
4438 G4cout<<
"G4QE::EvaporateRes:(!)Meson(!) PDG="<<thePDG<<
",4M="<<mesLV<<mesLV.
m()
4448 if(theS>0) thePDG-=theS*999999;
4452 if(!theC) totGSM=dNeut;
4453 else if(theC==2) totGSM=dProt;
4458 if (theC==3) totGSM=mAlPr;
4459 else if(theC==2) totGSM=mAlNt;
4461 else if(theBN==8) totGSM=dAlph;
4465 if(fabs(totMass-totGSM)<eps)
4467 theQHadrons.push_back(qH);
4469 else if(totMass>totGSM)
4479 G4cout<<
"G4QE::EvaRes: *Correct* "<<theQC<<q4M<<totMass<<
"<"<<totGSM<<
G4endl;
4482 if(fCGS && !CheckGroundState(quasH,
true) )
4485 G4cout<<
"***G4QE::EvaporResid:GSCorFailed.FillAsItIs,n="<<theQHadrons.size()<<
G4endl;
4487 theQHadrons.push_back(qH);
4517 G4int nHad=theQHadrons.size();
4518 if(nHad)
for(
G4int ih=0; ih<nHad; ih++)
4520 fCharge+=theQHadrons[ih]->GetCharge();
4521 fBaryoN+=theQHadrons[ih]->GetBaryonNumber();
4523 G4int nQuas=theQuasmons.size();
4524 if(nQuas)
for(
G4int iqs=0; iqs<nQuas; iqs++)
4526 fCharge+=theQuasmons[iqs]->GetCharge();
4527 fBaryoN+=theQuasmons[iqs]->GetBaryonNumber();
4529 if(fCharge!=totCharge || fBaryoN!=totBaryoN)
4531 G4cout<<
"*::*G4QE::Frag:(4) tC="<<totCharge<<
",C="<<fCharge<<
",tB="<<totBaryoN
4532 <<
",B="<<fBaryoN<<
",E="<<theEnvironment<<
G4endl;
4533 if(nHad)
for(
G4int h=0; h<nHad; h++)
4538 if(nQuas)
for(
G4int q=0; q<nQuas; q++)
4552 G4int nQ = theQuasmons.size();
4555 for(
G4int iq=0; iq<nQ; iq++)
4558 reQuasmons->push_back(curQ);
4562 G4int nH = theQHadrons.size();
4565 for(
G4int ih=0; ih<nH; ih++)
4568 reQHadrons->push_back(curH);
4573 while (RepFlag && ExCount<MaxExCnt)
4578 theFragments = FSInteraction();
4582 G4cout<<
"***G4QEnvironment::Fragment: Exception is catched"<<
G4endl;
4587 G4int nHp=theQHadrons.size();
4588 G4int nQp = theQuasmons.size();
4589 G4cout<<
"***G4QEnvir::Fragment:nH="<<nHp<<
",nQ="<<nQp<<
",E="<<theEnvironment<<
G4endl;
4590 for(
G4int ph=0; ph<nHp; ph++)
4596 for(
G4int pq=0; pq<nQp; pq++)
4603 for_each(theFragments->begin(), theFragments->end(),
DeleteQHadron());
4604 theFragments->clear();
4605 for_each(theQHadrons.begin(), theQHadrons.end(),
DeleteQHadron());
4606 theQHadrons.clear();
4607 for_each(theQuasmons.begin(), theQuasmons.end(),
DeleteQuasmon());
4608 theQuasmons.clear();
4609 G4cout<<
"***G4QEnv::Fragment: ----------- End of CleaningUp: 4Mdif="<<dif<<
G4endl;
4611 theEnvironment=reEnvironment;
4613 G4cout<<
"***G4QEnv::Fragment:*Recover*Env="<<theEnvironment<<
",4M="<<tot4Mom<<
G4endl;
4614 G4int mQ = reQuasmons->size();
4615 for(
G4int jq=0; jq<mQ; jq++)
4620 theQuasmons.push_back(curQ);
4622 G4int mH = reQHadrons->size();
4623 for(
G4int jh=0; jh<mH; jh++)
4628 theQHadrons.push_back(curH);
4632 if(reQuasmons->size())
4634 for_each(reQuasmons->begin(),reQuasmons->end(),
DeleteQuasmon());
4635 reQuasmons->clear();
4638 if(reQHadrons->size())
4640 for_each(reQHadrons->begin(),reQHadrons->end(),
DeleteQHadron());
4641 reQHadrons->clear();
4644 if(ExCount>=MaxExCnt)
4646 G4int nProj=theProjectiles.size();
4647 G4cerr<<
"*G4QEnv::Fragment:Exception.Target="<<theTargetPDG<<
". #Proj="<<nProj<<
G4endl;
4648 if(nProj)
for(
G4int ipr=0; ipr<nProj; ipr++)
4653 G4Exception(
"G4QEnvironment::Fragment()",
"HAD_CHPS_0000",
4657 G4int tmpS=intQHadrons.size();
4671 theFragments->insert(theFragments->begin(), intQHadrons.begin(), intQHadrons.end() );
4672 intQHadrons.clear();
4676 return theFragments;
4731 static const G4double mKmP = mK+mProt;
4732 static const G4double mKmN = mK+mNeut;
4733 static const G4double mK0mP = mK0+mProt;
4734 static const G4double mK0mN = mK0+mNeut;
4744 G4cout<<
"G4QEnvironment(G4QE)::FSInter(FSI): ***called*** envA="<<envA<<totIn4M<<
G4endl;
4745 G4int nQuasmons=theQuasmons.size();
4746 for (
G4int is=0; is<nQuasmons; is++)
4750 G4cout<<
"G4QE::FSI: Quasmon ("<<is<<
") is added, 4M="<<Q4M<<
G4endl;
4754 G4int nsHadr = theQHadrons.size();
4755 if(nsHadr)
for(
G4int jso=0; jso<nsHadr; jso++)
4757 G4int hsNF = theQHadrons[jso]->GetNFragments();
4761 G4cout<<
"G4QE::FSI: Hadron ("<<jso<<
") is added, 4M="<<hs4Mom<<
G4endl;
4763 totInC += theQHadrons[jso]->GetCharge();
4766 G4cout<<
"G4QE::FSI: The resulting 4Momentum="<<totIn4M<<
G4endl;
4771 G4int nHad=theQHadrons.size();
4772 if(nHad)
for(
G4int ih=0; ih<nHad; ih++)
4774 fCharge+=theQHadrons[ih]->GetCharge();
4775 fBaryoN+=theQHadrons[ih]->GetBaryonNumber();
4777 G4int nQuas=theQuasmons.size();
4778 if(nQuas)
for(
G4int iqs=0; iqs<nQuas; iqs++)
4780 fCharge+=theQuasmons[iqs]->GetCharge();
4781 fBaryoN+=theQuasmons[iqs]->GetBaryonNumber();
4783 if(fCharge!=totCharge || fBaryoN!=totBaryoN)
4785 G4cout<<
"*::*G4QE::FSI:(5) tC="<<totCharge<<
",C="<<fCharge<<
",tB="<<totBaryoN
4786 <<
",B="<<fBaryoN<<
",E="<<theEnvironment<<
G4endl;
4787 if(nHad)
for(
G4int h=0; h<nHad; h++)
4792 if(nQuas)
for(
G4int q=0; q<nQuas; q++)
4800 HadronizeQEnvironment();
4804 G4cout<<
"G4QEnv::FSI: Initial tot4M="<<t4M<<
" to be subtracted"<<
G4endl;
4807 G4cout<<
"G4QEnv::FSI: Subtract Environ="<<theEnv4m<<theEnvironment<<
G4endl;
4808 for (
G4int js=0; js<nQuasmons; js++)
4815 G4cout<<
"G4QE::FSI: Subtract Quasmon("<<js<<
"),4M="<<Q4M<<
",QC="<<qQC<<
G4endl;
4821 G4int nsbHadr=theQHadrons.size();
4822 if(nsbHadr)
for(
G4int jpo=0; jpo<nsbHadr; jpo++)
4824 G4int hsNF = theQHadrons[jpo]->GetNFragments();
4828 G4int hPDG = theQHadrons[jpo]->GetPDGCode();
4829 G4cout<<
"G4QE::FSI: Subtract Hadron("<<jpo<<
"), 4M="<<hs4Mom<<hPDG<<
G4endl;
4831 tC -= theQHadrons[jpo]->GetCharge();
4834 G4cout<<
"G4QEnv::FSI:|||||4-MomCHECK||||d4M="<<t4M<<
",dCharge="<<tC<<
G4endl;
4836 unsigned nHadr=theQHadrons.size();
4839 G4cout<<
"---Warning---G4QEnvironment::FSInteraction: nHadrons="<<nHadr<<
G4endl;
4841 return theFragments;
4843 G4int lHadr=theQHadrons[nHadr-1]->GetBaryonNumber();
4845 G4cout<<
"G4QE::FSI:after HQE,nH="<<nHadr<<
",lHBN="<<lHadr<<
",E="<<theEnvironment<<
G4endl;
4849 G4QHadron* theLast = theQHadrons[nHadr-1];
4856 G4cout<<
"G4QE::FSI:lastHadr 4M/M="<<lh4M<<lhM<<
",GSM="<<lhGSM<<
",PDG="<<lhPDG<<
G4endl;
4860 theQHadrons.pop_back();
4862 EvaporateResidual(curHadr);
4863 nHadr=theQHadrons.size();
4868 else if(lhM<lhGSM-eps)
4870 theQHadrons.pop_back();
4873 if(!CheckGroundState(quasH,
true))
4877 G4cout<<
"---Warning---G4QEnv::FSI:Correction error LeaveAsItIs h4m="<<lh4M<<
G4endl;
4879 theQHadrons.push_back(curHadr);
4885 nHadr=theQHadrons.size();
4889 else delete curHadr;
4897 if(nHadr)
for(
unsigned ich=0; ich<nHadr; ich++)
if(!(theQHadrons[ich]->GetNFragments()))
4899 chContSum+=theQHadrons[ich]->GetCharge();
4900 bnContSum+=theQHadrons[ich]->GetBaryonNumber();
4903 if(chContSum!=totCharge || bnContSum!=totBaryoN)
4905 G4cout<<
"*::*G4QE::Fr:(6)tC="<<totCharge<<
",C="<<chContSum<<
",tB="<<totBaryoN
4906 <<
",B="<<bnContSum<<
",E="<<theEnvironment<<
G4endl;
4907 if(nHadr)
for(
unsigned h=0; h<nHadr; h++)
4912 if(nQuas)
for(
G4int q=0; q<nQuas; q++)
4920 if(nHadr)
for(
unsigned ipo=0; ipo<theQHadrons.size(); ipo++)
4923 nHadr=theQHadrons.size();
4924 lHadr=theQHadrons[nHadr-1]->GetBaryonNumber();
4934 <<
",F="<<hNF<<
",nH="<<theQHadrons.size()<<
G4endl;
4936 if(hBN>lHadr && ipo+1<theQHadrons.size())
4939 G4QHadron* theLast = theQHadrons[theQHadrons.size()-1];
4949 theQHadrons.pop_back();
4951 theQHadrons.push_back(curHadr);
4952 nHadr=theQHadrons.size();
4954 if(hPDG==89002000||hPDG==89001001||hPDG==89000002)
4957 G4cout<<
"G4QE::FSI:***ANTISTRANGE*** i="<<ipo<<
",PDG="<<hPDG<<
",BaryN="<<hBN<<
G4endl;
4971 if(hMi>mProt+mPi+mPi0)
4978 else if(hMi>mProt+mPi)
4981 G4cout<<
"**G4QE::FSI:ANTISTRANGE*++*STRANGENESS,PDG="<<hPDG<<
",M="<<hM<<
G4endl;
4989 else if(hPDG==89001001)
5004 if(hMi>mProt+mPi0+mPi0)
5027 else if(hMi>mProt+mPi0)
5030 G4cout<<
"**G4QE::FSI:*ANTISTRANGE*+*STRANGENESS*PDG="<<hPDG<<
",M="<<hM<<
G4endl;
5040 else if(hPDG==89000002)
5048 if(hMi>mNeut+mPi+mPi)
5055 if(hMi>mProt+mPi+mPi0)
5064 else if(hMi>mProt+mPi)
5067 G4cout<<
"**G4QE::FSI:**ANTISTRANGE*0*STRANGENE**PDG="<<hPDG<<
",M="<<hM<<
G4endl;
5080 G4cout<<
"***G4QE::FSI:***ANTISTRANGE***CANN'T DECAY,PDG="<<hPDG<<
",M="<<hM<<
G4endl;
5089 if(fabs(hM-sum)<=eps)
5096 G4cout<<
"---Warning---G4QE::FSI: Still try(2),M="<<hM<<
"->"<<fM<<
"("<<fQPDG<<
")+"
5097 <<sM<<
"("<<sPDG<<
")="<<sum<<
G4endl;
5101 if(!theEnvironment.
GetA())
5106 if(ipo+1<theQHadrons.size())
5108 theLast = theQHadrons[theQHadrons.size()-1];
5114 theQHadrons.pop_back();
5118 if(!CheckGroundState(quasH,
true))
5120 G4cout<<
"---Warning---G4QEnv::FSI:Failed (2) LeaveAsItIs 4m="<<h4Mom<<
G4endl;
5121 theQHadrons.push_back(qH);
5129 nHadr=theQHadrons.size();
5141 ed <<
"FSI:ANTISTRANGE DecayIn2 did not succeed: FSI: No recovery (1) Env="
5142 << theEnvironment <<
G4endl;
5143 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0000",
5149 theQHadrons[ipo]->SetQPDG(fQPDG);
5150 theQHadrons[ipo]->Set4Momentum(f4M);
5152 theQHadrons.push_back(sH);
5162 if(fabs(hM-sum)<=eps)
5170 G4cout<<
"---Warning---G4QE::FSI: Still try(3), M"<<hM<<
"->"<<fM<<
"("<<fQPDG<<
")+"
5171 <<sM<<
"("<<sPDG<<
")+"<<tM<<
"("<<tPDG<<
")="<<sum<<
G4endl;
5173 if(!theEnvironment.
GetA())
5177 if(ipo+1<theQHadrons.size())
5179 theLast = theQHadrons[theQHadrons.size()-1];
5185 theQHadrons.pop_back();
5188 if(!CheckGroundState(quasH,
true))
5190 G4cout<<
"---Warning---G4QEnv::FSI:Failed (3) LeaveAsItIs,4M="<<h4Mom<<
G4endl;
5191 theQHadrons.push_back(qH);
5197 nHadr=theQHadrons.size();
5207 ed <<
"ANTISTRANGE DecayIn3 did not succeed: No recovery (2) Env="
5208 << theEnvironment <<
G4endl;
5209 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0001",
5215 theQHadrons[ipo]->SetQPDG(fQPDG);
5216 theQHadrons[ipo]->Set4Momentum(f4M);
5218 theQHadrons.push_back(sH);
5220 theQHadrons.push_back(tH);
5223 nHadr=theQHadrons.size();
5225 else if(hPDG==89999003||hPDG==90002999||hPDG==90000003||hPDG==90003000||
5226 hPDG==90999002||hPDG==91001999)
5229 G4cout<<
"G4QE::FSI:***nD-/pD++/nnn/ppp***i="<<ipo<<
",PDG="<<hPDG<<
",A="<<hBN<<
G4endl;
5234 G4int barPDG = 2112;
5246 else if(hPDG==90003000)
5255 else if(hPDG==90999002)
5257 if(hM>mSigZ+mNeut+mPi)
5263 if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2);
5267 if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
5279 else if(hM>mLamb+mNeut+mPi)
5284 else if(hM>mSigM+mNeut)
5292 else if(hPDG==91001999)
5297 if(hM>mSigZ+mProt+mPi)
5303 if(ddMass>sma) pr1=sqrt((dd2-sma*sma)*dd2);
5307 if(ddMass>sma && ddMass>smi) pr2+=sqrt((dd2-sma*sma)*(dd2-smi*smi));
5319 if(hM>mLamb+mProt+mPi)
5324 else if(hM>mSigP+mProt)
5332 else if(hPDG==90000003)
5342 if(fabs(hM-sum)<=eps)
5344 nu4M=h4Mom*(nucM/sum);
5345 ba4M=h4Mom*(barM/sum);
5346 pi4M=h4Mom*(tM/sum);
5352 G4cout<<
"***G4QEnv::FSI:T="<<hPDG<<
"("<<hM<<
")-> N="<<nuQPDG<<
"(M="<<nucM<<
") + B="
5353 <<barPDG<<
"("<<barM<<
")+N/pi="<<tPDG<<
"("<<tM<<
")="<<sum<<
", A="<<eA<<
G4endl;
5362 if(ipo+1<theQHadrons.size())
5364 G4int nhd1=theQHadrons.size()-1;
5365 theLast = theQHadrons[nhd1];
5371 G4cout<<
"---Warning---G4QE::FSI:l#"<<nhd1<<
",4M="<<l4M<<
",PDG="<<lQP<<
G4endl;
5375 theQHadrons.pop_back();
5380 if(!CheckGroundState(quasH,
true))
5383 G4cout<<
":W:G4QE::FSI:E="<<theEnvironment<<
",Q="<<cqQC<<tqLV<<tqLV.
m()<<
G4endl;
5385 theQHadrons.push_back(qH);
5391 nHadr=theQHadrons.size();
5404 theQHadrons[ipo]->SetQPDG(nuQPDG);
5405 theQHadrons[ipo]->Set4Momentum(nu4M);
5407 theQHadrons.push_back(baH);
5409 theQHadrons.push_back(piH);
5410 nHadr=theQHadrons.size();
5413 else if(hBN>1 && !sBN && (cBN<0 || cBN>hBN))
5416 G4cout<<
"G4QE::FSI:nNmD-/nPmD++ #"<<ipo<<
",P="<<hPDG<<
",B="<<hBN<<
",C="<<cBN<<
G4endl;
5421 G4int barPDG = 2112;
5443 if(fabs(hM-sum)<=eps)
5445 nu4M=h4Mom*(nucM/sum);
5446 ba4M=h4Mom*(barM/sum);
5447 pi4M=h4Mom*(tM/sum);
5452 G4cout<<
"***G4QEnv::FSI:IsN M="<<hM<<
","<<hPDG<<
"->N="<<nuQPDG<<
"(M="<<nucM<<
")+"
5453 <<nN<<
"*B="<<barPDG<<
"(M="<<barM<<
")+"<<nPi<<
"*pi="<<tPDG<<
"(M="<<tM<<
")="
5455 G4cout<<
"***G4QEnv::FSI:IsN BaryN="<<hBN<<
",Charge="<<cBN<<
",Stran="<<sBN<<
G4endl;
5457 if(!theEnvironment.
GetA())
5461 if(ipo+1<theQHadrons.size())
5463 theLast = theQHadrons[theQHadrons.size()-1];
5469 theQHadrons.pop_back();
5474 if(!CheckGroundState(quasH,
true))
5476 G4cout<<
"---Warning---G4QEnv::FSI:IN Failed, FillAsItIs: "<<cqQC<<cq4M<<
G4endl;
5477 theQHadrons.push_back(qH);
5483 nHadr=theQHadrons.size();
5491 ed <<
"IN Multy ISO-dibaryon DecayIn3 did not succeed: IN,NoRec(4) Env="
5492 << theEnvironment <<
",PDG=" << hPDG <<
G4endl;
5493 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0002",
5499 theQHadrons[ipo]->SetQPDG(nuQPDG);
5500 theQHadrons[ipo]->Set4Momentum(nu4M);
5501 if(nN>1) ba4M=ba4M/nN;
5502 for(
G4int ib=0; ib<nN; ib++)
5505 theQHadrons.push_back(baH);
5507 if(nPi>1) pi4M=pi4M/nPi;
5508 for(
G4int im=0; im<nPi; im++)
5511 theQHadrons.push_back(piH);
5513 nHadr=theQHadrons.size();
5517 G4int hNFrag= theQHadrons[ipo]->GetNFragments();
5519 hPDG = theQHadrons[ipo]->GetPDGCode();
5520 h4Mom = theQHadrons[ipo]->Get4Momentum();
5522 G4cout<<
"G4QE::FSI:#"<<ipo<<
": h="<<hPDG<<hQC<<
",h4M="<<h4Mom<<h4Mom.
m()<<
",hNF="
5528 G4cout<<
"G4QE::FSI: --->>CurrentControlSumOf4MomOfHadrons="<<ccs4M<<
G4endl;
5530 nHadr=theQHadrons.size();
5535 if(nHadr)
for(
unsigned ic1=0; ic1<nHadr; ic1++)
if(!(theQHadrons[ic1]->GetNFragments()))
5537 ccContSum+=theQHadrons[ic1]->GetCharge();
5538 cbContSum+=theQHadrons[ic1]->GetBaryonNumber();
5540 if(ccContSum-chContSum || cbContSum-bnContSum)
5542 G4cout<<
"*::*G4QE::FSI:(7)dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
5549 if(envA>0) p2cut/=envA*envA;
5553 if(envA>10) bfCountM*=(envA-1)/3;
5558 G4int nPost=intQHadrons.size();
5559 if(nPost)
for(
G4int psp=0; psp<nPost; psp++)
5560 if(!(intQHadrons[psp]->GetNFragments())) postp4M+=intQHadrons[psp]->Get4Momentum();
5561 while(bfAct&&bfCount<bfCountM)
5563 tot4Mom=tmp4Mom-postp4M;
5566 nHadr=theQHadrons.size();
5567 if(nHadr)
for(
unsigned hadron=0; hadron<theQHadrons.size(); hadron++)
5569 G4QHadron* curHadr = theQHadrons[hadron];
5576 if(hPDG==89999003||hPDG==90002999)
5578 G4cout<<
"---WARNING---G4QE::FSI:**nD-/pD++**(3),PDG="<<hPDG<<
" CORRECTION"<<
G4endl;
5600 if(fabs(hM-sum)<=eps)
5608 G4cout<<
"---WARNING---G4QE::FSI: Still trying, NDM="<<hM<<
"->"<<fM<<
"("<<fQPDG
5609 <<
")+"<<sM<<
"("<<sPDG<<
")+"<<tM<<
"("<<tPDG<<
")="<<sum<<
G4endl;
5610 if(!theEnvironment.
GetA())
5614 if(hadron+1<theQHadrons.size())
5616 theLast = theQHadrons[theQHadrons.size()-1];
5622 theQHadrons.pop_back();
5625 if(!CheckGroundState(quasH,
true))
5627 G4cout<<
"---Warning---G4QE::FSI:NDel Failed LeaveAsItIs, 4m="<<h4Mom<<
G4endl;
5628 theQHadrons.push_back(qH);
5633 nHadr=theQHadrons.size();
5643 ed <<
"ND DecayIn3 did not succeed: No ND recovery Env="
5644 << theEnvironment <<
G4endl;
5645 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0003",
5654 theQHadrons.push_back(sH);
5656 theQHadrons.push_back(tH);
5660 hGSM = hQPDG.GetMass();
5662 nHadr=theQHadrons.size();
5663 if(hPDG==89001001||hPDG==89002000||hPDG==89000002)
5665 G4cout<<
"---WARNING---G4QE::FSI:***(K+N)*** (2),PDG="<<hPDG<<
" CORRECTION"<<
G4endl;
5696 if(fabs(hM-sum)<=eps)
5703 G4cout<<
"---WARNING---G4QE::FSI: Still trying (2),NDM="<<hM<<
"->"<<fM<<
"("<<fQPDG
5704 <<
")+"<<sM<<
"("<<sPDG<<
")="<<sum<<
G4endl;
5705 if(!theEnvironment.
GetA())
5709 if(hadron+1<theQHadrons.size())
5711 theLast = theQHadrons[theQHadrons.size()-1];
5717 theQHadrons.pop_back();
5720 if(!CheckGroundState(quasH,
true))
5722 G4cout<<
"---Warning---G4QE::FSI:KN Failed LeaveAsItIs 4m="<<h4Mom<<
G4endl;
5723 theQHadrons.push_back(qH);
5728 nHadr=theQHadrons.size();
5738 ed <<
"KN DecayIn2 did not succeed: No KN recovery Env="
5739 << theEnvironment <<
G4endl;
5740 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0004",
5749 theQHadrons.push_back(sH);
5753 hGSM = hQPDG.GetMass();
5755 nHadr=theQHadrons.size();
5763 if(!hF && ( (hPDG>80000000 && hPDG<90000000) || hPDG==90000000 ||
5764 (hPDG>90000000 && (hPDG%1000000>200000 || hPDG%1000>300) ) ) )
5765 G4cout<<
"**G4QEnv::FSInteraction: PDG("<<hadron<<
")="<<hPDG<<
", M="<<hM<<
G4endl;
5768 G4cout<<
"G4QE::FSI:h="<<hPDG<<
",S="<<hS<<
",B="<<hB<<
",#"<<hadron<<
"<"<<nHadr<<
G4endl;
5772 if(hadron&&!hF&&hB>0&&!hS)
5779 G4cout<<
"G4QE::FSI: h="<<hPDG<<
",B="<<hB<<
",h#"<<hadron<<
" < nH="<<nHadr<<
G4endl;
5782 if(hadron&&!hF&&hB>0)
for(
unsigned pt=0;
pt<hadron;
pt++)
5805 G4double pCM2=(sM2-rm*rm)*(sM2-sm*sm)/(dsM2+dsM2);
5809 G4cout<<
"G4QE::FSI:"<<
pt<<
",B="<<bB<<
",S="<<bS<<
",p="<<pCM2<<
"<"<<p2cut<<
",hB="
5810 <<hB<<
",bM+hM="<<bM+hM<<
">tM="<<tM<<
",tQC="<<sQC<<
G4endl;
5818 if(!bF&&!bS&&bB>0&&bM+hM>tM+.001&&pCM2<p2cut)
5827 if(sPDG==89999003||sPDG==90002999||sPDG==89999002||sPDG==90001999)
5828 G4cout<<
"G4QE::FSI:**nD-/pD++**,h="<<hPDG<<
",hB="<<hB<<
",b="<<bPDG<<
",bB="
5831 G4cout<<
"G4QE::FSI:*FUSION*#"<<hadron<<
"["<<hPDG<<
"]"<<hM<<
"+#"<<
pt<<
"["<<bPDG
5832 <<
"]"<<bM<<
"="<<bM+hM<<
", sM="<<sM<<
">["<<sPDG<<
"]"<<tM<<
",p2="<<pCM2
5851 else if(sPDG==90001999)
5858 else if(sPDG==90000002)
5865 else if(sPDG==90002000)
5872 else if(sPDG==92000000)
5882 if(sM>sma) pr1=sqrt((sM2-sma*sma)*sM2);
5886 if(sM>sma && sM>smi) pr2+=sqrt((sM2-sma*sma)*(sM2-smi*smi));
5889 if(sM>sma) pr3+=sqrt((sM2-sma*sma)*sM2);
5904 else if(sM>mSigZ+mLamb)
5908 if(sM>sma) pr1=sqrt((sM2-sma*sma)*sM2);
5912 if(sM>sma && sM>smi) pr2+=sqrt((sM2-sma*sma)*(sM2-smi*smi));
5920 else if(sPDG==89999003)
5930 else if(sPDG==90002999)
5940 else if(sPDG==90000003)
5950 else if(sPDG==90003000)
5960 else if(sPDG==90001003)
5967 else if(sPDG==90003001)
5974 else if(sPDG==90002003)
5981 else if(sPDG==90003002)
5988 else if(sPDG==90004002)
5998 else if(sPDG==90002005)
6005 else if(sPDG==90005002)
6012 else if(sPDG==90004004)
6039 else if(sPDG==90002007)
6046 else if(sPDG==90005004)
6056 else if(sPDG==90007002)
6063 else if(sPDG==90008004)
6073 else if(sPDG==90009006)
6080 else if(sPDG==90009007)
6087 else if(sPDG==90010006)
6098 G4cout<<
"G4QE::FSI: "<<three<<
",r="<<rQPDG<<
",f="<<fQPDG<<
",t="<<hQPDG<<
G4endl;
6102 if(!
G4QHadron(s4M).DecayIn2(f4Mom,g4Mom))
6105 ed <<
"Fusion (1) DecIn2 error: (2)*FUSION*,tM[" << sPDG <<
"]="
6106 << tM <<
">sM=" << sM <<
" of " << h4m << hM << hQC << hGSM
6107 <<
" & " << b4m << bM << bQC << bGSM <<
G4endl;
6108 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0005",
6114 G4cout<<
"G4QE::FSI:*FUSION IS DONE*,fPDG="<<sPDG<<
",PDG1="<<hPDG<<
",PDG2="
6122 G4cout<<
"G4QE::FSI:h="<<h4m<<
",b="<<b4m<<
",s="<<s4M<<
G4endl;
6123 G4cout<<
"G4QE::FSI:f="<<f4Mom<<
",g="<<g4Mom<<
",s="<<f4Mom+g4Mom<<
G4endl;
6129 if(!
G4QHadron(s4M).DecayIn3(f4Mom,g4Mom,t4Mom))
6132 ed <<
"Fusion(2) DecayIn3 error: (3)*FUSION*,tM[" << sPDG
6133 <<
"]=" << tM <<
">sM=" << sM <<
" of " << h4m << hM << hQC
6134 << hGSM <<
" & " << b4m << bM << bQC << bGSM <<
G4endl;
6135 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0006",
6141 G4cout<<
"G4QE::FSI:DONE,n="<<nHadr<<
",PDG="<<sPDG<<
",1="<<hPDG<<
",2="<<bPDG
6149 theQHadrons.push_back(newH);
6150 nHadr=theQHadrons.size();
6153 G4cout<<
"G4QE::FSI:s="<<s4M<<
" = Sum"<<f4Mom+g4Mom+t4Mom<<
G4endl;
6154 G4cout<<
"G4QE::FSI:*Products*,nH="<<nHadr<<
",f="<<fQPDG<<f4Mom<<
",b="
6155 <<rQPDG<<g4Mom<<
",new="<<hQPDG<<t4Mom<<
",nH="<<nHadr<<
",nD="
6156 <<theQHadrons.size()<<
G4endl;
6168 hB=hQC.GetBaryonNumber();
6169 hGSM = hQPDG.GetMass();
6183 if(nHadr)
for(
unsigned ic2=0;ic2<nHadr;ic2++)
if(!(theQHadrons[ic2]->GetNFragments()))
6185 ccContSum+=theQHadrons[ic2]->GetCharge();
6186 cbContSum+=theQHadrons[ic2]->GetBaryonNumber();
6188 unsigned pHadr=intQHadrons.size();
6189 if(pHadr)
for(
unsigned ic3=0;ic3<pHadr;ic3++)
if(!(intQHadrons[ic3]->GetNFragments()))
6191 ccContSum+=intQHadrons[ic3]->GetCharge();
6192 cbContSum+=intQHadrons[ic3]->GetBaryonNumber();
6194 if(ccContSum-chContSum || cbContSum-bnContSum)
6196 G4cout<<
"*::*G4QE::FSI:(8) dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
6207 G4cout<<
"G4QE::FSI:Cur4M="<<tot4Mom<<
",tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
6212 G4cout<<
"G4QE::FSI:Last4M="<<tot4Mom<<
",tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
6216 if(totCharge>=0 && totBaryoN > 0)
6218 mPDG=90000000+999*totCharge+totBaryoN;
6226 G4double dmo=rpx*rpx+rpy*rpy+rpz*rpz;
6230 if(dm2>0.) sdm=std::sqrt(dm2);
6232 G4cout<<
"G4QE::FSI: Is En&Mom conserved? t4M="<<tot4Mom<<
",dM="<<sdm<<
", mM="<<misM
6233 <<
",mPDG="<<mPDG<<
",dCH="<<totCharge<<
",dBN="<<totBaryoN<<
G4endl;
6240 G4cout<<
"--Warning--G4QE::FSI:dE/Mc4M="<<tot4Mom<<sdm<<
". Correct it!"<<
G4endl;
6242 if(sdm < .01 || (re2 > 0. && !totCharge && !totBaryoN && sdm/re2 < .0001))
6245 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by a photon"<<
G4endl;
6249 theQHadrons.push_back(theH);
6254 if(dmo<0.0001 && re>900.)
6256 if(fabs(re-mNeut)<.01)
6259 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by neutron"<<
G4endl;
6263 theQHadrons.push_back(theH);
6266 else if(fabs(re-mProt)<.01)
6269 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by proton"<<
G4endl;
6273 theQHadrons.push_back(theH);
6276 else if(fabs(re-mDeut)<.01)
6279 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by deuteron"<<
G4endl;
6283 theQHadrons.push_back(theH);
6286 else if(fabs(re-mTrit)<.01)
6289 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by tritium"<<
G4endl;
6293 theQHadrons.push_back(theH);
6296 else if(fabs(re-mHe3)<.01)
6299 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by He3"<<
G4endl;
6303 theQHadrons.push_back(theH);
6306 else if(fabs(re-mAlph)<.01)
6309 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by alpha"<<
G4endl;
6313 theQHadrons.push_back(theH);
6316 else if(fabs(re-mNeut-mNeut)<.01)
6320 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by 2 neutrons"<<
G4endl;
6323 theQHadrons.push_back(theH1);
6325 theQHadrons.push_back(theH2);
6328 else if(fabs(re-mProt-mProt)<.01)
6331 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by 2 protons"<<
G4endl;
6335 theQHadrons.push_back(theH1);
6337 theQHadrons.push_back(theH2);
6340 else G4Exception(
"G4QEnvironment::FSInteract()",
"HAD_CHPS_0007",
6343 else if(std::abs(sdm-misM) < 0.01)
6346 G4cout<<
"...G4QE::FSI:E/M conservation is corrected by ResidualNucl"<<
G4endl;
6351 if(std::fabs(sdm-misM) <= 0.01) theQHadrons.push_back(theH);
6352 else EvaporateResidual(theH);
6355 else if(tot4Mom.
e() > 0 && cH4Mom.
e() > 0 && nHadr > 1)
6357 G4QHadron* prevHadr = theQHadrons[nHadr-2];
6362 G4cout<<
"G4QE::FSI:Bt4M="<<tot4Mom<<
",c4M="<<cH4Mom<<
",p4M="<<pH4Mom<<
G4endl;
6367 G4cout<<
"G4QE::FS:"<<tt4Mom<<
",tM="<<totRM<<
",cM="<<cHM<<
",pM="<<pHM<<
G4endl;
6371 if(!
G4QHadron(tt4Mom).DecayIn2(pH4Mom,cH4Mom))
6373 G4cout<<
"***G4QE::FSI:**Correction**tot4M="<<tt4Mom<<totRM<<
">sM="
6377 ed <<
"CORRECT DecIn2 error: **Correction**tot4M=" << tt4Mom
6378 << totRM <<
">sM=" << cHM+cHM <<
G4endl;
6379 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0007",
6384 G4cout<<
"-:-Warning-:-G4QE::FSI:***CORRECTION IS DONE*** d="<<dem<<
G4endl;
6394 G4cerr<<
"*!*G4QE::FSI: "<<cHM<<
"+"<<pHM<<
"="<<cHM+pHM<<
">"<<totRM<<
G4endl;
6396 ed <<
"TEMPORARY EXCEPTION: "<<cHM<<
"+"<<pHM<<
" = "<<cHM+pHM<<
" > "<<totRM
6397 <<
", tot4M="<<tot4Mom<<
", c4M="<<cH4Mom<<
", p4M="<<pH4Mom<<
G4endl;
6398 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0008",
6405 G4cerr<<
"*!*G4QE::FSI: tE="<<tot4Mom.
e()<<
", nHadr="<<nHadr<<
G4endl;
6407 ed <<
"TEMPORARY EXCEPTION: *check energy!* tot4M=" << tot4Mom <<
", c4M="
6408 << cH4Mom <<
", nHadr="<< nHadr <<
" > 1 ?" <<
G4endl;
6409 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0009",
6412 tot4Mom=tot4Mom-cor4M;
6414 G4cout<<
"---Warning---G4QE::FSI:En/MomCons.Error is corrected:"<<cor4M<<
G4endl;
6417 if(nHadr>2 && !corf)
6421 for(ch=nHadr-3; ch>-1; --ch)
6426 tot4Mom+=cH4Mom+pH4Mom;
6430 if(!
G4QHadron(tot4Mom).DecayIn2(pH4Mom,cH4Mom))
6432 G4cout<<
"***G4QEnv::FSI:**Correction**,tot4M="<<tot4Mom<<totRM<<
" > sM="
6436 ed <<
"CORRECTION DecIn2Error: **Correction**,tot4M=" << tot4Mom
6437 << totRM <<
" > sM=" << cHM+cHM <<
G4endl;
6438 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0010",
6443 G4cout<<
"-:-!!!-:-G4QE::FSI:***CORRECTION IS DONE*** d="<<dem<<
G4endl;
6449 else tot4Mom-=cH4Mom+pH4Mom;
6455 ed <<
"EnMomCorrectionFailed: EnergyMomentumCorrection FAILED "
6457 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0011",
6464 else G4cout<<
"...G4QE::FSI:E/M conservation is good enough"<<
G4endl;
6465 G4cout<<
"G4QE::FSI:EMCorrection by "<<theQHadrons.size()-nHadr<<
" hadrons"<<
G4endl;
6480 if(nHadr)
for(
unsigned ic3=0; ic3<nHadr; ic3++)
if(!(theQHadrons[ic3]->GetNFragments()))
6482 ccContSum+=theQHadrons[ic3]->GetCharge();
6483 cbContSum+=theQHadrons[ic3]->GetBaryonNumber();
6485 if(ccContSum-chContSum || cbContSum-bnContSum)
6487 G4cout<<
"*::*G4QE::FSI:(9) dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
6495 nHadr=theQHadrons.size();
6497 if(nHadr>2)
for(
unsigned f=0;
f<theQHadrons.size();
f++)
6499 G4int fBN=theQHadrons[
f]->GetBaryonNumber();
6501 G4int fPDG=theQHadrons[
f]->GetPDGCode();
6503 G4cout<<
"G4QE::FSI:"<<
f<<
",PDG="<<fPDG<<
",fBN="<<fBN<<
",f4M="<<fLV<<
G4endl;
6512 G4cout<<
"G4QE::FSI:===Before Gamma Compression===, nH="<<nHadr<<
",frag="<<frag<<
G4endl;
6514 if(nHadr>2 && frag)
for(
G4int h=nHadr-1; h>=0; h--)
6519 if(hPDG==89999003||hPDG==90002999)
6520 G4cout<<
"---Warning---G4QEnv::FSI:nD-/pD++(1)="<<hPDG<<
G4endl;
6522 G4cout<<
"G4QE::FSI: h#"<<h<<
", hPDG="<<hPDG<<
", hNFrag="<<hF<<
G4endl;
6526 G4QHadron* theLast = theQHadrons[theQHadrons.size()-1];
6533 G4cout<<
"G4QE::FSI: gam4M="<<g4M<<
" is added to s4M="<<sum<<
G4endl;
6536 nHadr = theQHadrons.size()-1;
6537 if(h < static_cast<G4int>(nHadr))
6545 G4cout<<
"G4QE::FSI: Exchange with the last is done"<<
G4endl;
6548 theQHadrons.pop_back();
6556 G4cout<<
"G4QE::FSI: nH="<<nHadr<<
"="<<theQHadrons.size()<<
", sum="<<sum<<
G4endl;
6562 if(nHadr)
for(
unsigned ic4=0; ic4<nHadr; ic4++)
if(!(theQHadrons[ic4]->GetNFragments()))
6564 ccContSum+=theQHadrons[ic4]->GetCharge();
6565 cbContSum+=theQHadrons[ic4]->GetBaryonNumber();
6567 if(ccContSum-chContSum || cbContSum-bnContSum)
6569 G4cout<<
"*::*G4QE::FSI:(A) dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
6575 if(nHadr>1)
for(
unsigned hdr=0; hdr<theQHadrons.size()-1; hdr++)
6581 G4QHadron* theLast = theQHadrons[theQHadrons.size()-1];
6599 nHadr=theQHadrons.size();
6604 if(nHadr)
for(
unsigned ic5=0; ic5<nHadr; ic5++)
if(!(theQHadrons[ic5]->GetNFragments()))
6606 ccContSum+=theQHadrons[ic5]->GetCharge();
6607 cbContSum+=theQHadrons[ic5]->GetBaryonNumber();
6609 if(ccContSum-chContSum || cbContSum-bnContSum)
6611 G4cout<<
"*::*G4QE::FSI:(B) dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
6619 G4QHadron* theLast = theQHadrons[nHadr-1];
6626 theQHadrons.pop_back();
6632 G4cout<<
"G4QE::FSI:gSum4M="<<sum<<
" is added to "<<new4M<<
", PDG="<<newPDG<<
G4endl;
6638 if(exResidN.SplitBaryon())
6645 EvaporateResidual(theNew);
6655 ed <<
"GamSUPPRES DecIn2(n+He3)error: GamSup, tM=" << exRes4M.
m()
6656 <<
"<n+He3=" << mNeut+mHe3 <<
G4endl;
6657 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0012",
6661 G4cout<<
"G4QE::FSI:Gamma Suppression succided, n="<<n4M<<
", He3="<<h4M<<
G4endl;
6665 theQHadrons.push_back(theNew);
6667 theQHadrons.push_back(theHe3);
6672 if(nHadr>1)
for(
unsigned sh=0; sh<theQHadrons.size()-1; sh++)
6675 G4QHadron* thePrev = theQHadrons[theQHadrons.size()-1];
6679 G4cout<<
"G4QE::FSI:SO,h="<<sh<<
"<"<<nHadr<<
",PDG/LV="<<curHadr->
GetPDGCode()
6688 if(hM>mGamEva&&lT>hT)
6699 nHadr=theQHadrons.size();
6700 G4QHadron* thePrev = theQHadrons[nHadr-1];
6705 G4cout<<
"G4QE::FSI:BeforeResidNucHadr nH="<<nHadr<<
",hPDG="
6708 theQHadrons.pop_back();
6720 G4double sum_value=nuM+mNeut+mProt;
6721 if(fabs(dhM-sum_value)<eps)
6723 n4M=dh4M*(nuM/sum_value);
6724 h4M=dh4M*(mNeut/sum_value);
6725 p4M=dh4M*(mProt/sum_value);
6730 ed <<
"Gamma SUPPRESSION by D DecIn3error: GamSupByD,M="
6731 << dhM <<
"<A+p+n=" << sum_value <<
G4endl;
6732 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0013",
6736 G4cout<<
"G4QE::FSI:GamSuppression by d succided,h="<<h4M<<
",A="<<n4M<<
G4endl;
6740 theQHadrons.push_back(theHad);
6742 theQHadrons.push_back(theProt);
6744 EvaporateResidual(theNew);
6751 ed <<
"GamSUPPRESSION (3) DecIn2 error: GamSup,M=" << dh4M.
m()
6752 <<
"<A+h=" << n4M.
m()+h4M.m() <<
G4endl;
6753 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0014",
6757 G4cout<<
"G4QE::FSI:Gamma Suppression succided, h="<<h4M<<
", A="<<n4M<<
G4endl;
6760 theQHadrons.push_back(theHad);
6762 EvaporateResidual(theNew);
6771 EvaporateResidual(theNew);
6777 EvaporateResidual(theNew);
6779 G4cout<<
"G4QE::FSI:Bef.E(3),n="<<nHadr<<
",PDG="<<newPDG<<
",4M="<<exRes4M<<
G4endl;
6780 unsigned nHN=theQHadrons.size();
6781 G4cout<<
"G4QE::FSI:AfterEvaporation: nNew="<<nHN<<
G4endl;
6782 if(nHN>nHadr)
for(
unsigned idp=nHadr; idp<nHN; idp++)
6783 G4cout<<
"G4QE::FSI: h#"<<idp<<
", PDG="<<theQHadrons[idp]->GetPDGCode()<<
G4endl;
6787 nHadr=theQHadrons.size();
6795 nHadr=theQHadrons.size();
6796 unsigned maxB=nHadr-1;
6801 if(nHadr)
for(
unsigned ic6=0; ic6<nHadr; ic6++)
if(!(theQHadrons[ic6]->GetNFragments()))
6803 ccContSum+=theQHadrons[ic6]->GetCharge();
6804 cbContSum+=theQHadrons[ic6]->GetBaryonNumber();
6806 if(ccContSum-chContSum || cbContSum-bnContSum)
6808 G4cout<<
"*::*G4QE::FSI:(C) dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
6814 lHadr=theQHadrons[maxB]->GetBaryonNumber();
6816 if(nHadr>1)
for(
unsigned ipo=0; ipo<theQHadrons.size()-1; ipo++)
6818 G4int hPDG = theQHadrons[ipo]->GetPDGCode();
6819 if(hPDG==22) gamcnt++;
6822 G4int hBN = theQHadrons[ipo]->GetBaryonNumber();
6825 G4cout<<
"G4QE::FSI:h#"<<ipo<<
":hPDG="<<hPDG<<
",hBN="<<hBN<<
",nH="<<theQHadrons.size()
6836 G4cout<<
"G4QE::FSI:max#"<<maxB<<
",lB="<<lHadr<<
",tBN="<<tHadr<<
",gam="<<gamcnt<<
G4endl;
6838 nHadr=theQHadrons.size();
6843 if(nHadr)
for(
unsigned ic7=0; ic7<nHadr; ic7++)
if(!(theQHadrons[ic7]->GetNFragments()))
6845 ccContSum+=theQHadrons[ic7]->GetCharge();
6846 cbContSum+=theQHadrons[ic7]->GetBaryonNumber();
6848 if(ccContSum-chContSum || cbContSum-bnContSum)
6850 G4cout<<
"*::*G4QE::FSI:(D) dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
6861 G4QHadron* theLast = theQHadrons[nHadr-1];
6867 theQHadrons.pop_back();
6869 theQHadrons.push_back(curHadr);
6871 nHadr=theQHadrons.size();
6874 if(nHadr>1)
for(
unsigned gp=0; gp<nHadr-1; gp++)
6879 G4cout<<
"G4QE::FSI:gp#"<<gp<<
", PDG="<<hPDG<<
", is found"<<
G4endl;
6885 G4cout<<
"G4QE::FSI:Photon gp#"<<gp<<
",nH="<<nHadr<<
", update gS="<<gamSum<<
G4endl;
6887 unsigned nLast=nHadr-1;
6888 G4QHadron* theLast = theQHadrons[nLast];
6892 while(nLast>=gp && theLast->
GetPDGCode()==22)
6901 G4cout<<
"G4QE::FSI:TheLastPhotonIsFound #"<<wcn<<
",update gS="<<gamSum<<
G4endl;
6904 theQHadrons.pop_back();
6906 nHadr=theQHadrons.size();
6908 theLast = theQHadrons[nLast];
6916 theQHadrons.pop_back();
6918 nHadr=theQHadrons.size();
6920 G4cout<<
"G4QE::FSI:RepBy lPDG="<<lQP<<
", nH="<<nHadr<<
", gS="<<gamSum<<
G4endl;
6926 G4QHadron* theLast = theQHadrons[nHadr-1];
6930 theQHadrons.pop_back();
6932 nHadr=theQHadrons.size();
6934 G4cout<<
"-Warning-G4QE::FSI: LastPhotonIsKilled, nH="<<nHadr<<
",gS="<<gamSum<<
G4endl;
6936 theLast = theQHadrons[nHadr-1];
6950 else theLast->
SetQC(exQC);
6955 theQHadrons.pop_back();
6969 if(!
G4QHadron(tR4M).DecayIn2(lr4M,al4M))
6972 EvaporateResidual(curHadr);
6974 G4cout<<
"G4QE::FSI: After Evap (1) nH="<<theQHadrons.size()<<
G4endl;
6980 G4int APDG=lrN.GetPDG();
6982 G4cout<<
"G4QE::FSI: Final A+alpha, A="<<APDG<<lr4M<<
", a="<<al4M<<
G4endl;
6985 theQHadrons.push_back(lrH);
6987 theQHadrons.push_back(alH);
6993 EvaporateResidual(curHadr);
6995 G4cout<<
"G4QE::FSI: After Evap (2) nH="<<theQHadrons.size()<<
G4endl;
7002 EvaporateResidual(curHadr);
7004 G4cout<<
"G4QE::FSI: After Evap (5) nH="<<theQHadrons.size()<<
G4endl;
7009 nHadr=theQHadrons.size();
7014 if(nHadr)
for(
unsigned ic8=0; ic8<nHadr; ic8++)
if(!(theQHadrons[ic8]->GetNFragments()))
7016 ccContSum+=theQHadrons[ic8]->GetCharge();
7017 cbContSum+=theQHadrons[ic8]->GetBaryonNumber();
7019 if(ccContSum-chContSum || cbContSum-bnContSum)
7021 G4cout<<
"*::*G4QE::FSI:(E) dC="<<ccContSum-chContSum<<
",dB="<<cbContSum-bnContSum
7027 if(nHadr)
for(
unsigned hd=0; hd<theQHadrons.size(); hd++)
7034 unsigned lin=theQHadrons.size()-1;
7045 theQHadrons.pop_back();
7050 G4cout<<
"G4QE::FSI: LOOP starts nH="<<nHadr<<
", h#"<<hd<<
", PDG="<<hPDG<<
G4endl;
7052 if(hPDG==89999003||hPDG==90002999)
G4cout<<
"G4QEnv::FSI:nD-/pD++(0)="<<hPDG<<
G4endl;
7053 if(hPDG==89999004||hPDG==90003999)
G4cout<<
"G4QEnv::FSI:nnD-/ppD++(0)="<<hPDG<<
G4endl;
7055 if(hPDG>100000000)
G4cout<<
"***G4QE::FSI: h#"<<hd<<
", wrong PDGCode="<<hPDG<<
G4endl;
7057 G4cout<<
"G4QE::FSI:Copy is made with PDG="<<hPDG<<
G4endl;
7066 else if(hPDG==90998003||hPDG==91002998)
7069 G4cout<<
"G4QE::FSI: Pi+Nuc+Sigma state decay is found PDG="<<hPDG<<
G4endl;
7081 if(hPDG==90998003&&reM<sum)
7086 sum=mNucl+mPion+mSi;
7096 sum=mNucl+mPion+mSi;
7101 sum=mNucl+mPion+mSi;
7107 if(fabs(reM-sum)<eps)
7110 n4M=r4M*(mNucl/sum);
7111 p4M=r4M*(mPion/sum);
7116 G4cout<<
"---Warning---G4QE::FSI:Pi+N+Sigma recovery INPDG="<<hPDG<<
","<<reM<<
" < "
7117 <<mNucl<<
"(PDG="<<PDGnu<<
")+Pi="<<mPion<<
")+Sigma="<<mSi<<
"="<<sum<<
G4endl;
7118 if(!theEnvironment.
GetA())
7122 if(hd+1<theQHadrons.size())
7124 theLast = theQHadrons[theQHadrons.size()-1];
7130 theQHadrons.pop_back();
7133 if(!CheckGroundState(quasH,
true))
7136 G4cout<<
"---Warning---G4QE::FSI:PiNSig Failed, LeaveAsItIs 4m="<<r4M<<
G4endl;
7137 theQHadrons.push_back(qH);
7142 for(
unsigned hp=0; hp<theQHadrons.size(); hp++)
7147 G4cout<<
"G4QE::FSI:h#"<<hp<<
": hPDG="<<hpPDG<<
", h4M="<<hpLV<<
G4endl;
7151 nHadr=theQHadrons.size();
7159 ed <<
"PiNucSigma Final Decay Error: No Final PiNSig recovery, Env="
7160 << theEnvironment <<
G4endl;
7161 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0015",
7171 G4cout<<
"G4QE::FSI:PiNSigma==>"<<r4M<<
"->N="<<PDGnu<<n4M<<
"+Pi="<<PDGpi<<p4M
7172 <<
"+ Sigma="<<PDGsi<<k4M<<
G4endl;
7180 theQHadrons.push_back(Pid);
7183 theQHadrons.push_back(Pi);
7185 theQHadrons.push_back(Si);
7188 G4cout<<
"G4QE::FSI:*TMP* PiNSigma end up PDG="<<hPDG<<
G4endl;
7191 else if(hPDG==89998003||hPDG==90002998)
7210 if(fabs(reM-sum)<eps)
7213 n4M=r4M*(mNucl/sum);
7219 G4cout<<
"---Warning---G4QE::FSI: Isonuc+Pi recovery INPDG="<<hPDG<<
","<<reM<<
" < "
7220 <<mNucl<<
"(PDG="<<PDGnu<<
") + 2*"<<mPi<<
"="<<sum<<
G4endl;
7221 if(!theEnvironment.
GetA())
7225 if(hd+1<theQHadrons.size())
7227 theLast = theQHadrons[theQHadrons.size()-1];
7233 theQHadrons.pop_back();
7236 if(!CheckGroundState(quasH,
true))
7239 G4cout<<
"---Warning---G4QE::FSI:IsoN+Pi Failed, LeaveAsItIs 4m="<<r4M<<
G4endl;
7240 theQHadrons.push_back(qH);
7245 nHadr=theQHadrons.size();
7253 ed <<
"IsoNucl+Pi FinalDecayError: No Final IsoN+Pi recovery, Env="
7254 << theEnvironment <<
G4endl;
7255 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0016",
7265 G4cout<<
"G4QE::FSI:IsoNuc+Pi==>"<<r4M<<
"->N="<<PDGnu<<n4M<<
"+Pi="<<PDGpi<<p4M
7266 <<
"+ Pi="<<PDGpi<<k4M<<
G4endl;
7271 theQHadrons.push_back(Pi1);
7273 theQHadrons.push_back(Pi2);
7276 G4cout<<
"G4QE::FSI:*TMP* PiDelta end up PDG="<<hPDG<<
G4endl;
7279 else if(hBN>0 && !hST && (hCG<0||hCG>hBN))
7299 if(fabs(reM-sum)<eps)
7307 G4cout<<
"---Warning---G4QE::FSI: Isonucleus recovery INPDG="<<hPDG<<
", M="<<reM
7308 <<
" < "<<nucM<<
"+"<<pioM<<
"="<<sum<<
G4endl;
7310 if(!theEnvironment.
GetA())
7316 if(hd+1<theQHadrons.size())
7318 theLast = theQHadrons[theQHadrons.size()-1];
7324 theQHadrons.pop_back();
7327 if(!CheckGroundState(quasH,
true))
7331 G4cout<<
"---Warning---G4QE::FSI:IsoN="<<tPDG<<tQC<<
" FAsIs 4m="<<t4M<<
G4endl;
7332 theQHadrons.push_back(qH);
7337 for(
unsigned hp=0; hp<theQHadrons.size(); hp++)
7342 G4cout<<
"G4QE::FSI:h#"<<hp<<
": hPDG="<<hpPDG<<
", h4M="<<hpLV<<
G4endl;
7346 nHadr=theQHadrons.size();
7354 ed <<
"IsoNucleus FinalDecayError: No FinalIsoNucRecovery, Env="
7355 << theEnvironment <<
G4endl;
7356 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0017",
7366 G4cout<<
"G4QE::FSI:IsoN==>"<<r4M<<
"->N="<<PDGnu<<n4M<<
"+Pi="<<PDGpi<<k4M<<
G4endl;
7371 if(hBN>1)
for(
G4int ih=1; ih<hBN; ih++)
7374 theQHadrons.push_back(Hi);
7378 for(
G4int ip=0; ip<nPi; ip++)
7381 theQHadrons.push_back(Hj);
7385 G4cout<<
"G4QEnv::FSI: Isonucleus decay result h#="<<hd<<
", outPDG="<<hPDG<<
G4endl;
7388 else if ( hBN > 1 &&
7389 ( (hBN == hCG && !hST) ||
7391 (!hCG && hST==hBN) ) )
7394 if(hPDG==90000003 && fabs(curHadr->
Get4Momentum().
m()-mNeut-mNeut)<.1) {
7397 G4cout<<
"--Warning--G4QEnv::FSI:3->2 neutrons conversion (***Check it***)"<<
G4endl;
7400 if (!hCG&&!hST) hPDG=90000001;
7401 else if(hBN==hCG&&!hST) hPDG=90001000;
7402 else if(!hCG&&hST==hBN) hPDG=91000000;
7405 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0018",
7411 for(
G4int bd=1; bd<hBN; bd++)
7414 theQHadrons.push_back(secHadr);
7418 else if(hST<0 && hBN>0)
7424 G4int RPDG=newN0.GetPDG();
7433 RPDG=newNp.GetPDG();
7454 if(fabs(reM-sum)<eps)
7457 k4M=r4M*(mKaon/sum);
7463 G4cout<<
"---Warning---G4QE::FSI: Try to recover ASN="<<hPDG<<
","<<reM<<
"<"<<mR<<
"+"
7464 <<mKaon<<
"="<<sum<<
G4endl;
7466 if(!theEnvironment.
GetA())
7470 if(hd+1<theQHadrons.size())
7472 theLast = theQHadrons[theQHadrons.size()-1];
7478 theQHadrons.pop_back();
7481 if(!CheckGroundState(quasH,
true))
7485 G4cout<<
"---Warning---G4QE::FSI:AntiStraN Failed LeaveAsItIs 4m="<<r4M<<
G4endl;
7487 theQHadrons.push_back(qH);
7492 nHadr=theQHadrons.size();
7500 ed <<
"AntistrangeNucleus decayError: No Final AntiSN recovery, E="
7501 << theEnvironment <<
G4endl;
7502 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0019",
7509 G4cout<<
"G4QE::FSI:AntiSN==>"<<r4M<<
"->A="<<RPDG<<n4M<<
"+K="<<kPDG<<k4M<<
G4endl;
7514 EvaporateResidual(theRes);
7518 else if(hPDG>90500000 && hPDG!=91000000 && hPDG!=91000999 && hPDG!=90999001 &&
7519 hPDG!=91999000 && hPDG!=91999999 && hPDG!=92998999 )
7523 G4cout<<
"***G4QEnvironment::FSI:*G4* Hypernucleus PDG="<<hPDG<<
" must decay"<<
G4endl;
7546 if(-nC <= nX && nL >= nX+nX)
7549 if(nXM != nX) nXZ=nX-nXM;
7552 else if(nL >= nX-nC)
7559 else G4cout<<
"-Warning-G4QEn::FSI:*Improve*,-nC<=nL,nL>nB, PDG="<<hPDG<<
G4endl;
7593 else if(nL > nB && ((nL-nB)/2)*2 == nL-nB && nC+nL <= nB+nB)
7600 else G4cout<<
"-Warning-G4QEn::FSI:*Improve*,nC>nB-nL,nC<=nB, PDG="<<hPDG<<
G4endl;
7612 G4int SS=nL+nSP+nSM+nXZ+nXM;
7615 G4int rlPDG = hPDG-nL*1000000-nSP*1000999-nSM*999001;
7619 G4cout<<
"G4QEnvironment::FSI:*G4* nS+="<<nSP<<
", nS-="<<nSM<<
", nL="<<nL<<
G4endl;
7626 G4cout<<
"-Warning-G4QE::FSI:*Improve*,PDG="<<hPDG<<
": both Sigma&Lamb"<<
G4endl;
7645 G4cout<<
"G4QEnvironment::FSI:*G4* mS="<<MLa<<
", sPDG="<<sPDG<<
", nL="<<nL<<
G4endl;
7654 G4int rnPDG = hPDG-nL*999999;
7660 if(nL>1) r4M=r4M/nL;
7661 for(
G4int il=0; il<nL; il++)
7664 theQHadrons.push_back(theLam);
7667 else if(reM>rlM+MLa-eps)
7672 if(fabs(reM-sum)<eps)
7680 ed <<
"Hypernuclear L-decay error: Hypern, M=" << reM <<
"<A+n*L="
7681 << sum <<
",d=" << sum-reM <<
G4endl;
7682 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0020",
7686 G4cout<<
"*G4QE::FSI:HypN="<<r4M<<
"->A="<<rlPDG<<n4M<<
",n*Lamb="<<nL<<h4M<<
G4endl;
7696 theQHadrons.push_back(secHadr);
7698 else if(rlPDG==90002000)
7704 theQHadrons.push_back(secHadr);
7710 if(nL>1) h4M=h4M/nL;
7711 for(
G4int il=0; il<nL; il++)
7714 theQHadrons.push_back(theLamb);
7717 else if(reM>rnM+mPi0-eps&&!nSP&&!nSM)
7719 G4int nPi=
static_cast<G4int>((reM-rnM)/mPi0);
7725 if(fabs(reM-sum)<eps)
7733 ed <<
"Hypernuclear decay error: HyperN,M=" << reM <<
"<A+n*Pi0="
7734 << sum <<
",d=" << sum-reM <<
G4endl;
7735 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0021",
7741 G4cout<<
"*G4QE::FSI:HypN "<<r4M<<
"->A="<<rnPDG<<n4M<<
",n*Pi0="<<nPi<<h4M<<
G4endl;
7743 if(nPi>1) h4M=h4M/nPi;
7744 for(
G4int ihn=0; ihn<nPi; ihn++)
7747 theQHadrons.push_back(thePion);
7756 theQHadrons.push_back(secHadr);
7759 else if(rnPDG==90002000)
7765 theQHadrons.push_back(secHadr);
7770 else if(reM>rnM-eps)
7775 if(fabs(reM-sum)<eps) n4M=r4M;
7776 else if(reM<sum || !
G4QHadron(r4M).DecayIn2(n4M,h4M))
7779 ed <<
"Hypernuclear GammaDecay error: Hypern,M=" << reM <<
"<A+n*Pi0="
7780 << sum <<
",d=" << sum-reM <<
G4endl;
7781 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0022",
7787 G4cout<<
"*G4QE::FSI:HypNg "<<r4M<<
"->A="<<rnPDG<<n4M<<
",gamma="<<h4M<<
G4endl;
7790 theQHadrons.push_back(theGamma);
7797 theQHadrons.push_back(secHadr);
7800 else if(rnPDG==90002000)
7806 theQHadrons.push_back(secHadr);
7814 G4cout<<
"-Warning-G4QEnv::F:R="<<rlM<<
",S+="<<nSP<<
",S-="<<nSM<<
",L="<<nL<<
",d1="
7816 G4cout<<
"-Warning-G4QEnv::FSI:HyperN="<<hPDG<<
", M="<<reM<<
"<"<<rnM+mPi0<<
", d2="
7822 else if(SS==nB && !nOM)
7825 G4cout<<
"G4QEnvironment::FSI:OnlyHyp,B="<<nB<<
",SP="<<nSP<<
",SM="<<nSM<<
",L="<<nL
7826 <<
",XM="<<nXM<<
",XZ="<<nXZ<<
G4endl;
7898 else G4cout<<
"-Warning-G4QE::FSI: *Improve* StrangeComb, PDG="<<hPDG<<
G4endl;
7973 else G4cout<<
"-Warning-G4QE::FSI: *Improve* StrangeFragment, PDG="<<hPDG<<
G4endl;
7978 G4cout<<
"G4QEnvironment::FSI:2HypD,fS="<<fS<<
",fPDG="<<sPDG<<
",fM="<<fM<<
",sS="
7979 <<sS<<
",sPDG="<<sPDG<<
",sM="<<sM<<
",rM="<<reM<<
G4endl;
7985 if(MM<=mm_value && fPDG==3122 && sPDG==3222)
7998 if(fabs(reM-sum)<=eps)
8008 ed <<
"HypernucOnlyStran2 error: Hyp2,M=" << reM <<
"< sum=" << sum
8009 <<
",d=" << sum-reM <<
G4endl;
8010 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0023",
8014 G4cout<<
"G4QEnv::FSI:2,HN="<<r4M<<hPDG<<
"->First="<<fS<<f4M<<fPDG<<
",Second="
8020 for(
G4int il=1; il<fS; il++)
8023 theQHadrons.push_back(theHyp);
8029 for(
G4int il=0; il<sS; il++)
8032 theQHadrons.push_back(theHyp);
8036 else G4cout<<
"-Warning-G4QE::FSI:*Improve* S2, PDG="<<hPDG<<
",M="<<reM<<
",fS="
8037 <<fS<<
",sS="<<sS<<
",fM="<<fM<<
",sM="<<sM<<
G4endl;
8042 G4cout<<
"G4QEnvironment::FSI:3HypD,fS="<<fS<<
",fPDG="<<sPDG<<
",fM="<<fM<<
",sS="
8043 <<sS<<
",sPDG="<<sPDG<<
",fM="<<fM<<
",uS="<<sS<<
",uPDG="<<sPDG<<
",uM="<<sM
8066 if(fabs(reM-sum)<=eps)
8075 ed <<
"HypernucOnlyStran3 error: Hyp3,M=" << reM <<
"< sum="
8076 << sum <<
",d=" << sum-reM <<
G4endl;
8077 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0024",
8081 G4cout<<
"G4QEnv::FSI:3,HN="<<r4M<<hPDG<<
"->First="<<fS<<f4M<<fPDG<<
",Second="
8082 <<sS<<s4M<<sPDG<<
",Third="<<fS<<f4M<<fPDG<<
G4endl;
8087 for(
G4int il=1; il<fS; ++il)
8090 theQHadrons.push_back(theHyp);
8096 for(
G4int il=0; il<sS; ++il)
8099 theQHadrons.push_back(theHyp);
8102 for(
G4int il=0; il<uS; ++il)
8105 theQHadrons.push_back(theHyp);
8109 else G4cout<<
"-Warn-G4QE::FSI:*Improve* S3, PDG="<<hPDG<<
",M="<<reM<<
",fS="<<fS
8110 <<
",sS="<<sS<<
",uS="<<uS<<
",fM="<<fM<<
",sM="<<sM<<
",uM="<<uM<<
G4endl;
8117 G4cout<<
"G4QEnvir::FSI:Omega-,B="<<nB<<
",SP="<<nSP<<
",OM="<<nOM<<
",L="<<nL<<
G4endl;
8132 G4cout<<
"G4QEnvironment::FSI:2HypD,fS="<<fS<<
",fPDG="<<sPDG<<
",fM="<<fM<<
",sS="
8133 <<sS<<
",sPDG="<<sPDG<<
",sM="<<sM<<
",rM="<<reM<<
G4endl;
8142 if(fabs(reM-sum)<eps)
8150 ed <<
"HypernucOnlyStran3 error: Hyp,M=" << reM <<
"<OM+SP="
8151 << sum <<
",d=" << sum-reM <<
G4endl;
8152 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0025",
8156 G4cout<<
"G4QEnv::FSI:OHNuc="<<r4M<<hPDG<<
"->First="<<fS<<f4M<<fPDG<<
",Second="
8162 for(
G4int il=1; il<fS; il++)
8165 theQHadrons.push_back(theHyp);
8171 for(
G4int il=0; il<sS; il++)
8174 theQHadrons.push_back(theHyp);
8178 else G4cout<<
"-Warning-G4QE::FSI:*Improve* OMSP, PDG="<<hPDG<<
",M="<<reM<<
",nSP="
8179 <<nSP<<
",nOM="<<nOM<<
",mOM="<<fM<<
",mSP="<<sM<<
G4endl;
8182 else G4cout<<
"-Warning-G4QE::FSI:*Improve* nLamb="<<nL<<
" # 0, PDG="<<hPDG<<
G4endl;
8185 else G4cout<<
"-Warning-G4QE::FSI:*Improve*,S="<<SS<<
">B="<<nB<<
",PDG="<<hPDG<<
G4endl;
8190 G4cout<<
"G4QE::FSI:==>OUT,nH="<<theQHadrons.size()<<
",nF="<<theFragments->size()<<
G4endl;
8194 nHadr=theQHadrons.size();
8197 if(nHadr)
for(
unsigned f=0;
f<nHadr;
f++)
8211 ( (!str && (chg == brn || !chg)) ||
8212 (!chg && str == brn) ) )
8214 G4int bPDG=90000001;
8215 if (chg==brn) bPDG=90001000;
8216 else if(str==brn) bPDG=91000000;
8220 for (
G4int ib=1; ib<brn; ib++)
8223 theFragments->push_back(bH);
8226 theFragments->push_back(curHadr);
8230 if(cfContSum-chContSum || bfContSum-bnContSum)
8233 ed <<
"::(F) Charge is not conserved: Ch=" << cfContSum-chContSum <<
",Bn="
8234 << bfContSum-bnContSum <<
G4endl;
8235 G4Exception(
"G4QEnvironment::FSInteraction()",
"HAD_CHPS_0026",
8240 return theFragments;
8246 G4int nQ=theQuasmons.size();
8248 G4cout<<
"G4QEnvironment::GetQuasmons is called nQ="<<nQ<<
G4endl;
8251 if(nQ)
for(
G4int iq=0; iq<nQ; iq++)
8254 G4cout<<
"G4QEnv::GetQuasm:Q#"<<iq<<
",QQPDG="<<theQuasmons[iq]->GetQPDG()<<
",QQC="
8255 <<theQuasmons[iq]->GetQC()<<
",M="<<theQuasmons[iq]->Get4Momentum().m()<<
G4endl;
8258 quasmons->push_back(curQ);
8261 G4cout<<
"G4QEnvironment::GetQuasmons ===OUT==="<<
G4endl;
8269 G4int nH=theQHadrons.size();
8271 G4cout<<
"G4QEnvironment::GetQHadrons is called nH="<<nH<<
G4endl;
8274 if(nH)
for(
G4int ih=0; ih<nH; ih++)
8277 G4cout<<
"G4QEnv::GetQHadrons:H#"<<ih<<
",HQPDG="<<theQHadrons[ih]->GetQPDG()<<
",HQC="
8278 <<theQHadrons[ih]->GetQC()<<
",HM="<<theQHadrons[ih]->GetMass()<<
G4endl;
8281 hadrons->push_back(curH);
8284 G4cout<<
"G4QEnvironment::GetQHadrons ===OUT=== Copied nQH="<<hadrons->size()<<
G4endl;
8292 for_each(theQHadrons.begin(), theQHadrons.end(),
DeleteQHadron());
8293 theQHadrons.clear();
8299 G4int nH=input->size();
8301 G4cout<<
"G4QEnvironment::FillQHadrons is called nH="<<nH<<
G4endl;
8303 if(nH)
for(
G4int ih=0; ih<nH; ih++)
8306 G4cout<<
"G4QEnv::FillQHadrons:H#"<<ih<<
",HQPDG="<<(*input)[ih]->GetQPDG()<<
",HQC="
8307 <<(*input)[ih]->GetQC()<<
",HM="<<(*input)[ih]->GetMass()<<
G4endl;
8310 theQHadrons.push_back(curH);
8313 G4cout<<
"G4QEnvironment::FillQHadrons ===OUT=== Filled nQH="<<theQHadrons.size()<<
G4endl;
8348 static const G4double mNPi0 = mPi0+ mNeut;
8349 static const G4double mNPi = mPi + mNeut;
8350 static const G4double mPPi0 = mPi0+ mProt;
8351 static const G4double mPPi = mPi + mProt;
8352 static const G4double mLPi0 = mPi0+ mLamb;
8353 static const G4double mLPi = mPi + mLamb;
8354 static const G4double mSpPi = mPi + mSigP;
8355 static const G4double mSmPi = mPi + mSigM;
8356 static const G4double mPK = mK + mProt;
8357 static const G4double mPKZ = mK0 + mProt;
8358 static const G4double mNKZ = mK0 + mNeut;
8359 static const G4double mSpPi0= mPi0+ mSigP;
8360 static const G4double mSzPi0= mPi0+ mSigZ;
8361 static const G4double mSzPi = mPi + mSigZ;
8367 G4cerr<<
"***G4QEnvironment::DecayBaryon: A!=1 -> fill as it is"<<
G4endl;
8370 G4Exception(
"G4QEnvironment::DecayBaryon()",
"HAD_CHPS_0000",
8382 G4cout<<
"G4QEnv::DecayBaryon: *Called* S="<<theLS<<
",C="<<theLC<<
",4M="<<q4M<<qM<<
G4endl;
8398 G4cout<<
"G4QEnv::DecayBaryon: Fill Neutron AsIs"<<
G4endl;
8402 if(qM+eps<mNeut)
G4cout<<
"-Warning-G4QEnv::DecayBaryon: N0 AsIs, M="<<qM<<
G4endl;
8410 G4cout<<
"-Warning-G4QEnv::DecayBaryon: Gamma+n, M="<<qM<<
",d="<<qM-mNeut<<
G4endl;
8439 G4cout<<
"G4QEnv::DecayBaryon: Fill Proton AsIs"<<
G4endl;
8444 if(qM+eps<mProt)
G4cout<<
"-Warning-G4QEnv::DecayBaryon: Pr+ AsIs, M="<<qM<<
G4endl;
8474 G4cout<<
"-Warning-G4QE::DecBary:*AsIs* DEL++ M="<<qM<<
"<"<<mPPi<<
G4endl;
8492 G4cout<<
"-Warning-G4QE::DecBary:*AsIs* DEL++ M="<<qM<<
"<"<<mNPi<<
G4endl;
8501 G4cout<<
"-Warning-G4QE::DecBary:*AsIs* UnknBaryon (S=0) QC="<<qH->
GetQC()<<
G4endl;
8516 G4cout<<
"G4QEnv::DecayBaryon: Fill Lambda AsIs"<<
G4endl;
8520 if(qM+eps<mLamb)
G4cout<<
"-Warning-G4QEnv::DecayBaryon: La0 AsIs, M="<<qM<<
G4endl;
8680 G4cout<<
"G4QEnv::DecayBaryon: Fill SigmaPlus AsIs"<<
G4endl;
8684 if(qM+eps<mSigP)
G4cout<<
"-Warning-G4QEnv::DecayBaryon: Si+ AsIs, M="<<qM<<
G4endl;
8775 G4cout<<
"G4QEnv::DecayBaryon: Fill SigmaMinus AsIs"<<
G4endl;
8779 if(qM+eps<mSigM)
G4cout<<
"-Warning-G4QEnv::DecayBaryon: Si- AsIs, M="<<qM<<
G4endl;
8865 else if(theLC==2 || theLC==-2)
8867 if(theLC==2 && qM>=mSpPi)
8874 if(theLC==-2 && qM>=mSmPi)
8884 G4cout<<
"-Warning-G4QE::DecBary:*AsIs* Baryon(S=1,|C|=2),QC="<<qH->
GetQC()<<
G4endl;
8895 G4cout<<
"-Warning-G4QE::DecBary:*AsIs* UnknownBaryon(S=1)QC="<<qH->
GetQC()<<
G4endl;
8903 G4cout<<
"---Warning---G4QE::DecBary:*AsIso*UnknBaryon(AntiS),QC="<<qH->
GetQC()<<
G4endl;
8911 if(fabs(qM-sum)<eps)
8913 f4Mom=q4M*(fMass/sum);
8914 s4Mom=q4M*(sMass/sum);
8919 G4cout<<
"---Warning---G4QE::DecBar:fPDG="<<fQPDG<<
"(M="<<fMass<<
")+sPDG="<<sQPDG<<
"(M="
8920 <<sMass<<
") > TotM="<<q4M.
m()<<
G4endl;
8922 if(!theEnvironment.
GetA())
8925 if(!CheckGroundState(quasH,
true)) HV->push_back(qH);
8934 ed <<
"Baryon DecayIn2 error: Can't Correct, *EmptyEnv*="
8935 << theEnvironment <<
G4endl;
8936 G4Exception(
"G4QEnvironment::DecayBaryon()",
"HAD_CHPS_0001",
8941 G4cout<<
"G4QEnv::DecayBaryon: *DONE* f4M="<<f4Mom<<
",fPDG="<<fQPDG<<
", s4M="<<s4Mom
8942 <<
",sPDG="<<sQPDG<<
G4endl;
8967 static const G4double m2Pi0 = mPi0+ mPi0;
8968 static const G4double mPiPi0= mPi + mPi0;
8969 static const G4double mPiPi = mPi + mPi;
8970 static const G4double mKPi0 = mPi0+ mK;
8971 static const G4double mK0Pi0= mPi0+ mK0;
8972 static const G4double mKPi = mPi + mK;
8973 static const G4double mK0Pi = mPi + mK0;
8974 static const G4double mK0K = mK0 + mK;
8975 static const G4double mK0K0 = mK0 + mK0;
8976 static const G4double mKK = mK + mK;
8982 G4cerr<<
"*Warning*G4QEnvironment::DecayMeson:A="<<theLB<<
" != 0 -> Fill asIs"<<
G4endl;
8985 G4Exception(
"G4QEnvironment::DecayMeson()",
"HAD_CHPS_0000",
8998 if(theLC || theLS)
G4cout<<
"-Warning-G4QEnv::DecMes: S="<<theLS<<
", C="<<theLC<<
G4endl;
9002 G4cout<<
"G4QEnv::DecayMeson: *Called* S="<<theLS<<
",C="<<theLC<<
",4M="<<q4M<<qM<<
G4endl;
9022 if(qM+eps < mPi0)
G4cout<<
"-Warning-G4QEnv::DecayMeson: Pi0 AsIs, M="<<qM<<
G4endl;
9028 G4cout<<
"-Warning-G4QEnv::DecayMeson: Gamma+Pi0, M="<<qM<<
",d="<<qM-mPi0<<
G4endl;
9061 if(qM+eps < mPi)
G4cout<<
"-Warning-G4QEnv::DecayMeson: Pi+ AsIs, M="<<qM<<
G4endl;
9067 G4cout<<
"-Warning-G4QEnv::DecayMeson: Gamma+Pi+, M="<<qM<<
",d="<<qM-mPi0<<
G4endl;
9082 G4cout<<
"-Warning-G4QE::DecayMeson:*AsIs* Meson++ M="<<qM<<
",d="<<qM-mPiPi<<
G4endl;
9099 if(qM+eps < mPi)
G4cout<<
"-Warning-G4QEnv::DecayMeson: Pi- AsIs, M="<<qM<<
G4endl;
9106 G4cout<<
"-Warning-G4QEnv::DecayMeson: Gamma+Pi-, M="<<qM<<
",d="<<qM-mPi<<
G4endl;
9122 G4cout<<
"-Warning-G4QE::DecayMeson:*AsIs* Meson-- M="<<qM<<
",d="<<qM-mPiPi<<
G4endl;
9131 G4cout<<
"-Warning-G4QE::DecayMeson:*AsIs* UnknMeson (S=0) QC="<<qH->
GetQC()<<
G4endl;
9137 else if( theLS == 1 )
9146 G4cout <<
"G4QEnv::DecayMeson: Fill K0 AsIs" <<
G4endl;
9150 if(qM+eps < mK0)
G4cout<<
"-Warning-G4QEnv::DecayMeson: K0 AsIs, M="<<qM<<
G4endl;
9158 else if(qM < mK0Pi0)
9184 G4cout <<
"G4QEnv::DecayMeson: Fill K- AsIs" <<
G4endl;
9188 if(qM+eps < mK)
G4cout<<
"-Warning-G4QEnv::DecayMeson: K- AsIs, M="<<qM<<
G4endl;
9220 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassPositive Strange Meson AsIs"<<
G4endl;
9234 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassDNegativeStrange Meson AsIs"<<
G4endl;
9247 G4cout<<
"-Warning-G4QE::DecMeson:*AsIs*UnknownMeson.(S=1), QC="<<qH->
GetQC()<<
G4endl;
9258 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassNeutral DStrange Meson AsIs"<<
G4endl;
9274 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassNegativeDStrange Meson AsIs"<<
G4endl;
9290 G4cout<<
"-Warniong-G4QEnv::DecayMeson:LowMassDNegativeADStrangeMeson AsIs"<<
G4endl;
9304 G4cout<<
"-Warning-G4QE::DecMeson:*AsIs*UnknownMeson.(S=2), QC="<<qH->
GetQC()<<
G4endl;
9309 else if( theLS ==-1 )
9318 G4cout <<
"G4QEnv::DecayMeson: Fill K0 AsIs" <<
G4endl;
9322 if(qM+eps < mK0)
G4cout<<
"-Warning-G4QEnv::DecayMeson: aK0 AsIs, M="<<qM<<
G4endl;
9330 else if(qM < mK0Pi0)
9358 G4cout <<
"G4QEnv::DecayMeson: Fill K+ AsIs" <<
G4endl;
9361 if(qM+eps < mK)
G4cout<<
"-Warning-G4QEnv::DecayMeson: K+ AsIs, M="<<qM<<
G4endl;
9392 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassNegativeAStrange Meson AsIs"<<
G4endl;
9407 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassDPositiveStrange Meson AsIs"<<
G4endl;
9419 G4cout<<
"-Warning-G4QE::DecMeson:*AsIs*UnknownMeson.(S=-1),QC="<<qH->
GetQC()<<
G4endl;
9430 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassNeutralADStrange Meson AsIs"<<
G4endl;
9446 G4cout<<
"-Warniong-G4QEnv::DecayMeson: LowMassPositiveADStrangeMeson AsIs"<<
G4endl;
9462 G4cout<<
"-Warniong-G4QEnv::DecayMeson:LowMassDPositiveADStrangeMeson AsIs"<<
G4endl;
9476 G4cout<<
"-Warning-G4QE::DecMeson:*AsIs*UnknownMeson.(S=-2),QC="<<qH->
GetQC()<<
G4endl;
9484 G4cout<<
"---Warning---G4QE::DecMeso: *Fill AsIso* UnknMeson, QC="<<qH->
GetQC()<<
G4endl;
9492 if(fabs(qM-sum)<eps)
9494 f4Mom=q4M*(fMass/sum);
9495 s4Mom=q4M*(sMass/sum);
9500 G4cout<<
"---Warning---G4QE::DecMes:fPDG="<<fQPDG<<
"(M="<<fMass<<
")+sPDG="<<sQPDG<<
"(M="
9501 <<sMass<<
") > TotM="<<q4M.
m()<<
G4endl;
9503 if(!theEnvironment.
GetA())
9506 if(!CheckGroundState(quasH,
true)) HV->push_back(qH);
9515 ed <<
"Meson DecayIn2 error: Can't Correct, *EmptyEnv*="
9516 << theEnvironment <<
G4endl;
9517 G4Exception(
"G4QEnvironment::DecayMeson()",
"HAD_CHPS_0001",
9522 G4cout<<
"G4QEnv::DecayMeson: *DONE* f4M="<<f4Mom<<
",fPDG="<<fQPDG<<
", s4M="<<s4Mom
9523 <<
",sPDG="<<sQPDG<<
G4endl;
9545 G4cerr<<
"***G4QEnvironment::DecayAntistrange: S="<<theLS<<
", but must be <0"<<
G4endl;
9548 G4Exception(
"G4QEnvironment::DecayAntistrange()",
"HAD_CHPS_0000",
9564 G4int K0PDG= qPDG+astr*999999;
9567 G4int KpPDG= qPDG+astr*999000;
9573 G4cout<<
"G4QE::DecayAntistrang:S="<<theLS<<
",C="<<theLC<<
",B="<<theLB<<
",M="<<qM<<
G4endl;
9580 if(astr*mK0+rK0M>qM)
9586 G4cout<<
"*Warning*G4QEnvironment::DecayAntistrange: Too low mass, keep AsIs"<<
G4endl;
9599 else if(astr*mK+rKpM<qM && theLC>theLB-theLC)
9607 if(astr>1) afMass*=astr;
9611 if(fabs(qM-sum)<eps)
9613 f4Mom=q4M*(afMass/sum);
9614 s4Mom=q4M*(sMass/sum);
9619 G4cout<<
"--Warning--G4QE::DecAntistrange: fPDG="<<fQPDG<<
"(M="<<fMass<<
")+sPDG="<<sQPDG
9620 <<
"(M="<<sMass<<
") > TotM="<<q4M.
m()<<
G4endl;
9625 ed <<
"Nucleus DecayIn2 error: DecayAntistrange: M=" << qM <<
", sum="
9627 G4Exception(
"G4QEnvironment::DecayAntistrange()",
"HAD_CHPS_0001",
9631 G4cout<<
"G4QEnv::DecayAntistrange: *Done* f4M="<<f4Mom<<
",fPDG="<<fQPDG<<
", s4M="<<s4Mom
9632 <<
",sPDG="<<sQPDG<<
G4endl;
9636 if(astr>1) f4Mom/=astr;
9639 for(
G4int ia=1; ia < astr; ++ia)
9683 ( (resC == resB && reTM > resC*mProt) || (!resC && reTM > resB*mNeut) )
9685 (resS == resB && reTM > resS*mLamb)
9690 G4cout<<
"::G4QE::CGS:*MultyB*E="<<envPDG<<
",B="<<resB<<
",C="<<resC<<
",S"<<resS<<
G4endl;
9692 if(envPDG!=90000000)
9694 resEMa=theEnvironment.
GetMZNS();
9699 if(
G4QHadron(toLV).DecayIn2(reTLV,enva4M))
9702 G4cout<<
"G4QE::CGS: fill EnvPDG="<<envPDG<<
",4M="<<enva4M<<
" and continue"<<
G4endl;
9704 theQHadrons.push_back(
new G4QHadron(envPDG,enva4M));
9707 else G4cout<<
"*G4QE::CGS:tM="<<toLV.
m()<<toLV<<
"<q="<<resQMa<<
"+EM="<<resEMa<<
G4endl;
9710 if(!resS) baPDG = (!resC) ? 2112 : 2212;
9712 G4cout<<
"G4QE::CGS: fill "<<resB<<
" of "<<baPDG<<
" with t4M="<<reTLV<<
G4endl;
9715 for(
G4int ib=0; ib<resB; ib++) theQHadrons.push_back(
new G4QHadron(baPDG,reTLV));
9719 if(resQPDG==89998005)
9720 G4cout<<
"G4QE::CGS:Q="<<valQ<<resQPDG<<
",GM="<<resQMa<<
",4M="<<reTLV<<reTLV.
m()<<
G4endl;
9724 if(envPDG!=90000000 && fabs(enva4M.m2())>1.)
9726 resEMa=theEnvironment.
GetMZNS();
9728 G4cout<<
"G4QE::CGS:EnvironmentExists,gsM="<<resEMa<<
",4M="<<enva4M<<enva4M.m()<<
G4endl;
9747 if(resMas+mNeut<resQM) bsCond=
true;
9749 else if(valQ.
GetP())
9755 if(resMas+mProt<resQM) bsCond=
true;
9757 else if(valQ.
GetL())
9763 if(resMas+mLamb<resQM) bsCond=
true;
9769 G4int nOfOUT = theQHadrons.size();
9773 G4cout<<
"G4QEnv::CheckGS:(tM="<<resTMa<<
"<rQM+rEM="<<resSMa<<
",d="<<resSMa-resTMa
9774 <<
" || rEM="<<resEMa<<
"=0 & "<<!bsCond<<
"=1) & n="<<nOfOUT<<
">0 & F="<<corFlag
9775 <<
" then the correction must be done for PDG="<<reTPDG<<
G4endl;
9777 if ( (resTMa < resSMa || (!resEMa && !bsCond) ) && nOfOUT > 0 && corFlag)
9779 G4QHadron* theLast = theQHadrons[nOfOUT-1];
9783 G4cout<<
"G4QE::CGS: **Correction** lNF="<<cNf<<
",lPDG="<<crPDG<<
",Q4M="<<reTLV<<
G4endl;
9789 G4cout<<
"G4QE::CGS:YES, s4M/M="<<tmpTLV<<tmpTLV.
m()<<
">rSM+hM="<<resSMa+hadrMa<<
G4endl;
9792 if(tmpTM>resSMa+hadrMa &&!cNf && crPDG!=22)
9798 if(tmpTM>=resQMa+resEMa+hadrMa &&
G4QHadron(tmpTLV).DecayIn3(hadr4M,quas4M,enva4M))
9802 G4cout<<
"G4QE::CGS: Modify the Last 4-momentum to "<<hadr4M<<
G4endl;
9809 G4cout<<
"G4QE::CGS: Fill Quasm "<<valQ<<quas4M<<
" in any form"<<
G4endl;
9811 EvaporateResidual(quasH,
false);
9813 G4cout<<
"G4QE::CGS: Fill envir "<<theEQC<<enva4M<<
" in any form"<<
G4endl;
9817 EvaporateResidual(envaH);
9824 G4cout<<
"***G4QEnv::CheckGroundState: Decay in Frag+ResQ+ResE error"<<
G4endl;
9833 if(tmpTM>=resQMa+hadrMa &&
G4QHadron(tmpTLV).DecayIn2(hadr4M,quas4M))
9838 G4cout<<
"G4QE::CGS: modify theLast 4M="<<hadr4M<<hadr4M.m()<<
G4endl;
9842 G4cout<<
"G4QE::CGS: fill newQH "<<valQ<<quas4M<<quas4M.
m()<<
" inAnyForm"<<
G4endl;
9844 EvaporateResidual(quasH,
false);
9850 G4cout<<
"***G4QEnv::CheckGS: Decay in Fragm+ResQ did not succeeded"<<
G4endl;
9859 G4cout<<
"G4QEnv::CheckGS: the Last did not help, nH="<<nOfOUT<<
G4endl;
9863 G4QHadron* thePrev = theQHadrons[nOfOUT-2];
9872 G4cout<<
"G4QE::CGS:T3="<<tmpTLV<<tmpTLV.
m()<<
">t+h+p="<<tQMa+hadrMa+prevMa<<
G4endl;
9874 if(tmpTLV.
m()>tQMa+hadrMa+prevMa)
9878 if(!
G4QHadron(tmpTLV).DecayIn3(hadr4M,prev4M,nuc4M))
9881 G4cout<<
"---Warning---G4QE::CGS:DecayIn ResNuc+LastH+PrevH Error"<<
G4endl;
9890 G4cout<<
"G4QE::CGS:*SUCCESS**>CHECK, D4M="<<tmpTLV-hadr4M-prev4M-nuc4M<<
G4endl;
9893 G4cout<<
"G4QE::CGS: Fill nucleus "<<reTQC<<nuc4M<<
" in any form"<<
G4endl;
9895 EvaporateResidual(nucH,
false);
9901 G4cout<<
"G4QE::CGS:Prev&Last didn't help,nH="<<nOfOUT<<
">2, MQ="<<resQMa<<
G4endl;
9908 for(
G4int id=nOfOUT-1;
id>=0;
id--)
9912 if(hPDG == 22) nphot=id;
9913 else if(hPDG==211 && npip<1) npip=id;
9918 G4cout<<
"::G4QE::CheckGroundState:"<<
id<<
",Epi0="<<piE<<
">"<<emaz<<
G4endl;
9926 else if(hPDG==-211 && npim<1) npim=id;
9930 G4QHadron* curHadr = theQHadrons[nphot];
9938 if(!
G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
9942 G4cout<<
"***G4QEnv::CheckGS: Decay in Photon+ResQ tM="<<ttM<<
G4endl;
9950 G4cout<<
"G4QE::CGS:nPhot="<<nphot<<
",ph4M="<<ch4M<<
"+r4M="<<quas4M<<
G4endl;
9953 G4cout<<
"G4QE::CGS: Fill Resid "<<reTQC<<quas4M<<
" in any form"<<
G4endl;
9955 EvaporateResidual(rqH,
false);
9963 if(resQPDG==89998004)
G4cout<<
"::G4QE::CGS:S="<<resS<<
",B="<<resB<<
",C="<<resC
9964 <<
",+#"<<npip<<
",-#"<<npim<<
",0#"<<npiz<<
",E="<<envPDG<<
G4endl;
9967 if (envPDG == 90000000 && !resS && resB > 1 &&
9968 ((npip >= 0 && resC == -2) || (npim >= 0 && resC-resB == 2)) )
9990 if(resQPDG==89998005)
9991 G4cout<<
"G4QE::CGS:Sm="<<suM<<
"<Tot="<<ttM<<tt4M
9992 <<
",pi="<<ch4M<<
",Q="<<reTLV.
m()<<reTLV<<
G4endl;
9999 if(!
G4QHadron(tt4M).DecayIn3(fn4M,sn4M,pi4M))
10002 if(resQPDG==89998005)
10003 G4cout<<
"***G4QEnv::CheckGS:DecayIn3 2N+Pi,tM="<<ttM<<
","<<suM<<
G4endl;
10009 for(
G4int ib=0; ib<rB; ib++)
10013 G4cout<<
"G4QE::CGS: fill Nucleon #"<<ib<<
", "<<nuPD<<fn4M<<
G4endl;
10015 theQHadrons.push_back(fnH);
10019 G4cout<<
"G4QE::CGS: fill the Last Nucleon, "<<nuPD<<sn4M<<
G4endl;
10021 theQHadrons.push_back(snH);
10025 if(resQPDG==89998005)
10026 G4cout<<
"G4QE::CGS:1="<<nuPD<<fn4M<<rB<<
",2="<<sn4M<<
",p="<<pi4M<<
G4endl;
10032 if(envPDG==90000000&&!resS&&resB>1&&npiz>=0&&(resC<-1||resC-resB>1))
10035 G4cout<<
"*::*G4QE::CGS:Pi0,rPDG="<<resQPDG<<
",rC="<<resC<<
",rB="<<resB<<
G4endl;
10052 G4QHadron* curHadr = theQHadrons[npiz];
10057 G4cout<<
"::G4QE::CGS:sum="<<sum<<
"<"<<ttM<<tt4M<<
",pi0="<<ch4M<<
",Q="
10064 if(
G4QHadron(tt4M).DecayIn2(fn4M,pi4M))
10066 if(npi>1) pi4M/=npi;
10069 if(npi>1)
for(
G4int ip=1; ip<npi; ip++)
10073 G4cout<<
"G4QE::CGS: fill Pion #"<<ip<<
", "<<piPD<<pi4M<<
G4endl;
10075 theQHadrons.push_back(piH);
10077 if(resB>1) fn4M/=resB;
10078 for(
G4int ib=0; ib<resB; ib++)
10082 G4cout<<
"G4QE::CGS: fill IsoNucleon #"<<ib<<
", "<<nuPD<<fn4M<<
G4endl;
10084 theQHadrons.push_back(fnH);
10087 G4cout<<
"::G4QE::CGS:nucl="<<nuPD<<fn4M<<resB<<
",pion="<<pi4M<<npi<<
G4endl;
10093 else G4cout<<
"*::*G4QEnv::CheckGS:DecayIn3:*Pi0* tM="<<ttM<<
","<<sum<<
G4endl;
10098 G4cout<<
"G4QE::CGS: Photons can't help nP="<<nphot<<
". TryChangeCharge."<<
G4endl;
10103 G4bool isoN = reTCH-reTBN>0 || reTCH<0;
10104 G4bool norN = reTCH<=reTBN || reTCH>=0;
10111 G4cout<<
"G4QE::CGS: nnPDR="<<nnPDG<<
". TryChangeCharge nOUT="<<nOfOUT<<
",Iso="
10112 <<isoN<<
",Nor="<<norN<<
",C="<<reTCH<<
",B="<<reTBN<<
G4endl;
10124 if(nnPDG<80000000) nnM=nnQPDG.GetMass();
10125 else nnM=nnQPDG.GetNuclMass(nnPDG);
10131 if(force) chx2g=
false;
10132 for(
G4int hd=nOfOUT-1; hd>=0; hd--)
10141 G4cout<<
"G4QE::CGS:#"<<hd<<
",ch="<<chCH<<
",b="<<chBN<<
",4M="<<ch4M<<
G4endl;
10150 if(nnM+mPi+chM<ttM)
10153 G4cout<<
"G4QE::CGS:CurH+ResQ+Pion t="<<tt4M<<ttM<<
",cM="<<chM<<
",rM="
10154 <<nnM<<
", d="<<ttM-chM-nnM-mPi<<
G4endl;
10159 if(
G4QHadron(tt4M).DecayIn3(ch4M,ipi4M,quas4M))
10164 G4cout<<
"G4QE::CGS: fill Pion "<<ipiQC<<ipi4M<<
G4endl;
10166 theQHadrons.push_back(rpH);
10169 G4cout<<
"G4QE::CGS:Fill isoRes "<<nnQC<<quas4M<<
" inAnyForm"<<
G4endl;
10174 <<curHadr->
Get4Momentum()<<
" + rq="<<nnPDG<<quas4M<<
" + pi="
10177 EvaporateResidual(rqH,
false);
10183 else G4cout<<
"***G4QE::CGS:DecIn3 CurH+ResQ+Pion dM="<<ttM-chM<<
G4endl;
10186 if ( (reTCH < 0 && chCH > 0) || (reTCH > reTBN && chCH < chBN) )
10189 if(reTCH<0)chQC+=pimQC;
10195 if(force && nnPDG==111) nnM=0.;
10197 G4cout<<
"G4QE::CGS:ChargeExchange,cx="<<chx2g<<
",rC="<<reTCH<<
",rB="
10198 <<reTBN<<
",rM="<<nnM<<
",hC="<<chCH<<
",hB="<<chBN<<
",hM="<<chM
10199 <<
",rM+hB="<<nnM+chM<<
" < "<<ttM<<
G4endl;
10209 if(!
G4QHadron(tt4M).DecayIn3(ch4M,quas4M,gam4M))
10213 G4cout<<
"***G4QE::CGS:DecayIn3 CurH+2Gammas,d="<<ttM-chM<<
G4endl;
10219 G4cout<<
"**G4QE::CGS:ChEx CH+2G i="<<reTCH<<
"+h="<<chCH<<
", f="
10224 G4cout<<
"G4QE::CGS:SubstituteH#"<<hd<<
"->"<<chQPDG<<ch4M<<
G4endl;
10228 theQHadrons.push_back(rqH);
10230 G4cout<<
"G4QE::CGS:Fill (SubRQ) Gamma 1,(22)4M="<<quas4M<<
G4endl;
10233 theQHadrons.push_back(gamH);
10235 G4cout<<
"G4QE::CGS:Fill newMadeGamma 2, (22) 4M="<<gam4M<<
G4endl;
10237 if(envPDG!=90000000) theEnvironment=
10244 if(!
G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
10248 G4cout<<
"**G4QE::CGS:DecayIn2 CurH+ResQ d="<<ttM-chM-nnM<<
G4endl;
10254 G4cout<<
"**G4QE::CGS:ChEx CH+RQ i="<<reTCH<<
"+h="<<chCH<<
", f="
10260 G4cout<<
"G4QE::CGS:#"<<hd<<
",h="<<ch4M<<
"+rq="<<quas4M<<
G4endl;
10263 G4cout<<
"G4QE::CGS:FilFr "<<nnQPDG<<quas4M<<
" inAnyForm"<<
G4endl;
10265 EvaporateResidual(rqH,
false);
10266 if(envPDG!=90000000) theEnvironment=
10275 G4cout<<
"**G4QE::CGS:rM+hB="<<nnM+chM<<
">"<<ttM<<
",B="<<chBN<<
G4endl;
10287 if ( tcBN == 2 || (!tcS && !tcC) || tcS == tcBN || tcC == tcBN )
10289 if(tcBN==2) theEnvironment.
DecayDibaryon(tcH,&theQHadrons);
10291 G4QHadron* theLast_value = theQHadrons[theQHadrons.size()-1];
10295 else curHadr->
SetQC(theLast_value->
GetQC());
10296 theQHadrons.pop_back();
10297 delete theLast_value;
10303 if(!
G4QHadron(tt4M).DecayIn2(tc4M,gc4M))
10309 G4cout<<
"**G4QE::CGS:DecayIn2 TotComp+gam d="<<ttM-tcM<<
G4endl;
10318 G4cout<<
"G4QE::CGS:#"<<hd<<
",ch="<<ch4M<<
"+t4M="<<tc4M<<
G4endl;
10321 G4cout<<
"G4QE::CGS:FilTC "<<tcQPDG<<tc4M<<
" inAnyForm"<<
G4endl;
10323 EvaporateResidual(tcH,
false);
10329 G4cout<<
"G4QE::CGS:**CEF,M="<<tcM<<
">"<<ttM<<
",B="<<chBN<<
G4endl;
10346 if(!
G4QHadron(tt4M).DecayIn2(ch4M,quas4M))
10350 G4cout<<
"***G4QE::CheckGS:Decay in CurH+ResQ dM="<<ttM-chM<<
G4endl;
10359 <<ch4M<<
" + ResQ4M="<<totPDG<<quas4M<<
G4endl;
10362 G4cout<<
"G4QE::CGS:Fill GSRes "<<reTQC<<quas4M<<
" inAnyForm"<<
G4endl;
10364 EvaporateResidual(rqH,
false);
10374 G4cout<<
"G4QEnv::CheckGS:***Any hadron from the OUTPUT did not help"<<
G4endl;
10381 if(npiz>-1) hind=npiz;
10384 if(resC+resC>resB && npim>-1) hind=npim;
10389 G4QHadron* curHadr = theQHadrons[hind];
10404 ttGSM=ttQPDG.GetMass();
10406 G4cout<<
"G4QEnv::CheckGS:Hypernucleus degraded to QPDG="<<ttQPDG<<
G4endl;
10412 G4cout<<
"G4QEnv::CheckGS: Decay in ResQ="<<ttQPDG<<
" & 2 gammas"<<
G4endl;
10423 theQHadrons.push_back(sgH);
10425 theQHadrons.push_back(rqH);
10430 else G4cout<<
"-W-G4QEn::CheckGS:M="<<ttM<<
" < GSM="<<ttGSM<<ttQPDG<<
G4endl;
10448 G4int nHadrons = HV->size();
10451 for(
G4int ih=0; ih<nHadrons; ++ih)
10462 theQHadrons.push_back(curH);
10469 else G4cout<<
"***G4QEnv::Kopy&DelHV: No hadrons in the QHadronVector"<<
G4endl;
10485 if(envPDG!=90000000)
10493 G4cout<<
"G4QEnv::DecayInEnvQ: totM="<<reTLV<<resTMa<<
" > rQM+rEM="<<resSMa<<
G4endl;
10500 if(!
G4QHadron(reTLV).DecayIn2(enva4M,quas4M))
10504 G4cout<<
"---Warning---G4Q::DecInEnvQ:Decay in Environment+ResidualQuasmon"<<
G4endl;
10510 EvaporateResidual(quasH);
10512 EvaporateResidual(envaH);
10524 theQuasmons.push_back(Q);
10529 G4cout<<
"G4QEnv::AddQuasmon:t4M="<<tot4Mom<<
",tC="<<totCharge<<
",tB="<<totBaryoN<<
G4endl;
10537 G4int nHadrons = HV->size();
10540 for(
G4int ih=0; ih<nHadrons; ++ih)
10551 G4cout <<
"G4QEnv::ChkMassShell:#" << ih <<
", hPDG="<< inH->
GetPDGCode() <<
", dM2="
10552 << qM2 - qGM*qGM <<
G4endl;
10554 if( fabs(qM2 - qGM*qGM) > eps)
10558 for(
G4int jh=0; jh<nHadrons; ++jh)
10572 if(s2M > eps && s2M < mins)
10595 if(!
G4QHadron(c4M).DecayIn2(i4Mom, j4Mom))
10597 G4cout<<
"-Warning-G4QEnv::ChkMShell: tM="<< c4M.
m() <<
", iM="<< qGM <<
", jM="
10598 << jGM <<
", d="<< c4M.
m()-qGM-jGM <<
G4endl;