Import Geant4 9.5.0 source tree
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
|
||||
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
|
||||
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4AugerData.hh
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
|
||||
//
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BoldyshevTripletModel.hh,v 1.1 2010/11/10 17:09:16 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4BoldyshevTripletModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03-patch-01 $
|
||||
//
|
||||
|
||||
#ifndef G4BoldyshevTripletModel_h
|
||||
@@ -87,9 +87,23 @@ private:
|
||||
G4BoldyshevTripletModel & operator=(const G4BoldyshevTripletModel &right);
|
||||
G4BoldyshevTripletModel(const G4BoldyshevTripletModel&);
|
||||
|
||||
|
||||
G4double asinh (G4double value);
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4BoldyshevTripletModel::asinh (G4double value)
|
||||
{
|
||||
G4double out;
|
||||
|
||||
if (value>0)
|
||||
out = std::log(value+std::sqrt(value*value+1));
|
||||
else
|
||||
out = -std::log(-value+std::sqrt(value*value+1));
|
||||
|
||||
return out;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4BremsstrahlungParameters.hh,v 1.10 2006/06/29 19:33:06 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4BremsstrahlungParameters.hh,v 1.10 2006-06-29 19:33:06 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
// V. Ivanchenko (Vladimir.Ivantchenko@cern.ch)
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4CompositeEMDataSet.hh,v 1.13 2009/09/25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4CompositeEMDataSet.hh,v 1.13 2009-09-25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -1,59 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionChargeDecrease.hh,v 1.2 2008/07/14 20:47:32 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONCHARGEDECREASE_HH
|
||||
#define G4CROSSSECTIONCHARGEDECREASE_HH 1
|
||||
|
||||
#include "G4CrossSectionChargeDecreasePartial.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
class G4CrossSectionChargeDecrease
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionChargeDecrease();
|
||||
|
||||
virtual ~G4CrossSectionChargeDecrease();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4CrossSectionChargeDecreasePartial partialCrossSection;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-68
@@ -1,68 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionChargeDecreasePartial.hh,v 1.2 2008/07/14 20:47:32 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONCHARGEDECREASEPARTIAL_HH
|
||||
#define G4CROSSSECTIONCHARGEDECREASEPARTIAL_HH 1
|
||||
|
||||
#include "G4Proton.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4ParticleDefinition;
|
||||
|
||||
class G4CrossSectionChargeDecreasePartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionChargeDecreasePartial();
|
||||
|
||||
virtual ~G4CrossSectionChargeDecreasePartial();
|
||||
|
||||
G4double CrossSection(G4double energy, G4int level, const G4ParticleDefinition* particle);
|
||||
|
||||
G4double Sum(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelect(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
private:
|
||||
|
||||
G4int numberOfPartialCrossSections[3]; // 3 is the particle type index
|
||||
|
||||
G4double f0[2][3];
|
||||
G4double a0[2][3];
|
||||
G4double a1[2][3];
|
||||
G4double b0[2][3];
|
||||
G4double b1[2][3];
|
||||
G4double c0[2][3];
|
||||
G4double d0[2][3];
|
||||
G4double x0[2][3];
|
||||
G4double x1[2][3];
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionChargeIncrease.hh,v 1.2 2008/07/14 20:47:33 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONCHARGEIncrease_HH
|
||||
#define G4CROSSSECTIONCHARGEIncrease_HH 1
|
||||
|
||||
#include "G4CrossSectionChargeIncreasePartial.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
class G4CrossSectionChargeIncrease
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionChargeIncrease();
|
||||
|
||||
virtual ~G4CrossSectionChargeIncrease();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4CrossSectionChargeIncreasePartial partialCrossSection;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionChargeIncreasePartial.hh,v 1.2 2008/07/14 20:47:33 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONCHARGEIncreasePARTIAL_HH
|
||||
#define G4CROSSSECTIONCHARGEIncreasePARTIAL_HH 1
|
||||
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4CrossSectionChargeIncreasePartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionChargeIncreasePartial();
|
||||
|
||||
virtual ~G4CrossSectionChargeIncreasePartial();
|
||||
|
||||
G4double CrossSection(G4double energy, G4int level, const G4ParticleDefinition* particle);
|
||||
|
||||
G4double Sum(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelect(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
private:
|
||||
|
||||
G4int numberOfPartialCrossSections[2]; // 2 is the particle type index
|
||||
|
||||
G4double f0[2][2];
|
||||
G4double a0[2][2];
|
||||
G4double a1[2][2];
|
||||
G4double b0[2][2];
|
||||
G4double b1[2][2];
|
||||
G4double c0[2][2];
|
||||
G4double d0[2][2];
|
||||
G4double x0[2][2];
|
||||
G4double x1[2][2];
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
+11
-11
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4DNACrossSectionDataSet.hh,v 1.7 2009/09/25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4CrossSectionDataSet.hh,v 1.7 2009-09-25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Riccardo Capra <capra@ge.infn.it>
|
||||
//
|
||||
@@ -46,20 +46,20 @@
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4DNACROSSSECTIONDATASET_HH
|
||||
#define G4DNACROSSSECTIONDATASET_HH 1
|
||||
#ifndef G4CrossSectionDataSet_HH
|
||||
#define G4CrossSectionDataSet_HH 1
|
||||
|
||||
#include "G4ShellEMDataSet.hh"
|
||||
|
||||
class G4DNACrossSectionDataSet : public G4VEMDataSet
|
||||
class G4CrossSectionDataSet : public G4VEMDataSet
|
||||
{
|
||||
|
||||
public:
|
||||
G4DNACrossSectionDataSet(G4VDataSetAlgorithm* algo,
|
||||
G4CrossSectionDataSet(G4VDataSetAlgorithm* algo,
|
||||
G4double xUnit=MeV,
|
||||
G4double dataUnit=barn);
|
||||
|
||||
virtual ~G4DNACrossSectionDataSet();
|
||||
virtual ~G4CrossSectionDataSet();
|
||||
|
||||
virtual G4double FindValue(G4double e, G4int componentId=0) const;
|
||||
|
||||
@@ -109,9 +109,9 @@ private:
|
||||
G4String FullFileName(const G4String & argFileName) const;
|
||||
|
||||
// Hide copy constructor and assignment operator
|
||||
G4DNACrossSectionDataSet();
|
||||
G4DNACrossSectionDataSet(const G4DNACrossSectionDataSet & copy);
|
||||
G4DNACrossSectionDataSet& operator=(const G4DNACrossSectionDataSet & right);
|
||||
G4CrossSectionDataSet();
|
||||
G4CrossSectionDataSet(const G4CrossSectionDataSet & copy);
|
||||
G4CrossSectionDataSet& operator=(const G4CrossSectionDataSet & right);
|
||||
|
||||
std::vector<G4VEMDataSet*> components; // Owned pointers
|
||||
|
||||
@@ -130,4 +130,4 @@ private:
|
||||
|
||||
|
||||
};
|
||||
#endif /* G4DNACROSSSECTIONDATASET_HH */
|
||||
#endif /* G4CrossSectionDataSet_HH */
|
||||
-82
@@ -1,82 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionElasticScreenedRutherford.hh,v 1.1 2007/10/12 23:07:10 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Geant4-DNA Cross total cross section for electron elastic scattering in water
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
|
||||
// design foundation and implementation of the first set of models,
|
||||
// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
|
||||
// Reference for implementation model: NIM. 155, pp. 145-156, 1978
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4CROSSSECTIONELASTICSCREENEDRUTHERFORD_HH
|
||||
#define G4CROSSSECTIONELASTICSCREENEDRUTHERFORD_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Track;
|
||||
|
||||
class G4CrossSectionElasticScreenedRutherford
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionElasticScreenedRutherford();
|
||||
|
||||
virtual ~G4CrossSectionElasticScreenedRutherford();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
private:
|
||||
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
G4String name;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-54
@@ -1,54 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionElasticScreenedRutherfordHE.hh,v 1.1 2008/06/27 20:09:54 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONELASTICSCREENEDRUTHERFORDHE_HH
|
||||
#define G4CROSSSECTIONELASTICSCREENEDRUTHERFORDHE_HH 1
|
||||
|
||||
#include "G4Track.hh"
|
||||
|
||||
class G4CrossSectionElasticScreenedRutherfordHE
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionElasticScreenedRutherfordHE();
|
||||
|
||||
virtual ~G4CrossSectionElasticScreenedRutherfordHE();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
private:
|
||||
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
};
|
||||
|
||||
#endif
|
||||
-55
@@ -1,55 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionElasticScreenedRutherfordLE.hh,v 1.2 2008/07/14 20:47:33 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONELASTICSCREENEDRUTHERFORDLE_HH
|
||||
#define G4CROSSSECTIONELASTICSCREENEDRUTHERFORDLE_HH 1
|
||||
|
||||
#include "G4Track.hh"
|
||||
|
||||
class G4CrossSectionElasticScreenedRutherfordLE
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionElasticScreenedRutherfordLE();
|
||||
|
||||
virtual ~G4CrossSectionElasticScreenedRutherfordLE();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
private:
|
||||
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,55 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionExcitationBorn.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONEXCITATIONBORN_HH
|
||||
#define G4CROSSSECTIONEXCITATIONBORN_HH 1
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
|
||||
class G4CrossSectionExcitationBorn
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionExcitationBorn();
|
||||
|
||||
virtual ~G4CrossSectionExcitationBorn();
|
||||
|
||||
G4double CrossSection(const G4Track& track);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
G4DNACrossSectionDataSet* table;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-53
@@ -1,53 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionExcitationBornPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONEXCITATIONBORNPARTIAL_HH
|
||||
#define G4CROSSSECTIONEXCITATIONBORNPARTIAL_HH 1
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "Randomize.hh"
|
||||
#include <deque>
|
||||
|
||||
class G4CrossSectionExcitationBornPartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionExcitationBornPartial();
|
||||
|
||||
virtual ~G4CrossSectionExcitationBornPartial();
|
||||
|
||||
G4int RandomSelect(G4double energy);
|
||||
|
||||
private:
|
||||
|
||||
G4DNACrossSectionDataSet* table;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-54
@@ -1,54 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionExcitationEmfietzoglou.hh,v 1.3 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONEXCITATIONEMFIETZOGLOU_HH
|
||||
#define G4CROSSSECTIONEXCITATIONEMFIETZOGLOU_HH 1
|
||||
|
||||
#include "G4CrossSectionExcitationEmfietzoglouPartial.hh"
|
||||
#include "G4Track.hh"
|
||||
|
||||
class G4CrossSectionExcitationEmfietzoglou
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionExcitationEmfietzoglou();
|
||||
|
||||
virtual ~G4CrossSectionExcitationEmfietzoglou();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
G4CrossSectionExcitationEmfietzoglouPartial partialCrossSection;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionExcitationEmfietzoglouPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONEXCITATIONEMFIETZOGLOUPARTIAL_HH
|
||||
#define G4CROSSSECTIONEXCITATIONEMFIETZOGLOUPARTIAL_HH 1
|
||||
|
||||
#include "G4WaterExcitationStructure.hh"
|
||||
#include <deque>
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4Track;
|
||||
|
||||
class G4CrossSectionExcitationEmfietzoglouPartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionExcitationEmfietzoglouPartial();
|
||||
|
||||
virtual ~G4CrossSectionExcitationEmfietzoglouPartial();
|
||||
|
||||
G4double CrossSection(G4double energy,G4int level);
|
||||
|
||||
G4double Sum(G4double energy);
|
||||
|
||||
G4int RandomSelect(G4double energy);
|
||||
|
||||
private:
|
||||
|
||||
G4int nLevels;
|
||||
|
||||
G4WaterExcitationStructure waterExcitation;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-58
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionExcitationMillerGreen.hh,v 1.3 2008/07/14 20:47:34 sincerti Exp $
|
||||
|
||||
#ifndef G4CROSSSECTIONEXCITATIONMILLERGREEN_HH
|
||||
#define G4CROSSSECTIONEXCITATIONMILLERGREEN_HH 1
|
||||
|
||||
#include "G4CrossSectionExcitationMillerGreenPartial.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4CrossSectionExcitationEmfietzoglouPartial.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
class G4CrossSectionExcitationMillerGreen
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionExcitationMillerGreen();
|
||||
|
||||
virtual ~G4CrossSectionExcitationMillerGreen();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4CrossSectionExcitationMillerGreenPartial partialCrossSection;
|
||||
};
|
||||
|
||||
#endif
|
||||
-85
@@ -1,85 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionExcitationMillerGreenPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONEXCITATIONMILLERGREENPARTIAL_HH
|
||||
#define G4CROSSSECTIONEXCITATIONMILLERGREENPARTIAL_HH 1
|
||||
|
||||
#include "G4WaterExcitationStructure.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "G4CrossSectionExcitationEmfietzoglouPartial.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4CrossSectionExcitationMillerGreenPartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionExcitationMillerGreenPartial();
|
||||
|
||||
virtual ~G4CrossSectionExcitationMillerGreenPartial();
|
||||
|
||||
G4double CrossSection(G4double energy,G4int level, const G4ParticleDefinition* particle);
|
||||
|
||||
G4double Sum(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelect(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
private:
|
||||
|
||||
G4int nLevels;
|
||||
|
||||
G4WaterExcitationStructure waterExcitation;
|
||||
|
||||
G4double S_1s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double S_2s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double S_2p(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double R(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double kineticEnergyCorrection[4]; // 4 is the particle type index
|
||||
G4double slaterEffectiveCharge[3][4];
|
||||
G4double sCoefficient[3][4];
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4CrossSectionHandler.hh,v 1.9 2006/06/29 19:33:10 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4CrossSectionHandler.hh,v 1.9 2006-06-29 19:33:10 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
@@ -38,7 +38,6 @@
|
||||
// Class description:
|
||||
// Low Energy Electromagnetic Physics
|
||||
// Data set manager for an electromagnetic physics process
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionIonisationBorn.hh,v 1.3 2008/12/18 13:01:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONIONISATIONBORN_HH
|
||||
#define G4CROSSSECTIONIONISATIONBORN_HH 1
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
|
||||
class G4CrossSectionIonisationBorn
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionIonisationBorn();
|
||||
|
||||
~G4CrossSectionIonisationBorn();
|
||||
|
||||
G4double CrossSection(const G4Track& track);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-83
@@ -1,83 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionIonisationBornElectron.hh,v 1.1 2007/10/15 08:33:25 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Geant4-DNA Cross total cross section for electron elastic scattering in water
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
|
||||
// design foundation and implementation of the first set of models,
|
||||
// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
|
||||
// Reference for implementation model: NIM. 155, pp. 145-156, 1978
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4CROSSSECTIONIONISATIONBORNELECTRON_HH
|
||||
#define G4CROSSSECTIONIONISATIONBORNELECTRON_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include <vector>
|
||||
#include "G4WaterExcitationStructure.hh"
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
|
||||
class G4Track;
|
||||
|
||||
class G4CrossSectionIonisationBornElectron
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionIonisationBornElectron();
|
||||
|
||||
virtual ~G4CrossSectionIonisationBornElectron();
|
||||
|
||||
G4double CrossSection(const G4Track& track);
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
private:
|
||||
|
||||
G4String name;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
G4DNACrossSectionDataSet* table;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-69
@@ -1,69 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionIonisationBornPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONIONISATIONBORNPARTIAL_HH
|
||||
#define G4CROSSSECTIONIONISATIONBORNPARTIAL_HH 1
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4CrossSectionIonisationBornPartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionIonisationBornPartial();
|
||||
|
||||
~G4CrossSectionIonisationBornPartial();
|
||||
|
||||
G4double CrossSection(const G4Track& track);
|
||||
|
||||
G4double Sum(G4double energy, const G4String& particle);
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-77
@@ -1,77 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionIonisationBornPartialElectron.hh,v 1.1 2007/10/15 08:33:25 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Geant4-DNA Cross total cross section for electron elastic scattering in water
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
|
||||
// design foundation and implementation of the first set of models,
|
||||
// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
|
||||
// Reference for implementation model: NIM. 155, pp. 145-156, 1978
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4CROSSSECTIONIONISATIONBORNPARTIALELECTRON_HH
|
||||
#define G4CROSSSECTIONIONISATIONBORNPARTIALELECTRON_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include <vector>
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
|
||||
class G4CrossSectionIonisationBornPartialElectron
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionIonisationBornPartialElectron();
|
||||
|
||||
virtual ~G4CrossSectionIonisationBornPartialElectron();
|
||||
|
||||
// Select an excitation level according to the partial cross sections
|
||||
G4int RandomSelect(G4double energy);
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
private:
|
||||
|
||||
G4DNACrossSectionDataSet* table;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,64 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionIonisationRudd.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONIONISATIONRUDD_HH
|
||||
#define G4CROSSSECTIONIONISATIONRUDD_HH 1
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
class G4CrossSectionIonisationRudd
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionIonisationRudd();
|
||||
|
||||
~G4CrossSectionIonisationRudd();
|
||||
|
||||
G4double CrossSection(const G4Track& track);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-68
@@ -1,68 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionIonisationRuddPartial.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4CROSSSECTIONIONISATIONRuddPARTIAL_HH
|
||||
#define G4CROSSSECTIONIONISATIONRuddPARTIAL_HH 1
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4CrossSectionIonisationRuddPartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionIonisationRuddPartial();
|
||||
|
||||
~G4CrossSectionIonisationRuddPartial();
|
||||
|
||||
G4double CrossSection(const G4Track& track);
|
||||
|
||||
G4double Sum(G4double energy, const G4String& particle);
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
};
|
||||
|
||||
#endif
|
||||
-54
@@ -1,54 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionPsCreationChampion.hh,v 1.1 2008/07/16 19:01:07 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4CROSSSECTIONPSCREATIONCHAMPION_HH
|
||||
#define G4CROSSSECTIONPSCREATIONCHAMPION_HH 1
|
||||
|
||||
#include "G4CrossSectionPsCreationChampionPartial.hh"
|
||||
#include "G4Track.hh"
|
||||
|
||||
class G4CrossSectionPsCreationChampion
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionPsCreationChampion();
|
||||
|
||||
virtual ~G4CrossSectionPsCreationChampion();
|
||||
|
||||
G4double CrossSection(const G4Track& track);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
G4CrossSectionPsCreationChampionPartial partialCrossSection;
|
||||
};
|
||||
#endif
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4CrossSectionPsCreationChampionPartial.hh,v 1.1 2008/07/16 19:01:07 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4CROSSSECTIONPSCREATIONCHAMPIONPARTIAL_HH
|
||||
#define G4CROSSSECTIONPSCREATIONCHAMPIONPARTIAL_HH 1
|
||||
|
||||
#include <map>
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "G4Positron.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4CrossSectionPsCreationChampionPartial
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionPsCreationChampionPartial();
|
||||
|
||||
virtual ~G4CrossSectionPsCreationChampionPartial();
|
||||
|
||||
G4double CrossSection(G4double energy, G4int level, const G4ParticleDefinition* particle);
|
||||
|
||||
G4double Sum(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelectState(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelectShell(G4double energy, const G4ParticleDefinition* particle, G4int state);
|
||||
|
||||
private:
|
||||
|
||||
G4int numberOfPartialCrossSections;
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
};
|
||||
#endif
|
||||
@@ -1,68 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAAttachment.hh,v 1.1 2010/09/08 13:46:45 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
// Created by Z. Francis
|
||||
|
||||
#ifndef G4DNAAttachment_h
|
||||
#define G4DNAAttachment_h 1
|
||||
|
||||
#include "G4VEmProcess.hh"
|
||||
|
||||
// Available models
|
||||
#include "G4DNAMeltonAttachmentModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4DNAAttachment : public G4VEmProcess
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4DNAAttachment(const G4String& processName ="DNAAttachment",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4DNAAttachment();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -1,104 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNABornExcitationModel.hh,v 1.4 2010/03/27 12:46:51 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
|
||||
#ifndef G4DNABornExcitationModel_h
|
||||
#define G4DNABornExcitationModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4WaterExcitationStructure.hh"
|
||||
|
||||
class G4DNABornExcitationModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNABornExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNABornExcitationModel");
|
||||
|
||||
virtual ~G4DNABornExcitationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector& = *(new G4DataVector()) );
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
// Partial cross section
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
// Final state
|
||||
|
||||
G4WaterExcitationStructure waterStructure;
|
||||
|
||||
//
|
||||
|
||||
G4DNABornExcitationModel & operator=(const G4DNABornExcitationModel &right);
|
||||
G4DNABornExcitationModel(const G4DNABornExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,140 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNABornIonisationModel.hh,v 1.5 2010/03/28 18:33:19 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
|
||||
#ifndef G4DNABornIonisationModel_h
|
||||
#define G4DNABornIonisationModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
//#include "G4DNAGenericMoleculeManager.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
|
||||
#include "G4WaterIonisationStructure.hh"
|
||||
|
||||
class G4DNABornIonisationModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNABornIonisationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNABornIonisationModel");
|
||||
|
||||
virtual ~G4DNABornIonisationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector& = *(new G4DataVector()));
|
||||
|
||||
virtual G4double CrossSectionPerVolume( const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double energyTransfer, G4int shell);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
// Final state
|
||||
|
||||
G4WaterIonisationStructure waterStructure;
|
||||
|
||||
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition * aParticleDefinition, G4double incomingParticleEnergy, G4int shell) ;
|
||||
|
||||
void RandomizeEjectedElectronDirection(G4ParticleDefinition * aParticleDefinition, G4double incomingParticleEnergy, G4double
|
||||
outgoingParticleEnergy, G4double & cosTheta, G4double & phi );
|
||||
|
||||
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
G4double QuadInterpolator( G4double e11,
|
||||
G4double e12,
|
||||
G4double e21,
|
||||
G4double e22,
|
||||
G4double x11,
|
||||
G4double x12,
|
||||
G4double x21,
|
||||
G4double x22,
|
||||
G4double t1,
|
||||
G4double t2,
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<double, std::map<double, double> > TriDimensionMap;
|
||||
TriDimensionMap eDiffCrossSectionData[6];
|
||||
TriDimensionMap pDiffCrossSectionData[6];
|
||||
std::vector<double> eTdummyVec;
|
||||
std::vector<double> pTdummyVec;
|
||||
|
||||
typedef std::map<double, std::vector<double> > VecMap;
|
||||
VecMap eVecm;
|
||||
VecMap pVecm;
|
||||
|
||||
// Partial cross section
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
//
|
||||
|
||||
G4DNABornIonisationModel & operator=(const G4DNABornIonisationModel &right);
|
||||
G4DNABornIonisationModel(const G4DNABornIonisationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,144 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAChampionElasticModel.hh,v 1.4 2010/11/11 22:32:22 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
|
||||
#ifndef G4DNAChampionElasticModel_h
|
||||
#define G4DNAChampionElasticModel_h 1
|
||||
|
||||
#include <map>
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
class G4DNAChampionElasticModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAChampionElasticModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAChampionElasticModel");
|
||||
|
||||
virtual ~G4DNAChampionElasticModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
inline void SetKillBelowThreshold (G4double threshold);
|
||||
G4double GetKillBelowThreshold () { return killBelowEnergy; }
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
G4double killBelowEnergy;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
// Final state
|
||||
|
||||
//G4double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double theta);
|
||||
|
||||
G4double Theta(G4ParticleDefinition * aParticleDefinition, G4double k, G4double integrDiff);
|
||||
|
||||
G4double LinLinInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
G4double LinLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
G4double QuadInterpolator(G4double e11,
|
||||
G4double e12,
|
||||
G4double e21,
|
||||
G4double e22,
|
||||
G4double x11,
|
||||
G4double x12,
|
||||
G4double x21,
|
||||
G4double x22,
|
||||
G4double t1,
|
||||
G4double t2,
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<double, std::map<double, double> > TriDimensionMap;
|
||||
|
||||
TriDimensionMap eDiffCrossSectionData;
|
||||
std::vector<double> eTdummyVec;
|
||||
|
||||
typedef std::map<double, std::vector<double> > VecMap;
|
||||
VecMap eVecm;
|
||||
|
||||
G4double RandomizeCosTheta(G4double k);
|
||||
|
||||
//
|
||||
|
||||
G4DNAChampionElasticModel & operator=(const G4DNAChampionElasticModel &right);
|
||||
G4DNAChampionElasticModel(const G4DNAChampionElasticModel&);
|
||||
|
||||
};
|
||||
|
||||
|
||||
inline void G4DNAChampionElasticModel::SetKillBelowThreshold (G4double threshold)
|
||||
{
|
||||
killBelowEnergy = threshold;
|
||||
|
||||
if (threshold < 1*eV)
|
||||
G4Exception ("*** WARNING : the G4DNAChampionElasticModel class is not validated below 1 eV !","",JustWarning,"") ;
|
||||
|
||||
if (threshold < 0.025*eV) threshold = 0.025*eV;
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,69 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAChargeDecrease.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4DNAChargeDecrease_h
|
||||
#define G4DNAChargeDecrease_h 1
|
||||
|
||||
#include "G4VEmProcess.hh"
|
||||
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "G4Proton.hh"
|
||||
|
||||
// Available models
|
||||
#include "G4DNADingfelderChargeDecreaseModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4DNAChargeDecrease : public G4VEmProcess
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4DNAChargeDecrease(const G4String& processName ="DNAChargeDecrease",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4DNAChargeDecrease();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -1,67 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAChargeIncrease.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4DNAChargeIncrease_h
|
||||
#define G4DNAChargeIncrease_h 1
|
||||
|
||||
#include "G4VEmProcess.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
// Available models
|
||||
#include "G4DNADingfelderChargeIncreaseModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4DNAChargeIncrease : public G4VEmProcess
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4DNAChargeIncrease(const G4String& processName ="DNAChargeIncrease",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4DNAChargeIncrease();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
-115
@@ -1,115 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNADingfelderChargeDecreaseModel.hh,v 1.2 2010/01/07 18:10:19 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
|
||||
#ifndef G4DNADingfelderChargeDecreaseModel_h
|
||||
#define G4DNADingfelderChargeDecreaseModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4Proton.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
class G4DNADingfelderChargeDecreaseModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNADingfelderChargeDecreaseModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNADingfelderChargeDecreaseModel");
|
||||
|
||||
virtual ~G4DNADingfelderChargeDecreaseModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Partial cross section
|
||||
|
||||
G4double PartialCrossSection(G4double energy, G4int level, const G4ParticleDefinition* particle);
|
||||
|
||||
G4double Sum(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelect(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int numberOfPartialCrossSections[3]; // 3 is the particle type index
|
||||
|
||||
G4double f0[2][3];
|
||||
G4double a0[2][3];
|
||||
G4double a1[2][3];
|
||||
G4double b0[2][3];
|
||||
G4double b1[2][3];
|
||||
G4double c0[2][3];
|
||||
G4double d0[2][3];
|
||||
G4double x0[2][3];
|
||||
G4double x1[2][3];
|
||||
|
||||
// Final state
|
||||
|
||||
G4int NumberOfFinalStates(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
G4ParticleDefinition* OutgoingParticleDefinition(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
G4double WaterBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
G4double OutgoingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
//
|
||||
|
||||
G4DNADingfelderChargeDecreaseModel & operator=(const G4DNADingfelderChargeDecreaseModel &right);
|
||||
G4DNADingfelderChargeDecreaseModel(const G4DNADingfelderChargeDecreaseModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
-118
@@ -1,118 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNADingfelderChargeIncreaseModel.hh,v 1.2 2010/01/07 18:10:19 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
|
||||
#ifndef G4DNADingfelderChargeIncreaseModel_h
|
||||
#define G4DNADingfelderChargeIncreaseModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
class G4DNADingfelderChargeIncreaseModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNADingfelderChargeIncreaseModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNADingfelderChargeIncreaseModel");
|
||||
|
||||
virtual ~G4DNADingfelderChargeIncreaseModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Partial cross section
|
||||
|
||||
G4double PartialCrossSection(G4double energy, G4int level, const G4ParticleDefinition* particle);
|
||||
|
||||
G4double Sum(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelect(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int numberOfPartialCrossSections[2]; // 2 is the particle type index
|
||||
|
||||
G4double f0[2][2];
|
||||
G4double a0[2][2];
|
||||
G4double a1[2][2];
|
||||
G4double b0[2][2];
|
||||
G4double b1[2][2];
|
||||
G4double c0[2][2];
|
||||
G4double d0[2][2];
|
||||
G4double x0[2][2];
|
||||
G4double x1[2][2];
|
||||
|
||||
// Final state
|
||||
|
||||
G4int NumberOfFinalStates(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
G4ParticleDefinition* OutgoingParticleDefinition(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
G4double WaterBindingEnergyConstant(G4ParticleDefinition * aParticleDefinition, G4int finalStateIndex);
|
||||
|
||||
G4double OutgoingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
G4double IncomingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
//
|
||||
|
||||
G4DNADingfelderChargeIncreaseModel & operator=(const G4DNADingfelderChargeIncreaseModel &right);
|
||||
G4DNADingfelderChargeIncreaseModel(const G4DNADingfelderChargeIncreaseModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,68 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAElastic.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4DNAElastic_h
|
||||
#define G4DNAElastic_h 1
|
||||
|
||||
#include "G4VEmProcess.hh"
|
||||
#include "G4Electron.hh"
|
||||
|
||||
// Available models
|
||||
#include "G4DNAChampionElasticModel.hh"
|
||||
#include "G4DNAScreenedRutherfordElasticModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4DNAElastic : public G4VEmProcess
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4DNAElastic(const G4String& processName ="DNAElastic",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4DNAElastic();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
-100
@@ -1,100 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAEmfietzoglouExcitationModel.hh,v 1.3 2010/03/26 19:52:44 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
|
||||
#ifndef G4DNAEmfietzoglouExcitationModel_h
|
||||
#define G4DNAEmfietzoglouExcitationModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4WaterExcitationStructure.hh"
|
||||
#include <deque>
|
||||
#include "Randomize.hh"
|
||||
#include "G4Electron.hh"
|
||||
|
||||
class G4DNAEmfietzoglouExcitationModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAEmfietzoglouExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAEmfietzoglouExcitationModel");
|
||||
|
||||
virtual ~G4DNAEmfietzoglouExcitationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector& = *(new G4DataVector()) );
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
// Cross section
|
||||
|
||||
G4double PartialCrossSection(G4double energy,G4int level);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
G4double Sum(G4double energy);
|
||||
|
||||
G4int RandomSelect(G4double energy);
|
||||
|
||||
G4int nLevels;
|
||||
|
||||
G4WaterExcitationStructure waterExcitation;
|
||||
|
||||
//
|
||||
|
||||
G4DNAEmfietzoglouExcitationModel & operator=(const G4DNAEmfietzoglouExcitationModel &right);
|
||||
G4DNAEmfietzoglouExcitationModel(const G4DNAEmfietzoglouExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,71 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAExcitation.hh,v 1.2 2009/03/04 13:28:49 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4DNAExcitation_h
|
||||
#define G4DNAExcitation_h 1
|
||||
|
||||
#include "G4VEmProcess.hh"
|
||||
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
|
||||
// Available models
|
||||
#include "G4DNAEmfietzoglouExcitationModel.hh"
|
||||
#include "G4DNAMillerGreenExcitationModel.hh"
|
||||
#include "G4DNABornExcitationModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4DNAExcitation : public G4VEmProcess
|
||||
{
|
||||
public:
|
||||
|
||||
G4DNAExcitation(const G4String& processName ="DNAExcitation",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4DNAExcitation();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -1,59 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAGenericIonsManager.hh,v 1.4 2009/06/10 13:32:58 mantero Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
#ifndef G4DNAGENERICIONSMANAGER_HH
|
||||
#define G4DNAGENERICIONSMANAGER_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include <map>
|
||||
|
||||
class G4Ions;
|
||||
class G4ParticleDefinition;
|
||||
|
||||
class G4DNAGenericIonsManager
|
||||
{
|
||||
public:
|
||||
static G4DNAGenericIonsManager * Instance(void);
|
||||
G4ParticleDefinition * GetIon(const G4String & name);
|
||||
|
||||
private:
|
||||
G4DNAGenericIonsManager();
|
||||
~G4DNAGenericIonsManager();
|
||||
|
||||
G4DNAGenericIonsManager(const G4DNAGenericIonsManager &);
|
||||
const G4DNAGenericIonsManager &operator=(const G4DNAGenericIonsManager &);
|
||||
|
||||
static G4DNAGenericIonsManager * theInstance;
|
||||
|
||||
typedef std::map<G4String, G4ParticleDefinition *> IonsMap;
|
||||
|
||||
IonsMap map;
|
||||
};
|
||||
#endif /* G4DNAGENERICIONSMANAGER_HH */
|
||||
@@ -1,70 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAIonisation.hh,v 1.3 2009/03/04 13:28:49 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef G4DNAIonisation_h
|
||||
#define G4DNAIonisation_h 1
|
||||
|
||||
#include "G4VEmProcess.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
|
||||
// Available models
|
||||
#include "G4DNABornIonisationModel.hh"
|
||||
#include "G4DNARuddIonisationModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4DNAIonisation : public G4VEmProcess
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4DNAIonisation(const G4String& processName ="DNAIonisation",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4DNAIonisation();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -1,97 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAMeltonAttachmentModel.hh,v 1.1 2010/09/08 13:46:45 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
// Created by Z. Francis
|
||||
|
||||
#ifndef G4DNAMeltonAttachmentModel_h
|
||||
#define G4DNAMeltonAttachmentModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
|
||||
class G4DNAMeltonAttachmentModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAMeltonAttachmentModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAMeltonAttachmentModel");
|
||||
|
||||
virtual ~G4DNAMeltonAttachmentModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4double lowEnergyLimitOfModel;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
//
|
||||
|
||||
G4DNAMeltonAttachmentModel & operator=(const G4DNAMeltonAttachmentModel &right);
|
||||
G4DNAMeltonAttachmentModel(const G4DNAMeltonAttachmentModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
-126
@@ -1,126 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAMillerGreenExcitationModel.hh,v 1.2 2010/01/07 18:10:19 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
|
||||
#ifndef G4DNAMillerGreenExcitationModel_h
|
||||
#define G4DNAMillerGreenExcitationModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4Proton.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "G4DNAEmfietzoglouExcitationModel.hh"
|
||||
#include "G4WaterExcitationStructure.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4DNAMillerGreenExcitationModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAMillerGreenExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAMillerGreenExcitationModel");
|
||||
|
||||
virtual ~G4DNAMillerGreenExcitationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
// Partial cross section
|
||||
|
||||
G4double PartialCrossSection(G4double energy,G4int level, const G4ParticleDefinition* particle);
|
||||
|
||||
G4double Sum(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int RandomSelect(G4double energy, const G4ParticleDefinition* particle);
|
||||
|
||||
G4int nLevels;
|
||||
|
||||
G4WaterExcitationStructure waterExcitation;
|
||||
|
||||
G4double S_1s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double S_2s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double S_2p(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double R(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveCharge,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double kineticEnergyCorrection[4]; // 4 is the particle type index
|
||||
G4double slaterEffectiveCharge[3][4];
|
||||
G4double sCoefficient[3][4];
|
||||
|
||||
//
|
||||
|
||||
G4DNAMillerGreenExcitationModel & operator=(const G4DNAMillerGreenExcitationModel &right);
|
||||
G4DNAMillerGreenExcitationModel(const G4DNAMillerGreenExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
#ifndef G4DNAGENERICMOLECULEMANAGER_HH
|
||||
#define G4DNAGENERICMOLECULEMANAGER_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
#include <map>
|
||||
|
||||
class G4Ions;
|
||||
class G4ParticleDefinition;
|
||||
|
||||
class G4DNAGenericIonsManager
|
||||
{
|
||||
public:
|
||||
static G4DNAGenericIonsManager * Instance(void);
|
||||
G4ParticleDefinition * GetIon(const G4String & name);
|
||||
|
||||
private:
|
||||
G4DNAGenericIonsManager();
|
||||
~G4DNAGenericIonsManager();
|
||||
|
||||
G4DNAGenericIonsManager(const G4DNAGenericIonsManager &);
|
||||
const G4DNAGenericIonsManager &operator=(const G4DNAGenericIonsManager &);
|
||||
|
||||
static G4DNAGenericIonsManager * theInstance;
|
||||
|
||||
typedef std::map<G4String, G4ParticleDefinition *> IonsMap;
|
||||
|
||||
IonsMap map;
|
||||
};
|
||||
#endif /* G4DNAGENERICIONSMANAGER_HH */
|
||||
@@ -1,106 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAProcess.hh,v 1.5 2007/11/09 16:20:04 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@ge.infn.it)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 29 Sep 2007 MGP First (incomplete) implementation
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Host class for DNA physics policies
|
||||
// Further documentation available in PAPER REF. TO BE ADDED
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4DNAPROCESS_HH
|
||||
#define G4DNAPROCESS_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Step.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4VParticleChange.hh"
|
||||
#include "G4DynamicParticle.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include <vector>
|
||||
|
||||
template < class TCrossSection, class TFinalState>
|
||||
class G4DNAProcess : public G4VDiscreteProcess {
|
||||
|
||||
public:
|
||||
|
||||
// ---- MGP ---- Note: process name to be replaced with a better identifying mechanism
|
||||
G4DNAProcess(const G4String& processName = "DNAProcess"): G4VDiscreteProcess(processName) { /* nop */; }
|
||||
|
||||
~G4DNAProcess() { /* nop */; }
|
||||
|
||||
// ---- MGP ---- Dummy initially: process is always applicable
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&) { return true; }
|
||||
|
||||
// ---- MGP ---- Dummy initially: no PhysicsTable (usefulness to be verified)
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition& /* particle */) { /* nop */; }
|
||||
|
||||
// Implemented in terms of TFinalState
|
||||
virtual G4VParticleChange* PostStepDoIt(const G4Track& track, const G4Step& step);
|
||||
|
||||
// For testing purpose only
|
||||
G4double DumpMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition)
|
||||
{ return GetMeanFreePath(aTrack, previousStepSize, condition); }
|
||||
|
||||
protected:
|
||||
|
||||
// Implemented in terms of TCrossSection
|
||||
virtual G4double GetMeanFreePath(const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
G4DNAProcess& operator=(const G4DNAProcess& right);
|
||||
G4DNAProcess(const G4DNAProcess& );
|
||||
|
||||
// Policy classes
|
||||
TCrossSection crossSection;
|
||||
TFinalState finalState;
|
||||
|
||||
};
|
||||
|
||||
#include "G4DNAProcess.icc"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -1,178 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAProcess.icc,v 1.12 2009/01/20 07:50:28 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
//
|
||||
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
template <class TCrossSection,class TFinalState>
|
||||
G4double G4DNAProcess<TCrossSection,TFinalState>::GetMeanFreePath(const G4Track& track,
|
||||
G4double /* previousStepSize */,
|
||||
G4ForceCondition* /* condition */)
|
||||
{
|
||||
G4double meanFreePath = DBL_MAX;
|
||||
|
||||
// Assume the interacting medium to be water; one of the elements must be oxygen
|
||||
G4Material* material(track.GetMaterial());
|
||||
size_t i = material->GetNumberOfElements();
|
||||
while (i>0)
|
||||
{
|
||||
i--;
|
||||
const G4Element* element(material->GetElement(i));
|
||||
if (element->GetZ() == 8.)
|
||||
{
|
||||
// Number of oxygen atoms per volume = number of water molecules per volume
|
||||
G4double density = material->GetAtomicNumDensityVector()[i];
|
||||
// G4cout << "density = " << density << G4endl;
|
||||
if (density > 0.)
|
||||
{
|
||||
G4double cross = crossSection.CrossSection(track);
|
||||
if (cross > 0.0) meanFreePath = 1. / (density*cross);
|
||||
if (meanFreePath == 0.) meanFreePath = DBL_MIN;
|
||||
return meanFreePath;
|
||||
}
|
||||
}
|
||||
} // end while
|
||||
|
||||
// If it ends up here, it means that the material is not water
|
||||
G4Exception("G4DNAProcess::GetMeanFreePath - material is not water");
|
||||
// One does not really need a return statement here
|
||||
return DBL_MAX;
|
||||
}
|
||||
|
||||
|
||||
template <class TCrossSection,class TFinalState>
|
||||
G4VParticleChange* G4DNAProcess<TCrossSection,TFinalState>::PostStepDoIt(const G4Track& track, const G4Step& step)
|
||||
{
|
||||
aParticleChange.Initialize(track);
|
||||
|
||||
// G4cout << "Track initialized" << G4endl;
|
||||
|
||||
// Interaction product
|
||||
const G4FinalStateProduct& product = finalState.GenerateFinalState(track,step);
|
||||
|
||||
// Number of secondary products to be generated
|
||||
G4int nSecondaries = product.NumberOfSecondaries();
|
||||
aParticleChange.SetNumberOfSecondaries(nSecondaries);
|
||||
|
||||
// Secondaries
|
||||
for (G4int l = 0; l<nSecondaries; l++ )
|
||||
{
|
||||
G4DynamicParticle* particle = product.GetSecondaries()[l];
|
||||
if (particle != 0)
|
||||
{
|
||||
// aParticleChange.SetNumberOfSecondaries(nSecondaries);
|
||||
aParticleChange.AddSecondary(particle);
|
||||
}
|
||||
}
|
||||
|
||||
// Take care of incident particle to be killed, if necessary; dump its energy deposit locally
|
||||
G4double deposit = product.GetEnergyDeposit();
|
||||
if (deposit > 0.0) aParticleChange.ProposeLocalEnergyDeposit(deposit);
|
||||
|
||||
if (product.PrimaryParticleIsKilled())
|
||||
{
|
||||
aParticleChange.ProposeTrackStatus(fStopAndKill);
|
||||
aParticleChange.ProposeEnergy(0.);
|
||||
aParticleChange.ProposeMomentumDirection( 0., 0., 0. );
|
||||
|
||||
if (product.PrimaryParticleIsKilledAndDoNotDepositEnergy())
|
||||
{
|
||||
aParticleChange.ProposeLocalEnergyDeposit(deposit);
|
||||
}
|
||||
else
|
||||
{
|
||||
aParticleChange.ProposeLocalEnergyDeposit(track.GetKineticEnergy() + deposit);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
// Modify incident particle kinematics taking into account the generated products
|
||||
|
||||
// ---- MGP ---- Temporary: assume at most one secondary product
|
||||
// Sebastien: please check if consistent with current models or generalize
|
||||
|
||||
// Primary particle momentum and kinetic energy
|
||||
G4ThreeVector primaryMomentum = track.GetMomentum();
|
||||
G4double primaryKineticEnergy = track.GetKineticEnergy();
|
||||
|
||||
// Secondary product momentum and energy
|
||||
|
||||
G4double secondaryKineticEnergy = 0.;
|
||||
if (nSecondaries >0 )
|
||||
{
|
||||
G4DynamicParticle* secondary = product.GetSecondaries()[0];
|
||||
secondaryKineticEnergy = secondary->GetKineticEnergy();
|
||||
|
||||
// Calculate new primary particle kinetic energy
|
||||
G4double finalKineticEnergy = primaryKineticEnergy - secondaryKineticEnergy - deposit;
|
||||
|
||||
if (finalKineticEnergy <= 0.0)
|
||||
{
|
||||
// Primary particle is stopped; kill it
|
||||
aParticleChange.ProposeTrackStatus(fStopAndKill);
|
||||
aParticleChange.ProposeEnergy(0.);
|
||||
aParticleChange.ProposeMomentumDirection( 0., 0., 0. );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Calculate new primary particle momentum: difference between original primary one and secondary
|
||||
G4ThreeVector secondaryMomentum = secondary->GetMomentum();
|
||||
G4ThreeVector finalMomentum = primaryMomentum - secondaryMomentum;
|
||||
G4ThreeVector finalDirection = finalMomentum.unit();
|
||||
aParticleChange.ProposeMomentumDirection(finalDirection);
|
||||
aParticleChange.ProposeEnergy(finalKineticEnergy);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Check whether primary particle is modified
|
||||
if (product.PrimaryParticleIsModified())
|
||||
{
|
||||
G4ThreeVector finalDirection = product.GetModifiedDirection();
|
||||
aParticleChange.ProposeMomentumDirection(finalDirection);
|
||||
G4double finalKineticEnergy = product.GetModifiedEnergy();
|
||||
aParticleChange.ProposeEnergy(finalKineticEnergy);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return G4VDiscreteProcess::PostStepDoIt(track,step );
|
||||
}
|
||||
-162
@@ -1,162 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNARuddIonisationExtendedModel.hh,v 1.1 2010/11/03 10:44:26 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
|
||||
#ifndef G4DNARuddIonisationExtendedModel_h
|
||||
#define G4DNARuddIonisationExtendedModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
|
||||
#include "G4WaterIonisationStructure.hh"
|
||||
|
||||
class G4DNARuddIonisationExtendedModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNARuddIonisationExtendedModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNARuddIonisationExtendedModel");
|
||||
|
||||
virtual ~G4DNARuddIonisationExtendedModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume( const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
// ZF 26-10-2010
|
||||
std::map<G4double,G4double> lowEnergyLimitForA, lowEnergyLimitOfModelForA, killBelowEnergyForA;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
// Final state
|
||||
|
||||
G4WaterIonisationStructure waterStructure;
|
||||
|
||||
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition* particleDefinition,
|
||||
G4double incomingParticleEnergy,
|
||||
G4int shell);
|
||||
|
||||
void RandomizeEjectedElectronDirection(G4ParticleDefinition* particleDefinition,
|
||||
G4double incomingParticleEnergy,
|
||||
G4double outgoingParticleEnergy,
|
||||
G4double & cosTheta,
|
||||
G4double & phi, G4int shell);
|
||||
|
||||
G4double RejectionFunction(G4ParticleDefinition* particle,
|
||||
G4double k,
|
||||
G4double proposed_ws,
|
||||
G4int ionizationLevelIndex);
|
||||
|
||||
G4double ProposedSampledEnergy(G4ParticleDefinition* particle,
|
||||
G4double k,
|
||||
G4int ionizationLevelIndex);
|
||||
|
||||
G4double CorrectionFactor(G4ParticleDefinition* particleDefinition, G4double k, G4int shell);
|
||||
|
||||
G4double S_1s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double S_2s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
|
||||
G4double S_2p(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double R(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber) ;
|
||||
|
||||
G4double slaterEffectiveCharge[3];
|
||||
G4double sCoefficient[3];
|
||||
|
||||
// Partial cross section
|
||||
|
||||
G4double PartialCrossSection(const G4Track& track);
|
||||
|
||||
G4double Sum(G4double energy, const G4String& particle);
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
// Test water material
|
||||
|
||||
G4bool flagMaterialIsWater;
|
||||
G4double densityWater;
|
||||
|
||||
//
|
||||
|
||||
G4DNARuddIonisationExtendedModel & operator=(const G4DNARuddIonisationExtendedModel &right);
|
||||
G4DNARuddIonisationExtendedModel(const G4DNARuddIonisationExtendedModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,159 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNARuddIonisationModel.hh,v 1.4 2010/01/07 18:10:19 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
|
||||
#ifndef G4DNARuddIonisationModel_h
|
||||
#define G4DNARuddIonisationModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
//#include "G4DNAGenericMoleculeManager.hh"
|
||||
#include "G4DNACrossSectionDataSet.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
|
||||
#include "G4WaterIonisationStructure.hh"
|
||||
|
||||
class G4DNARuddIonisationModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNARuddIonisationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNARuddIonisationModel");
|
||||
|
||||
virtual ~G4DNARuddIonisationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume( const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4double lowEnergyLimitForZ1;
|
||||
G4double lowEnergyLimitForZ2;
|
||||
G4double lowEnergyLimitOfModelForZ1;
|
||||
G4double lowEnergyLimitOfModelForZ2;
|
||||
G4double killBelowEnergyForZ1;
|
||||
G4double killBelowEnergyForZ2;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
typedef std::map<G4String,G4String,std::less<G4String> > MapFile;
|
||||
MapFile tableFile;
|
||||
|
||||
typedef std::map<G4String,G4DNACrossSectionDataSet*,std::less<G4String> > MapData;
|
||||
MapData tableData;
|
||||
|
||||
// Final state
|
||||
|
||||
G4WaterIonisationStructure waterStructure;
|
||||
|
||||
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition* particleDefinition,
|
||||
G4double incomingParticleEnergy,
|
||||
G4int shell);
|
||||
|
||||
void RandomizeEjectedElectronDirection(G4ParticleDefinition* particleDefinition,
|
||||
G4double incomingParticleEnergy,
|
||||
G4double outgoingParticleEnergy,
|
||||
G4double & cosTheta,
|
||||
G4double & phi);
|
||||
|
||||
G4double DifferentialCrossSection(G4ParticleDefinition* particleDefinition,
|
||||
G4double k,
|
||||
G4double energyTransfer,
|
||||
G4int shell);
|
||||
|
||||
G4double CorrectionFactor(G4ParticleDefinition* particleDefinition, G4double k);
|
||||
|
||||
G4double S_1s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double S_2s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
|
||||
G4double S_2p(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double R(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber) ;
|
||||
|
||||
G4double slaterEffectiveCharge[3];
|
||||
G4double sCoefficient[3];
|
||||
|
||||
// Partial cross section
|
||||
|
||||
G4double PartialCrossSection(const G4Track& track);
|
||||
|
||||
G4double Sum(G4double energy, const G4String& particle);
|
||||
|
||||
G4int RandomSelect(G4double energy,const G4String& particle );
|
||||
|
||||
//
|
||||
|
||||
G4DNARuddIonisationModel & operator=(const G4DNARuddIonisationModel &right);
|
||||
G4DNARuddIonisationModel(const G4DNARuddIonisationModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,116 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNASancheExcitationModel.hh,v 1.3 2010/11/11 23:43:35 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
// Created by Z. Francis
|
||||
|
||||
#ifndef G4DNASancheExcitationModel_h
|
||||
#define G4DNASancheExcitationModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include <deque>
|
||||
#include "G4Electron.hh"
|
||||
|
||||
class G4DNASancheExcitationModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNASancheExcitationModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNASancheExcitationModel");
|
||||
|
||||
virtual ~G4DNASancheExcitationModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
// Cross section
|
||||
|
||||
G4double PartialCrossSection(G4double energy,G4int level);
|
||||
|
||||
inline void ExtendLowEnergyLimit (G4double /*threshold*/);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
G4double killBelowEnergy;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
G4int RandomSelect(G4double energy);
|
||||
G4int nLevels;
|
||||
G4double VibrationEnergy(G4int level);
|
||||
G4double Sum(G4double k);
|
||||
G4double LinInterpolate(G4double e1,
|
||||
G4double e2,
|
||||
G4double e,
|
||||
G4double xs1,
|
||||
G4double xs2);
|
||||
|
||||
//
|
||||
typedef std::map<double, std::map<double, double> > TriDimensionMap;
|
||||
TriDimensionMap map1;
|
||||
std::vector<double> tdummyVec;
|
||||
|
||||
//
|
||||
G4DNASancheExcitationModel & operator=(const G4DNASancheExcitationModel &right);
|
||||
G4DNASancheExcitationModel(const G4DNASancheExcitationModel&);
|
||||
|
||||
};
|
||||
|
||||
inline void G4DNASancheExcitationModel::ExtendLowEnergyLimit (G4double threshold)
|
||||
{
|
||||
lowEnergyLimit = threshold;
|
||||
if (lowEnergyLimit < 2*eV)
|
||||
G4Exception ("*** WARNING : the G4DNASancheExcitationModel class is not validated below 2 eV !","",JustWarning,"") ;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
-113
@@ -1,113 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAScreenedRutherfordElasticModel.hh,v 1.4 2010/11/11 22:32:22 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
//
|
||||
|
||||
#ifndef G4DNAScreenedRutherfordElasticModel_h
|
||||
#define G4DNAScreenedRutherfordElasticModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
|
||||
class G4DNAScreenedRutherfordElasticModel : public G4VEmModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4DNAScreenedRutherfordElasticModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "DNAScreenedRutherfordElasticModel");
|
||||
|
||||
virtual ~G4DNAScreenedRutherfordElasticModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material* material,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double ekin,
|
||||
G4double emin,
|
||||
G4double emax);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
inline void SetKillBelowThreshold (G4double threshold);
|
||||
G4double GetKillBelowThreshold () { return killBelowEnergy; }
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChangeForGamma;
|
||||
|
||||
private:
|
||||
|
||||
G4double killBelowEnergy;
|
||||
G4double lowEnergyLimit;
|
||||
G4double intermediateEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
// Cross section
|
||||
|
||||
G4double RutherfordCrossSection(G4double energy, G4double z);
|
||||
|
||||
G4double ScreeningFactor(G4double energy, G4double z);
|
||||
|
||||
// Final state according to Brenner & Zaider
|
||||
|
||||
G4double BrennerZaiderRandomizeCosTheta(G4double k);
|
||||
G4double CalculatePolynomial(G4double k, std::vector<G4double>& vec);
|
||||
std::vector<G4double> betaCoeff;
|
||||
std::vector<G4double> deltaCoeff;
|
||||
std::vector<G4double> gamma035_10Coeff;
|
||||
std::vector<G4double> gamma10_100Coeff;
|
||||
std::vector<G4double> gamma100_200Coeff;
|
||||
|
||||
// Final state according to Screened Rutherford
|
||||
|
||||
G4double ScreenedRutherfordRandomizeCosTheta(G4double k, G4double z);
|
||||
|
||||
//
|
||||
|
||||
G4DNAScreenedRutherfordElasticModel & operator=(const G4DNAScreenedRutherfordElasticModel &right);
|
||||
G4DNAScreenedRutherfordElasticModel(const G4DNAScreenedRutherfordElasticModel&);
|
||||
|
||||
};
|
||||
|
||||
inline void G4DNAScreenedRutherfordElasticModel::SetKillBelowThreshold (G4double threshold)
|
||||
{
|
||||
killBelowEnergy = threshold;
|
||||
if (threshold < 9*eV)
|
||||
G4Exception ("*** WARNING : the G4DNAScreenedRutherfordElasticModel class is not validated below 9 eV !","",JustWarning,"") ;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -1,67 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DNAVibExcitation.hh,v 1.1 2010/09/08 13:46:45 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
// Created by Z. Francis
|
||||
|
||||
#ifndef G4DNAVibExcitation_h
|
||||
#define G4DNAVibExcitation_h 1
|
||||
|
||||
#include "G4VEmProcess.hh"
|
||||
|
||||
// Available models
|
||||
#include "G4DNASancheExcitationModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4DNAVibExcitation : public G4VEmProcess
|
||||
{
|
||||
public:
|
||||
|
||||
G4DNAVibExcitation(const G4String& processName ="DNAVibrationalExcitation",
|
||||
G4ProcessType type = fElectromagnetic);
|
||||
|
||||
virtual ~G4DNAVibExcitation();
|
||||
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
virtual void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
virtual void InitialiseProcess(const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4bool isInitialised;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4DopplerProfile.hh,v 1.2 2008/03/17 13:45:25 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// $Id: G4DopplerProfile.hh,v 1.2 2008-03-17 13:45:25 pia Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4DummyFinalState.hh,v 1.2 2007/10/07 12:52:18 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Geant4-DNA Cross total cross section for electron elastic scattering in water
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// Reference for implementation model: NIM. 155, pp. 145-156, 1978
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4DUMMYFINALSTATE_HH
|
||||
#define G4DUMMYFINALSTATE_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
//#include "G4Track.hh"
|
||||
//#include "G4Step.hh"
|
||||
#include "G4FinalStateProduct.hh"
|
||||
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
|
||||
class G4DummyFinalState
|
||||
{
|
||||
public:
|
||||
|
||||
G4DummyFinalState();
|
||||
|
||||
~G4DummyFinalState();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
G4String name;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4EMDataSet.hh,v 1.13 2009/09/25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4EMDataSet.hh,v 1.13 2009-09-25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateChargeDecrease.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATECHARGEDECREASE_HH
|
||||
#define G4FINALSTATECHARGEDECREASE_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4CrossSectionChargeDecreasePartial.hh"
|
||||
|
||||
class G4FinalStateChargeDecrease
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateChargeDecrease();
|
||||
|
||||
~G4FinalStateChargeDecrease();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4CrossSectionChargeDecreasePartial cross;
|
||||
|
||||
G4int NumberOfFinalStates(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4ParticleDefinition* OutgoingParticleDefinition(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4double WaterBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4double OutgoingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,63 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateChargeIncrease.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATECHARGEIncrease_HH
|
||||
#define G4FINALSTATECHARGEIncrease_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4CrossSectionChargeIncreasePartial.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
|
||||
class G4FinalStateChargeIncrease
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateChargeIncrease();
|
||||
|
||||
~G4FinalStateChargeIncrease();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4CrossSectionChargeIncreasePartial cross;
|
||||
|
||||
G4int NumberOfFinalStates(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4ParticleDefinition* OutgoingParticleDefinition(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4double WaterBindingEnergyConstant(G4ParticleDefinition * aParticleDefinition, G4int finalStateIndex);
|
||||
G4double OutgoingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
G4double IncomingParticleBindingEnergyConstant(G4ParticleDefinition* particleDefinition, G4int finalStateIndex);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
-87
@@ -1,87 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateChargeTransferProton.hh,v 1.2 2008/03/25 16:00:20 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Final state policy class for proton charge transfer
|
||||
// Reference for policy-based design:
|
||||
// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
|
||||
// design foundation and implementation of the first set of models,
|
||||
// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
|
||||
// Reference for implementation:
|
||||
// http://www-pub.iaea.org/MTCD/publications/PDF/APID-VOL10.pdf
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4FINALSTATECHARGETRANSFERCH_HH
|
||||
#define G4FINALSTATECHARGETRANSFERCH_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include <map>
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
|
||||
class G4FinalStateChargeTransferProton
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateChargeTransferProton();
|
||||
|
||||
~G4FinalStateChargeTransferProton();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
G4String name;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4double protonBinding;
|
||||
|
||||
std::map<G4String,G4double,std::less<G4String> > ioniPotentialMap;
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateElasticBrennerZaider.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATEELASTICBRENNERZAIDER_HH
|
||||
#define G4FINALSTATEELASTICBRENNERZAIDER_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
|
||||
class G4FinalStateElasticBrennerZaider
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateElasticBrennerZaider();
|
||||
|
||||
~G4FinalStateElasticBrennerZaider();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
std::vector<G4double> betaCoeff;
|
||||
std::vector<G4double> deltaCoeff;
|
||||
std::vector<G4double> gamma035_10Coeff;
|
||||
std::vector<G4double> gamma10_100Coeff;
|
||||
std::vector<G4double> gamma100_200Coeff;
|
||||
|
||||
G4double RandomizeCosTheta(G4double k);
|
||||
|
||||
G4double CalculatePolynomial(G4double k, std::vector<G4double>& vec);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,82 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateElasticChampion.hh,v 1.1 2008/07/15 19:56:50 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4FINALSTATEELASTICCHAMPION_HH
|
||||
#define G4FINALSTATEELASTICCHAMPION_HH 1
|
||||
|
||||
#include "Randomize.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4FinalStateProduct.hh"
|
||||
|
||||
class G4FinalStateElasticChampion
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateElasticChampion();
|
||||
|
||||
~G4FinalStateElasticChampion();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double theta);
|
||||
|
||||
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
G4double LinLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
G4double QuadInterpolator(G4double e11,
|
||||
G4double e12,
|
||||
G4double e21,
|
||||
G4double e22,
|
||||
G4double x11,
|
||||
G4double x12,
|
||||
G4double x21,
|
||||
G4double x22,
|
||||
G4double t1,
|
||||
G4double t2,
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<double, std::map<double, double> > TriDimensionMap;
|
||||
TriDimensionMap eDiffCrossSectionData[6];
|
||||
std::vector<double> eTdummyVec;
|
||||
|
||||
typedef std::map<double, std::vector<double> > VecMap;
|
||||
VecMap eVecm;
|
||||
|
||||
G4double RandomizeCosTheta(G4double k);
|
||||
};
|
||||
#endif
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateElasticScreenedRutherford.hh,v 1.3 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATEELASTICSCREENEDRUTHERFORD_HH
|
||||
#define G4FINALSTATEELASTICSCREENEDRUTHERFORD_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
|
||||
class G4FinalStateElasticScreenedRutherford
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateElasticScreenedRutherford();
|
||||
|
||||
~G4FinalStateElasticScreenedRutherford();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4double RandomizeCosTheta(G4double k, G4int z) const;
|
||||
|
||||
G4double ScreeningFactor(G4double k, G4int z) const;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,57 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateExcitationBorn.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATEEXCITATIONBORN_HH
|
||||
#define G4FINALSTATEEXCITATIONBORN_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4WaterExcitationStructure.hh"
|
||||
#include "G4CrossSectionExcitationBornPartial.hh"
|
||||
|
||||
class G4FinalStateExcitationBorn
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateExcitationBorn();
|
||||
|
||||
~G4FinalStateExcitationBorn();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4WaterExcitationStructure waterStructure;
|
||||
|
||||
G4CrossSectionExcitationBornPartial cross;
|
||||
};
|
||||
|
||||
#endif
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateExcitationEmfietzoglou.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATEEXCITATIONEMFIETZOGLOU_HH
|
||||
#define G4FINALSTATEEXCITATIONEMFIETZOGLOU_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4CrossSectionExcitationEmfietzoglouPartial.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
|
||||
class G4FinalStateExcitationEmfietzoglou
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateExcitationEmfietzoglou();
|
||||
|
||||
~G4FinalStateExcitationEmfietzoglou();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4WaterExcitationStructure waterStructure;
|
||||
|
||||
G4CrossSectionExcitationEmfietzoglouPartial cross;
|
||||
};
|
||||
|
||||
#endif
|
||||
-56
@@ -1,56 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateExcitationMillerGreen.hh,v 1.2 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATEEXCITATIONMILLERGREEN_HH
|
||||
#define G4FINALSTATEEXCITATIONMILLERGREEN_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4CrossSectionExcitationMillerGreenPartial.hh"
|
||||
|
||||
class G4FinalStateExcitationMillerGreen
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateExcitationMillerGreen();
|
||||
|
||||
~G4FinalStateExcitationMillerGreen();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4WaterExcitationStructure waterStructure;
|
||||
|
||||
G4CrossSectionExcitationMillerGreenPartial cross;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,96 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateIonisationBorn.hh,v 1.4 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
#ifndef G4FINALSTATEIONISATIONBORN_HH
|
||||
#define G4FINALSTATEIONISATIONBORN_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4WaterIonisationStructure.hh"
|
||||
#include "G4CrossSectionIonisationBornPartial.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
|
||||
class G4FinalStateIonisationBorn
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateIonisationBorn();
|
||||
|
||||
~G4FinalStateIonisationBorn();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4WaterIonisationStructure waterStructure;
|
||||
|
||||
G4CrossSectionIonisationBornPartial cross;
|
||||
|
||||
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition * aParticleDefinition, G4double incomingParticleEnergy, G4int shell) ;
|
||||
|
||||
void RandomizeEjectedElectronDirection(G4ParticleDefinition * aParticleDefinition, G4double incomingParticleEnergy, G4double
|
||||
outgoingParticleEnergy, G4double & cosTheta, G4double & phi );
|
||||
|
||||
double DifferentialCrossSection(G4ParticleDefinition * aParticleDefinition, G4double k, G4double energyTransfer, G4int shell);
|
||||
|
||||
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2);
|
||||
|
||||
G4double QuadInterpolator(G4double e11,
|
||||
G4double e12,
|
||||
G4double e21,
|
||||
G4double e22,
|
||||
G4double x11,
|
||||
G4double x12,
|
||||
G4double x21,
|
||||
G4double x22,
|
||||
G4double t1,
|
||||
G4double t2,
|
||||
G4double t,
|
||||
G4double e);
|
||||
|
||||
typedef std::map<double, std::map<double, double> > TriDimensionMap;
|
||||
TriDimensionMap eDiffCrossSectionData[6];
|
||||
TriDimensionMap pDiffCrossSectionData[6];
|
||||
std::vector<double> eTdummyVec;
|
||||
std::vector<double> pTdummyVec;
|
||||
|
||||
typedef std::map<double, std::vector<double> > VecMap;
|
||||
VecMap eVecm;
|
||||
VecMap pVecm;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,104 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateIonisationRudd.hh,v 1.4 2008/07/14 20:47:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
|
||||
|
||||
#ifndef G4FINALSTATEIONISATIONRUDD_HH
|
||||
#define G4FINALSTATEIONISATIONRUDD_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4WaterIonisationStructure.hh"
|
||||
#include "G4CrossSectionIonisationRuddPartial.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4Proton.hh"
|
||||
|
||||
class G4FinalStateIonisationRudd
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateIonisationRudd();
|
||||
|
||||
~G4FinalStateIonisationRudd();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimitDefault;
|
||||
G4double highEnergyLimitDefault;
|
||||
std::map<G4String,G4double,std::less<G4String> > lowEnergyLimit;
|
||||
std::map<G4String,G4double,std::less<G4String> > highEnergyLimit;
|
||||
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4WaterIonisationStructure waterStructure;
|
||||
|
||||
G4CrossSectionIonisationRuddPartial cross;
|
||||
|
||||
G4double RandomizeEjectedElectronEnergy(G4ParticleDefinition* particleDefinition,
|
||||
G4double incomingParticleEnergy,
|
||||
G4int shell);
|
||||
|
||||
void RandomizeEjectedElectronDirection(G4ParticleDefinition* particleDefinition,
|
||||
G4double incomingParticleEnergy,
|
||||
G4double outgoingParticleEnergy,
|
||||
G4double & cosTheta,
|
||||
G4double & phi);
|
||||
|
||||
G4double DifferentialCrossSection(G4ParticleDefinition* particleDefinition,
|
||||
G4double k,
|
||||
G4double energyTransfer,
|
||||
G4int shell);
|
||||
|
||||
G4double CorrectionFactor(G4ParticleDefinition* particleDefinition, G4double k);
|
||||
|
||||
G4double S_1s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double S_2s(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
|
||||
G4double S_2p(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber);
|
||||
|
||||
G4double R(G4double t,
|
||||
G4double energyTransferred,
|
||||
G4double slaterEffectiveChg,
|
||||
G4double shellNumber) ;
|
||||
|
||||
G4double slaterEffectiveCharge[3];
|
||||
G4double sCoefficient[3];
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,83 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateKill.hh,v 1.1 2007/11/09 20:26:47 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Geant4-DNA Cross total cross section for electron elastic scattering in water
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
|
||||
// design foundation and implementation of the first set of models,
|
||||
// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
|
||||
// Reference for implementation model: NIM. 155, pp. 145-156, 1978
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4FINALSTATEKILL_HH
|
||||
#define G4FINALSTATEKILL_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4FinalStateProduct.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
|
||||
class G4FinalStateKill
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateKill();
|
||||
|
||||
~G4FinalStateKill();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
G4String name;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
G4FinalStateProduct product;
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
@@ -1,109 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStateProduct.hh,v 1.5 2009/01/20 07:50:28 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Final state product
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4FINALSTATEPRODUCT_HH
|
||||
#define G4FINALSTATEPRODUCT_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4Step.hh"
|
||||
#include <vector>
|
||||
|
||||
class G4DynamicParticle;
|
||||
|
||||
class G4FinalStateProduct
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStateProduct();
|
||||
|
||||
~G4FinalStateProduct();
|
||||
|
||||
void Clear();
|
||||
|
||||
void AddSecondary(G4DynamicParticle* particle);
|
||||
|
||||
void AddEnergyDeposit(G4double energy);
|
||||
|
||||
void ModifyPrimaryParticle(G4double dirX, G4double dirY, G4double dirZ, G4double energy);
|
||||
void ModifyPrimaryParticle(const G4ThreeVector& direction, G4double energy);
|
||||
|
||||
void DoNotDepositEnergy();
|
||||
void KillPrimaryParticle();
|
||||
|
||||
G4bool PrimaryParticleIsKilled() const { return killStatus; }
|
||||
|
||||
G4bool PrimaryParticleIsKilledAndDoNotDepositEnergy() const { return doNotDepositStatus; }
|
||||
|
||||
G4bool PrimaryParticleIsModified() const { return isModified; }
|
||||
|
||||
G4int NumberOfSecondaries() const;
|
||||
|
||||
G4double GetEnergyDeposit() const { return localEnergyDeposit; }
|
||||
|
||||
G4double GetModifiedEnergy() const { return modifiedEnergy; }
|
||||
|
||||
const G4ThreeVector& GetModifiedDirection() const { return modifiedDirection; }
|
||||
|
||||
const std::vector<G4DynamicParticle*>& GetSecondaries() const;
|
||||
|
||||
|
||||
// protected:
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
private:
|
||||
|
||||
G4bool killStatus;
|
||||
G4bool doNotDepositStatus;
|
||||
G4bool isModified;
|
||||
G4double localEnergyDeposit;
|
||||
G4double modifiedEnergy;
|
||||
std::vector<G4DynamicParticle*> secondaries;
|
||||
G4ThreeVector modifiedDirection;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,65 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4FinalStatePsCreationChampion.hh,v 1.1 2008/07/16 19:01:07 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4FINALSTATEPSCREATIONCHAMPION_HH
|
||||
#define G4FINALSTATEPSCREATIONCHAMPION_HH 1
|
||||
|
||||
#include "G4FinalStateProduct.hh"
|
||||
#include "G4WaterIonisationStructure.hh"
|
||||
#include "G4CrossSectionPsCreationChampionPartial.hh"
|
||||
#include "G4DNAGenericIonsManager.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
|
||||
class G4FinalStatePsCreationChampion
|
||||
{
|
||||
public:
|
||||
|
||||
G4FinalStatePsCreationChampion();
|
||||
|
||||
~G4FinalStatePsCreationChampion();
|
||||
|
||||
const G4FinalStateProduct& GenerateFinalState(const G4Track& track, const G4Step& step);
|
||||
|
||||
private:
|
||||
|
||||
G4String name;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
G4FinalStateProduct product;
|
||||
|
||||
G4WaterIonisationStructure waterStructure;
|
||||
|
||||
G4CrossSectionPsCreationChampionPartial cross;
|
||||
};
|
||||
#endif
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4FluoTransition.hh,v 1.2 ????
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
|
||||
//
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4Generator2BN.hh,v 1.4 2010/10/14 14:00:29 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4Generator2BN.hh,v 1.4 2010-10-14 14:00:29 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4Generator2BS.hh,v 1.5 2010/10/14 14:00:29 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4Generator2BS.hh,v 1.5 2010-10-14 14:00:29 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonParametrisedLossModel.hh,v 1.8 2010/11/04 12:21:47 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4IonParametrisedLossModel.hh,v 1.8 2010-11-04 12:21:47 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// ===========================================================================
|
||||
// GEANT4 class header file
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4IonParametrisedLossModel.icc,v 1.7 2010/11/04 12:21:47 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4IonParametrisedLossModel.icc,v 1.7 2010-11-04 12:21:47 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// ===========================================================================
|
||||
// GEANT4 class
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4LinInterpolation.hh,v 1.4 2009/09/25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LinInterpolation.hh,v 1.4 2009-09-25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
+3
-2
@@ -23,10 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreBremsstrahlungModel.hh,v 1.2 2009/04/17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermoreBremsstrahlungModel.hh,v 1.2 2009-04-17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Luciano Pandola
|
||||
// on base of G4LowEnergyBremsstrahlung developed by A.Forti and V.Ivanchenko
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
|
||||
@@ -23,29 +23,28 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreComptonModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermoreComptonModel.hh,v 1.3 2009-04-17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
//
|
||||
// Author: Sebastien Inserti
|
||||
// Author: Sebastien Incerti
|
||||
// 30 October 2008
|
||||
// on base of G4LowEnergyCompton developed by A.Forti and M.G.Pia
|
||||
//
|
||||
// History:
|
||||
// Modified:
|
||||
// --------
|
||||
// 30 May 2011 V Ivanchenko Migration to model design for deexcitation
|
||||
|
||||
#ifndef G4LivermoreComptonModel_h
|
||||
#define G4LivermoreComptonModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4CrossSectionHandler.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "G4CompositeEMDataSet.hh"
|
||||
#include "G4ShellData.hh"
|
||||
#include "G4DopplerProfile.hh"
|
||||
#include "G4ForceCondition.hh"
|
||||
#include "G4Gamma.hh"
|
||||
|
||||
class G4ParticleChangeForGamma;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VAtomDeexcitation;
|
||||
class G4VEMDataSet;
|
||||
|
||||
class G4LivermoreComptonModel : public G4VEmModel
|
||||
{
|
||||
@@ -76,9 +75,6 @@ protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
|
||||
//G4double GetMeanFreePath(const G4Track& track,
|
||||
// G4double previousStepSize,
|
||||
// G4ForceCondition* condition);
|
||||
private:
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
@@ -86,10 +82,11 @@ private:
|
||||
G4bool isInitialised;
|
||||
G4int verboseLevel;
|
||||
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
G4VEMDataSet* scatterFunctionData;
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
|
||||
G4VAtomDeexcitation* fAtomDeexcitation;
|
||||
|
||||
G4ShellData shellData;
|
||||
G4DopplerProfile profileData;
|
||||
|
||||
|
||||
+6
-2
@@ -23,8 +23,12 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreGammaConversionModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermoreGammaConversionModel.hh,v 1.3 2009-04-17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Sebastien Incerti
|
||||
// 30 October 2008
|
||||
// on base of G4LowEnergyGammaConversion developed by A.Forti and M.G.Pia
|
||||
//
|
||||
|
||||
#ifndef G4LivermoreGammaConversionModel_h
|
||||
|
||||
+5
-2
@@ -23,8 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreGammaConversionModelRC.hh,v 1.1 2010/11/10 17:12:21 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4LivermoreGammaConversionModelRC.hh,v 1.1 2010-11-10 17:12:21 flongo Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Francesco Longo & Gerardo Depaola
|
||||
// on base of G4LivermoreGammaConversionModel
|
||||
//
|
||||
|
||||
#ifndef G4LivermoreGammaConversionModelRC_h
|
||||
|
||||
+54
-34
@@ -23,59 +23,79 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreIonisationCrossSection.hh,v 1.3 2009-10-23 09:28:37 pandola Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// $Id: G4WaterExcitationStructure.hh,v 1.1 2007/10/15 08:33:25 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// Author: Vladimir Ivanchenko
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
// --------
|
||||
// 31 May 2011 V.Ivanchenko The class is created
|
||||
// 04 Jul 2011 L Pandola Comment unused private member
|
||||
//
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Geant4-DNA Cross total cross section for electron elastic scattering in water
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
|
||||
// design foundation and implementation of the first set of models,
|
||||
// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
|
||||
// Reference for implementation model: NIM. 155, pp. 145-156, 1978
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// Access to Livermore ionisation cross sections for e-
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LIVERMOREIONISATIONCROSSSECTION_HH
|
||||
#define G4LIVERMOREIONISATIONCROSSSECTION_HH 1
|
||||
|
||||
#ifndef G4WATEREXCITATIONSTRUCTURE_HH
|
||||
#define G4WATEREXCITATIONSTRUCTURE_HH 1
|
||||
|
||||
#include "G4VhShellCrossSection.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4AtomicShellEnumerator.hh"
|
||||
#include <vector>
|
||||
|
||||
|
||||
class G4WaterExcitationStructure
|
||||
class G4AtomicTransitionManager;
|
||||
class G4VCrossSectionHandler;
|
||||
|
||||
class G4LivermoreIonisationCrossSection : public G4VhShellCrossSection
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4WaterExcitationStructure();
|
||||
G4LivermoreIonisationCrossSection(const G4String& nam = "LivermorePIXE");
|
||||
|
||||
virtual ~G4WaterExcitationStructure();
|
||||
|
||||
G4double ExcitationEnergy(G4int level);
|
||||
virtual ~G4LivermoreIonisationCrossSection();
|
||||
|
||||
G4int NumberOfLevels() { return nLevels; }
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
void Initialise();
|
||||
|
||||
G4double CrossSection(G4int Z, G4AtomicShellEnumerator shell,
|
||||
G4double incidentEnergy,
|
||||
G4double mass = 0.0) const;
|
||||
|
||||
std::vector<G4double> GetCrossSection(G4int Z,
|
||||
G4double incidentEnergy,
|
||||
G4double mass = 0.0,
|
||||
G4double deltaEnergy = 0.0,
|
||||
G4bool testFlag = false) const;
|
||||
|
||||
std::vector<G4double> Probabilities(G4int Z,
|
||||
G4double incidentEnergy,
|
||||
G4double mass = 0.0,
|
||||
G4double deltaEnergy = 0) const;
|
||||
|
||||
private:
|
||||
|
||||
// Number of excitation levels of the water molecule
|
||||
G4int nLevels;
|
||||
|
||||
G4LivermoreIonisationCrossSection & operator=(const G4LivermoreIonisationCrossSection &right);
|
||||
G4LivermoreIonisationCrossSection(const G4LivermoreIonisationCrossSection&);
|
||||
|
||||
//Intrinsic energy limits of the model: cannot be extended by the parent process
|
||||
G4double fLowEnergyLimit;
|
||||
G4double fHighEnergyLimit;
|
||||
|
||||
//G4bool isInitialised;
|
||||
|
||||
G4int verboseLevel;
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
|
||||
const G4AtomicTransitionManager* transitionManager;
|
||||
|
||||
std::vector<G4double> energyConstant;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,10 +23,11 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreIonisationModel.hh,v 1.3 2009/10/23 09:28:37 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermoreIonisationModel.hh,v 1.3 2009-10-23 09:28:37 pandola Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Luciano Pandola
|
||||
// on base of G4LowEnergyIonisation developed by A.Forti and V.Ivanchenko
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
@@ -34,6 +35,8 @@
|
||||
// to EM model. Physics is unchanged.
|
||||
// 23 Oct 2009 L. Pandola remove un-necessary methods to manage atomic
|
||||
// deexcitation (done by G4VEmModel)
|
||||
// 01 Jun 2011 V Ivanchenko general cleanup - all old deexcitation code removed
|
||||
// 04 Jul 2011 L Pandola removed unused private member
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -45,20 +48,13 @@
|
||||
#ifndef G4LIVERMOREIONISATIONMODEL_HH
|
||||
#define G4LIVERMOREIONISATIONMODEL_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4DataVector.hh"
|
||||
#include "G4ParticleChangeForLoss.hh"
|
||||
#include "G4eIonisationCrossSectionHandler.hh"
|
||||
#include "G4VEnergySpectrum.hh"
|
||||
#include "G4AtomicTransitionManager.hh"
|
||||
#include "G4AtomicDeexcitation.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4ParticleDefinition;
|
||||
class G4DynamicParticle;
|
||||
class G4MaterialCutsCouple;
|
||||
class G4Material;
|
||||
class G4ShellVacancy;
|
||||
class G4eIonisationCrossSectionHandler;
|
||||
class G4VEnergySpectrum;
|
||||
class G4ParticleChangeForLoss;
|
||||
class G4AtomicTransitionManager;
|
||||
|
||||
class G4LivermoreIonisationModel : public G4VEmModel
|
||||
{
|
||||
@@ -66,7 +62,7 @@ class G4LivermoreIonisationModel : public G4VEmModel
|
||||
public:
|
||||
|
||||
G4LivermoreIonisationModel(const G4ParticleDefinition* p=0,
|
||||
const G4String& processName = "LowEnergyIoni");
|
||||
const G4String& processName = "LowEnergyIoni");
|
||||
|
||||
virtual ~G4LivermoreIonisationModel();
|
||||
|
||||
@@ -90,22 +86,12 @@ public:
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy);
|
||||
|
||||
|
||||
virtual void SampleDeexcitationAlongStep(const G4Material*,
|
||||
const G4Track&,
|
||||
G4double& eloss);
|
||||
|
||||
// min cut in kinetic energy allowed by the model
|
||||
virtual G4double MinEnergyCut(const G4ParticleDefinition*,
|
||||
const G4MaterialCutsCouple*);
|
||||
|
||||
void SetVerboseLevel(G4int vl) {verboseLevel = vl;};
|
||||
G4int GetVerboseLevel(){return verboseLevel;};
|
||||
|
||||
void ActivateAuger(G4bool);
|
||||
|
||||
protected:
|
||||
|
||||
G4ParticleChangeForLoss* fParticleChange;
|
||||
|
||||
private:
|
||||
@@ -113,12 +99,9 @@ private:
|
||||
G4LivermoreIonisationModel & operator=(const G4LivermoreIonisationModel &right);
|
||||
G4LivermoreIonisationModel(const G4LivermoreIonisationModel&);
|
||||
|
||||
void InitialiseFluorescence();
|
||||
|
||||
//Intrinsic energy limits of the model: cannot be extended by the parent process
|
||||
G4double fIntrinsicLowEnergyLimit;
|
||||
G4double fIntrinsicHighEnergyLimit;
|
||||
G4int fNBinEnergyLoss;
|
||||
|
||||
G4bool isInitialised;
|
||||
|
||||
@@ -126,11 +109,8 @@ private:
|
||||
|
||||
G4eIonisationCrossSectionHandler* crossSectionHandler;
|
||||
G4VEnergySpectrum* energySpectrum;
|
||||
G4ShellVacancy* shellVacancy;
|
||||
|
||||
G4AtomicDeexcitation deexcitationManager;
|
||||
const G4AtomicTransitionManager* transitionManager;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+4
-2
@@ -23,8 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreNuclearGammaConversionModel.hh,v 1.1 2010/11/10 17:09:16 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4LivermoreNuclearGammaConversionModel.hh,v 1.1 2010-11-10 17:09:16 flongo Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Authors: G.Depaola & F.Longo
|
||||
//
|
||||
|
||||
#ifndef G4LivermoreNuclearGammaConversionModel_h
|
||||
|
||||
+22
-27
@@ -23,11 +23,16 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermorePhotoElectricModel.hh,v 1.4 2010/03/15 09:02:29 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
// $Id: G4LivermorePhotoElectricModel.hh,v 1.4 2010-03-15 09:02:29 pandola Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// 15-Mar-2010 L. Pandola, removed methods to set explicitely fluorescence cuts.
|
||||
// Author: Sebastien Incerti
|
||||
// 30 October 2008
|
||||
// on base of G4LowEnergyPhotoElectric developed by A.Forti and M.G.Pia
|
||||
//
|
||||
// 15 Mar 2010 L. Pandola, removed methods to set explicitely fluorescence cuts.
|
||||
// Main cuts from G4ProductionCutsTable are always used
|
||||
// 30 May 2011 A Mantero & V Ivanchenko Migration to model design for deexcitation
|
||||
//
|
||||
|
||||
|
||||
@@ -35,23 +40,12 @@
|
||||
#define G4LivermorePhotoElectricModel_h 1
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
#include "G4Electron.hh"
|
||||
#include "G4ParticleChangeForGamma.hh"
|
||||
#include "G4CrossSectionHandler.hh"
|
||||
#include "G4LogLogInterpolation.hh"
|
||||
#include "G4CompositeEMDataSet.hh"
|
||||
#include "G4ShellData.hh"
|
||||
#include "G4DopplerProfile.hh"
|
||||
#include "G4AtomicDeexcitation.hh"
|
||||
#include "G4VPhotoElectricAngularDistribution.hh"
|
||||
#include "G4PhotoElectricAngularGeneratorSimple.hh"
|
||||
#include "G4PhotoElectricAngularGeneratorSauterGavrila.hh"
|
||||
#include "G4PhotoElectricAngularGeneratorPolarized.hh"
|
||||
#include "G4AtomicTransitionManager.hh"
|
||||
#include "G4AtomicShell.hh"
|
||||
#include "G4ProductionCutsTable.hh"
|
||||
#include "G4ForceCondition.hh"
|
||||
#include "G4Gamma.hh"
|
||||
|
||||
class G4ParticleChangeForGamma;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VAtomDeexcitation;
|
||||
class G4VPhotoElectricAngularDistribution;
|
||||
class G4AtomicTransitionManager;
|
||||
|
||||
class G4LivermorePhotoElectricModel : public G4VEmModel
|
||||
{
|
||||
@@ -59,7 +53,7 @@ class G4LivermorePhotoElectricModel : public G4VEmModel
|
||||
public:
|
||||
|
||||
G4LivermorePhotoElectricModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "LivermorePhElectric");
|
||||
const G4String& nam = "LivermorePhElectric");
|
||||
|
||||
virtual ~G4LivermorePhotoElectricModel();
|
||||
|
||||
@@ -79,7 +73,7 @@ public:
|
||||
G4double tmin,
|
||||
G4double maxEnergy);
|
||||
|
||||
void ActivateAuger(G4bool);
|
||||
// void ActivateAuger(G4bool);
|
||||
|
||||
void SetAngularGenerator(G4VPhotoElectricAngularDistribution* distribution);
|
||||
|
||||
@@ -89,23 +83,24 @@ protected:
|
||||
|
||||
G4ParticleChangeForGamma* fParticleChange;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
G4ParticleDefinition* theGamma;
|
||||
G4ParticleDefinition* theElectron;
|
||||
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
|
||||
G4int verboseLevel;
|
||||
G4bool isInitialised;
|
||||
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
G4VCrossSectionHandler* shellCrossSectionHandler;
|
||||
|
||||
G4AtomicDeexcitation deexcitationManager;
|
||||
G4VAtomDeexcitation* fAtomDeexcitation;
|
||||
const G4AtomicTransitionManager* fTransitionManager;
|
||||
|
||||
G4VPhotoElectricAngularDistribution* ElectronAngularGenerator;
|
||||
G4VPhotoElectricAngularDistribution* fElectronAngularGenerator;
|
||||
G4String generatorName;
|
||||
|
||||
G4LivermorePhotoElectricModel & operator=(const G4LivermorePhotoElectricModel &right);
|
||||
|
||||
+4
-2
@@ -23,8 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermorePolarizedComptonModel.hh,v 1.3 2009/05/02 15:20:52 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermorePolarizedComptonModel.hh,v 1.3 2009-05-02 15:20:52 sincerti Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Authors: G.Depaola & F.Longo
|
||||
//
|
||||
|
||||
#ifndef G4LivermorePolarizedComptonModel_h
|
||||
|
||||
+4
-2
@@ -23,8 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermorePolarizedGammaConversionModel.hh,v 1.1 2009/10/30 14:52:05 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermorePolarizedGammaConversionModel.hh,v 1.1 2009-10-30 14:52:05 flongo Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Authors: G.Depaola & F.Longo
|
||||
//
|
||||
|
||||
#ifndef G4LivermorePolarizedGammaConversionModel_h
|
||||
|
||||
+4
-5
@@ -23,8 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermorePolarizedPhotoElectricModel.hh,v 1.2 2010/11/23 16:42:15 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04 $
|
||||
// $Id: G4LivermorePolarizedPhotoElectricModel.hh,v 1.2 2010-11-23 16:42:15 flongo Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Authors: G.Depaola & F.Longo
|
||||
//
|
||||
|
||||
#ifndef G4LivermorePolarizedPhotoElectricModel_h
|
||||
@@ -98,9 +100,6 @@ private:
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
G4VCrossSectionHandler* shellCrossSectionHandler;
|
||||
|
||||
G4double cutForLowEnergySecondaryPhotons;
|
||||
G4double cutForLowEnergySecondaryElectrons;
|
||||
|
||||
G4AtomicDeexcitation deexcitationManager;
|
||||
|
||||
|
||||
|
||||
+6
-2
@@ -23,8 +23,12 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermorePolarizedRayleighModel.hh,v 1.3 2009/05/02 15:20:52 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermorePolarizedRayleighModel.hh,v 1.3 2009-05-02 15:20:52 sincerti Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Sebastien Incerti
|
||||
// 30 October 2008
|
||||
// on base of G4LowEnergyPolarizedRayleigh developed by R. Capra
|
||||
//
|
||||
|
||||
#ifndef G4LivermorePolarizedRayleighModel_h
|
||||
|
||||
@@ -23,8 +23,12 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4LivermoreRayleighModel.hh,v 1.3 2009/04/17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LivermoreRayleighModel.hh,v 1.3 2009-04-17 10:29:20 vnivanch Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Sebastien Incerti
|
||||
// 30 October 2008
|
||||
// on base of G4LowEnergyRayleigh developed by A.Forti and M.G.Pia
|
||||
//
|
||||
|
||||
#ifndef G4LivermoreRayleighModel_h
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4LogLogInterpolation.hh,v 1.7 2009/09/25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: geant4-09-03 $
|
||||
// $Id: G4LogLogInterpolation.hh,v 1.7 2009-09-25 07:41:34 sincerti Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyBremsstrahlung.hh,v 1.37 2006/06/29 19:35:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 Mar 1999 A. Forti 1st implementation
|
||||
// 27 Sep 2001 V. Ivanchenko Major revision according to a design iteration
|
||||
// 10 Oct 2001 M.G. Pia Revision to improve code quality
|
||||
// and consistency with design
|
||||
// 29 Nov 2001 V.Ivanchenko New parametrisation of EEDL data
|
||||
// 21 Feb 2003 V.Ivanchenko Energy bins for spectrum are defined here
|
||||
// 24 Mar 2003 P.Rodrigues Changes to accommodate new angular generators
|
||||
// 06 Nov 2003 MGP Overloaded SetAngularGenerator
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Low Energy electromagnetic process, electron Bremsstrahlung
|
||||
// based on the data of the EEDL database. Details are described
|
||||
// in the Physics Reference Manual.
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4LOWENERGYBREMSSTRAHLUNG_HH
|
||||
#define G4LOWENERGYBREMSSTRAHLUNG_HH 1
|
||||
|
||||
#include "G4eLowEnergyLoss.hh"
|
||||
#include "G4DataVector.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
class G4VParticleChange;
|
||||
class G4VEMDataSet;
|
||||
class G4VEnergySpectrum;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VBremAngularDistribution;
|
||||
|
||||
class G4LowEnergyBremsstrahlung : public G4eLowEnergyLoss
|
||||
{
|
||||
public:
|
||||
|
||||
G4LowEnergyBremsstrahlung(const G4String& processName = "LowEnBrem");
|
||||
|
||||
|
||||
// G4LowEnergyBremsstrahlung(const G4String& processName = "LowEnBrem",
|
||||
// G4VBremAngularDistribution* distribution = 0);
|
||||
|
||||
~G4LowEnergyBremsstrahlung();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& particleType);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& track,
|
||||
const G4Step& step);
|
||||
|
||||
void SetCutForLowEnSecPhotons(G4double cut);
|
||||
|
||||
void SetAngularGenerator(G4VBremAngularDistribution* distribution);
|
||||
|
||||
void SetAngularGenerator(const G4String& name);
|
||||
|
||||
void PrintInfoDefinition();
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition );
|
||||
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
G4LowEnergyBremsstrahlung(const G4LowEnergyBremsstrahlung& );
|
||||
G4LowEnergyBremsstrahlung& operator = (const G4LowEnergyBremsstrahlung& right);
|
||||
|
||||
void BuildLossTable(const G4ParticleDefinition& ParticleType);
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
G4VEMDataSet* theMeanFreePath;
|
||||
G4VEnergySpectrum* energySpectrum;
|
||||
G4DataVector energyBins;
|
||||
G4VBremAngularDistribution* angularDistribution;
|
||||
G4VBremAngularDistribution* TsaiAngularDistribution;
|
||||
G4String generatorName;
|
||||
|
||||
// Lower limit for generation of gamma in this model
|
||||
G4DataVector cutForSecondaryPhotons;
|
||||
G4double cutForPhotons;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyCompton.hh,v 1.24 2008/11/04 10:14:00 pandola Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 Mar 1999 A. Forti 1st implementation
|
||||
// 1 Aug 2001 MGP Major revision according to a design iteration
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Low Energy Electromagnetic Physics, Compton Scattering
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LOWENERGYCOMPTON_HH
|
||||
#define G4LOWENERGYCOMPTON_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4ShellData.hh"
|
||||
#include "G4DopplerProfile.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
class G4VParticleChange;
|
||||
class G4VEMDataSet;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VRangeTest;
|
||||
|
||||
class G4LowEnergyCompton : public G4VDiscreteProcess {
|
||||
|
||||
public:
|
||||
|
||||
G4LowEnergyCompton(const G4String& processName ="LowEnCompton");
|
||||
|
||||
~G4LowEnergyCompton();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& definition);
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& definition);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& track, const G4Step& step);
|
||||
|
||||
// For testing purpose only
|
||||
G4double DumpMeanFreePath(const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition)
|
||||
{ return GetMeanFreePath(track, previousStepSize, condition); }
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
G4LowEnergyCompton& operator=(const G4LowEnergyCompton& right);
|
||||
G4LowEnergyCompton(const G4LowEnergyCompton& );
|
||||
|
||||
G4double lowEnergyLimit; // low energy limit applied to the process
|
||||
G4double highEnergyLimit; // high energy limit applied to the process
|
||||
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
G4VEMDataSet* scatterFunctionData;
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
|
||||
G4VRangeTest* rangeTest;
|
||||
|
||||
const G4double intrinsicLowEnergyLimit; // intrinsic validity range
|
||||
const G4double intrinsicHighEnergyLimit;
|
||||
|
||||
G4ShellData shellData;
|
||||
G4DopplerProfile profileData;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,122 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyGammaConversion.hh,v 1.15 2006/06/29 19:35:59 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 Mar 1999 A. Forti 1st implementation
|
||||
// 14 Aug 2001 MGP Major revision according to a design iteration
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Low Energy process, Photon conversion
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LOWENERGYGAMMACONVERSION_HH
|
||||
#define G4LOWENERGYGAMMACONVERSION_HH 1
|
||||
|
||||
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
class G4VParticleChange;
|
||||
class G4VEMDataSet;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VRangeTest;
|
||||
|
||||
class G4LowEnergyGammaConversion : public G4VDiscreteProcess {
|
||||
|
||||
public:
|
||||
|
||||
G4LowEnergyGammaConversion(const G4String& processName ="LowEnConversion");
|
||||
|
||||
~G4LowEnergyGammaConversion();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& photon);
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& photon);
|
||||
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
|
||||
|
||||
// For testing purpose only
|
||||
G4double DumpMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition)
|
||||
{ return GetMeanFreePath(aTrack, previousStepSize, condition); }
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
G4LowEnergyGammaConversion& operator=(const G4LowEnergyGammaConversion &right);
|
||||
G4LowEnergyGammaConversion(const G4LowEnergyGammaConversion& );
|
||||
|
||||
G4double ScreenFunction1(G4double screenVariable);
|
||||
G4double ScreenFunction2(G4double screenVariable);
|
||||
|
||||
G4double lowEnergyLimit; // low energy limit applied to the process
|
||||
G4double highEnergyLimit; // high energy limit applied to the process
|
||||
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
|
||||
G4VRangeTest* rangeTest;
|
||||
|
||||
const G4double intrinsicLowEnergyLimit; // intrinsic validity range
|
||||
const G4double intrinsicHighEnergyLimit;
|
||||
|
||||
const G4double smallEnergy;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,138 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyIonisation.hh,v 1.41 2006/06/29 19:36:01 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 Mar 1999 A. Forti 1st implementation
|
||||
// 27 Sep 2001 V. Ivanchenko Major revision according to a design iteration
|
||||
// 10 Oct 2001 M.G. Pia Revision to improve code quality and
|
||||
// consistency with design
|
||||
// 18 Oct 2001 M.G. Pia Revision to improve code quality and
|
||||
// consistency with design
|
||||
// 29 Nov 2001 V.Ivanchenko New parametrisation of EEDL data
|
||||
// 31 May 2002 V.Ivanchenko Add Auger flag
|
||||
// 06 Feb 2003 V.Ivanchenko Change signature of deexcitation for cut per region
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Low Energy electromagnetic process, electron Ionisation
|
||||
// based on the data of the EEDL database. Details are described
|
||||
// in the Physics Reference Manual.
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#ifndef G4LOWENERGYIONISATION_HH
|
||||
#define G4LOWENERGYIONISATION_HH 1
|
||||
|
||||
#include "G4eLowEnergyLoss.hh"
|
||||
#include "G4AtomicDeexcitation.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
class G4VParticleChange;
|
||||
class G4VDataSetAlgorithm;
|
||||
class G4ParticleChange;
|
||||
class G4VEnergySpectrum;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4ShellVacancy;
|
||||
class G4VEMDataSet;
|
||||
|
||||
class G4LowEnergyIonisation : public G4eLowEnergyLoss
|
||||
{
|
||||
public:
|
||||
|
||||
G4LowEnergyIonisation(const G4String& processName = "LowEnergyIoni");
|
||||
|
||||
~G4LowEnergyIonisation();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
void PrintInfoDefinition();
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& ParticleType);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& track,
|
||||
const G4Step& step);
|
||||
|
||||
void SetCutForLowEnSecPhotons(G4double cut);
|
||||
|
||||
void SetCutForLowEnSecElectrons(G4double cut);
|
||||
|
||||
void ActivateAuger(G4bool val);
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition );
|
||||
|
||||
protected:
|
||||
|
||||
virtual std::vector<G4DynamicParticle*>* DeexciteAtom(const G4MaterialCutsCouple* couple,
|
||||
G4double incidentEnergy,
|
||||
G4double eLoss);
|
||||
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
G4LowEnergyIonisation(const G4LowEnergyIonisation& );
|
||||
G4LowEnergyIonisation& operator = (const G4LowEnergyIonisation& right);
|
||||
|
||||
void BuildLossTable(const G4ParticleDefinition& ParticleType);
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
G4VEMDataSet* theMeanFreePath;
|
||||
G4VEnergySpectrum* energySpectrum;
|
||||
|
||||
// Lower limit for generation of gamma in this model
|
||||
G4DataVector cutForDelta;
|
||||
G4double cutForPhotons;
|
||||
G4double cutForElectrons;
|
||||
G4AtomicDeexcitation deexcitationManager;
|
||||
G4ShellVacancy* shellVacancy;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,133 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyPhotoElectric.hh,v 1.28 2006/06/29 19:36:03 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Author: A. Forti
|
||||
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 Mar 1999 A. Forti 1st implementation
|
||||
// 12 Aug 2001 MGP Major revision according to a design iteration
|
||||
// 16 Sept 2001 E. Guardincerri Added fluorescence generation
|
||||
// 31 May 2002 V.Ivanchenko Add cut on Auger electrons
|
||||
// 10 May 2004 P. Rodrigues Changes to accommodate new angular generators
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Low Energy Electromagnetic process, Photoelectric effect
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LOWENERGYPHOTOELECTRIC_HH
|
||||
#define G4LOWENERGYPHOTOELECTRIC_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4AtomicDeexcitation.hh"
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
class G4VParticleChange;
|
||||
class G4VEMDataSet;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VRangeTest;
|
||||
class G4VPhotoElectricAngularDistribution;
|
||||
|
||||
class G4LowEnergyPhotoElectric : public G4VDiscreteProcess {
|
||||
|
||||
public:
|
||||
|
||||
G4LowEnergyPhotoElectric(const G4String& processName ="LowEnPhotoElec");
|
||||
|
||||
~G4LowEnergyPhotoElectric();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& photon);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
|
||||
|
||||
void SetCutForLowEnSecPhotons(G4double);
|
||||
|
||||
void SetCutForLowEnSecElectrons(G4double);
|
||||
|
||||
void ActivateAuger(G4bool);
|
||||
|
||||
void SetAngularGenerator(G4VPhotoElectricAngularDistribution* distribution);
|
||||
|
||||
void SetAngularGenerator(const G4String& name);
|
||||
|
||||
|
||||
// For testing purpose only
|
||||
G4double DumpMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition)
|
||||
{ return GetMeanFreePath(aTrack, previousStepSize, condition); }
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
G4LowEnergyPhotoElectric& operator=(const G4LowEnergyPhotoElectric& right);
|
||||
G4LowEnergyPhotoElectric(const G4LowEnergyPhotoElectric& );
|
||||
|
||||
G4double lowEnergyLimit; // low energy limit applied to the process
|
||||
G4double highEnergyLimit; // high energy limit applied to the process
|
||||
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
G4VCrossSectionHandler* shellCrossSectionHandler;
|
||||
|
||||
G4VRangeTest* rangeTest;
|
||||
|
||||
const G4double intrinsicLowEnergyLimit; // intrinsic validity range
|
||||
const G4double intrinsicHighEnergyLimit;
|
||||
|
||||
G4double cutForLowEnergySecondaryPhotons;
|
||||
G4double cutForLowEnergySecondaryElectrons;
|
||||
|
||||
G4AtomicDeexcitation deexcitationManager;
|
||||
|
||||
G4VPhotoElectricAngularDistribution* ElectronAngularGenerator;
|
||||
G4String generatorName;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -1,150 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyPolarizedCompton.hh,v 1.10 2008/05/02 13:04:41 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
|
||||
// --------- G4LowEnergyPolarizedCompton class -----
|
||||
//
|
||||
// by G.Depaola & F.Longo (21 may 2001)
|
||||
// 24 May 2001 - MGP Modified to inherit from G4VDiscreteProcess
|
||||
// 25 May 2001 - MGP Added protections to avoid crashes
|
||||
//
|
||||
// 17 October 2001 - F.Longo Major revision according to design iteration
|
||||
//
|
||||
// 21 February 2002 - F.Longo Revisions with A.Zoglauer and G.Depaola
|
||||
// - better description of parallelism
|
||||
// - system of ref change method improved
|
||||
//
|
||||
//
|
||||
// Class description:
|
||||
// Low Energy electromagnetic process, Polarised Compton scattering
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef G4LOWENERGYPOLARIZEDCOMPTON_H
|
||||
#define G4LOWENERGYPOLARIZEDCOMPTON_H 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
|
||||
// Doppler Broadening
|
||||
|
||||
#include "G4ShellData.hh"
|
||||
#include "G4DopplerProfile.hh"
|
||||
|
||||
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
class G4VParticleChange;
|
||||
class G4VEMDataSet;
|
||||
class G4VCrossSectionHandler;
|
||||
class G4VRangeTest;
|
||||
|
||||
class G4LowEnergyPolarizedCompton : public G4VDiscreteProcess
|
||||
{
|
||||
public:
|
||||
|
||||
G4LowEnergyPolarizedCompton(const G4String& processName = "polarLowEnCompt");
|
||||
|
||||
~G4LowEnergyPolarizedCompton();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& definition);
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& photon);
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
|
||||
|
||||
|
||||
// For testing purpose only
|
||||
G4double DumpMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition)
|
||||
{ return GetMeanFreePath(aTrack, previousStepSize, condition); }
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
|
||||
G4LowEnergyPolarizedCompton& operator=(const G4LowEnergyPolarizedCompton&
|
||||
right);
|
||||
G4LowEnergyPolarizedCompton(const G4LowEnergyPolarizedCompton& );
|
||||
|
||||
G4double lowEnergyLimit; // low energy limit applied to the process
|
||||
G4double highEnergyLimit; // high energy limit applied to the process
|
||||
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
G4VEMDataSet* scatterFunctionData;
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
G4VRangeTest* rangeTest;
|
||||
|
||||
const G4double intrinsicLowEnergyLimit; // intrinsic validity range
|
||||
const G4double intrinsicHighEnergyLimit;
|
||||
|
||||
// specific methods for polarization
|
||||
|
||||
G4ThreeVector GetRandomPolarization(G4ThreeVector& direction0); // Random Polarization
|
||||
G4ThreeVector GetPerpendicularPolarization(const G4ThreeVector& direction0, const G4ThreeVector& polarization0) const;
|
||||
|
||||
G4ThreeVector SetPerpendicularVector(G4ThreeVector& a); // temporary
|
||||
G4ThreeVector SetNewPolarization(G4double epsilon, G4double sinSqrTheta,
|
||||
G4double phi, G4double cosTheta);
|
||||
G4double SetPhi(G4double, G4double);
|
||||
|
||||
void SystemOfRefChange(G4ThreeVector& direction0, G4ThreeVector& direction1,
|
||||
G4ThreeVector& polarization0, G4ThreeVector& polarization1);
|
||||
|
||||
// Doppler Broadening
|
||||
|
||||
G4ShellData shellData;
|
||||
G4DopplerProfile profileData;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyPolarizedRayleigh.hh,v 1.5 2006/06/29 19:36:07 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
//
|
||||
// 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 */
|
||||
@@ -1,119 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4LowEnergyRayleigh.hh,v 1.16 2006/06/29 19:36:09 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
//
|
||||
// Author: A. Forti
|
||||
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// 02 Mar 1999 A. Forti 1st implementation
|
||||
// 11 Aug 2001 MGP Major revision according to a design iteration
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Low Energy Electromagnetic process, Rayleigh effect
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
#ifndef G4LOWENERGYRAYLEIGH_HH
|
||||
#define G4LOWENERGYRAYLEIGH_HH 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
class G4Track;
|
||||
class G4Step;
|
||||
class G4ParticleDefinition;
|
||||
class G4VParticleChange;
|
||||
class G4VEMDataSet;
|
||||
class G4VCrossSectionHandler;
|
||||
|
||||
class G4LowEnergyRayleigh : public G4VDiscreteProcess {
|
||||
|
||||
public:
|
||||
|
||||
G4LowEnergyRayleigh(const G4String& processName ="LowEnRayleigh");
|
||||
|
||||
~G4LowEnergyRayleigh();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition&);
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition& photon);
|
||||
|
||||
G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
|
||||
|
||||
// For testing purpose only
|
||||
G4double DumpMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition)
|
||||
{ return GetMeanFreePath(aTrack, previousStepSize, condition); }
|
||||
|
||||
protected:
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& aTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
private:
|
||||
|
||||
// Hide copy constructor and assignment operator as private
|
||||
G4LowEnergyRayleigh& operator=(const G4LowEnergyRayleigh &right);
|
||||
G4LowEnergyRayleigh(const G4LowEnergyRayleigh& );
|
||||
|
||||
G4double lowEnergyLimit; // low energy limit applied to the process
|
||||
G4double highEnergyLimit; // high energy limit applied to the process
|
||||
|
||||
G4VEMDataSet* meanFreePathTable;
|
||||
G4VEMDataSet* formFactorData;
|
||||
|
||||
G4VCrossSectionHandler* crossSectionHandler;
|
||||
|
||||
const G4double intrinsicLowEnergyLimit; // intrinsic validity range
|
||||
const G4double intrinsicHighEnergyLimit;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+9
-9
@@ -23,8 +23,6 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4OrlicLiCrossSection.hh,v 1.2 2009/06/11 15:46:18 mantero Exp $
|
||||
// GEANT4 tag $Name: geant4-09-04-beta-01 $
|
||||
//
|
||||
// Author: Haifa Ben Abdelouahed
|
||||
//
|
||||
@@ -35,9 +33,11 @@
|
||||
// 28 Apr 2008 MGP Major revision according to a design iteration
|
||||
// 21 Apr 2009 ALF Some correction for compatibility to G4VShellCrossSection
|
||||
// and changed name to G4OrlicLiCrossSection
|
||||
// 29 Oct 2011 ALF changed name to G4OrlicLiXsModel
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
// Class description:
|
||||
// Low Energy Electromagnetic Physics, Cross section, proton ionisation, L shell
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/lowE
|
||||
@@ -45,20 +45,20 @@
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4ORLICLICROSSSECTION_HH
|
||||
#define G4ORLICLICROSSSECTION_HH 1
|
||||
#ifndef G4OrlicLiXsModel_hh
|
||||
#define G4OrlicLiXsModel_hh 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4AtomicTransitionManager.hh"
|
||||
|
||||
class G4OrlicLiCrossSection
|
||||
class G4OrlicLiXsModel
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4OrlicLiCrossSection();
|
||||
G4OrlicLiXsModel();
|
||||
|
||||
virtual ~G4OrlicLiCrossSection();
|
||||
virtual ~G4OrlicLiXsModel();
|
||||
|
||||
|
||||
//according to I.ORLIC, C.H.SOW and S.M.TANG,International Journal of PIXE.Vol.4(1997) 217-230
|
||||
@@ -72,8 +72,8 @@ public:
|
||||
private:
|
||||
|
||||
|
||||
G4OrlicLiCrossSection(const G4OrlicLiCrossSection&);
|
||||
G4OrlicLiCrossSection & operator = (const G4OrlicLiCrossSection &right);
|
||||
G4OrlicLiXsModel(const G4OrlicLiXsModel&);
|
||||
G4OrlicLiXsModel & operator = (const G4OrlicLiXsModel &right);
|
||||
|
||||
G4AtomicTransitionManager* transitionManager;
|
||||
|
||||
+8
-8
@@ -28,7 +28,7 @@
|
||||
// -----------
|
||||
// 21 Apr 2008 H. Abdelohauwed - 1st implementation
|
||||
// 29 Apr 2009 ALF Major Design Revision
|
||||
//
|
||||
// 29 Oct 2011 ALF Name changed fromn G4PaulKCrossSection to G4PaulKxsModel
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
@@ -38,8 +38,8 @@
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4PAULKCROSSSECTION_HH
|
||||
#define G4PAULKCROSSSECTION_HH 1
|
||||
#ifndef G4PaulKxsModel_hh
|
||||
#define G4PaulKxsModel_hh 1
|
||||
|
||||
//#include "G4VDataSetAlgorithm.hh"
|
||||
#include "globals.hh"
|
||||
@@ -48,14 +48,14 @@
|
||||
class G4VDataSetAlgorithm;
|
||||
class G4VEMDataSet;
|
||||
|
||||
class G4PaulKCrossSection
|
||||
class G4PaulKxsModel
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4PaulKCrossSection();
|
||||
G4PaulKxsModel();
|
||||
|
||||
virtual ~G4PaulKCrossSection();
|
||||
virtual ~G4PaulKxsModel();
|
||||
|
||||
G4double CalculateKCrossSection(G4int zTarget,G4double massIncident, G4double energyIncident);
|
||||
|
||||
@@ -63,8 +63,8 @@ public:
|
||||
private:
|
||||
|
||||
|
||||
G4PaulKCrossSection(const G4PaulKCrossSection&);
|
||||
G4PaulKCrossSection & operator = (const G4PaulKCrossSection &right);
|
||||
G4PaulKxsModel(const G4PaulKxsModel&);
|
||||
G4PaulKxsModel & operator = (const G4PaulKxsModel &right);
|
||||
|
||||
G4VDataSetAlgorithm* interpolation;
|
||||
|
||||
+39
-38
@@ -23,58 +23,59 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4CrossSectionKill.hh,v 1.1 2007/11/09 20:26:47 pia Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// Contact Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
|
||||
// -------------------------------------------------------------------
|
||||
// $Id: G4Penelope01BremsstrahlungAngular.hh,v 1.3 2006-06-29 19:36:17 gunter Exp $
|
||||
// GEANT4 tag $Name: not supported by cvs2svn $
|
||||
//
|
||||
// Author: L.Pandola
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
// Date Name Modification
|
||||
// 28 Apr 2007 M.G. Pia Created in compliance with design described in TNS paper
|
||||
// 04 Feb 2003 L. Pandola 1st implementation
|
||||
// 07 Nov 2003 L. Pandola Added method for testing
|
||||
// 24 May 2011 L. Pandola Renamed to Penelope01 (obsolete version)
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
// Class description:
|
||||
// Geant4-DNA Cross total cross section for electron elastic scattering in water
|
||||
// Reference: TNS Geant4-DNA paper
|
||||
// S. Chauvie et al., Geant4 physics processes for microdosimetry simulation:
|
||||
// design foundation and implementation of the first set of models,
|
||||
// IEEE Trans. Nucl. Sci., vol. 54, no. 6, Dec. 2007.
|
||||
// Reference for implementation model: NIM. 155, pp. 145-156, 1978
|
||||
// Further documentation available from http://www.ge.infn.it/geant4/dna
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Calculation of angular distribution for Penelope Bremsstrahlung,
|
||||
// version 2001
|
||||
// --------------------------------------------------------------
|
||||
|
||||
|
||||
#ifndef G4CROSSSECTIONKILL_HH
|
||||
#define G4CROSSSECTIONKILL_HH 1
|
||||
|
||||
#ifndef G4PENELOPE01BREMSSTRAHLUNGANGULAR_HH
|
||||
#define G4PENELOPE01BREMSSTRAHLUNGANGULAR_HH 1
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Track;
|
||||
|
||||
class G4CrossSectionKill
|
||||
{
|
||||
public:
|
||||
|
||||
G4CrossSectionKill();
|
||||
|
||||
virtual ~G4CrossSectionKill();
|
||||
|
||||
G4double CrossSection(const G4Track&);
|
||||
|
||||
// Copy constructor and assignment operator to be added here
|
||||
|
||||
class G4Penelope01BremsstrahlungAngular
|
||||
{
|
||||
|
||||
private:
|
||||
|
||||
G4String name;
|
||||
G4double lowEnergyLimit;
|
||||
G4double highEnergyLimit;
|
||||
enum{NumberofZPoints=6,
|
||||
NumberofEPoints=6,
|
||||
NumberofKPoints=4,
|
||||
reducedEnergyGrid=21};
|
||||
|
||||
public:
|
||||
|
||||
G4Penelope01BremsstrahlungAngular(G4int Zmat);
|
||||
~G4Penelope01BremsstrahlungAngular();
|
||||
G4double ExtractCosTheta(G4double PrimaryEnergy,G4double GammaEnergy);
|
||||
G4int GetAtomicNumber(); //testing purpose
|
||||
|
||||
private:
|
||||
|
||||
void InterpolationTableForZ(); //Initialization of tables (part 1)
|
||||
void InterpolationForK(); //Initialization of tables (part 2)
|
||||
|
||||
G4double betas[NumberofEPoints]; //betas for interpolation
|
||||
//tables for interpolation
|
||||
G4double Q1[NumberofEPoints][NumberofKPoints],Q2[NumberofEPoints][NumberofKPoints];
|
||||
//expanded tables for interpolation
|
||||
G4double Q1E[NumberofEPoints][reducedEnergyGrid],Q2E[NumberofEPoints][reducedEnergyGrid];
|
||||
//Z of the element
|
||||
G4int Zmat;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user