54 pom_Alphaprime = 0.25/GeV/
GeV;
55 qex_Gamma = 9./GeV/
GeV;
57 qex_Alphaprime = 1.5/GeV/
GeV;
59 G4int aP = std::abs(PDG);
60 if (PDG==2212 || PDG==2112) InitForNucleon();
61 else if(PDG==111 || aP==211) InitForPion();
62 else if(PDG==130 || PDG==310 || aP==311 || aP==321) InitForKaon();
63 else if(PDG==22) InitForGamma();
64 else if(PDG > 3000) InitForHyperon();
65 else if(PDG <-2000) InitForAntiBaryon();
68 G4cout<<
"-Warning-G4QProbability is initialized for PDGCode="<<PDG<<
" as Pion"<<
G4endl;
71 pom_sqC=std::sqrt(pom_C);
77 static const G4int nft=11;
78 static const G4int nf1=nft-1;
79 static const G4double ft[nft]={1.,1.,2.,6.,24.,120.,720.,5040.,40320.,362880.,3628800.};
82 if(nPom<nft) f=ft[nPom];
83 else for(
G4int i=nft; i<= nPom; i++) f*=i;
85 return std::exp(-e)*std::pow(e,nPom)/pom_C/
f;
91 static const G4int nft=11;
92 static const G4int nf1=nft-1;
93 static const G4double ft[nft]={1.,1.,2.,6.,24.,120.,720.,5040.,40320.,362880.,3628800.};
96 if(nQex<nft) f=ft[nQex];
97 else for(
G4int i=nft; i<= nQex; i++) f*=i;
99 return std::exp(-e)*std::pow(e,nQex)/
f;
102 void G4QProbability::InitForNucleon()
109 void G4QProbability::InitForHyperon()
115 void G4QProbability::InitForAntiBaryon()
122 void G4QProbability::InitForPion()
129 void G4QProbability::InitForKaon()
136 void G4QProbability::InitForGamma()
147 for(
G4int j=2; j<21; j++)
149 current *= -z*(j-1)/j/j;
157 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
158 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
159 G4double Amp=(ExpQex*(1.-ExpPom) +
sqr(pom_sqC-1.)*ExpPom*(1.-ExpQex))/pom_C;
165 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
166 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
167 G4double Amp=(ExpQex*(1.-ExpPom) +
sqr(pom_sqC-1.)*ExpPom*(1.-ExpQex))/pom_C;
173 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
174 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
175 G4double Amp=
sqr(pom_sqC-1.)*(ExpQex*(1.-ExpPom) + ExpPom*(1.-ExpQex))/pom_C;
181 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
182 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
183 G4double Amp=(pom_sqC-1.)*(ExpQex*(1.-ExpPom) - (pom_sqC-1.)*ExpPom*(1.-ExpQex))/pom_C;
194 G4double ExpPom=std::exp(-PomEikonal(s_value,imp2));
195 G4double ExpQex=std::exp(-QexEikonal(s_value,imp2));
196 G4double Amp=
sqr(pom_sqC-1.)*(ExpQex*(1.-ExpPom) + ExpPom*(1.-ExpQex))/pom_C;
197 return Amp+Amp-Amp*Amp;