Import Geant4 10.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 11:51:14 +02:00
parent e2d2f9810a
commit 286caacf06
12421 changed files with 730077 additions and 502383 deletions
@@ -23,6 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4AntiNeutronAnnihilationAtRest.hh 66367 2012-12-18 09:18:08Z gcosmo $
// G4AntiNeutronAnnihilationAtRest physics process
// Larry Felawka (TRIUMF), April 1998
//---------------------------------------------------------------------
@@ -1,135 +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. *
// ********************************************************************
//
// G4AntiProtonAnnihilationAtRest physics process
// Larry Felawka (TRIUMF), April 1998
//---------------------------------------------------------------------
#ifndef G4AntiProtonAnnihilationAtRest_h
#define G4AntiProtonAnnihilationAtRest_h 1
// Class Description:
//
// Process for annihilation of p-bar at rest.
// To be used in your physics list in case you need this physics.
#include "globals.hh"
#include "Randomize.hh"
#include "G4VRestProcess.hh"
#include "G4VParticleChange.hh"
#include "G4ParticleDefinition.hh"
#include "G4GHEKinematicsVector.hh"
#include "G4HadronicProcessType.hh"
class G4AntiProtonAnnihilationAtRest : public G4VRestProcess
{
private:
// hide assignment operator as private
G4AntiProtonAnnihilationAtRest& operator=(const G4AntiProtonAnnihilationAtRest &right);
G4AntiProtonAnnihilationAtRest(const G4AntiProtonAnnihilationAtRest& );
public:
G4AntiProtonAnnihilationAtRest(const G4String& processName ="AntiProtonAnnihilationAtRest",
G4ProcessType aType = fHadronic );
~G4AntiProtonAnnihilationAtRest();
G4bool IsApplicable(const G4ParticleDefinition&);
void PreparePhysicsTable(const G4ParticleDefinition&);
void BuildPhysicsTable(const G4ParticleDefinition&);
G4double AtRestGetPhysicalInteractionLength(const G4Track&,
G4ForceCondition*);
// zero mean lifetime
G4double GetMeanLifeTime(const G4Track& ,
G4ForceCondition* ) {return 0.0;}
G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&);
// return number of secondaries produced
G4int GetNumberOfSecondaries();
// pointer to array containg kinematics of secondaries
G4GHEKinematicsVector* GetSecondaryKinematics();
private:
void GenerateSecondaries();
void Poisso( G4float, G4int* );
void Normal( G4float* );
void AntiProtonAnnihilation( G4int* );
G4double ExNu( G4float );
G4int NFac( G4int );
private:
// global time-of-flight of stopped AntiProton
G4float globalTime;
// atomic mass of target nucleus
G4float targetAtomicMass;
// charge of target nucleus
G4float targetCharge;
G4GHEKinematicsVector* pv;
G4GHEKinematicsVector* eve;
G4GHEKinematicsVector* gkin;
G4float evapEnergy1;
G4float evapEnergy3;
G4int ngkine;
G4int ntot;
G4GHEKinematicsVector result;
G4float massPionMinus;
G4float massProton;
G4float massPionZero;
G4float massAntiProton;
G4float massPionPlus;
G4float massGamma;
G4ParticleDefinition* pdefGamma;
G4ParticleDefinition* pdefPionPlus;
G4ParticleDefinition* pdefPionZero;
G4ParticleDefinition* pdefPionMinus;
G4ParticleDefinition* pdefProton;
G4ParticleDefinition* pdefAntiProton;
G4ParticleDefinition* pdefNeutron;
G4ParticleDefinition* pdefDeuteron;
G4ParticleDefinition* pdefTriton;
G4ParticleDefinition* pdefAlpha;
};
#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. *
// ********************************************************************
//
// File name: G4DistributionGenerator.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 12 May 1998
//
#ifndef G4DISTRIBUTIONGENERATOR_HH
#define G4DISTRIBUTIONGENERATOR_HH
#include <vector>
#include "globals.hh"
#include "Randomize.hh"
class G4DistributionGenerator
{
public:
// Constructor
G4DistributionGenerator(std::vector<G4double>& x,
std::vector<G4double>& values);
G4DistributionGenerator();
// Destructor
~G4DistributionGenerator();
G4double Generate(G4double ranflat);
private:
// Hide assignment operator as private
// G4DistributionGenerator& operator=(const G4DistributionGenerator &right);
// Copy constructor
// G4DistributionGenerator(const G4DistributionGenerator& );
std::vector<G4double> _x;
std::vector<G4double> _cumProb;
};
#endif
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4ElementSelector.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
//-----------------------------------------------------------------------------
//
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4EmCaptureCascade.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
//-----------------------------------------------------------------------------
//
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4HadronStoppingProcess.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
//---------------------------------------------------------------------
//
@@ -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. *
// ********************************************************************
//
// G4KaonMinusAbsorption physics process
// Larry Felawka (TRIUMF), April 1998
//---------------------------------------------------------------------
#ifndef G4KaonMinusAbsorption_h
#define G4KaonMinusAbsorption_h 1
#include "globals.hh"
#include "Randomize.hh"
#include "G4VRestProcess.hh"
#include "G4VParticleChange.hh"
#include "G4ParticleDefinition.hh"
#include "G4GHEKinematicsVector.hh"
#include "G4HadronicProcessType.hh"
// Class Description:
//
// Alternative process for absorption of K- at rest.
// To be used in your physics list in case you need this physics.
class G4KaonMinusAbsorption : public G4VRestProcess
{
private:
// hide assignment operator as private
G4KaonMinusAbsorption& operator=(const G4KaonMinusAbsorption &right);
G4KaonMinusAbsorption(const G4KaonMinusAbsorption& );
public:
G4KaonMinusAbsorption(const G4String& processName ="KaonMinusAbsorption",
G4ProcessType aType = fHadronic );
~G4KaonMinusAbsorption();
G4bool IsApplicable(const G4ParticleDefinition&);
void PreparePhysicsTable(const G4ParticleDefinition&);
void BuildPhysicsTable(const G4ParticleDefinition&);
G4double AtRestGetPhysicalInteractionLength(const G4Track&,
G4ForceCondition*);
// zero mean lifetime
G4double GetMeanLifeTime(const G4Track& ,
G4ForceCondition* ) {return 0.0;}
G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&);
// return number of secondaries produced
G4int GetNumberOfSecondaries();
// pointer to array containg kinematics of secondaries
G4GHEKinematicsVector* GetSecondaryKinematics();
private:
void GenerateSecondaries();
void Poisso( G4float, G4int* );
void Normal( G4float* );
void KaonMinusAbsorption( G4int* );
G4int NFac( G4int );
private:
// global time-of-flight of stopped AntiProton
G4float globalTime;
// atomic mass of target nucleus
G4float targetAtomicMass;
// charge of target nucleus
G4float targetCharge;
G4GHEKinematicsVector* pv;
G4GHEKinematicsVector* eve;
G4GHEKinematicsVector* gkin;
G4float evapEnergy1;
G4float evapEnergy3;
G4int ngkine;
G4int ntot;
G4GHEKinematicsVector result;
G4float massKaonMinus;
G4float massGamma;
G4float massPionZero;
G4float massProton;
G4float massLambda;
G4ParticleDefinition* pdefKaonMinus;
G4ParticleDefinition* pdefGamma;
G4ParticleDefinition* pdefPionZero;
G4ParticleDefinition* pdefProton;
G4ParticleDefinition* pdefNeutron;
G4ParticleDefinition* pdefLambda;
G4ParticleDefinition* pdefDeuteron;
G4ParticleDefinition* pdefTriton;
G4ParticleDefinition* pdefAlpha;
};
#endif
@@ -1,148 +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. *
// ********************************************************************
//
// File name: G4KaonMinusAbsorptionAtRest.hh
//
// Author: Christian V"olcker (Christian.Volcker@cern.ch),
//
// Creation date: 10. November 1997
//
// -------------------------------------------------------------------
#ifndef G4KaonMinusAbsorptionAtRest_h
#define G4KaonMinusAbsorptionAtRest_h 1
// Class Description:
//
// Process for nuclear absorption of K- at rest.
// To be used in your physics list in case you need this physics.
#include "globals.hh"
#include "Randomize.hh"
#include "G4VRestProcess.hh"
#include "G4ParticleTypes.hh"
#include "G4Nucleus.hh"
#include "G4DynamicParticle.hh"
#include "G4DynamicParticleVector.hh"
#include "G4NucleiProperties.hh"
#include "G4HadronicProcessType.hh"
// *********************************************************
class G4KaonMinusAbsorptionAtRest : public G4VRestProcess
// *********************************************************
{
private:
// hide assignment operator as private
G4KaonMinusAbsorptionAtRest& operator=(const G4KaonMinusAbsorptionAtRest &right);
G4KaonMinusAbsorptionAtRest(const G4KaonMinusAbsorptionAtRest& );
public:
G4KaonMinusAbsorptionAtRest(const G4String& processName ="KaonMinusAbsorptionAtRest",
G4ProcessType aType = fHadronic );
~G4KaonMinusAbsorptionAtRest();
//override methods...
public:
G4bool IsApplicable(const G4ParticleDefinition& particle) {
return( particle == *(G4KaonMinus::KaonMinus()) );
}
void PreparePhysicsTable(const G4ParticleDefinition&);
void BuildPhysicsTable(const G4ParticleDefinition&);
// the main method ...
G4VParticleChange* AtRestDoIt(const G4Track& aTrack, const G4Step& aStep);
protected: // why?? might be private....
// zero mean lifetime
G4double GetMeanLifeTime(const G4Track& aTrack,
G4ForceCondition* )
{
G4double result = 0;
if(aTrack.GetMaterial()->GetNumberOfElements() == 1)
if(aTrack.GetMaterial()->GetZ()<1.5) result = DBL_MAX;
return result;
}
private:
// returns proton or neutron with fermi-momentum
G4DynamicParticle GetAbsorbingNucleon();
// returns proton or neutron particle definition;
G4ParticleDefinition* SelectAbsorbingNucleon();
// provides the neutron halo factor for absorption on nucleus surface.
// in the G4Nucleus
G4double NeutronHaloFactor(G4double Z, G4double N);
// creates the reaction products
G4DynamicParticleVector* KaonNucleonReaction();
// secondary pion absorption in parent nucleus
// if TRUE, then add excitation energy to the Nucleus
G4bool AbsorbPionByNucleus(G4DynamicParticle* aPion);
// secondary Sigma-Lambda conversion
// if conversion Done, then add excitation energy to the Nucleus
G4DynamicParticle *SigmaLambdaConversion(G4DynamicParticle* aSigma);
// instance variables ...
private:
// pointer to current stopped hadron
const G4DynamicParticle *stoppedHadron;
// pointer to current target nucleus
G4Nucleus* nucleus;
// some constant parameters
G4double pionAbsorptionRate;
// primary production rates ( for absorption on Carbon)
G4double rateLambdaZeroPiZero;
G4double rateSigmaMinusPiPlus;
G4double rateSigmaPlusPiMinus;
G4double rateSigmaZeroPiZero;
G4double rateLambdaZeroPiMinus;
G4double rateSigmaZeroPiMinus;
G4double rateSigmaMinusPiZero;
// Sigma Lambda Conversion rates
// for sigma- p -> lambda n
// sigma+ n -> lambda p
// sigma- n -> lambda
G4double sigmaPlusLambdaConversionRate;
G4double sigmaMinusLambdaConversionRate;
G4double sigmaZeroLambdaConversionRate;
};
#endif
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4MuMinusCaptureCascade.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
// G4MuMinusCaptureCascade physics process --------
// Vladimir Ivanchenko, April 2000
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4MuMinusCapturePrecompound.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
//-----------------------------------------------------------------------------
//
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4MuonMinusBoundDecay.hh 69573 2013-05-08 13:35:53Z gcosmo $
//
//-----------------------------------------------------------------------------
//
@@ -49,6 +49,10 @@
//-----------------------------------------------------------------------------
//
// Modifications:
// 23/04/2013 K.Genser Made GetMuonCaptureRate and
// GetMuonDecayRate public static
// 04/30/2013 K.Genser Added GetMuonZeff
//
//
//-----------------------------------------------------------------------------
@@ -77,12 +81,14 @@ public:
void ModelDescription(std::ostream& outFile) const;
static G4double GetMuonCaptureRate(G4int Z, G4int A);
static G4double GetMuonDecayRate(G4int Z);
static G4double GetMuonZeff(G4int Z);
private:
G4double GetMuonCaptureRate(G4int Z, G4int A);
G4double GetMuonDecayRate(G4int Z);
inline void AddNewParticle(G4DynamicParticle* dp, G4double time);
// hide assignment operator as private
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4MuonMinusCapture.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
//---------------------------------------------------------------------
//
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4MuonMinusCaptureAtRest.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
// G4MuonMinusCaptureAtRest physics process
// Larry Felawka (TRIUMF) and Art Olin (TRIUMF) April 1998
@@ -1,123 +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. *
// ********************************************************************
//
// G4NeutronCaptureAtRest physics process
// Larry Felawka (TRIUMF), April 1998
//---------------------------------------------------------------------
#ifndef G4NeutronCaptureAtRest_h
#define G4NeutronCaptureAtRest_h 1
// Class Description:
//
// Process for capture of neutrons at rest.
// To be used in your physics list in case you need this physics.
#include "globals.hh"
#include "Randomize.hh"
#include "G4VRestProcess.hh"
#include "G4VParticleChange.hh"
#include "G4ParticleDefinition.hh"
#include "G4GHEKinematicsVector.hh"
#include "G4HadronicProcessType.hh"
class G4NeutronCaptureAtRest : public G4VRestProcess
{
private:
// hide assignment operator as private
G4NeutronCaptureAtRest& operator=(const G4NeutronCaptureAtRest &right);
G4NeutronCaptureAtRest(const G4NeutronCaptureAtRest& );
public:
G4NeutronCaptureAtRest(const G4String& processName ="NeutronCaptureAtRest",
G4ProcessType aType = fHadronic );
~G4NeutronCaptureAtRest();
G4bool IsApplicable(const G4ParticleDefinition&);
void PreparePhysicsTable(const G4ParticleDefinition&);
// null physics table
void BuildPhysicsTable(const G4ParticleDefinition&);
G4double AtRestGetPhysicalInteractionLength(const G4Track&,
G4ForceCondition*);
// zero mean lifetime
G4double GetMeanLifeTime(const G4Track& ,
G4ForceCondition* ) {return 0.0;}
G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&);
// return number of secondaries produced
G4int GetNumberOfSecondaries();
// pointer to array containg kinematics of secondaries
G4GHEKinematicsVector* GetSecondaryKinematics();
private:
void GenerateSecondaries();
void Normal( G4float* );
void NeutronCapture( G4int* );
G4double AtomAs( G4float, G4float );
private:
// global time-of-flight of stopped hadron
G4float globalTime;
// atomic mass of target nucleus
G4float targetAtomicMass;
// charge of target nucleus
G4float targetCharge;
G4GHEKinematicsVector* pv;
G4GHEKinematicsVector* eve;
G4GHEKinematicsVector* gkin;
G4int ngkine;
G4int ntot;
G4GHEKinematicsVector result;
G4float massProton;
G4float massNeutron;
G4float massElectron;
G4float massDeuteron;
G4float massAlpha;
G4ParticleDefinition* pdefGamma;
G4ParticleDefinition* pdefNeutron;
};
#endif
@@ -1,108 +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. *
// ********************************************************************
//
// File name: G4PiMinusAbsorptionAtRest.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 9 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSABSORPTIONATREST_HH
#define G4PIMINUSABSORPTIONATREST_HH
// Class Description:
//
// Alternative Process for absorption of pi- at rest.
// To be used in your physics list in case you need this physics.
#include "globals.hh"
#include "G4VRestProcess.hh"
#include "G4ParticleTypes.hh"
#include "G4PiMinusStopMaterial.hh"
#include "G4PiMinusStopAbsorption.hh"
#include "G4StopDeexcitation.hh"
#include "G4StopDeexcitationAlgorithm.hh"
#include "G4HadronicProcessType.hh"
class G4DynamicParticle;
class G4PiMinusAbsorptionAtRest : public G4VRestProcess
{
private:
// Hide assignment operator as private
G4PiMinusAbsorptionAtRest& operator=(const G4PiMinusAbsorptionAtRest &right);
// Copy constructor
G4PiMinusAbsorptionAtRest(const G4PiMinusAbsorptionAtRest& );
public:
// Constructor
G4PiMinusAbsorptionAtRest(const G4String& processName ="PiMinusAbsorptionAtRest",
G4ProcessType aType = fHadronic );
// Destructor
~G4PiMinusAbsorptionAtRest();
G4bool IsApplicable(const G4ParticleDefinition& particle)
{ return ( particle == *(G4PionMinus::PionMinus()) ); }
void PreparePhysicsTable(const G4ParticleDefinition&);
void BuildPhysicsTable(const G4ParticleDefinition&);
G4VParticleChange* AtRestDoIt(const G4Track& aTrack, const G4Step& aStep);
void SetDeexcitationAlgorithm(G4int index);
protected:
// zero mean lifetime
G4double GetMeanLifeTime(const G4Track& aTrack,
G4ForceCondition* )
{
G4double result = 0;
if(aTrack.GetMaterial()->GetNumberOfElements() == 1)
if(aTrack.GetMaterial()->GetZ()<1.5) result = DBL_MAX;
return result;
}
private:
// G4PiMinusStopAbsorption* _stopAbsorption;
// G4StopDeexcitation* _stopDeexcitation;
G4int _indexDeexcitation;
G4PiMinusStopMaterial* LoadAlgorithm(int Z);
G4StopDeexcitationAlgorithm* LoadNucleusAlgorithm();
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopAbsorption.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 12 May 1998
//
// Modifications:
// 13 Sep 1998 - Changed DoAbsorption
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPABSORPTION_HH
#define G4PIMINUSSTOPABSORPTION_HH
#include "globals.hh"
#include "G4DynamicParticle.hh"
#include "G4DynamicParticleVector.hh"
#include "G4PiMinusStopMaterial.hh"
#include "G4ThreeVector.hh"
class G4PiMinusStopAbsorption
{
public:
// Constructor
G4PiMinusStopAbsorption(G4PiMinusStopMaterial* materialAlgo, const G4double Z, const G4double A);
// Destructor
~G4PiMinusStopAbsorption();
// Return final absorption products
G4DynamicParticleVector* DoAbsorption();
// Energy involved in the absorption process
G4double Energy();
// Return nucleus recoil momentum
G4ThreeVector RecoilMomentum();
// Number of protons in the absorption products
G4int NProtons();
// Number of neutrons in the absorption products
G4int NNeutrons();
void SetVerboseLevel(G4int level);
private:
// Hide assignment operator as private
G4PiMinusStopAbsorption& operator=(const G4PiMinusStopAbsorption &right);
// Copy constructor
G4PiMinusStopAbsorption(const G4PiMinusStopAbsorption& );
G4PiMinusStopMaterial* _materialAlgo; // owned pointer
G4DynamicParticleVector* _absorptionProducts;
G4double _nucleusA;
G4double _nucleusZ;
G4int _level;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopAl.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPAL_HH
#define G4PIMINUSSTOPAL_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopAl : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopAl& operator=(const G4PiMinusStopAl &right);
// Copy constructor
G4PiMinusStopAl(const G4PiMinusStopAl& );
public:
// Constructor
G4PiMinusStopAl();
// Destructor
virtual ~G4PiMinusStopAl();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[10];
static G4double eKin[11];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopC.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPC_HH
#define G4PIMINUSSTOPC_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopC : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopC& operator=(const G4PiMinusStopC &right);
// Copy constructor
G4PiMinusStopC(const G4PiMinusStopC& );
public:
// Constructor
G4PiMinusStopC();
// Destructor
virtual ~G4PiMinusStopC();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eKinData[21];
static G4double eKin[22];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopCo.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPCO_HH
#define G4PIMINUSSTOPCO_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopCo : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopCo& operator=(const G4PiMinusStopCo &right);
// Copy constructor
G4PiMinusStopCo(const G4PiMinusStopCo& );
public:
// Constructor
G4PiMinusStopCo();
// Destructor
virtual ~G4PiMinusStopCo();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[11];
static G4double eKin[12];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopCu.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPCU_HH
#define G4PIMINUSSTOPCU_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopCu : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopCu& operator=(const G4PiMinusStopCu &right);
// Copy constructor
G4PiMinusStopCu(const G4PiMinusStopCu& );
public:
// Constructor
G4PiMinusStopCu();
// Destructor
virtual ~G4PiMinusStopCu();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[10];
static G4double eKin[11];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopLi.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPLI_HH
#define G4PIMINUSSTOPLI_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopLi : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopLi& operator=(const G4PiMinusStopLi &right);
// Copy constructor
G4PiMinusStopLi(const G4PiMinusStopLi& );
public:
// Constructor
G4PiMinusStopLi();
// Destructor
virtual ~G4PiMinusStopLi();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[21];
static G4double eKin[22];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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$
//
// File name: G4PiMinusStopMaterial.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// Modifications:
// 13 Sep 1998 - MGP Modified P4Vector
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPMATERIAL_HH
#define G4PIMINUSSTOPMATERIAL_HH
#include "globals.hh"
#include "G4LorentzVector.hh"
//#include "G4String.hh"
#include "G4DistributionGenerator.hh"
#include "G4ParticleDefinition.hh"
class G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopMaterial& operator=(const G4PiMinusStopMaterial &right);
// Copy constructor
G4PiMinusStopMaterial(const G4PiMinusStopMaterial& );
public:
// Constructor
G4PiMinusStopMaterial();
// Destructor
virtual ~G4PiMinusStopMaterial();
// Definitions of absorption products
virtual std::vector<G4ParticleDefinition*>* DefinitionVector();
// 4-vectors of absorption products
virtual std::vector<G4LorentzVector*>* P4Vector(const G4double binding,
const G4double mass);
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons()=0;
protected:
std::vector<G4ParticleDefinition* >* _definitions;
std::vector<G4LorentzVector* >* _momenta;
G4DistributionGenerator* _distributionE;
G4DistributionGenerator* _distributionAngle;
G4double theR;
G4double GenerateAngle(G4double range);
G4LorentzVector MakeP4(G4double p, G4double theta,
G4double phi, G4double e);
G4double RecoilEnergy(const G4double mass);
private:
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopN.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPN_HH
#define G4PIMINUSSTOPN_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopN : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopN& operator=(const G4PiMinusStopN &right);
// Copy constructor
G4PiMinusStopN(const G4PiMinusStopN& );
public:
// Constructor
G4PiMinusStopN();
// Destructor
virtual ~G4PiMinusStopN();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[10];
static G4double eKin[11];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopO.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPO_HH
#define G4PIMINUSSTOPO_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopO : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopO& operator=(const G4PiMinusStopO &right);
// Copy constructor
G4PiMinusStopO(const G4PiMinusStopO& );
public:
// Constructor
G4PiMinusStopO();
// Destructor
virtual ~G4PiMinusStopO();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[10];
static G4double eKin[11];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopPb.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPPB_HH
#define G4PIMINUSSTOPPB_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopPb : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopPb& operator=(const G4PiMinusStopPb &right);
// Copy constructor
G4PiMinusStopPb(const G4PiMinusStopPb& );
public:
// Constructor
G4PiMinusStopPb();
// Destructor
virtual ~G4PiMinusStopPb();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[10];
static G4double eKin[11];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#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. *
// ********************************************************************
//
// File name: G4PiMinusStopTa.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4PIMINUSSTOPTA_HH
#define G4PIMINUSSTOPTA_HH
#include "G4PiMinusStopMaterial.hh"
#include "globals.hh"
#include "G4LorentzVector.hh"
class G4PiMinusStopTa : public G4PiMinusStopMaterial
{
private:
// Hide assignment operator as private
G4PiMinusStopTa& operator=(const G4PiMinusStopTa &right);
// Copy constructor
G4PiMinusStopTa(const G4PiMinusStopTa& );
public:
// Constructor
G4PiMinusStopTa();
// Destructor
virtual ~G4PiMinusStopTa();
// Number of final nucleons, out of generated absorption products
virtual G4double FinalNucleons();
private:
static G4int eKinEntries;
static G4int angleEntries;
static G4double npRatio;
static G4double nFinalNucleons;
static G4double eMaxTot;
static G4double eKinData[10];
static G4double eKin[11];
static G4double angleData[7];
static G4double angle[8];
G4double _clusterSize;
};
#endif
@@ -1,129 +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. *
// ********************************************************************
//
// G4PionMinusAbsorptionAtRest physics process
// Larry Felawka (TRIUMF), April 1998
//---------------------------------------------------------------------
#ifndef G4PionMinusAbsorptionAtRest_h
#define G4PionMinusAbsorptionAtRest_h 1
// Class Description:
//
// Process for pi- absorption at rest.
// To be used in your physics list in case you need this physics.
#include "globals.hh"
#include "Randomize.hh"
#include "G4VRestProcess.hh"
#include "G4VParticleChange.hh"
#include "G4ParticleDefinition.hh"
#include "G4GHEKinematicsVector.hh"
#include "G4HadronicProcessType.hh"
class G4PionMinusAbsorptionAtRest : public G4VRestProcess
{
private:
// hide assignment operator as private
G4PionMinusAbsorptionAtRest& operator=(const G4PionMinusAbsorptionAtRest &right);
G4PionMinusAbsorptionAtRest(const G4PionMinusAbsorptionAtRest& );
public:
G4PionMinusAbsorptionAtRest(const G4String& processName ="PionMinusAbsorptionAtRest",
G4ProcessType aType = fHadronic);
~G4PionMinusAbsorptionAtRest();
G4bool IsApplicable(const G4ParticleDefinition&);
void PreparePhysicsTable(const G4ParticleDefinition&);
// null physics table
void BuildPhysicsTable(const G4ParticleDefinition&);
G4double AtRestGetPhysicalInteractionLength(const G4Track&,
G4ForceCondition*);
// zero mean lifetime
G4double GetMeanLifeTime(const G4Track& ,
G4ForceCondition* ) {return 0.0;}
G4VParticleChange* AtRestDoIt(const G4Track&, const G4Step&);
// return number of secondaries produced
G4int GetNumberOfSecondaries();
// pointer to array containg kinematics of secondaries
G4GHEKinematicsVector* GetSecondaryKinematics();
private:
void GenerateSecondaries();
void PionMinusAbsorption( G4int* );
void Poisso( G4float, G4int* );
void Normal( G4float* );
G4double ExNu( G4float );
G4int NFac( G4int );
private:
// global time-of-flight of stopped PionMinus
G4float globalTime;
// atomic mass of target nucleus
G4float targetAtomicMass;
// charge of target nucleus
G4float targetCharge;
G4GHEKinematicsVector* pv;
G4GHEKinematicsVector* eve;
G4GHEKinematicsVector* gkin;
G4float evapEnergy1;
G4float evapEnergy3;
G4int ngkine;
G4int ntot;
G4GHEKinematicsVector result;
G4float massPionMinus;
G4ParticleDefinition* pdefGamma;
G4ParticleDefinition* pdefPionZero;
G4ParticleDefinition* pdefPionMinus;
G4ParticleDefinition* pdefProton;
G4ParticleDefinition* pdefNeutron;
G4ParticleDefinition* pdefDeuteron;
G4ParticleDefinition* pdefTriton;
G4ParticleDefinition* pdefAlpha;
};
#endif
@@ -1,91 +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. *
// ********************************************************************
//
// File name: G4StopDeexcitation.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 12 May 1998
//
// -------------------------------------------------------------------
#ifndef G4STOPDEEXCITATION_HH
#define G4STOPDEEXCITATION_HH
#include "globals.hh"
#include "G4ReactionProduct.hh"
#include "G4ReactionProductVector.hh"
#include "G4ThreeVector.hh"
#include "G4StopDeexcitationAlgorithm.hh"
class G4StopDeexcitation
{
public:
// Constructor
G4StopDeexcitation(G4StopDeexcitationAlgorithm* algorithm);
// Destructor
~G4StopDeexcitation();
// Return final absorption products
G4ReactionProductVector* DoBreakUp(G4double A, G4double Z,
G4double excitation, const G4ThreeVector& p) const;
private:
// Hide assignment operator as private
G4StopDeexcitation& operator=(const G4StopDeexcitation &right);
// Copy constructor
G4StopDeexcitation(const G4StopDeexcitation& );
G4StopDeexcitationAlgorithm* _algorithm; // owned pointer
};
#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. *
// ********************************************************************
//
// File name: G4StopDeexcitationAlgorithm.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4STOPDEEXCITATIONALGORITHM_HH
#define G4STOPDEEXCITATIONALGORITHM_HH
#include "globals.hh"
#include "G4ReactionProduct.hh"
#include "G4ReactionProductVector.hh"
#include "G4ThreeVector.hh"
#include "G4HadronicDeprecate.hh"
#include "G4ios.hh"
class G4StopDeexcitationAlgorithm
{
private:
// Hide assignment operator as private
G4StopDeexcitationAlgorithm& operator=(const G4StopDeexcitationAlgorithm &right);
// Copy constructor
G4StopDeexcitationAlgorithm(const G4StopDeexcitationAlgorithm& );
public:
// Constructor
G4StopDeexcitationAlgorithm() {
G4HadronicDeprecate("G4StopDeexcitationAlgorithm");
}
// Destructor
virtual ~G4StopDeexcitationAlgorithm() {};
// Products
virtual G4ReactionProductVector* BreakUp(G4double A, G4double Z,
G4double excitation, const G4ThreeVector& p) =0;
protected:
private:
};
#endif
@@ -1,76 +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. *
// ********************************************************************
//
// File name: G4StopDummyDeexcitation.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4STOPDUMMYDEEXCITATION_HH
#define G4STOPDUMMYDEEXCITATION_HH
#include "G4StopDeexcitationAlgorithm.hh"
#include "globals.hh"
#include "G4ReactionProduct.hh"
#include "G4ReactionProductVector.hh"
#include "G4ThreeVector.hh"
class G4StopDummyDeexcitation: public G4StopDeexcitationAlgorithm
{
private:
// Hide assignment operator as private
G4StopDummyDeexcitation& operator=(const G4StopDummyDeexcitation &right);
// Copy constructor
G4StopDummyDeexcitation(const G4StopDummyDeexcitation& );
public:
// Constructor
G4StopDummyDeexcitation();
// Destructor
virtual ~G4StopDummyDeexcitation();
// Products
virtual G4ReactionProductVector* BreakUp(G4double A, G4double Z,
G4double excitation, const G4ThreeVector& p);
protected:
private:
G4ReactionProductVector* _products;
};
#endif
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id$
// $Id: G4StopElementSelector.hh 66367 2012-12-18 09:18:08Z gcosmo $
//
// Author: V.Ivanchenko (Vladimir.Ivantchenko@cern.ch)
//
@@ -1,73 +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. *
// ********************************************************************
//
// File name: G4StopTheoDeexcitation.hh
//
// Author: Maria Grazia Pia (pia@genova.infn.it)
//
// Creation date: 18 May 1998
//
// -------------------------------------------------------------------
#ifndef G4STOPTHEODEEXCITATION_HH
#define G4STOPTHEODEEXCITATION_HH
#include "G4StopDeexcitationAlgorithm.hh"
#include "globals.hh"
#include "G4DynamicParticle.hh"
#include "G4DynamicParticleVector.hh"
#include "G4ThreeVector.hh"
class G4StopTheoDeexcitation: public G4StopDeexcitationAlgorithm
{
private:
// Hide assignment operator as private
G4StopTheoDeexcitation& operator=(const G4StopTheoDeexcitation &right);
// Copy constructor
G4StopTheoDeexcitation(const G4StopTheoDeexcitation& );
public:
// Constructor
G4StopTheoDeexcitation();
// Destructor
virtual ~G4StopTheoDeexcitation();
// Products
virtual G4ReactionProductVector* BreakUp(G4double A, G4double Z,
G4double excitation, const G4ThreeVector& p);
protected:
private:
};
#endif