- Timestamp:
- Jun 18, 2010, 11:42:07 AM (14 years ago)
- Location:
- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/History
r1228 r1315 17 17 ----------------------------------------------------------------- 18 18 19 8-Jun-2010 M.Kosov (hadr-chips-cs-V09-03-05) 20 ------------------------------------------------------------------------ 21 Bug fix in G4QNeuronNuclearCrossSection for Ba isotopes. 22 23 2-Jun-2010 M.Kosov (hadr-chips-cs-V09-03-04) 24 ------------------------------------------------------------------------ 25 Bug fix (G4NucleiProperties warning) for A=0, Z=0. 26 27 19-Apr-2010 M.Kosov (hadr-chips-cs-V09-03-03) 28 ----------------------------------------------------------------------- 29 Bug fix for G4QNeutronElasticCrossSection (after the new implementation) 30 31 7-Apr-2010 M.Kosov (hadr-chips-cs-V09-03-02) 32 ----------------------------------------------------------------------- 33 Implementation of isotope wise CHIPS elastic for neutrons 34 35 5-Feb-2010 M.Kosov (hadr-chips-V09-03-03) 36 ----------------------------------------------------------------------- 37 Mutual tag: accumulate bug fix and AntiBaryonElastic implementation 38 39 25-Jan-2010 M.Kosov (hadr-chips-cs-V09-03-01) 40 ----------------------------------------------------------------------- 41 Correction for Silver in low energy neutron-nuclear (bug fix) 42 43 22-Jan-2010 M.Kosov (hadr-chips-V09-03-01) 44 ----------------------------------------------------------------------- 45 Mutual tag: pion elastic is added 46 47 14-Jan-2010 M.Kosov (hadr-chips-cs-V09-03-00) 48 ----------------------------------------------------------------------- 49 Split G4QElasticCrossSection to G4QProtonElasticCS & G4QNeutronElasticCS 50 CHIPS Proton Elastic is updated 51 19 52 7-Dec-2009 M.Kosov (hadr-chips-cs-V09-02-00) 20 53 ----------------------------------------------------------------------- -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/include/G4QIonIonCrossSection.hh
r1228 r1315 28 28 // 29 29 // 30 // GEANT4 tag $Name: geant4-09-0 3$30 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 31 31 // 32 32 // … … 51 51 #include "G4VQCrossSection.hh" 52 52 #include "G4QPDGCode.hh" 53 #include "G4QElasticCrossSection.hh" 53 #include "G4QProtonElasticCrossSection.hh" 54 #include "G4QNeutronElasticCrossSection.hh" 54 55 #include "G4QProtonNuclearCrossSection.hh" 55 56 #include "G4QNeutronNuclearCrossSection.hh" -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/include/G4QNeutronCaptureRatio.hh
r1228 r1315 25 25 // 26 26 // 27 // GEANT4 tag $Name: geant4-09-0 3$27 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 28 28 // 29 29 // … … 51 51 #include "G4Quasmon.hh" 52 52 #include "G4QHadronVector.hh" 53 #include "G4QElasticCrossSection.hh"54 55 56 53 57 54 class G4QNeutronCaptureRatio -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/include/G4QuasiFreeRatios.hh
r1228 r1315 25 25 // 26 26 // 27 // GEANT4 tag $Name: geant4-09-0 3$27 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 28 28 // 29 29 // … … 45 45 #include "G4QPDGCode.hh" 46 46 #include "G4QHadron.hh" 47 #include "G4QElasticCrossSection.hh" 47 #include "G4QProtonElasticCrossSection.hh" 48 #include "G4QNeutronElasticCrossSection.hh" 48 49 49 50 -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 91 91 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 92 92 #ifdef debug 93 G4cout<<"G4Q PrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN94 <<"("<<lastN<<"),PDG= 2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;93 G4cout<<"G4QaBCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 94 <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 95 95 #endif 96 96 if(PDG>-2111 || PDG==-3112 || PDG==-3312 || PDG==-3334) … … 106 106 j = 0; // A#0f records found in DB for this projectile 107 107 #ifdef debug 108 G4cout<<"G4Q PrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;108 G4cout<<"G4QaBarNucCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 109 109 #endif 110 110 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 115 115 lastTH =colTH[i]; // The last THreshold (A-dependent) 116 116 #ifdef debug 117 G4cout<<"G4Q PrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;117 G4cout<<"G4QaBCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 118 118 #endif 119 119 if(pMom<=lastTH) … … 130 130 { 131 131 #ifdef debug 132 G4cout<<"..G4Q PrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;133 #endif 134 //CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // Update param's only132 G4cout<<"..G4QaBCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 133 #endif 134 //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only 135 135 return lastCS*millibarn; // Use theLastCS 136 136 } … … 138 138 // Momentum pMom is in IU ! @@ Units 139 139 #ifdef debug 140 G4cout<<"G4Q PrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;141 #endif 142 lastCS=CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // read & update143 #ifdef debug 144 G4cout<<"G4Q PrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;140 G4cout<<"G4QaBCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl; 141 #endif 142 lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update 143 #ifdef debug 144 G4cout<<"G4QaBCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl; 145 145 #endif 146 146 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 147 147 { 148 148 #ifdef debug 149 G4cout<<"G4Q PrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;149 G4cout<<"G4QaBNucCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 150 150 #endif 151 151 lastCS=0.; … … 155 155 } 156 156 #ifdef debug 157 G4cout<<"-->G4Q PrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]157 G4cout<<"-->G4QaBNucCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i] 158 158 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 159 159 #endif … … 161 161 } 162 162 #ifdef debug 163 G4cout<<"-?-G4Q PrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;163 G4cout<<"-?-G4QaBCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl; 164 164 #endif 165 165 if(!in) // This isotope has not been calculated previously 166 166 { 167 167 #ifdef debug 168 G4cout<<"^^^G4Q PrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;168 G4cout<<"^^^G4QaBCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 169 169 #endif 170 170 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 171 lastCS=CalculateCrossSection(fCS,0,j, 2212,lastZ,lastN,pMom); //calculate & create171 lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create 172 172 //if(lastCS>0.) // It means that the AMBD was initialized 173 173 //{ … … 175 175 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 176 176 #ifdef debug 177 G4cout<<"G4Q PrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;177 G4cout<<"G4QaBCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 178 178 #endif 179 179 colN.push_back(tgN); … … 183 183 colCS.push_back(lastCS); 184 184 #ifdef debug 185 G4cout<<"G4Q PrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;185 G4cout<<"G4QaBCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 186 186 #endif 187 187 //} // M.K. Presence of H1 with high threshold breaks the syncronization 188 188 #ifdef pdebug 189 G4cout<<"G4Q PrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;189 G4cout<<"G4QaBCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 190 190 #endif 191 191 return lastCS*millibarn; … … 194 194 { 195 195 #ifdef debug 196 G4cout<<"G4Q PrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;196 G4cout<<"G4QAntiBaryNucCrossSection::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl; 197 197 #endif 198 198 colP[lastI]=pMom; … … 203 203 { 204 204 #ifdef debug 205 G4cout<<"G4Q PrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;205 G4cout<<"G4QaBNCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 206 206 #endif 207 207 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 220 220 G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 221 221 #endif 222 lastCS=CalculateCrossSection(fCS,1,j, 2212,lastZ,lastN,pMom); // Only read and UpdateDB222 lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB 223 223 lastP=pMom; 224 224 } 225 225 #ifdef debug 226 G4cout<<"==>G4Q PrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;226 G4cout<<"==>G4QaBCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 227 227 #endif 228 228 return lastCS*millibarn; … … 246 246 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 247 247 #ifdef debug 248 G4cout<<"G4Q ProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;248 G4cout<<"G4QaBarNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 249 249 #endif 250 250 G4double sigma=0.; … … 252 252 G4double A=targN+targZ; // A of the target 253 253 #ifdef debug 254 G4cout<<"G4Q ProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;254 G4cout<<"G4QaBarNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 255 255 #endif 256 256 if(F<=0) // This isotope was not the last used isotop … … 281 281 } 282 282 #ifdef debug 283 G4cout<<"-*->G4Q Pr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;283 G4cout<<"-*->G4QaBarNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl; 284 284 #endif 285 285 // --- End of possible separate function … … 298 298 // ============================== NOW the Magic Formula ================================= 299 299 #ifdef debug 300 G4cout<<"G4Q PrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;300 G4cout<<"G4QaBNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 301 301 #endif 302 302 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 304 304 { 305 305 #ifdef debug 306 G4cout<<"G4Q PrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;306 G4cout<<"G4QaBNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 307 307 #endif 308 308 if(A<=1.) sigma=0.; … … 310 310 #ifdef debugn 311 311 if(sigma<0.) 312 G4cout<<"G4Q PrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;312 G4cout<<"G4QaBNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl; 313 313 #endif 314 314 } … … 317 317 G4double lP=std::log(Momentum); 318 318 #ifdef debug 319 G4cout<<"G4Q ProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;319 G4cout<<"G4QaBarNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl; 320 320 #endif 321 321 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonPlusNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 93 93 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 94 94 #ifdef debug 95 G4cout<<"G4Q PrCS::GetCS:>>>f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN96 <<"("<<lastN<<"),PDG= 2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;95 G4cout<<"G4QaBPCS::GetCS:>>>f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 96 <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 97 97 #endif 98 98 if(PDG!=-3112 && PDG!=-3312 && PDG!=-3334) … … 108 108 j = 0; // A#0f records found in DB for this projectile 109 109 #ifdef debug 110 G4cout<<"G4Q PrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;110 G4cout<<"G4QABPNuclCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 111 111 #endif 112 112 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 117 117 lastTH =colTH[i]; // The last THreshold (A-dependent) 118 118 #ifdef debug 119 G4cout<<"G4Q PrCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;119 G4cout<<"G4QaBPCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 120 120 #endif 121 121 if(pMom<=lastTH) … … 132 132 { 133 133 #ifdef debug 134 G4cout<<" ..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;135 #endif 136 //CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // Update param's only134 G4cout<<"G4QaBPNCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 135 #endif 136 //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only 137 137 return lastCS*millibarn; // Use theLastCS 138 138 } … … 140 140 // Momentum pMom is in IU ! @@ Units 141 141 #ifdef debug 142 G4cout<<"G4Q PrCS::G:UpdatDBP="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;143 #endif 144 lastCS=CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // read & update145 #ifdef debug 146 G4cout<<"G4Q PrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;142 G4cout<<"G4QaBPNCS::G:UpdDB,P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl; 143 #endif 144 lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update 145 #ifdef debug 146 G4cout<<"G4QaBPNuCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl; 147 147 #endif 148 148 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 149 149 { 150 150 #ifdef debug 151 G4cout<<"G4Q PrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;151 G4cout<<"G4QaBPNuCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 152 152 #endif 153 153 lastCS=0.; … … 157 157 } 158 158 #ifdef debug 159 G4cout<<"-->G4Q PrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]159 G4cout<<"-->G4QaBarPNucCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i] 160 160 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 161 161 #endif … … 163 163 } 164 164 #ifdef debug 165 G4cout<<"-?-G4Q PrCS::GetCS:RCZ="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;165 G4cout<<"-?-G4QaBPNCS::GeCS:R,Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl; 166 166 #endif 167 167 if(!in) // This isotope has not been calculated previously 168 168 { 169 169 #ifdef debug 170 G4cout<<"^^^G4Q PrCS::GetCS:CalcNewP="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;170 G4cout<<"^^^G4QaBPCS::GetCS:CalcNewP="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 171 171 #endif 172 172 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 173 lastCS=CalculateCrossSection(fCS,0,j, 2212,lastZ,lastN,pMom); //calculate & create173 lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create 174 174 //if(lastCS>0.) // It means that the AMBD was initialized 175 175 //{ … … 177 177 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 178 178 #ifdef debug 179 G4cout<<"G4Q PrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;179 G4cout<<"G4QaBPNucCrossSec::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 180 180 #endif 181 181 colN.push_back(tgN); … … 185 185 colCS.push_back(lastCS); 186 186 #ifdef debug 187 G4cout<<"G4Q PrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;187 G4cout<<"G4QaBPNCS::GetCrosSec:lCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 188 188 #endif 189 189 //} // M.K. Presence of H1 with high threshold breaks the syncronization 190 190 #ifdef pdebug 191 G4cout<<"G4Q PrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;191 G4cout<<"G4QaBPNCS::GCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 192 192 #endif 193 193 return lastCS*millibarn; … … 196 196 { 197 197 #ifdef debug 198 G4cout<<"G4Q PrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;198 G4cout<<"G4QaBarPNucCrossSect::GetCrosSect: Update lastI="<<lastI<<",j="<<j<<G4endl; 199 199 #endif 200 200 colP[lastI]=pMom; … … 205 205 { 206 206 #ifdef debug 207 G4cout<<"G4Q PrCS::GetCS: CurrentP="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;207 G4cout<<"G4QaBPNuCS::GetCS:CurrentP="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 208 208 #endif 209 209 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 213 213 { 214 214 #ifdef debug 215 G4cout<<" ..G4QPCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;215 G4cout<<"G4QaBPCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 216 216 #endif 217 217 return lastCS*millibarn; // Use theLastCS … … 220 220 { 221 221 #ifdef debug 222 G4cout<<"-!-G4Q PCS::GetCS:UseCurP="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;223 #endif 224 lastCS=CalculateCrossSection(fCS,1,j, 2212,lastZ,lastN,pMom); // Only read and UpdateDB222 G4cout<<"-!-G4QaBPCS::GeCS:UseCurP="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 223 #endif 224 lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB 225 225 lastP=pMom; 226 226 } 227 227 #ifdef debug 228 G4cout<<"==>G4Q PrCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;228 G4cout<<"==>G4QaBPCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 229 229 #endif 230 230 return lastCS*millibarn; … … 248 248 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 249 249 #ifdef debug 250 G4cout<<"G4Q ProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;250 G4cout<<"G4QaBPNuCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 251 251 #endif 252 252 G4double sigma=0.; … … 254 254 G4double A=targN+targZ; // A of the target 255 255 #ifdef debug 256 G4cout<<"G4Q ProtNucCS::CalCS:A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;256 G4cout<<"G4QaBarPNucCS::CalCS:A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 257 257 #endif 258 258 if(F<=0) // This isotope was not the last used isotop … … 261 261 { 262 262 G4int sync=LEN->size(); 263 if(sync<=I) G4cerr<<"*!*G4Q PiMinusNuclCS::CalcCrosSect:Sync="<<sync<<"<="<<I<<G4endl;263 if(sync<=I) G4cerr<<"*!*G4QaBarPNuclCS::CalcCrosSect: Sync="<<sync<<"<="<<I<<G4endl; 264 264 lastLEN=(*LEN)[I]; // Pointer to prepared LowEnergy cross sections 265 265 lastHEN=(*HEN)[I]; // Pointer to prepared High Energy cross sections … … 283 283 } 284 284 #ifdef debug 285 G4cout<<"-*->G4Q Pr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;285 G4cout<<"-*->G4QaBarPNucCS::CalCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl; 286 286 #endif 287 287 // --- End of possible separate function … … 290 290 if(sync!=I) 291 291 { 292 G4cerr<<"***G4Q PiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ292 G4cerr<<"***G4QaBarPNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ 293 293 <<", N="<<targN<<", F="<<F<<G4endl; 294 294 //G4Exception("G4PiMinusNuclearCS::CalculateCS:","39",FatalException,"DBoverflow"); … … 300 300 // ============================== NOW the Magic Formula ================================= 301 301 #ifdef debug 302 G4cout<<"G4Q PrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;302 G4cout<<"G4QaBPNCS::CalCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 303 303 #endif 304 304 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 306 306 { 307 307 #ifdef debug 308 G4cout<<"G4Q PrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;308 G4cout<<"G4QaBPNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 309 309 #endif 310 310 if(A<=1.) sigma=0.; … … 312 312 #ifdef debugn 313 313 if(sigma<0.) 314 G4cout<<"G4Q PrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;314 G4cout<<"G4QaBPNCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl; 315 315 #endif 316 316 } … … 319 319 G4double lP=std::log(Momentum); 320 320 #ifdef debug 321 G4cout<<"G4Q ProtNucCS::CalcCS:before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;321 G4cout<<"G4QaBarPNucCS::CalcCS:before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl; 322 322 #endif 323 323 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QElectronNuclearCrossSection.cc
r1228 r1315 25 25 // 26 26 // 27 // $Id: G4QElectronNuclearCrossSection.cc,v 1. 1 2009/11/16 18:15:43mkossov Exp $28 // GEANT4 tag $Name: geant4-09-0 3$27 // $Id: G4QElectronNuclearCrossSection.cc,v 1.2 2010/06/02 09:08:25 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 286 286 //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0); 287 287 G4double mT= 0.; 288 if( G4NucleiProperties::IsInStableTable(A,Z))288 if(Z&&G4NucleiProperties::IsInStableTable(A,Z)) 289 289 mT = G4NucleiProperties::GetNuclearMass(A,Z)/MeV; 290 290 else return 0.; // If it is not in the Table of Stable Nuclei, then the Threshold=0 … … 292 292 G4double mP= infEn; 293 293 //if(Z) mP= G4QPDGCode(111).GetNuclMass(Z-1,N,0); 294 if( Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))294 if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1)) 295 295 mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV; // ResNucMass for a proton 296 296 G4double mN= infEn; 297 297 //if(N) mN= G4QPDGCode(111).GetNuclMass(Z,N-1,0); 298 if( N&&G4NucleiProperties::IsInStableTable(A-1,Z))298 if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z)) 299 299 mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV; // ResNucMass for a neutron 300 300 301 301 G4double mA= infEn; 302 if( N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))302 if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2)) 303 303 mA = G4NucleiProperties::GetNuclearMass(A-4.,Z-2.)/MeV;// ResNucMass for an alpha 304 304 -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 91 91 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 92 92 #ifdef debug 93 G4cout<<"G4Q PrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN94 <<"("<<lastN<<"), PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;93 G4cout<<"G4QHyCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 94 <<"("<<lastN<<"), PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 95 95 #endif 96 96 if(PDG!=3122 && PDG!=3212 && PDG!=3112 && PDG!=3322 && PDG!=3312 && PDG!=3334) … … 106 106 j = 0; // A#0f records found in DB for this projectile 107 107 #ifdef debug 108 G4cout<<"G4Q PrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;108 G4cout<<"G4QHyCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 109 109 #endif 110 110 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 115 115 lastTH =colTH[i]; // The last THreshold (A-dependent) 116 116 #ifdef debug 117 G4cout<<"G4Q PrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;117 G4cout<<"G4QHyCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 118 118 #endif 119 119 if(pMom<=lastTH) … … 130 130 { 131 131 #ifdef debug 132 G4cout<<"..G4Q PrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;133 #endif 134 //CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // Update param's only132 G4cout<<"..G4QHyCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 133 #endif 134 //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only 135 135 return lastCS*millibarn; // Use theLastCS 136 136 } … … 138 138 // Momentum pMom is in IU ! @@ Units 139 139 #ifdef debug 140 G4cout<<"G4Q PrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;141 #endif 142 lastCS=CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // read & update143 #ifdef debug 144 G4cout<<"G4Q PrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;140 G4cout<<"G4QHyCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl; 141 #endif 142 lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update 143 #ifdef debug 144 G4cout<<"G4QHyCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl; 145 145 #endif 146 146 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 147 147 { 148 148 #ifdef debug 149 G4cout<<"G4Q PrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;149 G4cout<<"G4QHyCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 150 150 #endif 151 151 lastCS=0.; … … 155 155 } 156 156 #ifdef debug 157 G4cout<<"-->G4Q PrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]157 G4cout<<"-->G4QHyCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i] 158 158 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 159 159 #endif … … 161 161 } 162 162 #ifdef debug 163 G4cout<<"-?-G4Q PrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;163 G4cout<<"-?-G4QHyCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl; 164 164 #endif 165 165 if(!in) // This isotope has not been calculated previously 166 166 { 167 167 #ifdef debug 168 G4cout<<"^^^G4Q PrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;168 G4cout<<"^^^G4QHyCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 169 169 #endif 170 170 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 171 lastCS=CalculateCrossSection(fCS,0,j, 2212,lastZ,lastN,pMom); //calculate & create171 lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create 172 172 //if(lastCS>0.) // It means that the AMBD was initialized 173 173 //{ … … 175 175 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 176 176 #ifdef debug 177 G4cout<<"G4Q PrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;177 G4cout<<"G4QHyCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 178 178 #endif 179 179 colN.push_back(tgN); … … 183 183 colCS.push_back(lastCS); 184 184 #ifdef debug 185 G4cout<<"G4Q PrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;185 G4cout<<"G4QHyCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 186 186 #endif 187 187 //} // M.K. Presence of H1 with high threshold breaks the syncronization 188 188 #ifdef pdebug 189 G4cout<<"G4Q PrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;189 G4cout<<"G4QHyCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 190 190 #endif 191 191 return lastCS*millibarn; … … 194 194 { 195 195 #ifdef debug 196 G4cout<<"G4Q PrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;196 G4cout<<"G4QHyCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl; 197 197 #endif 198 198 colP[lastI]=pMom; … … 203 203 { 204 204 #ifdef debug 205 G4cout<<"G4Q PrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;205 G4cout<<"G4QHyCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 206 206 #endif 207 207 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 211 211 { 212 212 #ifdef debug 213 G4cout<<". .G4QPCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;213 G4cout<<".G4QHyCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 214 214 #endif 215 215 return lastCS*millibarn; // Use theLastCS … … 218 218 { 219 219 #ifdef debug 220 G4cout<<" -!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;221 #endif 222 lastCS=CalculateCrossSection(fCS,1,j, 2212,lastZ,lastN,pMom); // Only read and UpdateDB220 G4cout<<"!-G4QHyCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 221 #endif 222 lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB 223 223 lastP=pMom; 224 224 } 225 225 #ifdef debug 226 G4cout<<"==>G4Q PrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;226 G4cout<<"==>G4QHyCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 227 227 #endif 228 228 return lastCS*millibarn; … … 246 246 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 247 247 #ifdef debug 248 G4cout<<"G4Q ProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;248 G4cout<<"G4QHyNucCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 249 249 #endif 250 250 G4double sigma=0.; … … 252 252 G4double A=targN+targZ; // A of the target 253 253 #ifdef debug 254 G4cout<<"G4Q ProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;254 G4cout<<"G4QHypNucCS::CalCS: A="<<A<<", F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 255 255 #endif 256 256 if(F<=0) // This isotope was not the last used isotop … … 281 281 } 282 282 #ifdef debug 283 G4cout<<"-*->G4Q Pr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;283 G4cout<<"-*->G4QHypNucCS::CalcCS:Tab for Z="<<targZ<<", N="<<targN<<",I="<<I<<G4endl; 284 284 #endif 285 285 // --- End of possible separate function … … 288 288 if(sync!=I) 289 289 { 290 G4cerr<<"***G4Q PiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ290 G4cerr<<"***G4QHyperNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ 291 291 <<", N="<<targN<<", F="<<F<<G4endl; 292 292 //G4Exception("G4PiMinusNuclearCS::CalculateCS:","39",FatalException,"DBoverflow"); … … 298 298 // ============================== NOW the Magic Formula ================================= 299 299 #ifdef debug 300 G4cout<<"G4Q PrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;300 G4cout<<"G4QHyNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 301 301 #endif 302 302 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 304 304 { 305 305 #ifdef debug 306 G4cout<<"G4Q PrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;306 G4cout<<"G4QHyNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 307 307 #endif 308 308 if(A<=1.) sigma=0.; … … 310 310 #ifdef debugn 311 311 if(sigma<0.) 312 G4cout<<"G4Q PrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;312 G4cout<<"G4QHyNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl; 313 313 #endif 314 314 } … … 317 317 G4double lP=std::log(Momentum); 318 318 #ifdef debug 319 G4cout<<"G4Q ProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;319 G4cout<<"G4QHyNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl; 320 320 #endif 321 321 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonPlusNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 91 91 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 92 92 #ifdef debug 93 G4cout<<"G4Q PrCS::GetCS:>>> f="<<fCS<<",p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN94 <<"("<<lastN<<"), PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;93 G4cout<<"G4QHyPNCS::GetCS:>>>f="<<fCS<<",p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 94 <<"("<<lastN<<"), PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 95 95 #endif 96 96 if(PDG!=3222) G4cout<<"-Warning-G4QPiMinusCS::GetCS:**Not a PiMinus**,PDG="<<PDG<<G4endl; … … 105 105 j = 0; // A#0f records found in DB for this projectile 106 106 #ifdef debug 107 G4cout<<"G4Q PrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;107 G4cout<<"G4QHyPNuclCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 108 108 #endif 109 109 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 114 114 lastTH =colTH[i]; // The last THreshold (A-dependent) 115 115 #ifdef debug 116 G4cout<<"G4Q PrCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;116 G4cout<<"G4QHyPCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 117 117 #endif 118 118 if(pMom<=lastTH) … … 129 129 { 130 130 #ifdef debug 131 G4cout<<" ..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;132 #endif 133 //CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // Update param's only131 G4cout<<"G4QHyPNCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 132 #endif 133 //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only 134 134 return lastCS*millibarn; // Use theLastCS 135 135 } … … 137 137 // Momentum pMom is in IU ! @@ Units 138 138 #ifdef debug 139 G4cout<<"G4Q PrCS::G:UpdatDBP="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // read & update142 #ifdef debug 143 G4cout<<"G4Q PrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;139 G4cout<<"G4QHyPNCS::G:UpdDB,P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl; 140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update 142 #ifdef debug 143 G4cout<<"G4QHyPNuCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl; 144 144 #endif 145 145 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 146 146 { 147 147 #ifdef debug 148 G4cout<<"G4Q PrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;148 G4cout<<"G4QHyPNuCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 149 149 #endif 150 150 lastCS=0.; … … 154 154 } 155 155 #ifdef debug 156 G4cout<<"-->G4Q PrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]156 G4cout<<"-->G4QHyPNucCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i] 157 157 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 158 158 #endif … … 160 160 } 161 161 #ifdef debug 162 G4cout<<"-?-G4Q PrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;162 G4cout<<"-?-G4QHyPNCS::GetCS:R,Z="<<tgZ<<",N="<<tgN<<",i="<<in<<",j="<<j<<" ?"<<G4endl; 163 163 #endif 164 164 if(!in) // This isotope has not been calculated previously 165 165 { 166 166 #ifdef debug 167 G4cout<<"^ ^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;167 G4cout<<"^G4QHyPNCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 168 168 #endif 169 169 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 170 lastCS=CalculateCrossSection(fCS,0,j, 2212,lastZ,lastN,pMom); //calculate & create170 lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create 171 171 //if(lastCS>0.) // It means that the AMBD was initialized 172 172 //{ … … 174 174 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 175 175 #ifdef debug 176 G4cout<<"G4Q PrCrossSection::GetCrossSect:NewThresh="<<lastTH<<",P="<<pMom<<G4endl;176 G4cout<<"G4QHypNucCrossSect::GetCrossSect:NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 177 177 #endif 178 178 colN.push_back(tgN); … … 182 182 colCS.push_back(lastCS); 183 183 #ifdef debug 184 G4cout<<"G4Q PrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;184 G4cout<<"G4QHyPNCS::GetCrosSec:lCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 185 185 #endif 186 186 //} // M.K. Presence of H1 with high threshold breaks the syncronization 187 187 #ifdef pdebug 188 G4cout<<"G4Q PrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;188 G4cout<<"G4QHyPCS::GeCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 189 189 #endif 190 190 return lastCS*millibarn; … … 193 193 { 194 194 #ifdef debug 195 G4cout<<"G4Q PrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;195 G4cout<<"G4QHyPNucCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl; 196 196 #endif 197 197 colP[lastI]=pMom; … … 202 202 { 203 203 #ifdef debug 204 G4cout<<"G4Q PrCS::GetCS: CurrentP="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;204 G4cout<<"G4QHyPNCS::GetCS: CurrentP="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 205 205 #endif 206 206 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 219 219 G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 220 220 #endif 221 lastCS=CalculateCrossSection(fCS,1,j, 2212,lastZ,lastN,pMom); // Only read and UpdateDB221 lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB 222 222 lastP=pMom; 223 223 } 224 224 #ifdef debug 225 G4cout<<"==>G4Q PrCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;225 G4cout<<"==>G4QHyPNCS::GetCrosS:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 226 226 #endif 227 227 return lastCS*millibarn; … … 245 245 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 246 246 #ifdef debug 247 G4cout<<"G4Q ProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;247 G4cout<<"G4QHyPNuCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 248 248 #endif 249 249 G4double sigma=0.; … … 251 251 G4double A=targN+targZ; // A of the target 252 252 #ifdef debug 253 G4cout<<"G4Q ProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;253 G4cout<<"G4QHyPNucCS::CalCS: A="<<A<<", F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 254 254 #endif 255 255 if(F<=0) // This isotope was not the last used isotop … … 280 280 } 281 281 #ifdef debug 282 G4cout<<"-*->G4Q Pr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;282 G4cout<<"-*->G4QHyPNucCS::CalcCS: Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl; 283 283 #endif 284 284 // --- End of possible separate function … … 287 287 if(sync!=I) 288 288 { 289 G4cerr<<"***G4Q PiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ289 G4cerr<<"***G4QHyPNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ 290 290 <<", N="<<targN<<", F="<<F<<G4endl; 291 291 //G4Exception("G4PiMinusNuclearCS::CalculateCS:","39",FatalException,"DBoverflow"); … … 297 297 // ============================== NOW the Magic Formula ================================= 298 298 #ifdef debug 299 G4cout<<"G4Q PrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;299 G4cout<<"G4QHyPNCS::CalcCS:lTH="<<lastTH<<",Pi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 300 300 #endif 301 301 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 303 303 { 304 304 #ifdef debug 305 G4cout<<"G4Q PrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;305 G4cout<<"G4QHyPNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 306 306 #endif 307 307 if(A<=1.) sigma=0.; … … 309 309 #ifdef debugn 310 310 if(sigma<0.) 311 G4cout<<"G4Q PrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;311 G4cout<<"G4QHyPNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",d="<<dP<<G4endl; 312 312 #endif 313 313 } … … 316 316 G4double lP=std::log(Momentum); 317 317 #ifdef debug 318 G4cout<<"G4Q ProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;318 G4cout<<"G4QHyPNucCS::CalcCS: before HEN nH="<<nH<<", iE="<<milP<<",dlP="<<dlP<<G4endl; 319 319 #endif 320 320 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QIonIonCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 19-Aug-07 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 420 420 G4int tN, G4double Mom) 421 421 { 422 static G4VQCrossSection* ElCSman = G4QElasticCrossSection::GetPointer(); 422 static G4VQCrossSection* PElCSman = G4QProtonElasticCrossSection::GetPointer(); 423 static G4VQCrossSection* NElCSman = G4QNeutronElasticCrossSection::GetPointer(); 423 424 static G4VQCrossSection* InelPCSman = G4QProtonNuclearCrossSection::GetPointer(); 424 425 static G4VQCrossSection* InelNCSman = G4QNeutronNuclearCrossSection::GetPointer(); … … 433 434 { 434 435 inCS=InelPCSman->GetCrossSection(true, Mom, tZ, tN, 2212); 435 elCS= ElCSman->GetCrossSection(true, Mom, tZ, tN, 2212);436 elCS=PElCSman->GetCrossSection(true, Mom, tZ, tN, 2212); 436 437 } 437 438 else if(pN == 1 && !pZ) // neutron-nuclear 438 439 { 439 440 inCS=InelNCSman->GetCrossSection(true, Mom, tZ, tN, 2112); 440 elCS= ElCSman->GetCrossSection(true, Mom, tZ, tN, 2112);441 elCS=NElCSman->GetCrossSection(true, Mom, tZ, tN, 2112); 441 442 } 442 443 else G4cerr<<"-Warn-G4QIICS::CaCS:pZ="<<pZ<<",pN="<<pN<<",tZ="<<tZ<<",tN="<<tN<<G4endl; -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonMinusNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 91 91 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 92 92 #ifdef debug 93 G4cout<<"G4Q PrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN93 G4cout<<"G4QKmCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 94 94 <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 95 95 #endif … … 105 105 j = 0; // A#0f records found in DB for this projectile 106 106 #ifdef debug 107 G4cout<<"G4Q PrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;107 G4cout<<"G4QKmCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 108 108 #endif 109 109 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 114 114 lastTH =colTH[i]; // The last THreshold (A-dependent) 115 115 #ifdef debug 116 G4cout<<"G4Q PrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;116 G4cout<<"G4QKmCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 117 117 #endif 118 118 if(pMom<=lastTH) … … 129 129 { 130 130 #ifdef debug 131 G4cout<<"..G4Q PrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;132 #endif 133 //CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // Update param's only131 G4cout<<"..G4QKmCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 132 #endif 133 //CalculateCrossSection(fCS,-1,j,-321,lastZ,lastN,pMom); // Update param's only 134 134 return lastCS*millibarn; // Use theLastCS 135 135 } … … 137 137 // Momentum pMom is in IU ! @@ Units 138 138 #ifdef debug 139 G4cout<<"G4Q PrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // read & update142 #ifdef debug 143 G4cout<<"G4Q PrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;139 G4cout<<"G4QKmCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl; 140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j,-321,lastZ,lastN,pMom); // read & update 142 #ifdef debug 143 G4cout<<"G4QKmCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl; 144 144 #endif 145 145 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 146 146 { 147 147 #ifdef debug 148 G4cout<<"G4Q PrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;148 G4cout<<"G4QKmCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 149 149 #endif 150 150 lastCS=0.; … … 154 154 } 155 155 #ifdef debug 156 G4cout<<"-->G4Q PrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]156 G4cout<<"-->G4QKmCrossSec::GetCrosSec: pPDG=-321, j="<<j<<", N="<<colN[i] 157 157 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 158 158 #endif … … 160 160 } 161 161 #ifdef debug 162 G4cout<<"-?-G4Q PrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;162 G4cout<<"-?-G4QKmCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl; 163 163 #endif 164 164 if(!in) // This isotope has not been calculated previously 165 165 { 166 166 #ifdef debug 167 G4cout<<"^^^G4Q PrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;167 G4cout<<"^^^G4QKmCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 168 168 #endif 169 169 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 170 lastCS=CalculateCrossSection(fCS,0,j, 2212,lastZ,lastN,pMom); //calculate & create170 lastCS=CalculateCrossSection(fCS,0,j,-321,lastZ,lastN,pMom); //calculate & create 171 171 //if(lastCS>0.) // It means that the AMBD was initialized 172 172 //{ … … 174 174 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 175 175 #ifdef debug 176 G4cout<<"G4Q PrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;176 G4cout<<"G4QKmCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 177 177 #endif 178 178 colN.push_back(tgN); … … 182 182 colCS.push_back(lastCS); 183 183 #ifdef debug 184 G4cout<<"G4Q PrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;184 G4cout<<"G4QKmCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 185 185 #endif 186 186 //} // M.K. Presence of H1 with high threshold breaks the syncronization 187 187 #ifdef pdebug 188 G4cout<<"G4Q PrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;188 G4cout<<"G4QKmCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 189 189 #endif 190 190 return lastCS*millibarn; … … 193 193 { 194 194 #ifdef debug 195 G4cout<<"G4Q PrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;195 G4cout<<"G4QKmCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl; 196 196 #endif 197 197 colP[lastI]=pMom; … … 202 202 { 203 203 #ifdef debug 204 G4cout<<"G4Q PrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;204 G4cout<<"G4QKmCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 205 205 #endif 206 206 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 219 219 G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 220 220 #endif 221 lastCS=CalculateCrossSection(fCS,1,j, 2212,lastZ,lastN,pMom); // Only read and UpdateDB221 lastCS=CalculateCrossSection(fCS,1,j,-321,lastZ,lastN,pMom); // Only read and UpdateDB 222 222 lastP=pMom; 223 223 } 224 224 #ifdef debug 225 G4cout<<"==>G4Q PrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;225 G4cout<<"==>G4QKmCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 226 226 #endif 227 227 return lastCS*millibarn; … … 245 245 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 246 246 #ifdef debug 247 G4cout<<"G4Q ProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;247 G4cout<<"G4QKmNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 248 248 #endif 249 249 G4double sigma=0.; … … 251 251 G4double A=targN+targZ; // A of the target 252 252 #ifdef debug 253 G4cout<<"G4Q ProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;253 G4cout<<"G4QKmNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 254 254 #endif 255 255 if(F<=0) // This isotope was not the last used isotop … … 280 280 } 281 281 #ifdef debug 282 G4cout<<"-*->G4Q Pr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;282 G4cout<<"-*->G4QKmNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl; 283 283 #endif 284 284 // --- End of possible separate function … … 297 297 // ============================== NOW the Magic Formula ================================= 298 298 #ifdef debug 299 G4cout<<"G4Q PrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;299 G4cout<<"G4QKmNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 300 300 #endif 301 301 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 303 303 { 304 304 #ifdef debug 305 G4cout<<"G4Q PrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;305 G4cout<<"G4QKmNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 306 306 #endif 307 307 if(A<=1.) sigma=0.; … … 309 309 #ifdef debugn 310 310 if(sigma<0.) 311 G4cout<<"G4Q PrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;311 G4cout<<"G4QKmNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl; 312 312 #endif 313 313 } … … 316 316 G4double lP=std::log(Momentum); 317 317 #ifdef debug 318 G4cout<<"G4Q ProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;318 G4cout<<"G4QKmNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl; 319 319 #endif 320 320 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonPlusNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 91 91 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 92 92 #ifdef debug 93 G4cout<<"G4Q PrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN93 G4cout<<"G4QKpCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 94 94 <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 95 95 #endif … … 105 105 j = 0; // A#0f records found in DB for this projectile 106 106 #ifdef debug 107 G4cout<<"G4Q PrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;107 G4cout<<"G4QKpCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 108 108 #endif 109 109 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 114 114 lastTH =colTH[i]; // The last THreshold (A-dependent) 115 115 #ifdef debug 116 G4cout<<"G4Q PrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;116 G4cout<<"G4QKpCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 117 117 #endif 118 118 if(pMom<=lastTH) … … 129 129 { 130 130 #ifdef debug 131 G4cout<<"..G4Q PrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;132 #endif 133 //CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // Update param's only131 G4cout<<"..G4QKpCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 132 #endif 133 //CalculateCrossSection(fCS,-1,j,321,lastZ,lastN,pMom); // Update param's only 134 134 return lastCS*millibarn; // Use theLastCS 135 135 } … … 137 137 // Momentum pMom is in IU ! @@ Units 138 138 #ifdef debug 139 G4cout<<"G4Q PrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // read & update142 #ifdef debug 143 G4cout<<"G4Q PrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;139 G4cout<<"G4QKpCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl; 140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j,321,lastZ,lastN,pMom); // read & update 142 #ifdef debug 143 G4cout<<"G4QKpCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl; 144 144 #endif 145 145 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 146 146 { 147 147 #ifdef debug 148 G4cout<<"G4Q PrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;148 G4cout<<"G4QKpCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 149 149 #endif 150 150 lastCS=0.; … … 154 154 } 155 155 #ifdef debug 156 G4cout<<"-->G4Q PrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]156 G4cout<<"-->G4QKpCrossSec::GetCrosSec: pPDG=321, j="<<j<<", N="<<colN[i] 157 157 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 158 158 #endif … … 160 160 } 161 161 #ifdef debug 162 G4cout<<"-?-G4Q PrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;162 G4cout<<"-?-G4QKpCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl; 163 163 #endif 164 164 if(!in) // This isotope has not been calculated previously 165 165 { 166 166 #ifdef debug 167 G4cout<<"^^^G4Q PrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;167 G4cout<<"^^^G4QKpCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 168 168 #endif 169 169 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 170 lastCS=CalculateCrossSection(fCS,0,j, 2212,lastZ,lastN,pMom); //calculate & create170 lastCS=CalculateCrossSection(fCS,0,j,321,lastZ,lastN,pMom); //calculate & create 171 171 //if(lastCS>0.) // It means that the AMBD was initialized 172 172 //{ … … 174 174 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 175 175 #ifdef debug 176 G4cout<<"G4Q PrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;176 G4cout<<"G4QKpCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 177 177 #endif 178 178 colN.push_back(tgN); … … 182 182 colCS.push_back(lastCS); 183 183 #ifdef debug 184 G4cout<<"G4Q PrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;184 G4cout<<"G4QKpCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 185 185 #endif 186 186 //} // M.K. Presence of H1 with high threshold breaks the syncronization 187 187 #ifdef pdebug 188 G4cout<<"G4Q PrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;188 G4cout<<"G4QKpCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 189 189 #endif 190 190 return lastCS*millibarn; … … 193 193 { 194 194 #ifdef debug 195 G4cout<<"G4Q PrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;195 G4cout<<"G4QKpCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl; 196 196 #endif 197 197 colP[lastI]=pMom; … … 202 202 { 203 203 #ifdef debug 204 G4cout<<"G4Q PrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;204 G4cout<<"G4QKpCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 205 205 #endif 206 206 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 219 219 G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 220 220 #endif 221 lastCS=CalculateCrossSection(fCS,1,j, 2212,lastZ,lastN,pMom); // Only read and UpdateDB221 lastCS=CalculateCrossSection(fCS,1,j,321,lastZ,lastN,pMom); // Only read and UpdateDB 222 222 lastP=pMom; 223 223 } 224 224 #ifdef debug 225 G4cout<<"==>G4Q PrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;225 G4cout<<"==>G4QKpCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 226 226 #endif 227 227 return lastCS*millibarn; … … 245 245 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 246 246 #ifdef debug 247 G4cout<<"G4Q ProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;247 G4cout<<"G4QKpNucCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 248 248 #endif 249 249 G4double sigma=0.; … … 251 251 G4double A=targN+targZ; // A of the target 252 252 #ifdef debug 253 G4cout<<"G4Q ProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;253 G4cout<<"G4QKpNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 254 254 #endif 255 255 if(F<=0) // This isotope was not the last used isotop … … 280 280 } 281 281 #ifdef debug 282 G4cout<<"-*->G4Q Pr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;282 G4cout<<"-*->G4QKpNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl; 283 283 #endif 284 284 // --- End of possible separate function … … 297 297 // ============================== NOW the Magic Formula ================================= 298 298 #ifdef debug 299 G4cout<<"G4Q PrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;299 G4cout<<"G4QKpNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 300 300 #endif 301 301 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 303 303 { 304 304 #ifdef debug 305 G4cout<<"G4Q PrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;305 G4cout<<"G4QKpNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 306 306 #endif 307 307 if(A<=1.) sigma=0.; … … 309 309 #ifdef debugn 310 310 if(sigma<0.) 311 G4cout<<"G4Q PrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;311 G4cout<<"G4QKpNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl; 312 312 #endif 313 313 } … … 316 316 G4double lP=std::log(Momentum); 317 317 #ifdef debug 318 G4cout<<"G4Q ProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;318 G4cout<<"G4QKpNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl; 319 319 #endif 320 320 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonZeroNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 76 76 #ifdef debug 77 77 G4cout<<"G4QKZCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 78 <<"("<<lastN<<"), PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;78 <<"("<<lastN<<"), PDG=130/310, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 79 79 #endif 80 80 if(PDG!=130 && PDG!=310 && PDG!=311 && PDG!=-311) -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QMuonNuclearCrossSection.cc
r1228 r1315 25 25 // 26 26 // 27 // $Id: G4QMuonNuclearCrossSection.cc,v 1. 1 2009/11/16 18:15:43mkossov Exp $28 // GEANT4 tag $Name: geant4-09-0 3$27 // $Id: G4QMuonNuclearCrossSection.cc,v 1.2 2010/06/02 09:08:25 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 291 291 //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0); 292 292 G4double mT= 0.; 293 if( G4NucleiProperties::IsInStableTable(A,Z))293 if(Z&&G4NucleiProperties::IsInStableTable(A,Z)) 294 294 mT = G4NucleiProperties::GetNuclearMass(A,Z)/MeV; 295 295 else return 0.; // If it is not in the Table of Stable Nuclei, then the Threshold=0 296 296 // --------- Splitting thresholds 297 297 G4double mP= infEn; 298 if( Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))298 if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1)) 299 299 mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV;// ResNucMass for a proton 300 300 301 301 G4double mN= infEn; 302 if( N&&G4NucleiProperties::IsInStableTable(A-1,Z))302 if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z)) 303 303 mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV; // ResNucMass for a neutron 304 304 305 305 G4double mA= infEn; 306 if( N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))306 if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2)) 307 307 mA=G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV; // ResNucMass for an alpha 308 308 -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronCaptureRatio.cc
r1228 r1315 25 25 // 26 26 // 27 // $Id: G4QNeutronCaptureRatio.cc,v 1. 2 2009/12/07 10:32:06 mkossov Exp $28 // GEANT4 tag $Name: geant4-09-0 3$27 // $Id: G4QNeutronCaptureRatio.cc,v 1.4 2010/04/19 12:40:56 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 94 94 if(A>247) 95 95 { 96 G4cout<<"-*-Warning-*-G4 QuasiFreeRatio::GetRatio: A="<<A<<">247, return zero"<<G4endl;96 G4cout<<"-*-Warning-*-G4NeutronCaptureRatio::GetRatio:A="<<A<<">247, return 0"<<G4endl; 97 97 return 0.; 98 98 } … … 663 663 static const G4int N47=2; 664 664 static const G4double pZ47N60[5]={.018, 5., .1, .004, .003}; 665 static const std::pair<G4int, const G4double*> Z47N60=std::make_pair( 48,pZ47N60);665 static const std::pair<G4int, const G4double*> Z47N60=std::make_pair(60,pZ47N60); 666 666 static const G4double pZ47N62[5]={.018, 4., .015, .06, .0008}; 667 static const std::pair<G4int, const G4double*> Z47N62=std::make_pair( 50,pZ47N62);667 static const std::pair<G4int, const G4double*> Z47N62=std::make_pair(62,pZ47N62); 668 668 static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62}; 669 669 //==> Cd(Z=48) -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-May-09 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 770 770 static const G4int N47=2; 771 771 static const G4double pZ47N60[4]={3.E-12, 500., .01, 2.7E-5}; 772 static const std::pair<G4int, const G4double*> Z47N60=std::make_pair( 48,pZ47N60);772 static const std::pair<G4int, const G4double*> Z47N60=std::make_pair(60,pZ47N60); 773 773 static const G4double pZ47N62[4]={3.E-12, 480., .01, 2.5E-4}; 774 static const std::pair<G4int, const G4double*> Z47N62=std::make_pair( 50,pZ47N62);774 static const std::pair<G4int, const G4double*> Z47N62=std::make_pair(62,pZ47N62); 775 775 static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62}; 776 776 //==> Cd(Z=48) … … 889 889 static const G4int N56=7; 890 890 static const G4double pZ56N74[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented *** 891 static const std::pair<G4int, const G4double*> Z56N74=std::make_pair(7 0,pZ56N74);891 static const std::pair<G4int, const G4double*> Z56N74=std::make_pair(74,pZ56N74); 892 892 static const G4double pZ56N76[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented *** 893 static const std::pair<G4int, const G4double*> Z56N76=std::make_pair(7 1,pZ56N76);893 static const std::pair<G4int, const G4double*> Z56N76=std::make_pair(76,pZ56N76); 894 894 static const G4double pZ56N78[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented *** 895 static const std::pair<G4int, const G4double*> Z56N78=std::make_pair(7 2,pZ56N78);895 static const std::pair<G4int, const G4double*> Z56N78=std::make_pair(78,pZ56N78); 896 896 static const G4double pZ56N79[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented *** 897 static const std::pair<G4int, const G4double*> Z56N79=std::make_pair(7 3,pZ56N79);897 static const std::pair<G4int, const G4double*> Z56N79=std::make_pair(79,pZ56N79); 898 898 static const G4double pZ56N80[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented *** 899 static const std::pair<G4int, const G4double*> Z56N80=std::make_pair( 74,pZ56N80);899 static const std::pair<G4int, const G4double*> Z56N80=std::make_pair(80,pZ56N80); 900 900 static const G4double pZ56N81[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented *** 901 static const std::pair<G4int, const G4double*> Z56N81=std::make_pair( 76,pZ56N81);901 static const std::pair<G4int, const G4double*> Z56N81=std::make_pair(81,pZ56N81); 902 902 static const G4double pZ56N82[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented *** 903 static const std::pair<G4int, const G4double*> Z56N82=std::make_pair( 78,pZ56N82);903 static const std::pair<G4int, const G4double*> Z56N82=std::make_pair(82,pZ56N82); 904 904 static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N78, Z56N79, 905 905 Z56N80, Z56N81, Z56N82}; -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPhotonNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 276 276 //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0); 277 277 G4double mT= 0.; 278 if( G4NucleiProperties::IsInStableTable(A,Z))278 if(Z&&G4NucleiProperties::IsInStableTable(A,Z)) 279 279 mT = G4NucleiProperties::GetNuclearMass(A,Z)/MeV; 280 else return 0.; // If it is not in the Table of Stable Nuclei, then the Threshold=0 280 281 G4double mP= infEn; 281 if( Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))282 if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1)) 282 283 mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV;// ResNucMass for a proton 283 284 284 285 G4double mN= infEn; 285 if( N&&G4NucleiProperties::IsInStableTable(A-1,Z))286 if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z)) 286 287 mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV; // ResNucMass for a neutron 287 288 288 289 G4double mA= infEn; 289 if( N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))290 if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2)) 290 291 mA=G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV; // ResNucMass for an alpha 291 292 -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionMinusNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 91 91 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 92 92 #ifdef debug 93 G4cout<<"G4QP rCS::GetCS:>>> f="<<fCS<<",p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN94 <<"("<<lastN<<"), PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;93 G4cout<<"G4QPimNCS::GetCS:>>>f="<<fCS<<",p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 94 <<"("<<lastN<<"), PDG=-211, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 95 95 #endif 96 96 if(PDG!=-211) G4cout<<"-Warning-G4QPiMinusCS::GetCS:**Not a PiMinus**,PDG="<<PDG<<G4endl; … … 105 105 j = 0; // A#0f records found in DB for this projectile 106 106 #ifdef debug 107 G4cout<<"G4QP rCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;107 G4cout<<"G4QPimNucCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 108 108 #endif 109 109 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 114 114 lastTH =colTH[i]; // The last THreshold (A-dependent) 115 115 #ifdef debug 116 G4cout<<"G4QP rCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;116 G4cout<<"G4QPimCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 117 117 #endif 118 118 if(pMom<=lastTH) … … 129 129 { 130 130 #ifdef debug 131 G4cout<<" ..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;132 #endif 133 //CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // Update param's only131 G4cout<<"G4QPimNCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 132 #endif 133 //CalculateCrossSection(fCS,-1,j,-211,lastZ,lastN,pMom); // Update param's only 134 134 return lastCS*millibarn; // Use theLastCS 135 135 } … … 137 137 // Momentum pMom is in IU ! @@ Units 138 138 #ifdef debug 139 G4cout<<"G4QP rCS::G:UpdatDBP="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j, 2212,lastZ,lastN,pMom); // read & update142 #ifdef debug 143 G4cout<<"G4QP rCS::GetCrosSec:*****> New (inDB) Calculated CS="<<lastCS<<G4endl;139 G4cout<<"G4QPimNCS::G:UpdDB,P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl; 140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j,-211,lastZ,lastN,pMom); // read & update 142 #ifdef debug 143 G4cout<<"G4QPimNucCS::GetCrosSec:*****> New (inDB) Calculated CS="<<lastCS<<G4endl; 144 144 #endif 145 145 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 146 146 { 147 147 #ifdef debug 148 G4cout<<"G4QP rCS::GetCS:New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;148 G4cout<<"G4QPimNucCS::GetCS:New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 149 149 #endif 150 150 lastCS=0.; … … 154 154 } 155 155 #ifdef debug 156 G4cout<<"-->G4QP rCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]156 G4cout<<"-->G4QPimNucCrossSec::GetCrosSec: pPDG=-211, j="<<j<<", N="<<colN[i] 157 157 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 158 158 #endif … … 160 160 } 161 161 #ifdef debug 162 G4cout<<"-?-G4QP rCS::GetCS:RCZ="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;162 G4cout<<"-?-G4QPimCS::GetCS:R,Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl; 163 163 #endif 164 164 if(!in) // This isotope has not been calculated previously 165 165 { 166 166 #ifdef debug 167 G4cout<<"^^^G4QP rCS::GetCS:CalcNewP="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;167 G4cout<<"^^^G4QPimCS::GetCS:CalcNewP="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 168 168 #endif 169 169 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 170 lastCS=CalculateCrossSection(fCS,0,j, 2212,lastZ,lastN,pMom); //calculate & create170 lastCS=CalculateCrossSection(fCS,0,j,-211,lastZ,lastN,pMom); //calculate & create 171 171 //if(lastCS>0.) // It means that the AMBD was initialized 172 172 //{ … … 174 174 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 175 175 #ifdef debug 176 G4cout<<"G4QP rCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;176 G4cout<<"G4QPimNucCrossSec::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 177 177 #endif 178 178 colN.push_back(tgN); … … 182 182 colCS.push_back(lastCS); 183 183 #ifdef debug 184 G4cout<<"G4QP rCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;184 G4cout<<"G4QPimCS::GetCrosSec:reCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 185 185 #endif 186 186 //} // M.K. Presence of H1 with high threshold breaks the syncronization 187 187 #ifdef pdebug 188 G4cout<<"G4QP rCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;188 G4cout<<"G4QPimCS::GeCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 189 189 #endif 190 190 return lastCS*millibarn; … … 193 193 { 194 194 #ifdef debug 195 G4cout<<"G4QP rCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;195 G4cout<<"G4QPimNucCrossSect::GetCS: Update lastI="<<lastI<<", j="<<j<<G4endl; 196 196 #endif 197 197 colP[lastI]=pMom; … … 202 202 { 203 203 #ifdef debug 204 G4cout<<"G4QP rCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;204 G4cout<<"G4QPimCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 205 205 #endif 206 206 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 219 219 G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 220 220 #endif 221 lastCS=CalculateCrossSection(fCS,1,j, 2212,lastZ,lastN,pMom); // Only read and UpdateDB221 lastCS=CalculateCrossSection(fCS,1,j,-211,lastZ,lastN,pMom); // Only read and UpdateDB 222 222 lastP=pMom; 223 223 } 224 224 #ifdef debug 225 G4cout<<"==>G4QP rCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;225 G4cout<<"==>G4QPimCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 226 226 #endif 227 227 return lastCS*millibarn; … … 245 245 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 246 246 #ifdef debug 247 G4cout<<"G4QP rotNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;247 G4cout<<"G4QPimNCS::CalcCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 248 248 #endif 249 249 G4double sigma=0.; … … 251 251 G4double A=targN+targZ; // A of the target 252 252 #ifdef debug 253 G4cout<<"G4QP rotNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;253 G4cout<<"G4QPimNucCS::CalcCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 254 254 #endif 255 255 if(F<=0) // This isotope was not the last used isotop … … 280 280 } 281 281 #ifdef debug 282 G4cout<<"-*->G4QP r0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;282 G4cout<<"-*->G4QPimNucCS::CalcCS: Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl; 283 283 #endif 284 284 // --- End of possible separate function … … 297 297 // ============================== NOW the Magic Formula ================================= 298 298 #ifdef debug 299 G4cout<<"G4QP rNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;299 G4cout<<"G4QPimNCS::CalcCS:lTH="<<lastTH<<",Pi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 300 300 #endif 301 301 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 303 303 { 304 304 #ifdef debug 305 G4cout<<"G4QP rNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;305 G4cout<<"G4QPimNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 306 306 #endif 307 307 if(A<=1.) sigma=0.; … … 309 309 #ifdef debugn 310 310 if(sigma<0.) 311 G4cout<<"G4QP rNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;311 G4cout<<"G4QPimNCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl; 312 312 #endif 313 313 } … … 316 316 G4double lP=std::log(Momentum); 317 317 #ifdef debug 318 G4cout<<"G4QP rotNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;318 G4cout<<"G4QPimNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl; 319 319 #endif 320 320 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionPlusNuclearCrossSection.cc
r1228 r1315 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 3$28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 91 91 // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---*** 92 92 #ifdef debug 93 G4cout<<"G4QP rCS::GetCS:>>>f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN94 <<"("<<lastN<<"),PDG=2 212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;93 G4cout<<"G4QPipCS::GetCS:>>>f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN 94 <<"("<<lastN<<"),PDG=211, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl; 95 95 #endif 96 96 if(PDG!=211) G4cout<<"-Warning-G4QPionPlusCS::GetCS:**Not a PiPlus**,PDG="<<PDG<<G4endl; … … 105 105 j = 0; // A#0f records found in DB for this projectile 106 106 #ifdef debug 107 G4cout<<"G4QP rCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;107 G4cout<<"G4QPipCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl; 108 108 #endif 109 109 if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope … … 114 114 lastTH =colTH[i]; // The last THreshold (A-dependent) 115 115 #ifdef debug 116 G4cout<<"G4QP rCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;116 G4cout<<"G4QPipCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl; 117 117 #endif 118 118 if(pMom<=lastTH) 119 119 { 120 120 #ifdef debug 121 G4cout<<"G4QP CS::GetCS:Found,P="<<pMom<<" < Threshold="<<lastTH<<",CS=0"<<G4endl;121 G4cout<<"G4QPipCS::GCS:Found,P="<<pMom<<" < Threshold="<<lastTH<<",CS=0"<<G4endl; 122 122 #endif 123 123 return 0.; // Energy is below the Threshold value … … 129 129 { 130 130 #ifdef debug 131 G4cout<<"..G4QP rCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;132 #endif 133 //CalculateCrossSection(fCS,-1,j,2 212,lastZ,lastN,pMom); // Update param's only131 G4cout<<"..G4QPipCS::GetCS:DoNothing,P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl; 132 #endif 133 //CalculateCrossSection(fCS,-1,j,211,lastZ,lastN,pMom); // Update param's only 134 134 return lastCS*millibarn; // Use theLastCS 135 135 } … … 137 137 // Momentum pMom is in IU ! @@ Units 138 138 #ifdef debug 139 G4cout<<"G4QP rCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j,2 212,lastZ,lastN,pMom); // read & update142 #ifdef debug 143 G4cout<<"G4QP rCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;139 G4cout<<"G4QPipCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 140 #endif 141 lastCS=CalculateCrossSection(fCS,-1,j,211,lastZ,lastN,pMom); // read & update 142 #ifdef debug 143 G4cout<<"G4QPipNCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl; 144 144 #endif 145 145 if(lastCS<=0. && pMom>lastTH) // Correct the threshold (@@ No intermediate Zeros) 146 146 { 147 147 #ifdef debug 148 G4cout<<"G4QP rCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;148 G4cout<<"G4QPipNCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl; 149 149 #endif 150 150 lastCS=0.; … … 154 154 } 155 155 #ifdef debug 156 G4cout<<"-->G4QP rCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]156 G4cout<<"-->G4QPipNucCrossSec::GetCrosSec: pPDG=211, j="<<j<<", N="<<colN[i] 157 157 <<",Z["<<i<<"]="<<colZ[i]<<G4endl; 158 158 #endif … … 160 160 } 161 161 #ifdef debug 162 G4cout<<"-?-G4QP rCS::GetCS:RCZ="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;162 G4cout<<"-?-G4QPipCS::GetCS:R,Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl; 163 163 #endif 164 164 if(!in) // This isotope has not been calculated previously 165 165 { 166 166 #ifdef debug 167 G4cout<<"^^^G4QP rCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;167 G4cout<<"^^^G4QPipCS::GeCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl; 168 168 #endif 169 169 //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU) 170 lastCS=CalculateCrossSection(fCS,0,j,2 212,lastZ,lastN,pMom); //calculate & create170 lastCS=CalculateCrossSection(fCS,0,j,211,lastZ,lastN,pMom); //calculate & create 171 171 //if(lastCS>0.) // It means that the AMBD was initialized 172 172 //{ … … 174 174 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 175 175 #ifdef debug 176 G4cout<<"G4QP rCrossSection::GetCrossSect:NewThresh="<<lastTH<<",P="<<pMom<<G4endl;176 G4cout<<"G4QPipCrossSection::GetCrossSect:NewThresh="<<lastTH<<",P="<<pMom<<G4endl; 177 177 #endif 178 178 colN.push_back(tgN); … … 182 182 colCS.push_back(lastCS); 183 183 #ifdef debug 184 G4cout<<"G4QP rCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;184 G4cout<<"G4QPipNCS::GetCrosSec:lCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; 185 185 #endif 186 186 //} // M.K. Presence of H1 with high threshold breaks the syncronization 187 187 #ifdef pdebug 188 G4cout<<"G4QP rCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;188 G4cout<<"G4QPipCS::GeCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 189 189 #endif 190 190 return lastCS*millibarn; … … 193 193 { 194 194 #ifdef debug 195 G4cout<<"G4QP rCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;195 G4cout<<"G4QPipNucCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl; 196 196 #endif 197 197 colP[lastI]=pMom; … … 202 202 { 203 203 #ifdef debug 204 G4cout<<"G4QP rCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;204 G4cout<<"G4QPipCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl; 205 205 #endif 206 206 return 0.; // Momentum is below the Threshold Value -> CS=0 … … 219 219 G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl; 220 220 #endif 221 lastCS=CalculateCrossSection(fCS,1,j,2 212,lastZ,lastN,pMom); // Only read and UpdateDB221 lastCS=CalculateCrossSection(fCS,1,j,211,lastZ,lastN,pMom); // Only read and UpdateDB 222 222 lastP=pMom; 223 223 } 224 224 #ifdef debug 225 G4cout<<"==>G4QP rCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;225 G4cout<<"==>G4QPipCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl; 226 226 #endif 227 227 return lastCS*millibarn; … … 245 245 static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c 246 246 #ifdef debug 247 G4cout<<"G4QP rotNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;247 G4cout<<"G4QPipNuCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl; 248 248 #endif 249 249 G4double sigma=0.; … … 251 251 G4double A=targN+targZ; // A of the target 252 252 #ifdef debug 253 G4cout<<"G4QP rotNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;253 G4cout<<"G4QPipNucCS::CalCS: A="<<A<<", F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl; 254 254 #endif 255 255 if(F<=0) // This isotope was not the last used isotop … … 280 280 } 281 281 #ifdef debug 282 G4cout<<"-*->G4QP r0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;282 G4cout<<"-*->G4QPipNucCS::CalcCS:Tab for Z="<<targZ<<", N="<<targN<<",I="<<I<<G4endl; 283 283 #endif 284 284 // --- End of possible separate function … … 297 297 // ============================== NOW the Magic Formula ================================= 298 298 #ifdef debug 299 G4cout<<"G4QP rNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;299 G4cout<<"G4QPipNCS::CalcCS:lTH="<<lastTH<<",Pi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl; 300 300 #endif 301 301 if (Momentum<lastTH) return 0.; // It must be already checked in the interface class … … 303 303 { 304 304 #ifdef debug 305 G4cout<<"G4QP rNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;305 G4cout<<"G4QPipNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl; 306 306 #endif 307 307 if(A<=1.) sigma=0.; … … 309 309 #ifdef debugn 310 310 if(sigma<0.) 311 G4cout<<"G4QP rNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;311 G4cout<<"G4QPipNuCS::CalCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl; 312 312 #endif 313 313 } … … 316 316 G4double lP=std::log(Momentum); 317 317 #ifdef debug 318 G4cout<<"G4QP rotNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;318 G4cout<<"G4QPipNucCS::CalcCS: before HEN nH="<<nH<<", iE="<<milP<<",dlP="<<dlP<<G4endl; 319 319 #endif 320 320 sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN); -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QTauNuclearCrossSection.cc
r1228 r1315 25 25 // 26 26 // 27 // $Id: G4QTauNuclearCrossSection.cc,v 1. 1 2009/11/16 18:15:43mkossov Exp $28 // GEANT4 tag $Name: geant4-09-0 3$27 // $Id: G4QTauNuclearCrossSection.cc,v 1.2 2010/06/02 09:08:25 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 295 295 // --------- Splitting thresholds 296 296 G4double mP= infEn; 297 if( Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))297 if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1)) 298 298 mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV; // ResNucMass for a proton 299 299 300 300 G4double mN= infEn; 301 if( N&&G4NucleiProperties::IsInStableTable(A-1,Z))301 if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z)) 302 302 mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV; // ResNucMass for a neutron 303 303 304 304 G4double mA= infEn; 305 if( N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))305 if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2)) 306 306 mA = G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV; // ResNucMass for an alpha 307 307 -
trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QuasiFreeRatios.cc
r1228 r1315 25 25 // 26 26 // 27 // $Id: G4QuasiFreeRatios.cc,v 1. 1 2009/11/16 18:15:43mkossov Exp $28 // GEANT4 tag $Name: geant4-09-0 3$27 // $Id: G4QuasiFreeRatios.cc,v 1.3 2010/01/22 17:02:48 mkossov Exp $ 28 // GEANT4 tag $Name: geant4-09-04-beta-cand-01 $ 29 29 // 30 30 // … … 443 443 else 444 444 { 445 G4double lr=lp+1.27; 446 G4double LE=1.53/(lr*lr+.0676); 447 G4double ld=lp-lmi; 445 G4double lr=lp+1.27; // p1 446 G4double LE=1.53/(lr*lr+.0676); // p2, p3 447 G4double ld=lp-lmi; // p4 (lmi=3.5) 448 448 G4double ld2=ld*ld; 449 449 G4double p2=p*p; 450 450 G4double p4=p2*p2; 451 451 G4double sp=std::sqrt(p); 452 G4double lm=lp+.36; 453 G4double md=lm*lm+.04; 454 G4double lh=lp-.017; 455 G4double hd=lh*lh+.0025; 456 El=LE+(pbe*ld2+2.4+7./sp)/(1.+.7/p4)+.6/md+.05/hd; 452 G4double lm=lp+.36; // p5 453 G4double md=lm*lm+.04; // p6 454 G4double lh=lp-.017; // p7 455 G4double hd=lh*lh+.0025; // p8 456 El=LE+(pbe*ld2+2.4+7./sp)/(1.+.7/p4)+.6/md+.05/hd;//p9(pbe=.0557),p10,p11,p12,p13,p14 457 457 To=LE*3+(pbt*ld2+22.3+12./sp)/(1.+.4/p4)+1./md+.06/hd; 458 458 } … … 478 478 else 479 479 { 480 G4double lr=lp+1.27; 480 G4double lr=lp+1.27; // p1 481 481 G4double lr2=lr*lr; 482 G4double LE=13./(lr2+lr2*lr2+.0676); 483 G4double ld=lp-lmi; 482 G4double LE=13./(lr2+lr2*lr2+.0676); // p2, p3 483 G4double ld=lp-lmi; // p4 (lmi=3.5) 484 484 G4double ld2=ld*ld; 485 485 G4double p2=p*p; 486 486 G4double p4=p2*p2; 487 487 G4double sp=std::sqrt(p); 488 G4double lm=lp-.32; 489 G4double md=lm*lm+.0576; 490 El=LE+(pbe*ld2+2.4+6./sp)/(1.+3./p4)+.7/md; 488 G4double lm=lp-.32; // p5 489 G4double md=lm*lm+.0576; // p6 490 El=LE+(pbe*ld2+2.4+6./sp)/(1.+3./p4)+.7/md; // p7(pbe=.0557), p8, p9, p10, p11 491 491 To=LE+(pbt*ld2+22.3+5./sp)/(1.+1./p4)+.8/md; 492 492 } … … 933 933 } 934 934 G4double P=std::sqrt(E2-mP2); // Momentum in pseudo laboratory system 935 G4VQCrossSection* CSmanager=G4QElasticCrossSection::GetPointer(); 935 G4VQCrossSection* PCSmanager=G4QProtonElasticCrossSection::GetPointer(); 936 G4VQCrossSection* NCSmanager=G4QNeutronElasticCrossSection::GetPointer(); 936 937 #ifdef ppdebug 937 938 G4cout<<"G4QFR::Scatter: Before XS, P="<<P<<", Z="<<Z<<", N="<<N<<", PDG="<<pPDG<<G4endl; … … 941 942 G4int PDG=2212; // *TMP* instead of pPDG 942 943 if(pPDG==2112||pPDG==-211||pPDG==-321) PDG=2112; // *TMP* instead of pPDG 943 G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, PDG); // Rec.CrossSect *TMP* 944 //G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, pPDG); // Rec.CrossSect 944 if(!Z && N==1) // Change for Quasi-Elastic on neutron 945 { 946 Z=1; 947 N=0; 948 if (PDG==2212) PDG=2112; 949 else if(PDG==2112) PDG=2212; 950 } 951 G4double xSec=0.; // Prototype of Recalculated Cross Section *TMP* 952 if(PDG==2212) xSec=PCSmanager->GetCrossSection(false, P, Z, N, PDG); // P CrossSect *TMP* 953 else xSec=NCSmanager->GetCrossSection(false, P, Z, N, PDG); // N CrossSect *TMP* 945 954 #ifdef ppdebug 946 955 G4cout<<"G4QElast::Scatter:pPDG="<<pPDG<<",P="<<P<<",CS="<<xSec/millibarn<<G4endl; … … 951 960 #endif 952 961 // @@ check a possibility to separate p, n, or alpha (!) 953 if(xSec <= 0.) // The cross-section iz 0 -> Do Nothing962 if(xSec <= 0.) // The cross-section iz 0 -> Do Nothing 954 963 { 955 964 #ifdef ppdebug … … 958 967 return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); //Do Nothing Action 959 968 } 960 G4double mint=CSmanager->GetExchangeT(Z,N,PDG); // functional randomized -t (MeV^2) *TMP* 961 //G4double mint=CSmanager->GetExchangeT(Z,N,pPDG); // functional randomized -t in MeV^2 962 G4double maxt=CSmanager->GetHMaxT(); // max possible -t 969 G4double mint=0.; // Prototype of functional rand -t (MeV^2) *TMP* 970 if(PDG==2212) mint=PCSmanager->GetExchangeT(Z,N,PDG);// P functional rand -t(MeV^2) *TMP* 971 else mint=NCSmanager->GetExchangeT(Z,N,PDG);// N functional rand -t(MeV^2) *TMP* 972 G4double maxt=0.; // Prototype of max possible -t 973 if(PDG==2212) maxt=PCSmanager->GetHMaxT(); // max possible -t 974 else maxt=NCSmanager->GetHMaxT(); // max possible -t 963 975 #ifdef ppdebug 964 976 G4cout<<"G4QFR::Scat:PDG="<<PDG<<",P="<<P<<",X="<<xSec<<",-t="<<mint<<"<"<<maxt<<", Z=" … … 979 991 else 980 992 { 981 G4cerr<<"G4QFR::S:*NAN*c="<<cost<<",t="<<mint<<",tm="<<CSmanager->GetHMaxT()<<G4endl; 993 G4double tm=0.; 994 if(PDG==2212) tm=PCSmanager->GetHMaxT(); 995 else tm=NCSmanager->GetHMaxT(); 996 G4cerr<<"G4QuasiFreeRatio::Scat:*NAN* cost="<<cost<<",-t="<<mint<<",tm="<<tm<<G4endl; 982 997 return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); // Do Nothing Action 983 998 } … … 1069 1084 } 1070 1085 G4double P=std::sqrt(E2-mS2); // Momentum in pseudo laboratory system 1071 G4VQCrossSection* CSmanager=G4QElasticCrossSection::GetPointer(); 1086 G4VQCrossSection* PCSmanager=G4QProtonElasticCrossSection::GetPointer(); 1087 G4VQCrossSection* NCSmanager=G4QNeutronElasticCrossSection::GetPointer(); 1072 1088 #ifdef debug 1073 1089 G4cout<<"G4QFR::ChExer: Before XS, P="<<P<<", Z="<<Z<<", N="<<N<<", PDG="<<pPDG<<G4endl; … … 1075 1091 // @@ Temporary NN t-dependence for all hadrons 1076 1092 G4int PDG=2212; // *TMP* instead of pPDG 1077 G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, PDG); // Rec.CrossSect *TMP* 1078 //G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, pPDG); // Rec.CrossSect 1093 if(pPDG==2112||pPDG==-211||pPDG==-321) PDG=2112; // *TMP* instead of pPDG 1094 if(!Z && N==1) // Change for Quasi-Elastic on neutron 1095 { 1096 Z=1; 1097 N=0; 1098 if (PDG==2212) PDG=2112; 1099 else if(PDG==2112) PDG=2212; 1100 } 1101 G4double xSec=0.; // Prototype of Recalculated Cross Section *TMP* 1102 if(PDG==2212) xSec=PCSmanager->GetCrossSection(false, P, Z, N, PDG); // P CrossSect *TMP* 1103 else xSec=NCSmanager->GetCrossSection(false, P, Z, N, PDG); // N CrossSect *TMP* 1079 1104 #ifdef debug 1080 1105 G4cout<<"G4QElast::ChExer:pPDG="<<pPDG<<",P="<<P<<",CS="<<xSec/millibarn<<G4endl; … … 1092 1117 return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); //Do Nothing Action 1093 1118 } 1094 G4double mint=CSmanager->GetExchangeT(Z,N,PDG); // functional randomized -t (MeV^2) *TMP* 1095 //G4double mint=CSmanager->GetExchangeT(Z,N,pPDG); // functional randomized -t in MeV^2 1119 G4double mint=0.; // Prototype of functional rand -t (MeV^2) *TMP* 1120 if(PDG==2212) mint=PCSmanager->GetExchangeT(Z,N,PDG);// P functional rand -t(MeV^2) *TMP* 1121 else mint=NCSmanager->GetExchangeT(Z,N,PDG);// N functional rand -t(MeV^2) *TMP* 1096 1122 #ifdef pdebug 1097 1123 G4cout<<"G4QFR::ChEx:PDG="<<pPDG<<", P="<<P<<", CS="<<xSec<<", -t="<<mint<<G4endl; … … 1101 1127 else G4cout<<"*Warning*G4QFR::ChExer: -t="<<mint<<G4endl; 1102 1128 #endif 1103 G4double cost=1.-mint/CSmanager->GetHMaxT(); // cos(theta) in CMS 1104 #ifdef pdebug 1105 G4cout<<"G4QFR::ChEx:-t="<<mint<<",dpc2="<<CSmanager->GetHMaxT()<<",cost="<<cost<<G4endl; 1129 G4double maxt=0.; // Prototype of max possible -t 1130 if(PDG==2212) maxt=PCSmanager->GetHMaxT(); // max possible -t 1131 else maxt=NCSmanager->GetHMaxT(); // max possible -t 1132 G4double cost=1.-mint/maxt; // cos(theta) in CMS 1133 #ifdef pdebug 1134 G4cout<<"G4QuasiFfreeRatio::ChExer: -t="<<mint<<", maxt="<<maxt<<", cost="<<cost<<G4endl; 1106 1135 #endif 1107 1136 if(cost>1. || cost<-1. || !(cost>-1. || cost<=1.)) … … 1111 1140 else 1112 1141 { 1113 G4cerr<<"G4Q FR::C:*NAN*c="<<cost<<",t="<<mint<<",tm="<<CSmanager->GetHMaxT()<<G4endl;1142 G4cerr<<"G4QuasiFreeRatio::ChExer:*NAN* c="<<cost<<",t="<<mint<<",tm="<<maxt<<G4endl; 1114 1143 return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); // Do Nothing Action 1115 1144 }
Note: See TracChangeset
for help on using the changeset viewer.