Import Geant4 7.1.0 source tree
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
|
||||
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
|
||||
@@ -77,7 +77,7 @@ private:
|
||||
// Generates a particle from a radiative transition and returns it
|
||||
G4DynamicParticle* GenerateFluorescence(G4int Z, G4int shellId,G4int provShellId);
|
||||
|
||||
// Dummy function: when invowed returns a null pointer
|
||||
// Generates a particle from a non-radiative transition and returns it
|
||||
G4DynamicParticle* GenerateAuger(G4int Z, G4int shellId);
|
||||
|
||||
// Data member which stores the shells to be filled by
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AtomicShell.hh,v 1.2 ????
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
|
||||
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
|
||||
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4AugerData.hh
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4BremsstrahlungParameters.hh,v 1.9 2003/06/16 16:59:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
// V. Ivanchenko (Vladimir.Ivantchenko@cern.ch)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4CompositeEMDataSet.hh,v 1.5 2003/06/16 16:59:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4CrossSectionHandler.hh,v 1.8 2003/06/16 16:59:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4EMDataSet.hh,v 1.4 2003/05/20 20:03:34 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4FluoTransition.hh,v 1.2 ????
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LinInterpolation.hh,v 1.2 2002/05/28 09:15:26 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LogLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4LowEnergyBremsstrahlung.hh,v 1.36 2003/11/10 17:50:46 trindade Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LowEnergyCompton.hh,v 1.20 2003/12/09 15:36:37 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LowEnergyGammaConversion.hh,v 1.14 2001/10/08 07:45:33 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4LowEnergyIonisation.hh,v 1.40 2003/06/16 16:59:44 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LowEnergyPhotoElectric.hh,v 1.26 2004/05/12 09:20:03 silvarod Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LowEnergyPolarizedCompton.hh,v 1.8 2002/05/31 18:11:45 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LowEnergyPolarizedRayleigh.hh,v 1.4 2005/05/20 15:19:18 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// File name: G4LowEnergyPolarizedRayleigh.hh
|
||||
//
|
||||
// Author: Capra Riccardo
|
||||
//
|
||||
// Creation date: May 2005
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 May 2005 R. Capra 1st implementation
|
||||
//
|
||||
//----------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4LowEnergyPolarizedRayleigh_hh
|
||||
#define G4LowEnergyPolarizedRayleigh_hh
|
||||
|
||||
#include "G4VLowEnergyDiscretePhotonProcess.hh"
|
||||
|
||||
// G4LowEnergyPolarizedRayleigh
|
||||
// The class implements the polarized Rayleigh process
|
||||
//
|
||||
// Specialization of G4VLowEnergyDiscretePhotonProcess class.
|
||||
// This is a preliminary implementation of the Rayleigh polarized process.
|
||||
// Reference articles are:
|
||||
//
|
||||
// Rayleigh process: The Quantum Theory of Radiation
|
||||
// W. Heitler, Oxford at the Clarendon Press, Oxford (1954)
|
||||
// Scattering function: A simple model of photon transport
|
||||
// D.E. Cullen, Nucl. Instr. Meth. in Phys. Res. B 101 (1995) 499-510
|
||||
// Polarization of the outcoming photon: Beam test of a prototype detector array for the PoGO astronomical hard X-ray/soft gamma-ray polarimeter
|
||||
// T. Mizuno et al., Nucl. Instr. Meth. in Phys. Res. A 540 (2005) 158-168
|
||||
//
|
||||
class G4LowEnergyPolarizedRayleigh : public G4VLowEnergyDiscretePhotonProcess
|
||||
{
|
||||
public:
|
||||
// Class constructor
|
||||
// processName The name of the process
|
||||
G4LowEnergyPolarizedRayleigh(const G4String &processName = "polarLowEnRayleigh");
|
||||
|
||||
// Class destructor
|
||||
inline virtual ~G4LowEnergyPolarizedRayleigh(void) {}
|
||||
|
||||
// Calculates the new photon direction and polarization
|
||||
//
|
||||
// In the code the following definitions are used
|
||||
// aTrack The track
|
||||
// aStep The step
|
||||
// The proposed changes for the photon
|
||||
virtual G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
|
||||
|
||||
private:
|
||||
|
||||
// Hides copy constructor
|
||||
G4LowEnergyPolarizedRayleigh(const G4LowEnergyPolarizedRayleigh&);
|
||||
|
||||
// Hides assignment operator
|
||||
G4LowEnergyPolarizedRayleigh & operator=(const G4LowEnergyPolarizedRayleigh&);
|
||||
|
||||
// Generates \f$cos \left ( \theta\right )\f$ of the scattered photon
|
||||
// incomingPhotonEnergy The energy of the incoming photon
|
||||
// zAtom Atomic number
|
||||
// \f$cos \left ( \theta\right )\f$
|
||||
G4double GenerateCosTheta(G4double incomingPhotonEnergy, G4int zAtom) const;
|
||||
|
||||
// Generates \f$\phi\f$ of the scattered photon
|
||||
// cosTheta \f$cos \left ( \theta\right )\f$ of the scattered photon
|
||||
// \f$\phi\f$
|
||||
G4double GeneratePhi(G4double cosTheta) const;
|
||||
|
||||
// Generates the polarization direction \f$\beta\f$ in the plane x, y relative to the x direction
|
||||
// \f$\beta\f$
|
||||
G4double GeneratePolarizationAngle(void) const;
|
||||
|
||||
// Lower energy limit due to the available data in the physics tables
|
||||
G4double intrinsicLowEnergyLimit;
|
||||
|
||||
// Higher energy limit due to the available data in the physics tables
|
||||
G4double intrinsicHighEnergyLimit;
|
||||
};
|
||||
|
||||
#endif /* G4LowEnergyPolarizedRayleigh_hh */
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4LowEnergyRayleigh.hh,v 1.15 2001/10/08 07:45:35 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
//
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4PenelopeBremsstrahlung.hh,v 1.7 2003/11/11 17:18:30 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: L.Pandola
|
||||
//
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4PenelopeBremsstrahlungAngular.hh,v 1.2 2003/11/07 12:26:08 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: L.Pandola
|
||||
//
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4PenelopeBremsstrahlungContinuous.hh,v 1.2 2003/03/19 10:28:28 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: L.Pandola
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PenelopeCompton.hh,v 1.9 2004/06/03 08:17:52 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Luciano Pandola
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PenelopeGammaConversion.hh,v 1.1 2002/12/06 16:25:00 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: L. Pandola
|
||||
//
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
#define G4PENELOPEINTEGRATOR_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include <math.h>
|
||||
#include <cmath>
|
||||
|
||||
template <class T,class F>
|
||||
class G4PenelopeIntegrator
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4PenelopeIonisation.hh,v 1.4 2003/07/09 12:36:46 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: L. Pandola
|
||||
//
|
||||
|
||||
@@ -21,14 +21,16 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4PenelopePhotoElectric.hh,v 1.2 2003/02/23 23:42:52 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// $Id: G4PenelopePhotoElectric.hh,v 1.3 2005/05/31 10:09:14 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: L.Pandola
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 07 Jan 2003 L.Pandola 1st implementation
|
||||
// 31 May 2005 L.Pandola Added method to sample angular distribution
|
||||
// of the final electron
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
@@ -89,6 +91,8 @@ private:
|
||||
G4PenelopePhotoElectric& operator=(const G4PenelopePhotoElectric& right);
|
||||
G4PenelopePhotoElectric(const G4PenelopePhotoElectric& );
|
||||
|
||||
G4double SampleElectronDirection(G4double);
|
||||
|
||||
G4double lowEnergyLimit; // low energy limit applied to the process
|
||||
G4double highEnergyLimit; // high energy limit applied to the process
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4PenelopeRayleigh.hh,v 1.4 2004/03/18 13:40:13 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Luciano Pandola
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4RangeNoTest.hh,v 1.3 2003/05/20 20:03:34 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4RangeTest.hh,v 1.3 2003/01/22 18:42:23 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4SemiLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ShellData.hh,v 1.3 2003/06/16 16:59:48 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4ShellEMDataSet.hh,v 1.5 2003/06/16 16:59:49 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VCrossSectionHandler.hh,v 1.13 2003/06/16 16:59:51 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VDataSetAlgorithm.hh,v 1.6 2002/05/28 09:15:26 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VEMDataSet.hh,v 1.6 2002/05/28 09:15:26 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
+190
@@ -0,0 +1,190 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * 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. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VLowEnergyDiscretePhotonProcess.hh,v 1.2 2005/05/20 15:19:18 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// File name: G4VLowEnergyDiscretePhotonProcess.hh
|
||||
//
|
||||
// Author: Capra Riccardo
|
||||
//
|
||||
// Creation date: May 2005
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 May 2005 R. Capra 1st implementation
|
||||
// 20 May 2005 MGP Modified protected member functions to return a const pointer
|
||||
//
|
||||
//----------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
#ifndef G4VLowEnergyDiscretePhotonProcess_hh
|
||||
#define G4VLowEnergyDiscretePhotonProcess_hh
|
||||
|
||||
// Base class
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
|
||||
// Forward declaration
|
||||
class G4String;
|
||||
class G4ParticleDefinition;
|
||||
class G4DynamicParticle;
|
||||
class G4Track;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VEMDataSet;
|
||||
class G4VDataSetAlgorithm;
|
||||
|
||||
// G4VLowEnergyDiscretePhotonProcess
|
||||
// A common class for Rayleigh and Compton processes
|
||||
class G4VLowEnergyDiscretePhotonProcess : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
// Class constructor
|
||||
//
|
||||
// Creates crossSectionHandler and scatterFunctionData
|
||||
// scatterFunctionData are loaded from the scatterFile file, and are interpolated with scatterInterpolation algorithm
|
||||
// processName The name of the process
|
||||
// aCrossSectionFileName The name of the cross-section data file
|
||||
// aScatterFileName The name of the scatter function data
|
||||
// aScatterInterpolation The interpolation algorithm
|
||||
// aLowEnergyLimit The lower energy limit of validity against data
|
||||
// aHighEnergyLimit The higher energy limit of validity against data
|
||||
G4VLowEnergyDiscretePhotonProcess(const G4String& processName,
|
||||
const G4String& aCrossSectionFileName,
|
||||
const G4String& aScatterFileName,
|
||||
G4VDataSetAlgorithm* aScatterInterpolation,
|
||||
G4double aLowEnergyLimit,
|
||||
G4double aHighEnergyLimit);
|
||||
|
||||
// Class destructor
|
||||
//
|
||||
// Deletes crossSectionHandler, meanFreePathTable and scatterFunctionData
|
||||
virtual ~G4VLowEnergyDiscretePhotonProcess(void);
|
||||
|
||||
|
||||
|
||||
// Checks if the process is applicable to the particle
|
||||
//
|
||||
// For processes inheriting from this class the only applicable particle is the photon
|
||||
// particleDefinition Is the particle to be checked for the applicability of the process
|
||||
// true only if the particle is a photon
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition& particleDefinition);
|
||||
|
||||
// Updates the crossSectionHandler and builds the meanFreePathTable from it
|
||||
//
|
||||
// crossSectionHandler data is loaded from crossSectionFile file
|
||||
// photon particle is always a photon
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition& photon);
|
||||
|
||||
// Calls GetMeanFreePath (for testing purpose only)
|
||||
// aTrack the particle momentum for which the mean free path must be evaluates (a photon)
|
||||
// previousStepSize the size of the prevous step (not used by this implementation)
|
||||
// condition the consition to be updated (not used by this implementation)
|
||||
// The mean free path evaluated by GetMeanFreePath
|
||||
inline G4double DumpMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition)
|
||||
{return GetMeanFreePath(aTrack, previousStepSize, condition);}
|
||||
|
||||
|
||||
|
||||
// Returns the low energy limit of the process
|
||||
// The low energy limit of the process
|
||||
inline G4double GetLowEnergyLimit(void) const {return lowEnergyLimit;}
|
||||
|
||||
// Returns the high energy limit of the process
|
||||
// The high energy limit of the process
|
||||
inline G4double GetHighEnergyLimit(void) const {return highEnergyLimit;}
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
// Evaluates the process mean free path
|
||||
//
|
||||
// Mean free path evaluation is based on meanFreePathTable generated by the crossSectionHandler with data taken from the crossSectionFile.
|
||||
// The method uses lowEnergyLimit and highEnergyLimit
|
||||
// aTrack the particle momentum for which the mean free path must be evaluates (a photon)
|
||||
// previousStepSize the size of the prevous step (not used by this implementation)
|
||||
// condition the consition to be updated (not used by this implementation)
|
||||
// The mean free path for the process
|
||||
virtual G4double GetMeanFreePath(const G4Track &aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
// Returns the cross-section handler
|
||||
// The cross-section handler
|
||||
inline const G4VCrossSectionHandler* GetCrossSectionHandler(void) const {return crossSectionHandler;}
|
||||
|
||||
// Returns the mean free path table
|
||||
// The mean free path table
|
||||
inline const G4VEMDataSet* GetMeanFreePathTable(void) const {return meanFreePathTable;}
|
||||
|
||||
// Returns the scatter function data
|
||||
// The scatter function data
|
||||
inline const G4VEMDataSet* GetScatterFunctionData(void) const {return scatterFunctionData;}
|
||||
|
||||
|
||||
|
||||
// Verifies if the polarization vector is orthonormal to the photon direction
|
||||
//
|
||||
// This method is used by polarized processes. It returns always a vector orthonormal to the photon direction.
|
||||
// When G4DynamicParticle::GetPolarization() is well defined the returned vector matches this vector.
|
||||
// When G4DynamicParticle::GetPolarization() is sensibly different from a null-vector, the returned vector is
|
||||
// orthonormal to the photon direction and on the plane made with G4DynamicParticle::GetPolarization()
|
||||
// When G4DynamicParticle::GetPolarization() is almost a null-vector, the returned vector is a random
|
||||
// vector orthonormal to the photon direction
|
||||
// photon The incoming photon
|
||||
// s Always a vector ortogonal to the photon direction.
|
||||
G4ThreeVector GetPhotonPolarization(const G4DynamicParticle& photon);
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Hides copy constructor
|
||||
G4VLowEnergyDiscretePhotonProcess(const G4VLowEnergyDiscretePhotonProcess& );
|
||||
|
||||
// Hides assignment operator
|
||||
G4VLowEnergyDiscretePhotonProcess& operator=(const G4VLowEnergyDiscretePhotonProcess& );
|
||||
|
||||
// Low energy limit
|
||||
G4double lowEnergyLimit;
|
||||
|
||||
// High energy limit
|
||||
G4double highEnergyLimit;
|
||||
|
||||
// Cross-section file name
|
||||
G4String crossSectionFileName;
|
||||
|
||||
// Cross-section handler
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
|
||||
// The mean free path table based on cross-section data
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
|
||||
// Scatter function table
|
||||
G4VEMDataSet* scatterFunctionData;
|
||||
};
|
||||
|
||||
#endif /* G4VLowEnergyDiscretePhotonProcess_hh */
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VRangeTest.hh,v 1.2 2003/01/22 18:42:23 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4VeLowEnergyLoss.hh,v 1.8 2003/01/22 18:42:24 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// 3.4.2000 Veronique Lefebure:
|
||||
// Move utils/include/G4VEnergyLoss.hh to
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eBremsstrahlungSpectrum.hh,v 1.7 2003/12/09 15:36:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eIonisationCrossSectionHandler.hh,v 1.5 2003/06/16 16:59:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4eIonisationParameters.hh,v 1.7 2003/06/16 16:59:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
// V. Ivanchenko
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eIonisationSpectrum.hh,v 1.6 2003/12/09 15:36:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4eLowEnergyLoss.hh,v 1.13 2004/12/02 14:01:12 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4eLowEnergyLoss.icc,v 1.7 2003/06/16 16:59:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// ---------------------------------------------------------------
|
||||
// GEANT 4 class inlined methods file
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4hLowEnergyLoss.hh,v 1.16 2004/12/02 14:01:12 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// $Id:
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4hLowEnergyLoss.icc,v 1.2 2001/07/11 10:02:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
//
|
||||
// $Id:
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4hShellCrossSectionDoubleExp.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
|
||||
#ifndef G4HSHELLCROSSSECTIONDOUBLEEXP_HH
|
||||
#define G4HSHELLCROSSSECTIONDOUBLEEXP_HH 1
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4hShellCrossSectionDoubleExpData.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
|
||||
#ifndef G4hShellCrossSectionDoubleExpData_HH
|
||||
#define G4hShellCrossSectionDoubleExpData_HH 1
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4hShellCrossSectionExp.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
|
||||
#ifndef G4HSHELLCROSSSECTIONEXP_HH
|
||||
#define G4HSHELLCROSSSECTIONEXP_HH 1
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4hShellCrossSectionExpData.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
// GEANT4 tag $Name: geant4-07-01 $
|
||||
|
||||
#ifndef G4hShellCrossSectionExpData_HH
|
||||
#define G4hShellCrossSectionExpData_HH 1
|
||||
|
||||
Reference in New Issue
Block a user