Changeset 1055 for trunk/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QPhotonNuclearCrossSection.cc
- Timestamp:
- May 28, 2009, 4:26:57 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/chiral_inv_phase_space/interface/src/G4QPhotonNuclearCrossSection.cc
r1007 r1055 26 26 // 27 27 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02 28 // GEANT4 tag $Name: geant4-09-0 2$28 // GEANT4 tag $Name: geant4-09-03-beta-cand-01 $ 29 29 // 30 30 // … … 36 36 // ******* DO NOT MAKE ANY CHANGE! With time it'll move back to photolepton...(M.K.) ****** 37 37 // **************************************************************************************** 38 // 38 // Short description: This is an original CHIPS process for photo-nuclear 39 // interactions, which does not include "fast and dirty" corrections for 40 // reactions near threshold, with respect to the GHAD application of CHIPS. 41 // ------------------------------------------------------------------------ 42 39 43 //#define debug 40 44 //#define pdebug … … 85 89 <<"("<<lastN<<"),PDG="<<pPDG<<"("<<lastPDG<<"), T="<<pEn<<"("<<lastTH<<")"<<",Sz=" 86 90 <<colN.size()<<G4endl; 87 91 //CalculateCrossSection(fCS,-27,j,lastPDG,lastZ,lastN,pMom); // DUMMY TEST 88 92 #endif 89 93 if(!pPDG) … … 106 110 j = 0; // A#0f records found in DB for this projectile 107 111 if(lastI) for(G4int i=0; i<lastI; i++) if(colPDG[i]==pPDG) // The partType is found 108 112 { // The nucleus with projPDG is found in AMDB 109 113 if(colN[i]==tgN && colZ[i]==tgZ) 110 114 { 111 115 lastI=i; 112 116 lastTH =colTH[i]; // Last THreshold (A-dependent) … … 125 129 lastP =colP [i]; // Last Momentum (A-dependent) 126 130 lastCS =colCS[i]; // Last CrossSect (A-dependent) 127 131 // if(std::fabs(lastP/pMom-1.)<tolerance) // VI do not use tolerance 128 132 if(lastP == pMom) 129 133 { … … 159 163 #endif 160 164 j++; // Increment a#0f records found in DB for this pPDG 161 162 163 165 } 166 if(!in) // This nucleus has not been calculated previously 167 { 164 168 #ifdef pdebug 165 169 G4cout<<"G4QPhCS::GetCrosSec:CalcNew P="<<pMom<<",f="<<fCS<<",lastI="<<lastI<<G4endl; … … 168 172 lastCS=CalculateCrossSection(fCS,0,j,lastPDG,lastZ,lastN,pMom); //calculate & create 169 173 if(lastCS<=0.) 170 174 { 171 175 lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last 172 176 #ifdef pdebug … … 180 184 lastTH=pEn; 181 185 } 182 186 } 183 187 #ifdef pdebug 184 188 G4cout<<"G4QPhCS::GetCrosSec: New CS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl; … … 196 200 #endif 197 201 return lastCS*millibarn; 198 202 } // End of creation of the new set of parameters 199 203 else 200 204 { 201 205 #ifdef pdebug 202 206 G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl; … … 266 270 G4double mP= infEn; 267 271 if(Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1)) 268 mP = G4NucleiProperties::GetNuclearMass(A-1.,Z-1.)/MeV;// ResNucMass for a proton272 mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV;// ResNucMass for a proton 269 273 270 274 G4double mN= infEn; 271 275 if(N&&G4NucleiProperties::IsInStableTable(A-1,Z)) 272 mN = G4NucleiProperties::GetNuclearMass(A-1.,Z)/MeV; // ResNucMass for a neutron276 mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV; // ResNucMass for a neutron 273 277 274 278 G4double mA= infEn; 275 279 if(N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2)) 276 mA=G4NucleiProperties::GetNuclearMass(A-4.,Z-2.)/MeV;// ResNucMass for an alpha280 mA=G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV; // ResNucMass for an alpha 277 281 278 282 G4double dP= mP +mProt - mT; … … 280 284 G4double dA= mA +mAlph - mT; 281 285 #ifdef pdebug 282 286 G4cout<<"G4QPhotoNucCS::ThreshEn: mP="<<mP<<",dP="<<dP<<",mN="<<mN<<",dN="<<dN<<",mA=" 283 287 <<mA<<",dA="<<dA<<",mT="<<mT<<",A="<<A<<",Z="<<Z<<G4endl; 284 288 #endif … … 293 297 { 294 298 #ifdef pdebug 295 299 G4cout<<"G4QPhotonNucCrossSection::CalculateCrossSection: ***Called***"<<G4endl; 296 300 #endif 297 301 static const G4double THmin=2.; // minimum Energy Threshold … … 320 324 onlyCS=CS; // Flag to calculate only CS (not Si/Bi) 321 325 #ifdef pdebug 322 326 G4cout<<"G4QPhotonNucCS::CalcCS: P="<<Energy<<", F="<<F<<", I="<<I<<", Z="<<targZ 323 327 <<", N="<<targN<<", onlyCS="<<CS<<",E="<<Energy<<",th="<<THmin<<G4endl; 324 328 if(F==-27) return 0.; … … 329 333 lastSig=0.; 330 334 #ifdef pdebug 331 335 G4cout<<"---> G4QMuonNucCS::CalcCS: CS=0 as E="<<Energy<<" < "<<THmin<<G4endl; 332 336 #endif 333 337 return 0.; // @@ This can be dangerouse for the heaviest nuc.! … … 338 342 { 339 343 if(F<0) // This isotope was found in DAMDB =========> RETRIEVE 340 344 { 341 345 lastGDR=GDR[I]; // Pointer to prepared GDR cross sections 342 346 lastHEN=HEN[I]; // Pointer to prepared High Energy cross sections 343 347 lastSP =spA[I]; // Shadowing coefficient for UHE 344 348 } 345 346 349 else // This isotope wasn't calculated previously => CREATE 350 { 347 351 G4double lnA=std::log(A); // The nucleus is not found in DB. It is new. 348 352 if(A==1.) lastSP=1.; // The Reggeon shadowing (A=1) … … 357 361 lastHEN = new G4double[nH]; // Allocate memory for the new HEN cross sections 358 362 G4int er=GetFunctions(A,lastGDR,lastHEN);// set newZeroPosition and fill theFunctions 359 363 if(er<1) G4cerr<<"***G4QPhotNucCrosSec::CalcCrossSection: A="<<A<<" failed"<<G4endl; 360 364 #ifdef debug 361 365 G4cout<<"G4QPhotonNuclearCrossSec::CalcCS:**GDR/HEN're made** GetFunEr="<<er<<G4endl; … … 367 371 HEN.push_back(lastHEN); // added HEN, found by AH 10/7/02 368 372 spA.push_back(lastSP); // Pomeron Shadowing 369 373 } // End of creation of the new set of parameters 370 374 } // End of parameters udate 371 375 // ============================== NOW the Magic Formula ================================= … … 374 378 { 375 379 #ifdef debug 376 380 G4cout<<"G4QPhNCS::CalcCS:bGDR A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dE="<<dE<<G4endl; 377 381 #endif 378 382 if(A<=1.) sigma=0.; 379 383 else sigma=EquLinearFit(Energy,nL,THmin,dE,lastGDR); 380 384 #ifdef debugn 381 385 if(sigma<0.) 382 386 G4cout<<"G4QPhoNucCS::CalcCS:A="<<A<<",E="<<Energy<<",T="<<THmin<<",dE="<<dE<<G4endl; 383 387 #endif … … 569 573 static const G4double SL9[nL]={ 570 574 3.243985e-4,1.122034e-3,3.000932e-3,6.850212e-3,1.414720e-2,2.751937e-2,5.204925e-2, 571 572 573 574 575 576 577 578 579 580 581 582 583 584 575 9.887958e-2,1.966468e-1,4.282973e-1,1.041076e+0,2.706630e+0,6.509565e+0,1.085114e+1, 576 1.162472e+1,1.124054e+1,1.202416e+1,1.402207e+1,1.659634e+1,1.891975e+1,2.032292e+1, 577 2.059083e+1,1.993672e+1,1.873926e+1,1.732572e+1,1.590211e+1,1.457097e+1,1.336993e+1, 578 1.230272e+1,1.135820e+1,1.052046e+1,9.773672e+0,9.103884e+0,8.499562e+0,7.951408e+0, 579 7.451996e+0,6.995366e+0,6.576679e+0,6.191930e+0,5.837748e+0,5.511235e+0,5.209864e+0, 580 4.931401e+0,4.673850e+0,4.435420e+0,4.214488e+0,4.009588e+0,3.819384e+0,3.642664e+0, 581 3.478323e+0,3.325356e+0,3.182848e+0,3.049964e+0,2.925943e+0,2.810093e+0,2.701782e+0, 582 2.600432e+0,2.505518e+0,2.416558e+0,2.333114e+0,2.254783e+0,2.181197e+0,2.112021e+0, 583 2.046943e+0,1.985682e+0,1.927976e+0,1.873586e+0,1.822292e+0,1.773891e+0,1.728195e+0, 584 1.685032e+0,1.644242e+0,1.605677e+0,1.569201e+0,1.534686e+0,1.502017e+0,1.471082e+0, 585 1.441781e+0,1.414020e+0,1.387711e+0,1.362772e+0,1.339127e+0,1.316705e+0,1.295438e+0, 586 1.275266e+0,1.256130e+0,1.237976e+0,1.220753e+0,1.204413e+0,1.188912e+0,1.174209e+0, 587 1.160265e+0,1.147042e+0,1.134507e+0,1.122628e+0,1.111376e+0,1.100721e+0,1.090639e+0, 588 1.081106e+0,1.072098e+0,1.063597e+0,1.055582e+0,1.048036e+0,1.040943e+0,1.034290e+0}; 585 589 static const G4double SL10[nL]={ 586 590 4.311217e-4,1.384716e-3,3.549518e-3,7.988549e-3,1.667330e-2,3.341344e-2,6.552895e-2, … … 713 717 static const G4double SL18[nL]={ 714 718 2.220534e-3,5.640053e-3,1.253572e-2,2.881392e-2,7.191580e-2,1.859408e-1,4.687157e-1, 715 716 717 718 719 720 721 722 723 724 725 726 727 728 719 1.115760e+0,2.485562e+0,5.183559e+0,1.013008e+1,1.847496e+1,3.103145e+1,4.701870e+1, 720 6.345164e+1,7.777111e+1,8.950804e+1,9.321427e+1,8.410731e+1,6.975786e+1,5.670984e+1, 721 4.641759e+1,3.856198e+1,3.257293e+1,2.796698e+1,2.438084e+1,2.154901e+1,1.927832e+1, 722 1.742802e+1,1.589540e+1,1.460538e+1,1.350313e+1,1.254846e+1,1.171188e+1,1.097157e+1, 723 1.031123e+1,9.718498e+0,9.183826e+0,8.699693e+0,8.260038e+0,7.859873e+0,7.495011e+0, 724 7.161876e+0,6.857372e+0,6.578785e+0,6.323715e+0,6.090025e+0,5.875801e+0,5.679326e+0, 725 5.499048e+0,5.333567e+0,5.181614e+0,5.042039e+0,4.913795e+0,4.795932e+0,4.687583e+0, 726 4.587960e+0,4.496341e+0,4.412068e+0,4.334539e+0,4.263201e+0,4.197551e+0,4.137125e+0, 727 4.081496e+0,4.030275e+0,3.983101e+0,3.939643e+0,3.899598e+0,3.862684e+0,3.828641e+0, 728 3.797233e+0,3.768237e+0,3.741451e+0,3.716686e+0,3.693770e+0,3.672542e+0,3.652854e+0, 729 3.634571e+0,3.617565e+0,3.601721e+0,3.586931e+0,3.573099e+0,3.560132e+0,3.547947e+0, 730 3.536470e+0,3.525629e+0,3.515361e+0,3.505610e+0,3.496321e+0,3.487449e+0,3.478950e+0, 731 3.470787e+0,3.462928e+0,3.455342e+0,3.448006e+0,3.440898e+0,3.434002e+0,3.427303e+0, 732 3.420792e+0,3.414463e+0,3.408314e+0,3.402345e+0,3.396560e+0,3.390968e+0,3.385579e+0}; 729 733 static const G4double SL19[nL]={ 730 734 2.305897e-3,5.842654e-3,1.297593e-2,2.991119e-2,7.506153e-2,1.950960e-1,4.938019e-1,
Note: See TracChangeset
for help on using the changeset viewer.