Import Geant4 9.2.0 source tree
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4AnnihiToMuPair.hh,v 1.2 2006/06/29 19:32:12 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// ------------ G4AnnihiToMuPair physics process ------
|
||||
// by H.Burkhardt, S. Kelner and R. Kokoulin, November 2002
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BetheBlochNoDeltaModel.hh,v 1.7 2006/06/29 19:32:14 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4BraggNoDeltaModel.hh,v 1.6 2006/06/29 19:32:16 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: G4GammaConversionToMuons.hh,v 1.2 2006/06/29 19:32:18 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// ------------ G4GammaConversionToMuons physics process ------
|
||||
// by H.Burkhardt, S. Kelner and R. Kokoulin, April 2002
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4Vee2hadrons.hh,v 1.3 2007/05/22 17:37:30 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4Vee2hadrons.hh,v 1.4 2008/07/10 18:06:38 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -62,7 +62,7 @@ class G4Vee2hadrons
|
||||
|
||||
public:
|
||||
|
||||
G4Vee2hadrons() {};
|
||||
G4Vee2hadrons() : lowEnergy(0.0), highEnergy(1.1*GeV) {};
|
||||
|
||||
virtual ~G4Vee2hadrons() {};
|
||||
|
||||
@@ -75,7 +75,15 @@ public:
|
||||
virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const = 0;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
G4double, const G4ThreeVector&) const = 0;
|
||||
G4double, const G4ThreeVector&) = 0;
|
||||
|
||||
void SetLowEnergy(G4double val) {lowEnergy = val;};
|
||||
|
||||
G4double LowEnergy() const {return lowEnergy;};
|
||||
|
||||
void SetHighEnergy(G4double val) {highEnergy = val;};
|
||||
|
||||
G4double HighEnergy() const {return highEnergy;};
|
||||
|
||||
private:
|
||||
|
||||
@@ -83,6 +91,9 @@ private:
|
||||
G4Vee2hadrons & operator=(const G4Vee2hadrons &right);
|
||||
G4Vee2hadrons(const G4Vee2hadrons&);
|
||||
|
||||
G4double lowEnergy;
|
||||
G4double highEnergy;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4ee2KChargedModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4ee2KChargedModel
|
||||
//
|
||||
// Author: Vladimir Ivanchenko
|
||||
//
|
||||
// Creation date: 09.07.2008
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4ee2KChargedModel_h
|
||||
#define G4ee2KChargedModel_h 1
|
||||
|
||||
#include "G4Vee2hadrons.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4eeCrossSections.hh"
|
||||
|
||||
class G4DynamicParticle;
|
||||
class G4PhysicsVector;
|
||||
|
||||
class G4ee2KChargedModel : public G4Vee2hadrons
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4ee2KChargedModel(G4eeCrossSections*);
|
||||
|
||||
virtual ~G4ee2KChargedModel();
|
||||
|
||||
G4double ThresholdEnergy() const;
|
||||
|
||||
G4double PeakEnergy() const;
|
||||
|
||||
G4double ComputeCrossSection(G4double) const;
|
||||
|
||||
G4PhysicsVector* PhysicsVector(G4double, G4double) const;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
G4double, const G4ThreeVector&);
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4ee2KChargedModel & operator=(const G4ee2KChargedModel &right);
|
||||
G4ee2KChargedModel(const G4ee2KChargedModel&);
|
||||
|
||||
G4eeCrossSections* cross;
|
||||
|
||||
G4double massK;
|
||||
G4double massPhi;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4ee2KChargedModel::ThresholdEnergy() const
|
||||
{
|
||||
return 2.0*massK;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4ee2KChargedModel::PeakEnergy() const
|
||||
{
|
||||
return massPhi;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4ee2KChargedModel::ComputeCrossSection(G4double e) const
|
||||
{
|
||||
G4double ee = std::min(HighEnergy(),e);
|
||||
return cross->CrossSection2Kcharged(ee);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,116 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4ee2KNeutralModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4ee2KNeutralModel
|
||||
//
|
||||
// Author: Vladimir Ivanchenko
|
||||
//
|
||||
// Creation date: 09.07.2008
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4ee2KNeutralModel_h
|
||||
#define G4ee2KNeutralModel_h 1
|
||||
|
||||
#include "G4Vee2hadrons.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4eeCrossSections.hh"
|
||||
|
||||
class G4DynamicParticle;
|
||||
class G4PhysicsVector;
|
||||
|
||||
class G4ee2KNeutralModel : public G4Vee2hadrons
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4ee2KNeutralModel(G4eeCrossSections*);
|
||||
|
||||
virtual ~G4ee2KNeutralModel();
|
||||
|
||||
G4double ThresholdEnergy() const;
|
||||
|
||||
G4double PeakEnergy() const;
|
||||
|
||||
G4double ComputeCrossSection(G4double) const;
|
||||
|
||||
G4PhysicsVector* PhysicsVector(G4double, G4double) const;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
G4double, const G4ThreeVector&);
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4ee2KNeutralModel & operator=(const G4ee2KNeutralModel &right);
|
||||
G4ee2KNeutralModel(const G4ee2KNeutralModel&);
|
||||
|
||||
G4eeCrossSections* cross;
|
||||
|
||||
G4double massK;
|
||||
G4double massPhi;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4ee2KNeutralModel::ThresholdEnergy() const
|
||||
{
|
||||
return 2.0*massK;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4ee2KNeutralModel::PeakEnergy() const
|
||||
{
|
||||
return massPhi;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4ee2KNeutralModel::ComputeCrossSection(G4double e) const
|
||||
{
|
||||
G4double ee = std::min(HighEnergy(),e);
|
||||
return cross->CrossSection2Kneutral(ee);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eeCrossSections.hh,v 1.2 2006/06/29 19:32:22 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4eeCrossSections.hh,v 1.3 2008/07/10 18:06:38 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -69,10 +69,16 @@ public:
|
||||
|
||||
G4double CrossSection3pi(G4double);
|
||||
|
||||
G4double CrossSectionPi0G(G4double);
|
||||
|
||||
G4double CrossSectionEtaG(G4double);
|
||||
|
||||
G4double CrossSection2Kcharged(G4double);
|
||||
|
||||
G4double CrossSection2Kneutral(G4double);
|
||||
|
||||
std::complex<G4double> DpRho(G4double e);
|
||||
|
||||
private:
|
||||
|
||||
void Initialise();
|
||||
@@ -94,13 +100,10 @@ private:
|
||||
|
||||
G4double WidthPhi(G4double e);
|
||||
|
||||
std::complex<G4double> DpRho(G4double e);
|
||||
|
||||
std::complex<G4double> DpOm(G4double e);
|
||||
|
||||
std::complex<G4double> DpPhi(G4double e);
|
||||
|
||||
|
||||
// hide assignment operator
|
||||
G4eeCrossSections & operator=(const G4eeCrossSections &right);
|
||||
G4eeCrossSections(const G4eeCrossSections&);
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4eeTo3PiModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4eeTo3PiModel
|
||||
//
|
||||
// Author: Vladimir Ivanchenko
|
||||
//
|
||||
// Creation date: 25.10.2003
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4eeTo3PiModel_h
|
||||
#define G4eeTo3PiModel_h 1
|
||||
|
||||
#include "G4Vee2hadrons.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4eeCrossSections.hh"
|
||||
|
||||
class G4DynamicParticle;
|
||||
class G4PhysicsVector;
|
||||
|
||||
class G4eeTo3PiModel : public G4Vee2hadrons
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4eeTo3PiModel(G4eeCrossSections*);
|
||||
|
||||
virtual ~G4eeTo3PiModel();
|
||||
|
||||
G4double ThresholdEnergy() const;
|
||||
|
||||
G4double PeakEnergy() const;
|
||||
|
||||
G4double ComputeCrossSection(G4double) const;
|
||||
|
||||
G4PhysicsVector* PhysicsVector(G4double, G4double) const;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
G4double, const G4ThreeVector&);
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4eeTo3PiModel & operator=(const G4eeTo3PiModel &right);
|
||||
G4eeTo3PiModel(const G4eeTo3PiModel&);
|
||||
|
||||
G4eeCrossSections* cross;
|
||||
|
||||
G4double massPi;
|
||||
G4double massPi0;
|
||||
G4double massOm;
|
||||
G4double massPhi;
|
||||
G4double gcash;
|
||||
G4double gmax;
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeTo3PiModel::ThresholdEnergy() const
|
||||
{
|
||||
return std::max(LowEnergy(),2.0*massPi + massPi0);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeTo3PiModel::PeakEnergy() const
|
||||
{
|
||||
G4double e = massOm;
|
||||
if(HighEnergy() > massPhi) e = massPhi;
|
||||
return e;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeTo3PiModel::ComputeCrossSection(G4double e) const
|
||||
{
|
||||
G4double ee = std::min(HighEnergy(),e);
|
||||
return cross->CrossSection3pi(ee);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eeToHadrons.hh,v 1.8 2007/05/23 08:50:41 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eeToHadronsModel.hh,v 1.6 2007/05/22 17:37:30 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4eeToHadronsModel.hh,v 1.7 2008/07/10 18:06:38 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -62,15 +62,13 @@ class G4eeToHadronsModel : public G4VEmModel
|
||||
|
||||
public:
|
||||
|
||||
G4eeToHadronsModel(const G4Vee2hadrons*, G4int ver=0,
|
||||
G4eeToHadronsModel(G4Vee2hadrons*, G4int ver=0,
|
||||
const G4String& nam = "eeToHadrons");
|
||||
|
||||
virtual ~G4eeToHadronsModel();
|
||||
|
||||
virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
|
||||
|
||||
G4double PeakEnergy() const;
|
||||
|
||||
virtual G4double CrossSectionPerVolume(const G4Material*,
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
@@ -98,6 +96,8 @@ public:
|
||||
|
||||
G4DynamicParticle* GenerateCMPhoton(G4double);
|
||||
|
||||
inline G4double PeakEnergy() const;
|
||||
|
||||
private:
|
||||
|
||||
void ComputeCMCrossSectionPerElectron();
|
||||
@@ -106,7 +106,7 @@ private:
|
||||
G4eeToHadronsModel & operator=(const G4eeToHadronsModel &right);
|
||||
G4eeToHadronsModel(const G4eeToHadronsModel&);
|
||||
|
||||
const G4Vee2hadrons* model;
|
||||
G4Vee2hadrons* model;
|
||||
G4ParticleDefinition* theGamma;
|
||||
G4PhysicsVector* crossPerElectron;
|
||||
G4PhysicsVector* crossBornPerElectron;
|
||||
@@ -132,27 +132,4 @@ inline G4double G4eeToHadronsModel::PeakEnergy() const
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToHadronsModel::CrossSectionPerVolume(
|
||||
const G4Material* mat,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double kineticEnergy,
|
||||
G4double, G4double)
|
||||
{
|
||||
return mat->GetElectronDensity()*
|
||||
ComputeCrossSectionPerElectron(p, kineticEnergy);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToHadronsModel::ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition* p,
|
||||
G4double kineticEnergy,
|
||||
G4double Z, G4double,
|
||||
G4double, G4double)
|
||||
{
|
||||
return Z*ComputeCrossSectionPerElectron(p, kineticEnergy);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eeToHadronsMultiModel.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4eeToHadronsMultiModel.hh,v 1.6 2008/07/10 18:06:38 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -58,6 +58,7 @@
|
||||
#include <vector>
|
||||
|
||||
class G4eeCrossSections;
|
||||
class G4Vee2hadrons;
|
||||
|
||||
class G4eeToHadronsMultiModel : public G4VEmModel
|
||||
{
|
||||
@@ -83,18 +84,18 @@ public:
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
|
||||
virtual G4double ComputeCrossSectionPerElectron(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
const G4MaterialCutsCouple*,
|
||||
const G4DynamicParticle*,
|
||||
G4double tmin = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
|
||||
inline G4double ComputeCrossSectionPerElectron(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
G4double cutEnergy = 0.0,
|
||||
G4double maxEnergy = DBL_MAX);
|
||||
|
||||
void PrintInfo();
|
||||
|
||||
// Set the factor to artificially increase the crossSection (default 1)
|
||||
@@ -102,6 +103,8 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
void AddEEModel(G4Vee2hadrons*);
|
||||
|
||||
// hide assignment operator
|
||||
G4eeToHadronsMultiModel & operator=(const G4eeToHadronsMultiModel &right);
|
||||
G4eeToHadronsMultiModel(const G4eeToHadronsMultiModel&);
|
||||
@@ -127,29 +130,6 @@ private:
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToHadronsMultiModel::CrossSectionPerVolume(
|
||||
const G4Material* mat,
|
||||
const G4ParticleDefinition* p,
|
||||
G4double kineticEnergy,
|
||||
G4double, G4double)
|
||||
{
|
||||
return mat->GetElectronDensity()*
|
||||
ComputeCrossSectionPerElectron(p, kineticEnergy);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToHadronsMultiModel::ComputeCrossSectionPerAtom(
|
||||
const G4ParticleDefinition* p,
|
||||
G4double kineticEnergy,
|
||||
G4double Z, G4double,
|
||||
G4double, G4double)
|
||||
{
|
||||
return Z*ComputeCrossSectionPerElectron(p, kineticEnergy);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToHadronsMultiModel::ComputeCrossSectionPerElectron(
|
||||
const G4ParticleDefinition*,
|
||||
G4double kineticEnergy,
|
||||
@@ -168,25 +148,4 @@ inline G4double G4eeToHadronsMultiModel::ComputeCrossSectionPerElectron(
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline
|
||||
void G4eeToHadronsMultiModel::SampleSecondaries(std::vector<G4DynamicParticle*>* newp,
|
||||
const G4MaterialCutsCouple* couple,
|
||||
const G4DynamicParticle* dp,
|
||||
G4double, G4double)
|
||||
{
|
||||
G4double kinEnergy = dp->GetKineticEnergy();
|
||||
if (kinEnergy > thKineticEnergy) {
|
||||
G4double q = cumSum[nModels-1]*G4UniformRand();
|
||||
for(G4int i=0; i<nModels; i++) {
|
||||
if(q <= cumSum[i]) {
|
||||
(models[i])->SampleSecondaries(newp, couple,dp);
|
||||
if(newp->size() > 0) fParticleChange->ProposeTrackStatus(fStopAndKill);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4eeToPGammaModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4eeToPGammaModel
|
||||
//
|
||||
// Author: Vladimir Ivanchenko
|
||||
//
|
||||
// Creation date: 10.07.2008
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4eeToPGammaModel_h
|
||||
#define G4eeToPGammaModel_h 1
|
||||
|
||||
#include "G4Vee2hadrons.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4eeCrossSections.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
|
||||
class G4DynamicParticle;
|
||||
class G4PhysicsVector;
|
||||
|
||||
class G4eeToPGammaModel : public G4Vee2hadrons
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4eeToPGammaModel(G4eeCrossSections*, const G4String&);
|
||||
|
||||
virtual ~G4eeToPGammaModel();
|
||||
|
||||
G4double ThresholdEnergy() const;
|
||||
|
||||
G4double PeakEnergy() const;
|
||||
|
||||
G4double ComputeCrossSection(G4double) const;
|
||||
|
||||
G4PhysicsVector* PhysicsVector(G4double, G4double) const;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
G4double, const G4ThreeVector&);
|
||||
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4eeToPGammaModel & operator=(const G4eeToPGammaModel &right);
|
||||
G4eeToPGammaModel(const G4eeToPGammaModel&);
|
||||
|
||||
G4eeCrossSections* cross;
|
||||
|
||||
G4ParticleDefinition* particle;
|
||||
G4ParticleDefinition* pi0;
|
||||
|
||||
G4double massP;
|
||||
G4double massR;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToPGammaModel::ThresholdEnergy() const
|
||||
{
|
||||
return LowEnergy();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToPGammaModel::PeakEnergy() const
|
||||
{
|
||||
return massR;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline G4double G4eeToPGammaModel::ComputeCrossSection(G4double e) const
|
||||
{
|
||||
G4double ee = std::min(HighEnergy(),e);
|
||||
G4double xs;
|
||||
if(particle == pi0) xs = cross->CrossSectionPi0G(ee);
|
||||
else xs = cross->CrossSectionEtaG(ee);
|
||||
return xs;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4eeToTwoPiModel.hh,v 1.3 2007/05/22 17:37:30 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4eeToTwoPiModel.hh,v 1.4 2008/07/10 18:06:39 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -75,12 +75,10 @@ public:
|
||||
G4PhysicsVector* PhysicsVector(G4double, G4double) const;
|
||||
|
||||
virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
|
||||
G4double, const G4ThreeVector&) const;
|
||||
G4double, const G4ThreeVector&);
|
||||
|
||||
private:
|
||||
|
||||
void Initialise();
|
||||
|
||||
// hide assignment operator
|
||||
G4eeToTwoPiModel & operator=(const G4eeToTwoPiModel &right);
|
||||
G4eeToTwoPiModel(const G4eeToTwoPiModel&);
|
||||
@@ -89,7 +87,6 @@ private:
|
||||
|
||||
G4double massPi;
|
||||
G4double massRho;
|
||||
G4double highEnergy;
|
||||
|
||||
};
|
||||
|
||||
@@ -111,7 +108,7 @@ inline G4double G4eeToTwoPiModel::PeakEnergy() const
|
||||
|
||||
inline G4double G4eeToTwoPiModel::ComputeCrossSection(G4double e) const
|
||||
{
|
||||
G4double ee = std::min(GeV,e);
|
||||
G4double ee = std::min(HighEnergy(),e);
|
||||
return cross->CrossSection2pi(ee);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4hBremsstrahlung.hh,v 1.1 2008/03/06 11:47:10 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4hBremsstrahlung
|
||||
//
|
||||
// Author: Vladimir Ivanchenko on base of model for muons
|
||||
//
|
||||
// Creation date: 01.03.2008
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// This class manages the Bremsstrahlung process for hadrons
|
||||
// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess.
|
||||
//
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4hBremsstrahlung_h
|
||||
#define G4hBremsstrahlung_h 1
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VEnergyLossProcess.hh"
|
||||
#include "G4VEmModel.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4ParticleDefinition;
|
||||
|
||||
class G4hBremsstrahlung : public G4VEnergyLossProcess
|
||||
|
||||
{
|
||||
public:
|
||||
|
||||
G4hBremsstrahlung(const G4String& processName = "hBrems");
|
||||
|
||||
virtual ~G4hBremsstrahlung();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& p);
|
||||
|
||||
G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*,
|
||||
G4double cut);
|
||||
|
||||
// Print out of the class parameters
|
||||
void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4hBremsstrahlung & operator=(const G4hBremsstrahlung &right);
|
||||
G4hBremsstrahlung(const G4hBremsstrahlung&);
|
||||
|
||||
const G4ParticleDefinition* theParticle;
|
||||
const G4ParticleDefinition* theBaseParticle;
|
||||
|
||||
G4double lowestKinEnergy;
|
||||
G4bool isInitialised;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline
|
||||
G4bool G4hBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)
|
||||
{
|
||||
return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline
|
||||
G4double G4hBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,
|
||||
const G4Material*,
|
||||
G4double)
|
||||
{
|
||||
return lowestKinEnergy;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4hBremsstrahlungModel.hh,v 1.2 2008/07/22 16:15:16 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4hBremsstrahlungModel
|
||||
//
|
||||
// Author: Vladimir Ivanchenko on base of G4MuBremsstrahlungModel
|
||||
//
|
||||
// Creation date: 28.02.2008
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
//
|
||||
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// Implementation of energy loss for gamma emission by hadrons
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4hBremsstrahlungModel_h
|
||||
#define G4hBremsstrahlungModel_h 1
|
||||
|
||||
#include "G4MuBremsstrahlungModel.hh"
|
||||
|
||||
class G4hBremsstrahlungModel : public G4MuBremsstrahlungModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4hBremsstrahlungModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "hBrem");
|
||||
|
||||
virtual ~G4hBremsstrahlungModel();
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4double ComputeDMicroscopicCrossSection(G4double tkin,
|
||||
G4double Z,
|
||||
G4double gammaEnergy);
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4hBremsstrahlungModel & operator=(const G4hBremsstrahlungModel &right);
|
||||
G4hBremsstrahlungModel(const G4hBremsstrahlungModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,120 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4hPairProduction.hh,v 1.1 2008/03/06 11:47:11 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4hPairProduction
|
||||
//
|
||||
// Author: Vladimir Ivanchenko on base of model for muons
|
||||
//
|
||||
// Creation date: 01.03.2008
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// This class manages the PairProduction process for hadrons
|
||||
// it inherites from G4VContinuousDiscreteProcess via G4VEnergyLossProcess.
|
||||
//
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4hPairProduction_h
|
||||
#define G4hPairProduction_h 1
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VEnergyLossProcess.hh"
|
||||
#include "G4VEmModel.hh"
|
||||
|
||||
class G4ParticleChangeForLoss;
|
||||
|
||||
class G4hPairProduction : public G4VEnergyLossProcess
|
||||
{
|
||||
public:
|
||||
|
||||
G4hPairProduction(const G4String& processName = "hPairProd");
|
||||
|
||||
virtual ~G4hPairProduction();
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition& p);
|
||||
|
||||
G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
|
||||
const G4Material*, G4double cut);
|
||||
|
||||
// Print out of the class parameters
|
||||
void PrintInfo();
|
||||
|
||||
protected:
|
||||
|
||||
void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
|
||||
const G4ParticleDefinition*);
|
||||
|
||||
private:
|
||||
|
||||
G4hPairProduction & operator=(const G4hPairProduction &right);
|
||||
G4hPairProduction(const G4hPairProduction&);
|
||||
|
||||
const G4ParticleDefinition* theParticle;
|
||||
const G4ParticleDefinition* theBaseParticle;
|
||||
|
||||
G4ParticleChangeForLoss* fParticleChange;
|
||||
|
||||
G4double lowestKinEnergy;
|
||||
G4bool isInitialised;
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline
|
||||
G4bool G4hPairProduction::IsApplicable(const G4ParticleDefinition& p)
|
||||
{
|
||||
return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline
|
||||
G4double G4hPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*,
|
||||
const G4Material*,
|
||||
G4double)
|
||||
{
|
||||
return lowestKinEnergy;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,82 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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: G4hPairProductionModel.hh,v 1.2 2008/07/22 16:15:16 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
//
|
||||
// File name: G4hPairProductionModel
|
||||
//
|
||||
// Author: Vladimir Ivanchenko on base of G4MuPairProductionModel
|
||||
//
|
||||
// Creation date: 28.02.2008
|
||||
//
|
||||
// Modifications:
|
||||
//
|
||||
//
|
||||
|
||||
//
|
||||
// Class Description:
|
||||
//
|
||||
// Implementation of e+e- pair production by hadrons
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#ifndef G4hPairProductionModel_h
|
||||
#define G4hPairProductionModel_h 1
|
||||
|
||||
#include "G4MuPairProductionModel.hh"
|
||||
|
||||
class G4hPairProductionModel : public G4MuPairProductionModel
|
||||
{
|
||||
|
||||
public:
|
||||
|
||||
G4hPairProductionModel(const G4ParticleDefinition* p = 0,
|
||||
const G4String& nam = "hPairProd");
|
||||
|
||||
virtual ~G4hPairProductionModel();
|
||||
|
||||
protected:
|
||||
|
||||
virtual G4double ComputeDMicroscopicCrossSection(G4double tkin,
|
||||
G4double Z,
|
||||
G4double pairEnergy);
|
||||
private:
|
||||
|
||||
// hide assignment operator
|
||||
G4hPairProductionModel & operator=(const G4hPairProductionModel &right);
|
||||
G4hPairProductionModel(const G4hPairProductionModel&);
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4hhIonisation.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4mplIonisation.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4mplIonisationModel.hh,v 1.6 2007/11/13 18:36:29 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
|
||||
Reference in New Issue
Block a user