Import Geant4 9.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:46:55 +02:00
parent 89a9605df1
commit b1eb5424d2
10957 changed files with 888481 additions and 160139 deletions
@@ -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
@@ -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
@@ -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
@@ -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 */
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 );
}
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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)
//
@@ -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;
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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);
@@ -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
@@ -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
@@ -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;
@@ -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
@@ -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;
@@ -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;
@@ -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