54 G4int tban=abs(3*ban);
57 if ( (!tod && (tot < 4 || (ban && tot < tban) ) ) || (tod && tot < tban+2) )
62 if (tot%2)rQC.
DecQAQ(-tban-2);
63 else if(ban)rQC.
DecQAQ(-tban);
67 cout<<
"G4QChipolino is called with QC="<<QCont<<
",rQC="<<rQC<<
",tot="<<tot<<
G4endl;
75 G4cerr<<
"***G4QChipolino: shouldn't be here 1 QC="<<rQC<<
G4endl;
77 else if (tot==2 || tot==3)
79 G4cerr<<
"***G4QChipolino: shouldn't be here 2 QC="<<rQC<<
G4endl;
88 G4cout<<
"G4QChipolino: tot=4,rQC="<<rQC<<
",bQC="<<bQC<<
G4endl;
90 for(
int j=0; j<2; j++)
99 cout<<
"G4QChipolino: aQC="<<aQC<<
", cQC="<<cQC<<
", oQC="<<oQC<<
G4endl;
106 cout<<
"G4QChipolino: c="<<cQPDG<<
",cM="<<M1<<
",o="<<oQPDG<<
",oM="<<M2
107 <<
",cM+0M="<<m_value<<
", curMinM="<<minM<<
G4endl;
124 cout<<
"G4QChipolino: Baryon case nQ="<<nQ<<
",nA="<<nA<<
",QC="<<rQC
128 if (fl) bQC=rQC.
IndQ();
129 else bQC=rQC.
IndAQ();
130 for (
int i=0; i<4; i++)
133 if (fl) cQC=bQC+rQC.
IndAQ(i);
134 else cQC=bQC+rQC.
IndQ(i);
152 cout<<
"G4QChipolino: Baryon case minM="<<minM<<
", M="<<theQCont1<<theQPDG1
153 <<
", B="<<theQPDG2<<
G4endl;
164 cout<<
"G4QChipolino: Di-Bar. case nQ="<<nQ<<
",nA="<<nA<<
",QC="<<rQC<<
",fl="<<fl<<
G4endl;
166 for (
int i=0; i<4; i++)
169 if (fl) aQC=rQC.
IndAQ(i);
170 else aQC=rQC.
IndQ(i);
171 for (
int j=i+1; j<5; j++)
174 if (fl) bQC=aQC+rQC.
IndAQ(j);
175 else bQC=aQC+rQC.
IndQ(j);
176 for (
int k=j+1; k<6; k++)
179 if (fl) cQC=bQC+rQC.
IndAQ(k);
180 else cQC=bQC+rQC.
IndQ(k);
220 G4cout<<
"G4QChipolino: NucFragment case nQ="<<nQ<<
",nAQ="<<nA<<
", QC="<<rQC<<
",fl="<<fl
223 if( (fl && kS>1) || (!fl && mS>1))
226 G4cerr<<
"***G4QChipolino: ***Overfowed by strange quarks*** rQC="<<rQC<<
G4endl;
237 G4int nN=(mU+mD-nI*3)/6;
240 if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))
244 theQPDG1 =
G4QPDGCode(-(90000000+1000*(nN+nI-1)+nN));
249 theQPDG1 =
G4QPDGCode(-(90000000+1000*(nN+nI)+nN-1));
253 else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))
257 theQPDG1=
G4QPDGCode(-(90000000+1000*(nN+nI-2)+nN+1));
262 theQPDG1=
G4QPDGCode(-(90000000+1000*(nN+nI+1)+nN-2));
268 G4cerr<<
"***G4QChipolino:**A**IsotopicAsymmetry (without S),rQC="<<rQC<<
G4endl;
274 nN =(mU+mD-4-nI*3)/6;
278 theQPDG1 =
G4QPDGCode(-(90000000+1000*(nN+nI-1)+nN));
283 theQPDG1 =
G4QPDGCode(-(90000000+1000*(nN+nI+1)+nN));
289 G4cerr<<
"***G4QChipolino: ***Too many kaons are needed*** rQC="<<rQC<<
G4endl;
298 G4int nN=(mU+mD-mS-mS-nI*3)/6;
299 if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))
303 theQPDG1 =
G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI-1)+nN));
308 theQPDG1 =
G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI)+nN-1));
312 else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))
316 theQPDG1=
G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI-2)+nN+1));
321 theQPDG1=
G4QPDGCode(-(90000000+1000*(kS*1000+nN+nI+1)+nN-2));
327 G4cerr<<
"***G4QChipolino:**A**IsotopicAssimetry (with S)*** rQC="<<rQC<<
G4endl;
338 if(lD+lU+lS!=3||lD<0||lU<0||lS<0)
340 G4cerr<<
"***G4QChipolino:*AntiFragment* rQC="<<rQC<<
",s="<<lS<<
",u="<<lU<<
",d"
344 if ( !lD && lU==2) theQPDG2=
G4QPDGCode(-3222);
345 else if( !lU && lD==2) theQPDG2=
G4QPDGCode(-3112);
346 else if( !lD && lU==1) theQPDG2=
G4QPDGCode(-3322);
347 else if( !lU && lD==1) theQPDG2=
G4QPDGCode(-3312);
360 G4int nN=(kU+kD-nI*3)/6;
363 if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))
367 theQPDG1 =
G4QPDGCode(90000000+1000*(nN+nI-1)+nN);
372 theQPDG1 =
G4QPDGCode(90000000+1000*(nN+nI)+nN-1);
376 else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))
380 theQPDG1=
G4QPDGCode(90000000+1000*(nN+nI-2)+nN+1);
385 theQPDG1=
G4QPDGCode(90000000+1000*(nN+nI+1)+nN-2);
391 G4cerr<<
"***G4QChipolino:***Isotopic assimetry (without S), rQC="<<rQC<<
G4endl;
397 nN =(kU+kD-4-nI*3)/6;
401 theQPDG1 =
G4QPDGCode(90000000+1000*(nN+nI-1)+nN);
406 theQPDG1 =
G4QPDGCode(90000000+1000*(nN+nI+1)+nN);
412 G4cerr<<
"***G4QChipolino: ***Too many kaons are needed*** rQC="<<rQC<<
G4endl;
421 G4int nN=(kU+kD-kS-kS-nI*3)/6;
422 if((nI>=0&&nN>=0)||(nI<0&&nN>=-nI))
426 theQPDG1 =
G4QPDGCode(90000000+1000*(kS*1000+nN+nI-1)+nN);
431 theQPDG1 =
G4QPDGCode(90000000+1000*(kS*1000+nN+nI)+nN-1);
435 else if((nI>=0&&nN>-2)||(nI<0&&nN>-nI-2))
439 theQPDG1=
G4QPDGCode(90000000+1000*(kS*1000+nN+nI-2)+nN+1);
444 theQPDG1=
G4QPDGCode(90000000+1000*(kS*1000+nN+nI+1)+nN-2);
450 G4cerr<<
"***G4QChipolino: ***Isotopic assimetry (with S)*** rQC="<<rQC<<
G4endl;
461 if(lD+lU+lS!=3||lD<0||lU<0||lS<0)
463 G4cerr<<
"***G4QChipolino:*Fragment*rQC="<<rQC<<
",s="<<lS<<
",u="<<lU<<
",d"
468 else if( !lU && lD==2) theQPDG2=
G4QPDGCode(3112);
469 else if( !lD && lU==1) theQPDG2=
G4QPDGCode(3322);
470 else if( !lU && lD==1) theQPDG2=
G4QPDGCode(3312);
481 G4cerr<<
"***G4QChipolino: ***Exotics*** rQC="<<rQC<<
G4endl;
488 theQPDG1 = right.theQPDG1;
489 theQPDG2 = right.theQPDG2;
490 theQCont = right.theQCont;
491 theQCont1 = right.theQCont1;
497 theQPDG1 = right->theQPDG1;
498 theQPDG2 = right->theQPDG2;
499 theQCont = right->theQCont;
500 theQCont1 = right->theQCont1;
508 theQPDG1 = right.theQPDG1;
509 theQPDG2 = right.theQPDG2;
510 theQCont = right.theQCont;
511 theQCont1 = right.theQCont1;
ostream & operator<<(ostream &lhs, G4QChipolino &rhs)
G4DLLIMPORT std::ostream G4cerr
G4DLLIMPORT std::ostream G4cout
const G4QChipolino & operator=(const G4QChipolino &right)
G4int DecQAQ(const G4int &nQAQ=1)
G4int GetBaryonNumber() const
G4QContent IndQ(G4int ind=0)
void IncQAQ(const G4int &nQAQ=1, const G4double &sProb=1.)
G4QContent IndAQ(G4int ind=0)
G4QContent GetQuarkContent() const
void InitByQCont(G4QContent QCont)