75 theAsymmetryTable(nullptr),
76 theTransverseAsymmetryTable(nullptr)
117 G4cout <<
"G4eplusPolarizedAnnihilation::MeanFreePath: "
146 G4double prvLength = iLength*satFact;
149 std::max(nLength - previousStepSize/prvLength, 0.0);
154 G4cout <<
"G4eplusPolarizedAnnihilation::PostStepGPIL: "
155 << std::setprecision(8) << x/
mm <<
" mm;" <<
G4endl
156 <<
" unpolarized value: "
157 << std::setprecision(8) << x0/
mm <<
" mm." <<
G4endl;
178 if (volumeIsPolarized) {
187 G4cout <<
"G4eplusPolarizedAnnihilation::ComputeSaturationFactor: " <<
G4endl;
189 G4cout <<
" Polarization " << positronPolarization <<
G4endl;
190 G4cout <<
" MaterialPol. " << electronPolarization <<
G4endl;
199 if(midx < theAsymmetryTable->size()) {
200 aVector = (*theAsymmetryTable)(midx);
202 if(midx < theTransverseAsymmetryTable->size()) {
203 bVector = (*theTransverseAsymmetryTable)(midx);
205 if(aVector && bVector) {
208 G4double polZZ = positronPolarization.
z()*
209 (electronPolarization*positronDirection0);
210 G4double polXX = positronPolarization.
x()*
212 G4double polYY = positronPolarization.
y()*
215 factor /= (1. + polZZ*lAsymmetry + (polXX + polYY)*tAsymmetry);
218 G4cout <<
" Asymmetry: " << lAsymmetry <<
", " << tAsymmetry <<
G4endl;
219 G4cout <<
" PolProduct: " << polXX <<
", " << polYY <<
", " << polZZ <<
G4endl;
224 ed <<
"Problem with asymmetry tables: material index " << midx
225 <<
" is out of range or tables are not filled";
226 G4Exception(
"G4eplusPolarizedAnnihilation::ComputeSaturationFactor",
"em0048",
242 if(masterProcess && masterProcess !=
this) { isMaster =
false; }
263 for(
size_t i=0; i<numOfCouples; ++i) {
321 lAsymmetry=sigma2/sigma0-1.;
322 tAsymmetry=sigma3/sigma0-1.;
331 G4cout <<
" Polarized model for annihilation into 2 photons"