62 G4cout<<
"G4QAtomicElectronScattering::Constructor is called"<<
G4endl;
72 G4bool G4QAtomicElectronScattering::manualFlag=
false;
73 G4double G4QAtomicElectronScattering::Temperature=180.;
74 G4double G4QAtomicElectronScattering::SSin2Gluons=0.3;
75 G4double G4QAtomicElectronScattering::EtaEtaprime=0.3;
76 G4double G4QAtomicElectronScattering::freeNuc=0.5;
77 G4double G4QAtomicElectronScattering::freeDib=0.05;
78 G4double G4QAtomicElectronScattering::clustProb=5.;
79 G4double G4QAtomicElectronScattering::mediRatio=10.;
82 G4int G4QAtomicElectronScattering::nPartCWorld=85;
83 G4double G4QAtomicElectronScattering::SolidAngle=0.5;
84 G4bool G4QAtomicElectronScattering::EnergyFlux=
false;
85 G4double G4QAtomicElectronScattering::PiPrThresh=141.4;
86 G4double G4QAtomicElectronScattering::M2ShiftVir=20000.;
87 G4double G4QAtomicElectronScattering::DiNuclMass=1880.;
107 nPartCWorld = nParCW;
126 return EnMomConservation;
141 G4cout<<
"-Wa-G4QAtElScat::GetMeanFreePath called for not implemented particle"<<
G4endl;
149 G4cout<<
"G4QAtomElectScattering::GetMeanFreePath:"<<nE<<
" Elem's in theMaterial"<<
G4endl;
158 else G4cout<<
"G4QAtomEScattering::GetMeanFreePath:Particle isn't known in CHIPS"<<
G4endl;
162 for(
G4int i=0; i<nE; ++i)
164 G4int Z =
static_cast<G4int>((*theElementVector)[i]->GetZ());
165 std::vector<std::pair<G4int,G4double>*>* cs= Isotopes->
GetCSVector(Z);
166 G4int nIs=cs->size();
167 if(nIs)
for(
G4int j=0; j<nIs; j++)
169 std::pair<G4int,G4double>* curIs=(*cs)[j];
177 if(sigma > 0.)
return 1./sigma;
222 static const G4double dM=mProt+mNeut;
235 if(std::fabs(Momentum-momentum)>.001)
G4cerr<<
"G4QAtElScat::PSDI P="<<Momentum<<
"="
239 G4cout<<
"G4QAtomElScattering::PostStepDoIt called, P="<<Momentum<<
"="<<momentum<<
G4endl;
243 G4cerr<<
"G4QAtomElectScat::PostStepDoIt:Only gam,e+,e-,mu+,mu-,t+,t-,p are implemented"
254 G4cout<<
"G4QAtomElectronScat::PostStepDoIt: "<<nE<<
" elements in the material."<<
G4endl;
284 G4cout<<
"G4QAtomElScat::PostStepRestDoIt: projPDG="<<projPDG<<
",stPDG="<<prPDG<<
G4endl;
288 G4cerr<<
"-Warning-G4QAtomElScattering::PostStepDoIt:Undefined captured hadron"<<
G4endl;
292 std::vector<G4double> sumfra;
297 sumfra.push_back(sum);
300 for(i=0; i<nE; ++i)
if (rnd<sumfra[i])
break;
301 G4Element* pElement=(*theElementVector)[i];
305 G4cerr<<
"-Warning-G4QAtomicElectronScattering::PostStepDoIt: Element's Z="<<Z<<
G4endl;
311 if(isoVector) isoSize=isoVector->size();
313 G4cout<<
"G4QAtomicElectronScattering::PostStepDoIt: isovectorLength="<<isoSize<<
G4endl;
321 std::vector<std::pair<G4int,G4double>*>* newAbund =
322 new std::vector<std::pair<G4int,G4double>*>;
324 for(
G4int j=0; j<isoSize; j++)
330 std::pair<G4int,G4double>*
pr=
new std::pair<G4int,G4double>(
N,abund);
332 G4cout<<
"G4QAtomElScat::PostStepDoIt:pair#="<<j<<
", N="<<N<<
",ab="<<abund<<
G4endl;
334 newAbund->push_back(pr);
337 G4cout<<
"G4QAtomElectScat::PostStepDoIt:pairVectorLength="<<newAbund->size()<<
G4endl;
340 for(
G4int k=0; k<isoSize; k++)
delete (*newAbund)[k];
351 G4double dsr=0.01*(value_sr+value_sr);
357 G4cout<<
"G4QAtomElectScattering::PostStepDoIt: N="<<N<<
" for element with Z="<<Z<<
G4endl;
361 G4cerr<<
"---Warning---G4QAtomElectScat::PostStepDoIt:Element with N="<<N<<
G4endl;
364 if(projPDG==11||projPDG==-11||projPDG==13||projPDG==-13||projPDG==15||projPDG==-15)
369 G4int aProjPDG=std::abs(projPDG);
383 if( kinEnergy < photonEnergy )
386 G4cerr<<
"G4QAtomElectScat::PSDoIt: phE="<<photonEnergy<<
">leptE="<<kinEnergy<<
G4endl;
393 G4double W=photonEnergy-photonQ2/dM;
397 G4cout<<
"G4QAtomElScat::PostStepDoIt:(lN) negative equivalent energy W="<<W<<
G4endl;
411 G4cout<<
"G4QAtomElectScat::PostStepDoIt: probability correction - DoNothing"<<
G4endl;
427 G4double iniP=std::sqrt(iniE*iniE-mu2);
428 G4double finP=std::sqrt(finE*finE-mu2);
429 G4double cost=(EEm+EEm-photonQ2)/iniP/finP;
432 if(cost<-1.) cost=-1.;
442 G4double sint=std::sqrt(1.-cost*cost);
452 G4int targPDG=90000000+Z*1000+
N;
462 G4cout<<
"G4QAtomElScat::PostStepDoIt: projPDG="<<projPDG<<
", targPDG="<<targPDG<<
G4endl;
468 projHV.push_back(pH);
470 std::for_each(projHV.begin(), projHV.end(),
DeleteQHadron());
473 G4cout<<
"G4QAtomElectScat::PostStepDoIt: pPDG="<<projPDG<<
", mp="<<mp<<
G4endl;
483 G4cerr<<
"**G4QAtomElectScat::PostStepDoIt:G4QE Exception is catched"<<
G4endl;
486 G4Exception(
"G4QAtomElScat::PostStepDoIt()",
"HAD_CHPS_0027",
532 G4int tNH = output->size();
536 G4cout<<
"G4QAtomElectronScat::PostStepDoIt: "<<tNH<<
" particles are generated"<<
G4endl;
538 G4int nOut=output->size();
540 if(tNH==2&&2!=nOut)
G4cout<<
"--Warning--G4QAtomElScat::PostStepDoIt: 2 # "<<nOut<<
G4endl;
543 if(tNH)
for(i=0; i<tNH; i++)
552 G4cout<<
"G4QAtomElectScat::AtRestDoIt: H#"<<i<<
",PDG="<<PDGCode<<
",nF="<<nFrag<<
G4endl;
557 G4cout<<
"G4QAtomElScat::PostStepDoIt: Intermediate particle is found i="<<i<<
G4endl;
567 else if(PDGCode==311 || PDGCode==-311)
577 else if(PDGCode >80000000)
582 G4cout<<
"G4QAtomicElectronScattering::AtRestDoIt:Ion Z="<<aZ<<
", A="<<aA<<
G4endl;
590 G4cout<<
"G4QAtomElectScat::PostStepDoIt:Define particle with PDG="<<PDGCode<<
G4endl;
594 G4cout<<
"G4QAtomElScat::PostStepDoIt:AfterParticleDefinition PDG="<<PDGCode<<
G4endl;
599 G4cout<<
"---Warning---G4QAtomElScattering::PostStepDoIt: drop PDG="<<PDGCode<<
G4endl;
608 EnMomConservation-=h4M;
610 G4cout<<
"G4QCollis::PSDI:"<<i<<
","<<PDGCode<<h4M<<h4M.
m()<<EnMomConservation<<
G4endl;
613 G4cout<<
"G4QAtomElectScat::PostStepDoIt:#"<<i<<
",PDG="<<PDGCode<<
",4M="<<h4M<<
G4endl;
621 G4cout<<
"G4QCollis::PSDoIt:p="<<curD<<curD.
mag()<<
",e="<<curE<<
",m="<<curM<<
G4endl;
627 G4cout<<
"G4QAtomicElectronScattering::PostStepDoIt:#"<<i<<
" is done."<<
G4endl;
634 G4cout<<
"G4QAtomicElectronScattering::PostStepDoIt:****PostStepDoIt done****"<<
G4endl;