Import Geant4 10.4.0 source tree

This commit is contained in:
Gabriele Cosmo
2017-12-08 12:52:30 +01:00
parent 98e455a940
commit fc6af9e721
2166 changed files with 276760 additions and 100873 deletions
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4DecayTable.hh 92057 2015-08-14 13:34:55Z gcosmo $
// $Id: G4DecayTable.hh 105720 2017-08-16 12:38:10Z gcosmo $
//
//
// ------------------------------------------------------------
@@ -93,7 +93,7 @@ class G4DecayTable
private:
G4ParticleDefinition *parent;
G4VDecayChannelVector *channels;
G4VDecayChannelVector *channels;
};
inline
@@ -112,7 +112,7 @@ inline
inline
G4VDecayChannel* G4DecayTable::GetDecayChannel(G4int index) const
{
G4VDecayChannel* selectedChannel = 0;
G4VDecayChannel* selectedChannel = nullptr;
if ( (index>=0) && (index<G4int(channels->size())) ){
selectedChannel = (*channels)[index];
}
@@ -28,10 +28,11 @@
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
// GEANT 4 class header file
//
// History: first implementation,
// History: first implementation,
// July 2016, K. Lynch
// June 2017, K.L. Genser added baseion, lifetimes and access functions
#ifndef G4MuonicAtom_h
#define G4MuonicAtom_h 1
@@ -40,21 +41,83 @@
class G4MuonicAtom : public G4Ions
{
public:
G4MuonicAtom(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifetime,
G4DecayTable *decaytable, G4bool shortlived,
const G4String& subType =""
);
protected:
G4MuonicAtom(){};
public:
G4MuonicAtom(
const G4String& aName, G4double mass,
G4double width, G4double charge,
G4int iSpin, G4int iParity,
G4int iConjugation, G4int iIsospin,
G4int iIsospin3, G4int gParity,
const G4String& pType, G4int lepton,
G4int baryon, G4int encoding,
G4bool stable, G4double lifeTime,
G4DecayTable *decaytable, G4bool shortlived,
const G4String& subType, G4Ions const* baseion,
G4int anti_encoding =0,
G4double excitation = 0.0,
G4int isomer = 0,
G4double DIOLifeTime = -1.0,
G4double NCLifeTime = -1.0
);
virtual ~G4MuonicAtom();
G4MuonicAtom* MuonicAtomDefinition();
G4MuonicAtom* MuonicAtom();
G4Ions const* GetBaseIon() const;
G4double GetDIOLifeTime() const;
void SetDIOLifeTime(G4double lt);
G4double GetNCLifeTime() const;
void SetNCLifeTime(G4double lt);
private:
G4Ions const* baseIon;
G4double fDIOLifeTime;
G4double fNCLifeTime;
};
inline
G4MuonicAtom* G4MuonicAtom::MuonicAtomDefinition()
{
return this;
}
inline
G4MuonicAtom* G4MuonicAtom::MuonicAtom()
{
return this;
}
inline
G4Ions const* G4MuonicAtom::GetBaseIon() const
{
return baseIon;
}
inline
G4double G4MuonicAtom::GetDIOLifeTime() const
{
return fDIOLifeTime;
}
inline
void G4MuonicAtom::SetDIOLifeTime(G4double lt)
{
fDIOLifeTime = lt;
}
inline
G4double G4MuonicAtom::GetNCLifeTime() const
{
return fNCLifeTime;
}
inline
void G4MuonicAtom::SetNCLifeTime(G4double lt)
{
fNCLifeTime = lt;
}
#endif
@@ -1,39 +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: G4MuonicAtomDIODecayChannel.hh 96314 2016-04-06 07:21:51Z gcosmo $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: first implementation, 17 October 16 K.Lynch
// ------------------------------------------------------------
#ifndef G4MuonicAtomDIODecayChannel_h
#define G4MuonicAtomDIODecayChannel_h 1
#endif
@@ -30,7 +30,11 @@
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: first implementation, 1 July 16 K.Lynch
// History:
// 20160701 K.Lynch first implementation
// 20170612 K L Genser major revision; also copied
// functions from G4MuonMinusBoundDecay &
// old G4MuMinusCaptureCascade; used constexpr
// ------------------------------------------------------------
#ifndef G4MuonicAtomHelper_h
#define G4MuonicAtomHelper_h 1
@@ -41,6 +45,20 @@
class G4MuonicAtomHelper {
public:
static G4MuonicAtom* ConstructMuonicAtom(G4String name, G4int encoding, G4Ions const* baseion);
static G4double GetMuonCaptureRate(G4int Z, G4int A);
static G4double GetMuonDecayRate(G4int Z);
static G4double GetMuonZeff(G4int Z);
static G4double GetKShellEnergy(G4double A);
static G4double GetLinApprox(G4int N,
const G4double* const X,
const G4double* const Y,
G4double Xuser);
};
#endif
@@ -1,39 +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: G4MuonicAtomNuclearCaptureChannel.hh 96314 2016-04-06 07:21:51Z gcosmo $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
//
// History: first implementation, 17 October 16 K.Lynch
// ------------------------------------------------------------
#ifndef G4MuonicAtomNuclearCaptureChannel_h
#define G4MuonicAtomNuclearCaptureChannel_h 1
#endif
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.hh 103108 2017-03-16 13:00:35Z gcosmo $
// $Id: G4ParticleDefinition.hh 106143 2017-09-14 06:34:42Z gcosmo $
//
//
// ------------------------------------------------------------
@@ -49,6 +49,7 @@
// restructuring for Cuts per Region - H.Kurashige - 11 March 2003
// added MagneticMoment - H.Kurashige - March 2007
// modified for thread-safety for MT - G.Cosmo, A.Dotti - January 2013
// added support for MuonicAtom - K.L.Genser - September 2017
// ------------------------------------------------------------
#ifndef G4ParticleDefinition_h
@@ -200,6 +201,10 @@ class G4ParticleDefinition
// true only if the particle is G4Ions
// (it means that theProcessManager is same as one for G4GenricIon)
G4bool IsMuonicAtom() const;
// true only if the particle is a G4MuonicAtom
// (it means that theProcessManager is same as the one for G4GenricMuonicAtom)
G4int operator==(const G4ParticleDefinition &right) const;
G4int operator!=(const G4ParticleDefinition &right) const;
@@ -366,6 +371,7 @@ class G4ParticleDefinition
protected:
G4bool isGeneralIon;
G4bool isMuonicAtom;
public:
void SetParticleDefinitionID(G4int id=-1);
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.icc 99391 2016-09-20 13:32:30Z gcosmo $
// $Id: G4ParticleDefinition.icc 106143 2017-09-14 06:34:42Z gcosmo $
//
inline
@@ -204,6 +204,12 @@ inline
return isGeneralIon;
}
inline
G4bool G4ParticleDefinition::IsMuonicAtom() const
{
return isMuonicAtom;
}
inline
G4int G4ParticleDefinition::GetParticleDefinitionID() const
{
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4ParticleTable.hh 94421 2015-11-16 08:22:56Z gcosmo $
// $Id: G4ParticleTable.hh 106143 2017-09-14 06:34:42Z gcosmo $
//
//
// ------------------------------------------------------------
@@ -45,6 +45,7 @@
// 28 ct., 99 H.Kurashige
// modified implementation of Remove 21 Mar.,08 H.Kurashige
// remove G4ShortLivedTable 25 July, 13 H.Kurashige
// added support for MuonicAtom September, 17 K.L.Genser
//
#ifndef G4ParticleTable_h
@@ -219,12 +220,15 @@ class G4ParticleTable
G4bool readyToUse;
G4ParticleDefinition* genericIon;
G4ParticleDefinition* genericMuonicAtom;
public:
void SetReadiness(G4bool val=true);
G4bool GetReadiness() const;
G4ParticleDefinition* GetGenericIon() const;
void SetGenericIon(G4ParticleDefinition*);
G4ParticleDefinition* GetGenericMuonicAtom() const;
void SetGenericMuonicAtom(G4ParticleDefinition*);
private:
void CheckReadiness() const;
@@ -24,12 +24,13 @@
// ********************************************************************
//
//
// $Id: G4ParticleTable.icc 73711 2013-09-09 09:57:29Z gcosmo $
// $Id: G4ParticleTable.icc 106143 2017-09-14 06:34:42Z gcosmo $
//
//
// ------------------------------------------------------------
// implement new version for using STL map instaed of RW PtrHashedDictionary
// 28 ct., 99 H.Kurashige
// added support for MuonicAtom Sep, 17 K.L.Genser
inline
@@ -100,3 +101,15 @@ inline
{
genericIon = gi;
}
inline
G4ParticleDefinition* G4ParticleTable::GetGenericMuonicAtom() const
{
return genericMuonicAtom;
}
inline
void G4ParticleTable::SetGenericMuonicAtom(G4ParticleDefinition* gma)
{
genericMuonicAtom = gma;
}
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4VDecayChannel.hh 95906 2016-03-02 10:56:50Z gcosmo $
// $Id: G4VDecayChannel.hh 105720 2017-08-16 12:38:10Z gcosmo $
//
//
// ------------------------------------------------------------
@@ -290,9 +290,6 @@ inline
inline
const G4String& G4VDecayChannel::GetKinematicsName() const { return kinematics_name; }
inline
void G4VDecayChannel::SetBR(G4double value){ rbranch = value; }
inline
G4double G4VDecayChannel::GetBR() const { return rbranch; }