Import Geant4 9.1.0 source tree
This commit is contained in:
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizationHelper.hh,v 1.1 2006/09/21 21:35:10 vnivanch Exp $
|
||||
// tag $Name: geant4-09-00 $
|
||||
// $Id: G4PolarizationHelper.hh,v 1.2 2007/11/01 17:30:25 schaelic Exp $
|
||||
// tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
@@ -37,19 +37,22 @@
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// Provides polarization some basic transformation routines.
|
||||
// Provides some basic polarization transformation routines.
|
||||
|
||||
#ifndef G4PolarizationHelper_h
|
||||
#define G4PolarizationHelper_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
|
||||
class G4PolarizationHelper {
|
||||
public:
|
||||
static G4ThreeVector GetFrame(const G4ThreeVector &, const G4ThreeVector &);
|
||||
static G4ThreeVector GetParticleFrameX(const G4ThreeVector &);
|
||||
static G4ThreeVector GetParticleFrameY(const G4ThreeVector &);
|
||||
static G4ThreeVector GetRandomFrame(const G4ThreeVector &);
|
||||
|
||||
static G4ThreeVector GetSpinInPRF(const G4ThreeVector &uZ,const G4ThreeVector &spin);
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizationManager.hh,v 1.1 2006/09/21 21:35:10 vnivanch Exp $
|
||||
// tag $Name: geant4-09-00 $
|
||||
// tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// $Id: G4PolarizationMessenger.hh,v 1.2 2006/12/13 15:44:33 gunter Exp $
|
||||
// tag $Name: geant4-09-00 $
|
||||
// tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
|
||||
+8
-4
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4PolarizedAnnihilationCrossSection.hh,v 1.3 2006/11/20 12:21:25 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// $Id: G4PolarizedAnnihilationCrossSection.hh,v 1.4 2007/11/01 17:32:34 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class file
|
||||
@@ -38,13 +38,14 @@
|
||||
// Creation date: 22.03.2006
|
||||
//
|
||||
// Modifications:
|
||||
// 15.10.07 introduced a more general framework for cross sections
|
||||
//
|
||||
// Class Description:
|
||||
// * calculates the differential cross section (ME squared,
|
||||
// without phase space) incomming positron (along positive z direction)
|
||||
// without phase space) incoming positron (along positive z direction)
|
||||
// annihilations with an electron at rest
|
||||
// * phi denotes the angle between the scattering plane and
|
||||
// X axis of incomint partice reference frame (PRF)
|
||||
// X axis of incoming partice reference frame (PRF)
|
||||
//
|
||||
#ifndef G4PolarizedAnnihilationCrossSection_h
|
||||
#define G4PolarizedAnnihilationCrossSection_h 1
|
||||
@@ -74,6 +75,9 @@ public:
|
||||
G4StokesVector GetPol2();
|
||||
G4StokesVector GetPol3();
|
||||
|
||||
virtual G4double GetXmin(G4double y); // minimal energy fraction in TotalXSection
|
||||
virtual G4double GetXmax(G4double y); // maximal energy fraction in TotalXSection
|
||||
|
||||
G4double getVar(G4int );
|
||||
// test routine
|
||||
void getCoeff();
|
||||
|
||||
+10
-3
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedAnnihilationModel.hh,v 1.2 2007/05/23 08:52:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// $Id: G4PolarizedAnnihilationModel.hh,v 1.3 2007/07/10 09:38:17 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -39,7 +39,9 @@
|
||||
//
|
||||
// Modifications:
|
||||
// 18-07-06 use newly calculated cross sections (P. Starovoitov)
|
||||
// 21-08-05 update interface to geant4.8.1 (A. Schaelicke)
|
||||
// 21-08-06 update interface to geant4.8.1 (A. Schaelicke)
|
||||
// 10-07-07 copied Initialise() method from G4eeToTwoGammaModel to provide a
|
||||
// ParticleChangeForGamma object (A. Schaelicke)
|
||||
//
|
||||
//
|
||||
// Class Description:
|
||||
@@ -69,6 +71,8 @@ public:
|
||||
|
||||
virtual ~G4PolarizedAnnihilationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*,
|
||||
const G4DataVector&);
|
||||
virtual G4double ComputeCrossSectionPerElectron(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kinEnergy,
|
||||
@@ -107,6 +111,9 @@ private:
|
||||
G4StokesVector finalGamma2Polarization;
|
||||
|
||||
G4int verboseLevel;
|
||||
|
||||
G4ParticleChangeForGamma* gParticleChange;
|
||||
G4bool gIsInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedBhabhaCrossSection.hh,v 1.2 2006/11/17 14:14:17 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
|
||||
+6
-7
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedBremsstrahlungCrossSection.hh,v 1.2 2006/11/17 12:12:01 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// $Id: G4PolarizedBremsstrahlungCrossSection.hh,v 1.3 2007/11/01 17:32:34 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
@@ -36,6 +36,7 @@
|
||||
// Creation date: 15.05.2005
|
||||
//
|
||||
// Modifications:
|
||||
// 15.10.07 introduced a more general framework for cross sections (AS)
|
||||
//
|
||||
// Class Description:
|
||||
// determine the polarization of the final state
|
||||
@@ -47,14 +48,14 @@
|
||||
|
||||
#include "G4StokesVector.hh"
|
||||
#include "G4VPolarizedCrossSection.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
|
||||
class G4ePolarizedBremsstrahlungModel;
|
||||
|
||||
|
||||
|
||||
class G4PolarizedBremsstrahlungCrossSection : public G4VPolarizedCrossSection
|
||||
{
|
||||
public:
|
||||
G4PolarizedBremsstrahlungCrossSection(G4ePolarizedBremsstrahlungModel * model);
|
||||
G4PolarizedBremsstrahlungCrossSection();
|
||||
virtual void Initialize(G4double eps, G4double X, G4double phi,
|
||||
const G4StokesVector & p0,
|
||||
const G4StokesVector & p1,
|
||||
@@ -66,8 +67,6 @@ class G4PolarizedBremsstrahlungCrossSection : public G4VPolarizedCrossSection
|
||||
G4StokesVector GetPol2(); // electron/positron
|
||||
G4StokesVector GetPol3(); // photon
|
||||
private:
|
||||
|
||||
G4ePolarizedBremsstrahlungModel * theModel;
|
||||
|
||||
G4StokesVector theFinalLeptonPolarization;
|
||||
G4StokesVector theFinalGammaPolarization;
|
||||
|
||||
+8
-4
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedComptonCrossSection.hh,v 1.2 2006/11/17 14:14:19 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// $Id: G4PolarizedComptonCrossSection.hh,v 1.3 2007/11/01 17:32:34 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
@@ -37,7 +37,8 @@
|
||||
//
|
||||
// Modifications:
|
||||
// 18-07-06 use newly calculated cross sections (P. Starovoitov)
|
||||
// 21-08-05 update interface to geant4.8.1 (A. Schaelicke)
|
||||
// 21-08-06 update interface to geant4.8.1 (A. Schaelicke)
|
||||
// 15-10-07 introduced a more general framework for cross sections (AS)
|
||||
//
|
||||
//
|
||||
// Class Description:
|
||||
@@ -51,7 +52,7 @@
|
||||
|
||||
#include "G4StokesVector.hh"
|
||||
#include "G4VPolarizedCrossSection.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
|
||||
|
||||
|
||||
class G4PolarizedComptonCrossSection : public G4VPolarizedCrossSection
|
||||
@@ -77,6 +78,9 @@ public:
|
||||
// the calculation has to be initialised by calling Initialize()
|
||||
// prior to the first call of this function (see above)
|
||||
G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3);
|
||||
// total cross section
|
||||
G4double TotalXSection(G4double xmin, G4double xmax, G4double y,
|
||||
const G4StokesVector & pol0,const G4StokesVector & pol1);
|
||||
|
||||
public:
|
||||
// return expected mean polarisation
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedComptonModel.hh,v 1.2 2007/05/23 08:52:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PolarizedGammaConversion.hh,v 1.2 2007/05/23 08:52:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedGammaConversionModel.hh,v 1.2 2007/05/23 08:52:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedMollerBhabhaModel.hh,v 1.3 2007/05/23 08:52:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedMollerCrossSection.hh,v 1.3 2006/12/13 15:44:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
|
||||
+73
@@ -0,0 +1,73 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedPEEffectCrossSection.hh,v 1.1 2007/11/01 17:29:09 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
//
|
||||
// File name: G4PolarizedPEEffectCrossSection
|
||||
//
|
||||
// Author: Andreas Schaelicke
|
||||
//
|
||||
// Creation date: 15.03.2007
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
#ifndef G4PolarizedPEEffectCrossSection_h
|
||||
#define G4PolarizedPEEffectCrossSection_h 1
|
||||
|
||||
#include "G4StokesVector.hh"
|
||||
#include "G4VPolarizedCrossSection.hh"
|
||||
//#include "RotationMatrix.hh"
|
||||
|
||||
|
||||
class G4PolarizedPEEffectCrossSection : public G4VPolarizedCrossSection
|
||||
{
|
||||
public:
|
||||
G4PolarizedPEEffectCrossSection();
|
||||
virtual ~G4PolarizedPEEffectCrossSection();
|
||||
public:
|
||||
virtual void Initialize(G4double aGammaE, G4double aLept0E, G4double sintheta,
|
||||
const G4StokesVector & beamPol,
|
||||
const G4StokesVector & ,
|
||||
G4int flag=0);
|
||||
|
||||
G4double XSection(const G4StokesVector & pol2,const G4StokesVector & pol3);
|
||||
|
||||
public:
|
||||
// return expected mean polarisation
|
||||
G4StokesVector GetPol2();
|
||||
G4StokesVector GetPol3();
|
||||
private:
|
||||
G4StokesVector theFinalElectronPolarization;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedPEEffectModel.hh,v 1.1 2007/11/01 17:29:09 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4PolarizedPEEffectModel
|
||||
//
|
||||
// Author: Andreas Schaelicke & Karim Laihem
|
||||
//
|
||||
// Creation date: 22.02.2007
|
||||
//
|
||||
// Modifications:
|
||||
// 02.08.2007 : adapt to design change in version 4.9 (AS)
|
||||
//
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// Implementation of polarization transfer in Photoelectric Effect
|
||||
//
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifdef NOIONIZATIONAS
|
||||
#define G4PolarizedPEEffectModel_h 1
|
||||
#endif
|
||||
|
||||
#ifndef G4PolarizedPEEffectModel_h
|
||||
#define G4PolarizedPEEffectModel_h 1
|
||||
|
||||
#include "G4PEEffectModel.hh"
|
||||
#include "G4StokesVector.hh"
|
||||
|
||||
|
||||
class G4PolarizedPEEffectCrossSection;
|
||||
|
||||
class G4PolarizedPEEffectModel : public G4PEEffectModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4PolarizedPEEffectModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "Polarized-PhotoElectric");
|
||||
|
||||
void Initialise(const G4ParticleDefinition* pd, const G4DataVector& dv);
|
||||
virtual ~G4PolarizedPEEffectModel();
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
// polarized routines
|
||||
/*
|
||||
inline void SetTargetPolarization(const G4ThreeVector & pTarget);
|
||||
inline void SetBeamPolarization(const G4ThreeVector & pBeam);
|
||||
inline const G4ThreeVector & GetTargetPolarization() const;
|
||||
inline const G4ThreeVector & GetBeamPolarization() const;
|
||||
inline const G4ThreeVector & GetFinalGammaPolarization() const;
|
||||
inline const G4ThreeVector & GetFinalElectronPolarization() const;
|
||||
*/
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4PolarizedPEEffectModel & operator=(const G4PolarizedPEEffectModel &right);
|
||||
G4PolarizedPEEffectModel(const G4PolarizedPEEffectModel&);
|
||||
|
||||
G4PolarizedPEEffectCrossSection * crossSectionCalculator;
|
||||
// incomming
|
||||
G4StokesVector theBeamPolarization; // photon
|
||||
// outgoing
|
||||
G4StokesVector finalElectronPolarization;
|
||||
|
||||
G4int verboseLevel;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
#endif
|
||||
+7
-9
@@ -23,19 +23,21 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PolarizedPairProductionCrossSection.hh,v 1.2 2006/11/17 14:14:19 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// $Id: G4PolarizedPairProductionCrossSection.hh,v 1.3 2007/11/01 17:32:34 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
//
|
||||
// File name: G4PolarizedBremsstrahlungCrossSection
|
||||
// File name: G4PolarizedPairProductionCrossSection
|
||||
//
|
||||
// Author: Karim Laihem
|
||||
//
|
||||
// Creation date: 15.05.2005
|
||||
// 20-08-06 updated interface to geant4.8.1 (A.Schaelicke)
|
||||
//
|
||||
// Modifications:
|
||||
// 20-08-06 updated interface to geant4.8.1 (A.Schaelicke)
|
||||
// 15-10-07 introduced a more general framework for cross sections (AS)
|
||||
//
|
||||
// Class Description:
|
||||
// determine the polarization of the final state
|
||||
@@ -47,14 +49,12 @@
|
||||
|
||||
#include "G4StokesVector.hh"
|
||||
#include "G4VPolarizedCrossSection.hh"
|
||||
#include "G4RotationMatrix.hh"
|
||||
|
||||
class G4PolarizedGammaConversionModel;
|
||||
|
||||
class G4PolarizedPairProductionCrossSection : public G4VPolarizedCrossSection
|
||||
{
|
||||
public:
|
||||
G4PolarizedPairProductionCrossSection(G4PolarizedGammaConversionModel * model);
|
||||
G4PolarizedPairProductionCrossSection();
|
||||
virtual void Initialize(G4double eps, G4double X, G4double phi,
|
||||
const G4StokesVector & p0,
|
||||
const G4StokesVector & p1,
|
||||
@@ -66,8 +66,6 @@ class G4PolarizedPairProductionCrossSection : public G4VPolarizedCrossSection
|
||||
G4StokesVector GetPol2(); // electron/positron
|
||||
G4StokesVector GetPol3(); // photon
|
||||
private:
|
||||
|
||||
G4PolarizedGammaConversionModel * theModel;
|
||||
|
||||
G4StokesVector theFinalElectronPolarization;
|
||||
G4StokesVector theFinalPositronPolarization;
|
||||
|
||||
+123
@@ -0,0 +1,123 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PolarizedPhotoElectricEffect.hh,v 1.1 2007/11/01 17:29:09 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
//
|
||||
//------------------ G4PolarizedPhotoElectricEffect physics process ------------------
|
||||
// by Michel Maire, 24 May 1996
|
||||
//
|
||||
// 12-06-96, Added SelectRandomAtom() method and new data member
|
||||
// for cumulative total cross section, by M.Maire
|
||||
// 21-06-96, SetCuts implementation, M.Maire
|
||||
// 17-09-96, Dynamic array PartialSumSigma
|
||||
// split ComputeBindingEnergy(), M.Maire
|
||||
// 08-01-97, crossection table + meanfreepath table, M.Maire
|
||||
// 13-03-97, adapted for the new physics scheme, M.Maire
|
||||
// 13-08-98, new methods SetBining() PrintInfo()
|
||||
// 17-11-98, use table of atomic shells in PostStepDoIt, mma
|
||||
// 06-01-99, Sandia crossSection below 50 keV, V.Grichine mma
|
||||
// 03-08-01, new methods Store/Retrieve PhysicsTable (mma)
|
||||
// 06-08-01, BuildThePhysicsTable() called from constructor (mma)
|
||||
// 19-09-01, come back to previous process name "phot"
|
||||
// 20-09-01, DoIt: fminimalEnergy = 1*eV (mma)
|
||||
// 01-10-01, come back to BuildPhysicsTable(const G4ParticleDefinition&)
|
||||
// 10-01-02, moved few function from icc to cc
|
||||
// 17-04-02, Keep only Sandia crossSections. Remove BuildPhysicsTables.
|
||||
// Simplify public interface (mma)
|
||||
// 29-04-02, Generate theta angle of the photoelectron from Sauter-Gavrila
|
||||
// distribution (mma)
|
||||
// 13-08-04, suppress icc file; make public ComputeCrossSectionPerAtom() (mma)
|
||||
// 21-04-05, Redesign - use G4VEmProcess interface (V.Ivanchenko)
|
||||
// 02-05-05, move ParticleChange actions in model (mma)
|
||||
// 04-05-05, Make class to be default (V.Ivanchenko)
|
||||
// 09-08-06, add SetModel(G4VEmModel*) (mma)
|
||||
// 12-09-06, move SetModel(G4VEmModel*) in G4VEmProcess (mma)
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
// class description
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
#ifdef NOIONIZATIONAS
|
||||
#define G4PolarizedPhotoElectricEffect_h 1
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef G4PolarizedPhotoElectricEffect_h
|
||||
#define G4PolarizedPhotoElectricEffect_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VEmProcess.hh"
|
||||
#include "G4Gamma.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4ParticleDefinition;
|
||||
class G4VEmModel;
|
||||
class G4MaterialCutsCouple;
|
||||
class G4DynamicParticle;
|
||||
|
||||
class G4PolarizedPhotoElectricEffect : public G4VEmProcess
|
||||
|
||||
{
|
||||
public: // with description
|
||||
|
||||
G4PolarizedPhotoElectricEffect(const G4String& processName ="pol-phot",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4PolarizedPhotoElectricEffect();
|
||||
|
||||
// true for Gamma only.
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
// Print few lines of informations about the process: validity range,
|
||||
void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline
|
||||
G4bool G4PolarizedPhotoElectricEffect::IsApplicable(const G4ParticleDefinition& p)
|
||||
{
|
||||
return (&p == G4Gamma::Gamma());
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StokesVector.hh,v 1.3 2006/11/17 11:59:03 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// $Id: G4StokesVector.hh,v 1.4 2007/11/01 17:32:34 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
@@ -46,7 +46,7 @@
|
||||
// aim:
|
||||
// - store three components of a stokesvector
|
||||
// - distinguish between boson or fermion state (different transformations)
|
||||
// - provide unique definition of reference frame (cf. PolarizationHelper)
|
||||
// - provide unique definition of reference frame (cf. G4PolarizationHelper)
|
||||
//
|
||||
|
||||
#ifndef G4StokesVector_h
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VPolarizedCrossSection.hh,v 1.2 2006/11/17 14:14:19 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// $Id: G4VPolarizedCrossSection.hh,v 1.4 2007/11/01 17:32:34 schaelic Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// File name: G4VPolarizedCrossSection
|
||||
//
|
||||
@@ -53,6 +53,7 @@ class G4VPolarizedCrossSection
|
||||
public:
|
||||
G4VPolarizedCrossSection();
|
||||
virtual ~G4VPolarizedCrossSection();
|
||||
|
||||
public:
|
||||
virtual void Initialize(G4double, G4double, G4double,
|
||||
const G4StokesVector & p0,const G4StokesVector & p1,
|
||||
@@ -66,14 +67,31 @@ public:
|
||||
virtual G4StokesVector GetPol2();
|
||||
virtual G4StokesVector GetPol3();
|
||||
|
||||
// return basic kinematics properties
|
||||
// minimal gamma value in TotalXSection
|
||||
inline G4double GetYmin() {return fYmin; }
|
||||
// minimal energy fraction in TotalXSection
|
||||
virtual G4double GetXmin(G4double y);
|
||||
// maximal energy fraction in TotalXSection
|
||||
virtual G4double GetXmax(G4double y);
|
||||
|
||||
// return appropriate distribute polarisation states;
|
||||
void DicePolarization();
|
||||
G4StokesVector DicedPol2();
|
||||
G4StokesVector DicedPol3();
|
||||
// void DicePolarization();
|
||||
// G4StokesVector DicedPol2();
|
||||
// G4StokesVector DicedPol3();
|
||||
inline void SetMaterial(G4double A, G4double Z, G4double coul)
|
||||
{ theA=A; theZ=Z; fCoul=coul; }
|
||||
protected:
|
||||
// G4double costheta;
|
||||
G4StokesVector pol0, pol1;
|
||||
G4StokesVector pol2, pol3;
|
||||
// define kinematics properties
|
||||
inline void SetXmin(G4double xmin) { fXmin=xmin;}
|
||||
inline void SetXmax(G4double xmax) { fXmax=xmax;}
|
||||
inline void SetYmin(G4double ymin) { fYmin=ymin;}
|
||||
|
||||
// kinematic properties
|
||||
G4double fXmin, fXmax, fYmin;
|
||||
// material properties
|
||||
G4double theA, theZ;
|
||||
G4double fCoul;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ePolarizedBremsstrahlung.hh,v 1.2 2007/05/23 08:52:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ePolarizedBremsstrahlungModel.hh,v 1.2 2007/05/23 08:52:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4ePolarizedIonisation.hh,v 1.3 2007/06/11 13:37:56 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
|
||||
+1
-1
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eplusPolarizedAnnihilation.hh,v 1.3 2007/06/11 13:37:56 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-00 $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user