60 likes | 177 Views
Bug fixing in hadronic models. V. Uzhinsky, 26 September 2011. 1. CHIPS. Reference tag: geant4-09-04-ref-08. 2. FTF. 3. Bertini. CHIPS, Pi- P. CHIPS, Pi- P. Class - G4QPionMinusNuclearCrossSection Class - G4QuasiFreeRatios. Class - G4QPionMinusNuclearCrossSection
E N D
Bug fixing in hadronic models V. Uzhinsky, 26 September 2011 1. CHIPS Reference tag: geant4-09-04-ref-08 2. FTF 3. Bertini CHIPS, Pi- P
CHIPS, Pi- P Class - G4QPionMinusNuclearCrossSection Class - G4QuasiFreeRatios Class - G4QPionMinusNuclearCrossSection // Calculation formula for piMinus-nuclear inelastic cross-section (mb) log(P in GeV/c) G4double G4QPionMinusNuclearCrossSection::CrossSectionFormula(G4int tZ, G4int tN, G4double P, G4double lP) { G4double sigma=0.; if(tZ==1 && !tN) // PiMin-Proton interaction from G4QuasiElRatios { G4double lr=lP+1.27; // From G4QuasiFreeRatios.cc Uzhi G4double LE=1.53/(lr*lr+.0676); // From G4QuasiFreeRatios.cc Uzhi G4double ld=lP-3.5; G4double ld2=ld*ld; G4double p2=P*P; G4double p4=p2*p2; G4double sp=std::sqrt(P); G4double lm=lP+.36; G4double md=lm*lm+.04; G4double lh=lP-.017; G4double hd=lh*lh+.0025; G4double El=(.0557*ld2+2.4+7./sp)/(1.+.7/p4); G4double To=(.3*ld2+22.3+12./sp)/(1.+.4/p4); sigma=(To-El)+.4/md+.01/hd; sigma+=LE*2; // Uzhi } Class - G4QuasiFreeRatios std::pair<G4double,G4double> G4QuasiFreeRatios::CalcElTot(G4double p, G4int I) else if(I==2) // pimp/pipn { { G4double lr=lp+1.27; // p1 G4double LE=1.53/(lr*lr+.0676); // p2, p3 G4double ld=lp-lmi; // p4 (lmi=3.5) G4double ld2=ld*ld; G4double p2=p*p; G4double p4=p2*p2; G4double sp=std::sqrt(p); G4double lm=lp+.36; // p5 G4double md=lm*lm+.04; // p6 G4double lh=lp-.017; // p7 G4double hd=lh*lh+.0025; // p8 El=LE+(pbe*ld2+2.4+7./sp)/(1.+.7/p4)+.6/md+.05/hd; To=LE*3+(pbt*ld2+22.3+12./sp)/(1.+.4/p4)+1./md+.06/hd; }
CHIPS, K+ P Class - G4QKaonPlusElasticCrossSection Class - G4QuasiFreeRatios Class - G4QuasiFreeRatios std::pair<G4double,G4double> G4QuasiFreeRatios::CalcElTot(G4double p, G4int I) else if(I==5) // Kpp/Kpn/aKp/aKn { G4double ld=std::log(p)-lmi; G4double ld2=ld*ld; G4double lr=p-.38; G4double LE=.7/(lr*lr+.0676); G4double sp=std::sqrt(p); G4double p2=p*p; G4double p4=p2*p2; G4double lm=p-1.; G4double md=lm*lm+.372; El=LE+(pbe*ld2+2.23)/(1.-.7/sp+.1/p4)+2./md; To=LE+(pbt*ld2+19.5)/(1.+.46/sp+1.6/p4)+2.6/md; } Class - G4QKaonPlusElasticCrossSection G4double G4QKaonPlusElasticCrossSection::GetTabValues(G4double lp, G4int PDG, G4int tgZ, G4int tgN) G4double p=std::exp(lp); // momentum G4double sp=std::sqrt(p); // sqrt(p) G4double p2=p*p; G4double p3=p2*p; G4double p4=p3*p; if ( tgZ == 1 && tgN == 0 ) // KaonPlus+P { G4double dl2=lp-lastPAR[11]; G4double dp=lp-lastPAR[4]; //G4cout<<"lastPAR[8] "<<lastPAR[8]<<" lastPAR[9] "<<lastPAR[9]<<" lastPAR[10] "<<lastPAR[10]<<G4endl; return lastPAR[0]/(lastPAR[2]+sqr(p-lastPAR[1]))+ (lastPAR[3]*dp*dp+lastPAR[5])/ ( 1.-lastPAR[6]/sp+lastPAR[7]/p4) +lastPAR[8]/(sqr(p-lastPAR[9])+lastPAR[10]); // Uzhi
FTF Class - G4ComponentCHIPShadronNuclearXS G4double G4ComponentCHIPShadronNuclearXS::GetTotalElementCrossSection (const G4ParticleDefinition* aParticle, G4double kinEnergy, G4int Z, G4double N) { G4double momentum = std::sqrt(kinEnergy*(kinEnergy+2.*aParticle->GetPDGMass()));
Old New Bertini
Conclusion Bugs are fixed in CHIPS for Pi-P and K+P interactions Small bug is fixed in FTF. Problem is left! Bertini was essential improved.