77     theAsymmetryTable(NULL),
 
   78     theTransverseAsymmetryTable(NULL)
 
  138     if (!volumeIsPolarized || mfp == 
DBL_MAX) 
return mfp;
 
  149       G4cout << 
" Polarization " << positronPolarization  << 
G4endl;
 
  150       G4cout << 
" MaterialPol. " << electronPolarization  << 
G4endl;
 
  158     G4double lAsymmetry = (*theAsymmetryTable)(idx)->
 
  159                                   GetValue(positronEnergy, isOutRange);
 
  160     G4double tAsymmetry = (*theTransverseAsymmetryTable)(idx)->
 
  161                                   GetValue(positronEnergy, isOutRange);
 
  163     G4double polZZ = positronPolarization.z()*
 
  164       electronPolarization*positronDirection0;
 
  165     G4double polXX = positronPolarization.x()*
 
  167     G4double polYY = positronPolarization.y()*
 
  170     G4double impact = 1. + polZZ*lAsymmetry + (polXX + polYY)*tAsymmetry;
 
  176       G4cout << 
" Asymmetry:     " << lAsymmetry << 
", " << tAsymmetry  << 
G4endl;
 
  177       G4cout << 
" PolProduct:    " << polXX << 
", " << polYY << 
", " << polZZ << 
G4endl;
 
  205     if (!volumeIsPolarized || mfp == 
DBL_MAX) 
return mfp;
 
  216       G4cout << 
" Polarization " << positronPolarization  << 
G4endl;
 
  217       G4cout << 
" MaterialPol. " << electronPolarization  << 
G4endl;
 
  225     G4double lAsymmetry = (*theAsymmetryTable)(idx)->
 
  226                                   GetValue(positronEnergy, isOutRange);
 
  227     G4double tAsymmetry = (*theTransverseAsymmetryTable)(idx)->
 
  228                                   GetValue(positronEnergy, isOutRange);
 
  230     G4double polZZ = positronPolarization.z()*
 
  231       electronPolarization*positronDirection0;
 
  232     G4double polXX = positronPolarization.x()*
 
  234     G4double polYY = positronPolarization.y()*
 
  237     G4double impact = 1. + polZZ*lAsymmetry + (polXX + polYY)*tAsymmetry;
 
  243       G4cout << 
" Asymmetry:     " << lAsymmetry << 
", " << tAsymmetry  << 
G4endl;
 
  244       G4cout << 
" PolProduct:    " << polXX << 
", " << polYY << 
", " << polZZ << 
G4endl;
 
  272   G4cout<<
" annih-numOfCouples="<<numOfCouples<<
"\n";
 
  273   for(
size_t i=0; i<numOfCouples; ++i) {
 
  274     G4cout<<
"annih- "<<i<<
"/"<<numOfCouples<<
"\n";
 
  278      G4cout<<
" building pol-annih ... \n";
 
  334     lAsymmetry=sigma2/sigma0-1.;
 
  335     tAsymmetry=sigma3/sigma0-1.;
 
  347   G4cout << 
"      Polarized model for annihilation into 2 photons" 
  369   G4ThreeVector direction (sinTeta*std::cos(phi), sinTeta*std::sin(phi), cosTeta);
 
  371                                             direction, electron_mass_c2) );
 
  373                                            -direction, electron_mass_c2) );
 
G4double condition(const G4ErrorSymMatrix &m)
 
void SetBeamPolarization(const G4ThreeVector &pBeam)
 
const G4ThreeVector & GetPolarization() const 
 
static void SetPhysicsVector(G4PhysicsTable *physTable, size_t idx, G4PhysicsVector *vec)
 
G4double GetKineticEnergy() const 
 
CLHEP::Hep3Vector G4ThreeVector
 
virtual void BuildPhysicsTable(const G4ParticleDefinition &)
 
const G4DynamicParticle * GetDynamicParticle() const 
 
void SetBuildTableFlag(G4bool val)
 
G4ParticleChangeForGamma fParticleChange
 
static G4PolarizationManager * GetInstance()
 
virtual G4VParticleChange * AtRestDoIt(const G4Track &track, const G4Step &stepData)
 
void BuildPhysicsTable(const G4ParticleDefinition &)
 
virtual void InitialiseProcess(const G4ParticleDefinition *)
 
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
G4double GetLowEdgeEnergy(size_t binNumber) const 
 
void SetStartFromNullFlag(G4bool val)
 
static G4PhysicsTable * PreparePhysicsTable(G4PhysicsTable *physTable)
 
G4int LambdaBinning() const 
 
G4double ComputeAsymmetry(G4double energy, const G4MaterialCutsCouple *couple, const G4ParticleDefinition &particle, G4double cut, G4double &tasm)
 
void SetHighEnergyLimit(G4double)
 
void AddSecondary(G4DynamicParticle *aParticle)
 
void SetLambdaBinning(G4int nbins)
 
G4ThreeVector theTargetPolarization
 
size_t CurrentMaterialCutsCoupleIndex() const 
 
G4GLOB_DLL std::ostream G4cout
 
size_t GetTableSize() const 
 
const G4String & GetName() const 
 
void SetTargetPolarization(const G4ThreeVector &pTarget)
 
const G4ThreeVector & GetMomentumDirection() const 
 
G4double CrossSection(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
void PutValue(size_t index, G4double theValue)
 
G4double GetMeanFreePath(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
void SetProcessSubType(G4int)
 
void PreparePhysicsTable(const G4ParticleDefinition &)
 
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
G4PhysicsTable * theAsymmetryTable
 
G4Material * GetMaterial() const 
 
virtual void PreparePhysicsTable(const G4ParticleDefinition &)
 
G4double GetMeanFreePath(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
static G4ProductionCutsTable * GetProductionCutsTable()
 
G4PhysicsVector * LambdaPhysicsVector(const G4MaterialCutsCouple *)
 
void SetMaxKinEnergy(G4double e)
 
G4LogicalVolume * GetLogicalVolume() const 
 
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const 
 
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=0)
 
G4double energy(const ThreeVector &p, const G4double m)
 
void SetNumberOfSecondaries(G4int totSecondaries)
 
void SetSecondaryParticle(const G4ParticleDefinition *p)
 
G4PolarizedAnnihilationModel * emModel
 
bool IsPolarized(G4LogicalVolume *lVol) const 
 
G4VPhysicalVolume * GetVolume() const 
 
static G4ThreeVector GetParticleFrameY(const G4ThreeVector &)
 
G4PhysicsTable * theTransverseAsymmetryTable
 
void SetMinKinEnergy(G4double e)
 
G4bool GetFlag(size_t i) const 
 
void ProposeTrackStatus(G4TrackStatus status)
 
void SetLowEnergyLimit(G4double)
 
void InitializeForPostStep(const G4Track &)
 
G4ThreeVector G4ParticleMomentum
 
static G4ThreeVector GetParticleFrameX(const G4ThreeVector &)
 
const G4ThreeVector & GetVolumePolarization(G4LogicalVolume *lVol) const 
 
G4eplusPolarizedAnnihilation(const G4String &name="pol-annihil")
 
void BuildAsymmetryTable(const G4ParticleDefinition &part)
 
virtual ~G4eplusPolarizedAnnihilation()