Import Geant4 11.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2023-12-08 10:43:34 +01:00
parent dd1f179cda
commit 860a2b92bf
3962 changed files with 139318 additions and 164259 deletions
@@ -0,0 +1,160 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// V. Ivanchenko September 2023
//
// G4CrossSectionHP is a generic class implementing
// cross sections for neutrons, protons and light ions
// It is an alternative to code developed by J.P. Wellisch & T.Koi
//
#ifndef G4CrossSectionHP_h
#define G4CrossSectionHP_h 1
#include "G4VCrossSectionDataSet.hh"
#include "globals.hh"
#include "G4ElementData.hh"
#include "G4PhysicsVector.hh"
#include "G4LorentzVector.hh"
#include "G4ThreeVector.hh"
#include <vector>
class G4DynamicParticle;
class G4ParticleDefinition;
class G4ParticleHPManager;
class G4Element;
class G4Material;
class G4CrossSectionHP : public G4VCrossSectionDataSet
{
public:
explicit G4CrossSectionHP(const G4ParticleDefinition*,
const G4String& nameData,
const G4String& nameDir, G4double emaxHP,
G4int zmin, G4int zmax);
~G4CrossSectionHP() override = default;
G4bool IsIsoApplicable(const G4DynamicParticle*, G4int Z, G4int A,
const G4Element*, const G4Material*) override;
G4double GetIsoCrossSection(const G4DynamicParticle*, G4int Z, G4int A,
const G4Isotope*, const G4Element*,
const G4Material*) override;
G4double ComputeIsoCrossSection(G4double kinEnergy, G4double loge,
const G4ParticleDefinition*,
G4int Z, G4int A,
const G4Isotope* iso,
const G4Element* elm,
const G4Material* mat) override;
const G4Isotope* SelectIsotope(const G4Element*, G4double kinEnergy,
G4double logE) override;
void BuildPhysicsTable(const G4ParticleDefinition&) override;
void DumpPhysicsTable(const G4ParticleDefinition&) override;
G4CrossSectionHP & operator=(const G4CrossSectionHP &right) = delete;
G4CrossSectionHP(const G4CrossSectionHP&) = delete;
protected:
inline G4double GetMaxHPEnergy() const;
private:
void Initialise(const G4int Z);
void InitialiseOnFly(const G4int Z);
void PrepareCache(const G4Material*);
G4double IsoCrossSection(const G4double kinE, const G4double loge,
const G4int Z, const G4int A,
const G4double temperature);
inline G4double GetCrossSection(const G4int Z, const G4int A);
inline G4bool CheckCache(const G4int Z);
const G4ParticleDefinition* fParticle;
G4ParticleHPManager* fManagerHP;
const G4double emax;
const G4double emaxT;
const G4double elimit;
const G4double logElimit;
G4LorentzVector fLV;
G4ThreeVector fBoost;
const G4int minZ;
const G4int maxZ;
std::size_t index{0};
G4bool fPrinted{false};
// cache
const G4Material* fCurrentMat{nullptr};
std::vector<std::pair<G4int, G4int> > fZA;
std::vector<G4double> fIsoXS;
std::vector<G4double> fTemp;
const G4String fDataName;
const G4String fDataDirectory;
G4ElementData* fData{nullptr};
};
inline G4double
G4CrossSectionHP::GetCrossSection(const G4int Z, const G4int A)
{
G4double res = 0.0;
for (std::size_t i=0; i<fZA.size(); ++i) {
if (Z == fZA[i].first && A == fZA[i].second) {
res = fIsoXS[i];
break;
}
}
return res;
}
inline G4bool G4CrossSectionHP::CheckCache(const G4int Z)
{
G4bool res = false;
for (auto const & p : fZA) {
if (Z == p.first) {
res = true;
break;
}
}
return res;
}
inline G4double G4CrossSectionHP::GetMaxHPEnergy() const
{
return emax;
}
#endif
@@ -23,10 +23,61 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP2NDInelasticFS_h
#define G4NeutronHP2NDInelasticFS_h
//
//
// Geant4 header : G4NeutronFissionVI
// Created: 03 October 2023
// Author V.Ivanchenko
//
// Modified:
//
// Class Description
// Sampling of neutron induced fission using de-excitation module
// Class Description - End
//
#include "G4ParticleHP2NDInelasticFS.hh"
using G4NeutronHP2NDInelasticFS = G4ParticleHP2NDInelasticFS;
#ifndef G4NeutronFissionVI_h
#define G4NeutronFissionVI_h 1
#include "globals.hh"
#include "G4HadronicInteraction.hh"
#include "G4HadProjectile.hh"
#include "G4Nucleus.hh"
#include "G4LorentzVector.hh"
class G4VEvaporationChannel;
class G4IonTable;
class G4ExcitationHandler;
class G4ParticleHPManager;
class G4NeutronFissionVI : public G4HadronicInteraction
{
public:
G4NeutronFissionVI();
~G4NeutronFissionVI() override;
G4HadFinalState* ApplyYourself(const G4HadProjectile & aTrack,
G4Nucleus & targetNucleus) override;
void InitialiseModel() override;
G4NeutronFissionVI & operator=(const G4NeutronFissionVI &right) = delete;
G4NeutronFissionVI(const G4NeutronFissionVI&) = delete;
private:
G4int secID{-1}; // creator model ID for secondaries produced by this model
G4ParticleHPManager* fManagerHP;
G4ExcitationHandler* fHandler{nullptr};
G4VEvaporationChannel* fFission{nullptr};
G4IonTable* theTableOfIons;
G4double minExcitation;
G4double emaxT;
G4LorentzVector lab4mom;
G4bool fLocalHandler{false};
};
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP2NInelasticFS_h
#define G4NeutronHP2NInelasticFS_h
#include "G4ParticleHP2NInelasticFS.hh"
using G4NeutronHP2NInelasticFS = G4ParticleHP2NInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP2NPInelasticFS_h
#define G4NeutronHP2NPInelasticFS_h
#include "G4ParticleHP2NPInelasticFS.hh"
using G4NeutronHP2NPInelasticFS = G4ParticleHP2NPInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP2PInelasticFS_h
#define G4NeutronHP2PInelasticFS_h
#include "G4ParticleHP2PInelasticFS.hh"
using G4NeutronHP2PInelasticFS = G4ParticleHP2PInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP3AInelasticFS_h
#define G4NeutronHP3AInelasticFS_h
#include "G4ParticleHP3AInelasticFS.hh"
using G4NeutronHP3AInelasticFS = G4ParticleHP3AInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP3NAInelasticFS_h
#define G4NeutronHP3NAInelasticFS_h
#include "G4ParticleHP3NAInelasticFS.hh"
using G4NeutronHP3NAInelasticFS = G4ParticleHP3NAInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP3NInelasticFS_h
#define G4NeutronHP3NInelasticFS_h
#include "G4ParticleHP3NInelasticFS.hh"
using G4NeutronHP3NInelasticFS = G4ParticleHP3NInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP3NPInelasticFS_h
#define G4NeutronHP3NPInelasticFS_h
#include "G4ParticleHP3NPInelasticFS.hh"
using G4NeutronHP3NPInelasticFS = G4ParticleHP3NPInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP4NInelasticFS_h
#define G4NeutronHP4NInelasticFS_h
#include "G4ParticleHP4NInelasticFS.hh"
using G4NeutronHP4NInelasticFS = G4ParticleHP4NInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPAInelasticFS_h
#define G4NeutronHPAInelasticFS_h
#include "G4ParticleHPAInelasticFS.hh"
using G4NeutronHPAInelasticFS = G4ParticleHPAInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPAngular_h
#define G4NeutronHPAngular_h
#include "G4ParticleHPAngular.hh"
using G4NeutronHPAngular = G4ParticleHPAngular;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPAngularP_h
#define G4NeutronHPAngularP_h
#include "G4ParticleHPAngularP.hh"
using G4NeutronHPAngularP = G4ParticleHPAngularP;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPArbitaryTab_h
#define G4NeutronHPArbitaryTab_h
#include "G4ParticleHPArbitaryTab.hh"
using G4NeutronHPArbitaryTab = G4ParticleHPArbitaryTab;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPBGGNucleonInelasticXS_h
#define G4NeutronHPBGGNucleonInelasticXS_h
#include "G4ParticleHPBGGNucleonInelasticXS.hh"
using G4NeutronHPBGGNucleonInelasticXS = G4ParticleHPBGGNucleonInelasticXS;
#endif
@@ -23,10 +23,49 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPCapture_h
#define G4NeutronHPCapture_h
// Hadronic Process: Very Low Energy Neutron X-Sections
// original by H.P. Wellisch, TRIUMF, 14-Feb-97
// Builds and has the Cross-section data for one material.
#include "G4ParticleHPCapture.hh"
using G4NeutronHPCapture = G4ParticleHPCapture;
// Class Description
// Final state production model for a high precision (based on evaluated data
// libraries) description of neutron capture below 20 MeV;
// To be used in your physics list in case you need this physics.
// In this case you want to register an object of this class with
// the corresponding process.
// Class Description - End
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko July-2023 converted back
//
#ifndef G4NeutronHPCapture_h
#define G4NeutronHPCapture_h 1
#include "G4HadronicInteraction.hh"
#include "G4ParticleHPChannel.hh"
#include "globals.hh"
class G4NeutronHPCapture : public G4HadronicInteraction
{
public:
G4NeutronHPCapture();
~G4NeutronHPCapture() override;
G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack,
G4Nucleus& aTargetNucleus) override;
const std::pair<G4double, G4double> GetFatalEnergyCheckLevels() const override;
G4int GetVerboseLevel() const;
void SetVerboseLevel(G4int);
void BuildPhysicsTable(const G4ParticleDefinition&) override;
void ModelDescription(std::ostream& outFile) const override;
private:
std::vector<G4ParticleHPChannel*>* theCapture{nullptr};
G4String dirName;
G4int numEle{0};
G4HadFinalState theResult;
};
#endif
@@ -23,10 +23,68 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
// 080417 Add IsZAApplicable method (return false) by T. Koi
// 080428 Add bool onFlightDB by T. Koi
// 091118 Add Ignore and Enable On Flight Doppler Broadening methods by T. Koi
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko July-2023 converted back
//
#ifndef G4NeutronHPCaptureData_h
#define G4NeutronHPCaptureData_h
#define G4NeutronHPCaptureData_h 1
#include "G4ParticleHPCaptureData.hh"
using G4NeutronHPCaptureData = G4ParticleHPCaptureData;
// Class Description
// Cross-section data set for a high precision (based on evaluated data
// libraries) description of neutron capture below 20 MeV;
// To be used in your physics list in case you need this physics.
// In this case you want to register an object of this class with
// the corresponding process.
// Class Description - End
#include "G4DynamicParticle.hh"
#include "G4VCrossSectionDataSet.hh"
class G4ParticleHPManager;
class G4ParticleDefinition;
class G4PhysicsTable;
class G4Element;
class G4Material;
class G4NeutronHPCaptureData : public G4VCrossSectionDataSet
{
public:
G4NeutronHPCaptureData();
~G4NeutronHPCaptureData() override;
G4bool IsIsoApplicable(const G4DynamicParticle*, G4int Z, G4int A,
const G4Element*, const G4Material*) override;
G4double GetIsoCrossSection(const G4DynamicParticle*, G4int Z, G4int A,
const G4Isotope*, const G4Element*,
const G4Material*) override;
G4double GetCrossSection(const G4DynamicParticle*, const G4Element*, G4double aT);
void BuildPhysicsTable(const G4ParticleDefinition&) override;
void DumpPhysicsTable(const G4ParticleDefinition&) override;
void CrossSectionDescription(std::ostream&) const override;
private:
static G4PhysicsTable* theCrossSections;
G4ParticleHPManager* fManager;
G4double emax;
G4double ke_cache{0.0};
G4double xs_cache{0.0};
const G4Element* element_cache{nullptr};
const G4Material* material_cache{nullptr};
G4bool isFirst{false};
static G4bool fLock;
};
#endif
@@ -23,10 +23,48 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko July-2023 converted back
//
#ifndef G4NeutronHPCaptureFS_h
#define G4NeutronHPCaptureFS_h
#define G4NeutronHPCaptureFS_h 1
#include "G4ParticleHPCaptureFS.hh"
using G4NeutronHPCaptureFS = G4ParticleHPCaptureFS;
#include "G4HadFinalState.hh"
#include "G4HadProjectile.hh"
#include "G4ParticleHPEnAngCorrelation.hh"
#include "G4ParticleHPFinalState.hh"
#include "G4ParticleHPNames.hh"
#include "G4ParticleHPPhotonDist.hh"
#include "G4ReactionProductVector.hh"
#include "globals.hh"
class G4NeutronHPCaptureFS : public G4ParticleHPFinalState
{
public:
G4NeutronHPCaptureFS();
~G4NeutronHPCaptureFS() override = default;
void Init(G4double A, G4double Z, G4int M, G4String& dirName,
G4String& aFSType, G4ParticleDefinition*) override;
G4HadFinalState* ApplyYourself(const G4HadProjectile& theTrack) override;
G4ParticleHPFinalState* New() override
{
auto theNew = new G4NeutronHPCaptureFS;
return theNew;
}
G4NeutronHPCaptureFS(G4NeutronHPCaptureFS&) = delete;
G4NeutronHPCaptureFS& operator=
(const G4NeutronHPCaptureFS &right) = delete;
private:
G4double targetMass;
G4bool hasExactMF6;
G4ParticleHPPhotonDist theFinalStatePhotons;
G4ParticleHPEnAngCorrelation theMF6FinalState;
G4ParticleHPNames theNames;
};
#endif
@@ -23,10 +23,35 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPEnAngCorrelation_h
#define G4NeutronHPEnAngCorrelation_h
// V. Ivanchenko 23 September 2023
//
// Cross-section data set for a high precision (based on evaluated data
// libraries) description of neutron radiative capture below 20 MeV.
//
#include "G4ParticleHPEnAngCorrelation.hh"
using G4NeutronHPEnAngCorrelation = G4ParticleHPEnAngCorrelation;
#ifndef G4NeutronHPCaptureXS_h
#define G4NeutronHPCaptureXS_h 1
#include "G4CrossSectionHP.hh"
#include <fstream>
class G4NeutronHPCaptureXS final : public G4CrossSectionHP
{
public:
G4NeutronHPCaptureXS();
~G4NeutronHPCaptureXS() override = default;
void CrossSectionDescription(std::ostream&) const final;
G4bool IsElementApplicable(const G4DynamicParticle*,
G4int Z, const G4Material*) final;
G4double GetElementCrossSection(const G4DynamicParticle*,
G4int Z, const G4Material*) final;
G4NeutronHPCaptureXS & operator=(const G4NeutronHPCaptureXS &right) = delete;
G4NeutronHPCaptureXS(const G4NeutronHPCaptureXS&) = delete;
};
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPChannel_h
#define G4NeutronHPChannel_h
#include "G4ParticleHPChannel.hh"
using G4NeutronHPChannel = G4ParticleHPChannel;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPContAngularPar_h
#define G4NeutronHPContAngularPar_h
#include "G4ParticleHPContAngularPar.hh"
using G4NeutronHPContAngularPar = G4ParticleHPContAngularPar;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPContEnergyAngular_h
#define G4NeutronHPContEnergyAngular_h
#include "G4ParticleHPContEnergyAngular.hh"
using G4NeutronHPContEnergyAngular = G4ParticleHPContEnergyAngular;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPD2AInelasticFS_h
#define G4NeutronHPD2AInelasticFS_h
#include "G4ParticleHPD2AInelasticFS.hh"
using G4NeutronHPD2AInelasticFS = G4ParticleHPD2AInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPDAInelasticFS_h
#define G4NeutronHPDAInelasticFS_h
#include "G4ParticleHPDAInelasticFS.hh"
using G4NeutronHPDAInelasticFS = G4ParticleHPDAInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPDInelasticFS_h
#define G4NeutronHPDInelasticFS_h
#include "G4ParticleHPDInelasticFS.hh"
using G4NeutronHPDInelasticFS = G4ParticleHPDInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPData_h
#define G4NeutronHPData_h
#include "G4ParticleHPData.hh"
using G4NeutronHPData = G4ParticleHPData;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPDataPoint_h
#define G4NeutronHPDataPoint_h
#include "G4ParticleHPDataPoint.hh"
using G4NeutronHPDataPoint = G4ParticleHPDataPoint;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPDataUsed_h
#define G4NeutronHPDataUsed_h
#include "G4ParticleHPDataUsed.hh"
using G4NeutronHPDataUsed = G4ParticleHPDataUsed;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPDeExGammas_h
#define G4NeutronHPDeExGammas_h
#include "G4ParticleHPDeExGammas.hh"
using G4NeutronHPDeExGammas = G4ParticleHPDeExGammas;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPDiscreteTwoBody_h
#define G4NeutronHPDiscreteTwoBody_h
#include "G4ParticleHPDiscreteTwoBody.hh"
using G4NeutronHPDiscreteTwoBody = G4ParticleHPDiscreteTwoBody;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPElasticFS_h
#define G4NeutronHPElasticFS_h
#include "G4ParticleHPElasticFS.hh"
using G4NeutronHPElasticFS = G4ParticleHPElasticFS;
#endif
@@ -0,0 +1,87 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Geant4 header : G4NeutronHPElasticVI
//
// Created: 15 October 2023
// Author V.Ivanchenko
//
// Class Description:
// Neutron HP elastic scattering model below 20 MeV
//
#ifndef G4NeutronHPElasticVI_h
#define G4NeutronHPElasticVI_h 1
// Class Description
// Final state production model for a high precision (based on evaluated data
// libraries) description of neutron elastic scattering below 20 MeV;
// To be used in your physics list in case you need this physics.
// In this case you want to register an object of this class with
// the corresponding process.
// Class Description - End
#include "G4HadronicInteraction.hh"
#include "G4ParticleDefinition.hh"
#include "globals.hh"
class G4ParticleHPChannel;
class G4ParticleHPManager;
class G4NeutronHPElasticVI : public G4HadronicInteraction
{
public:
G4NeutronHPElasticVI();
~G4NeutronHPElasticVI() override;
G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack,
G4Nucleus& aTargetNucleus) override;
void BuildPhysicsTable(const G4ParticleDefinition&) override;
const std::pair<G4double, G4double> GetFatalEnergyCheckLevels() const override;
void ModelDescription(std::ostream& outFile) const override;
G4NeutronHPElasticVI(G4NeutronHPElasticVI &) = delete;
G4NeutronHPElasticVI & operator=
(const G4NeutronHPElasticVI &right) = delete;
private:
void InitialiseOnFly();
void Initialise();
G4ParticleHPManager* fManagerHP;
G4bool fInitializer{false};
static G4bool fLock;
static constexpr G4int ZMAXHPE{101}; // 101 because Z range is 1-100
static G4ParticleHPChannel* theElastic[ZMAXHPE];
};
#endif
@@ -23,10 +23,31 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP2N2AInelasticFS_h
#define G4NeutronHP2N2AInelasticFS_h
// V. Ivanchenko 23 September 2023
//
// Cross-section data set for a high precision (based on evaluated data
// libraries) description of neutron elastic process below 20 MeV.
// Only nuclear scattering is considered, thermal scattering on molecules
// is not considered in this cross section.
//
#include "G4ParticleHP2N2AInelasticFS.hh"
using G4NeutronHP2N2AInelasticFS = G4ParticleHP2N2AInelasticFS;
#ifndef G4NeutronHPElasticXS_h
#define G4NeutronHPElasticXS_h 1
#include "G4CrossSectionHP.hh"
#include <fstream>
class G4NeutronHPElasticXS final : public G4CrossSectionHP
{
public:
G4NeutronHPElasticXS();
~G4NeutronHPElasticXS() override = default;
void CrossSectionDescription(std::ostream&) const final;
G4NeutronHPElasticXS & operator=(const G4NeutronHPElasticXS &right) = delete;
G4NeutronHPElasticXS(const G4NeutronHPElasticXS&) = delete;
};
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPElementData_h
#define G4NeutronHPElementData_h
#include "G4ParticleHPElementData.hh"
using G4NeutronHPElementData = G4ParticleHPElementData;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPEnergyDistribution_h
#define G4NeutronHPEnergyDistribution_h
#include "G4ParticleHPEnergyDistribution.hh"
using G4NeutronHPEnergyDistribution = G4ParticleHPEnergyDistribution;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPEvapSpectrum_h
#define G4NeutronHPEvapSpectrum_h
#include "G4ParticleHPEvapSpectrum.hh"
using G4NeutronHPEvapSpectrum = G4ParticleHPEvapSpectrum;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPFastLegendre_h
#define G4NeutronHPFastLegendre_h
#include "G4ParticleHPFastLegendre.hh"
using G4NeutronHPFastLegendre = G4ParticleHPFastLegendre;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPField_h
#define G4NeutronHPField_h
#include "G4ParticleHPField.hh"
using G4NeutronHPField = G4ParticleHPField;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPFieldPoint_h
#define G4NeutronHPFieldPoint_h
#include "G4ParticleHPFieldPoint.hh"
using G4NeutronHPFieldPoint = G4ParticleHPFieldPoint;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPFinalState_h
#define G4NeutronHPFinalState_h
#include "G4ParticleHPFinalState.hh"
using G4NeutronHPFinalState = G4ParticleHPFinalState;
#endif
@@ -23,10 +23,36 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPKallbachMannSyst_h
#define G4NeutronHPKallbachMannSyst_h
// V. Ivanchenko 23 September 2023
//
// Cross-section data set for a high precision (based on evaluated data
// libraries) description of neutron induced fission below 20 MeV
// for nucleus with 87 < Z < 101.
//
#include "G4ParticleHPKallbachMannSyst.hh"
using G4NeutronHPKallbachMannSyst = G4ParticleHPKallbachMannSyst;
#ifndef G4NeutronHPFissionXS_h
#define G4NeutronHPFissionXS_h 1
#include "G4CrossSectionHP.hh"
#include <fstream>
class G4NeutronHPFissionXS final : public G4CrossSectionHP
{
public:
G4NeutronHPFissionXS();
~G4NeutronHPFissionXS() override = default;
void CrossSectionDescription(std::ostream&) const final;
G4bool IsElementApplicable(const G4DynamicParticle*,
G4int Z, const G4Material*) final;
G4double GetElementCrossSection(const G4DynamicParticle*,
G4int Z, const G4Material*) final;
G4NeutronHPFissionXS & operator=(const G4NeutronHPFissionXS &right) = delete;
G4NeutronHPFissionXS(const G4NeutronHPFissionXS&) = delete;
};
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPHash_h
#define G4NeutronHPHash_h
#include "G4ParticleHPHash.hh"
using G4NeutronHPHash = G4ParticleHPHash;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPHe3InelasticFS_h
#define G4NeutronHPHe3InelasticFS_h
#include "G4ParticleHPHe3InelasticFS.hh"
using G4NeutronHPHe3InelasticFS = G4ParticleHPHe3InelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPInelasticBaseFS_h
#define G4NeutronHPInelasticBaseFS_h
#include "G4ParticleHPInelasticBaseFS.hh"
using G4NeutronHPInelasticBaseFS = G4ParticleHPInelasticBaseFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPInelasticCompFS_h
#define G4NeutronHPInelasticCompFS_h
#include "G4ParticleHPInelasticCompFS.hh"
using G4NeutronHPInelasticCompFS = G4ParticleHPInelasticCompFS;
#endif
@@ -23,10 +23,60 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPChannelList_h
#define G4NeutronHPChannelList_h
// Geant4 header : G4NeutronHPInelasticVI
// Created: 15 October 2023
//
// Author V.Ivanchenko
//
// Class Description:
// Neutron HP inelastic scattering model below 20 MeV
//
#ifndef G4NeutronHPInelasticVI_h
#define G4NeutronHPInelasticVI_h 1
// Final state production model for a high precision (based on evaluated data
// libraries) description of neutron inelastic scattering below 20 MeV or
// light ion inelastic interaction below 100 MeV.
// 36 exclusive final states are consideded.
#include "G4HadronicInteraction.hh"
#include "G4ParticleHPChannelList.hh"
using G4NeutronHPChannelList = G4ParticleHPChannelList;
#include "G4ParticleDefinition.hh"
#include "globals.hh"
class G4NeutronHPInelasticVI : public G4HadronicInteraction
{
public:
G4NeutronHPInelasticVI();
~G4NeutronHPInelasticVI() override;
G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack,
G4Nucleus& aTargetNucleus) override;
const std::pair<G4double, G4double> GetFatalEnergyCheckLevels() const override;
void BuildPhysicsTable(const G4ParticleDefinition&) override;
void ModelDescription(std::ostream& outFile) const override;
G4NeutronHPInelasticVI(G4NeutronHPInelasticVI &) = delete;
G4NeutronHPInelasticVI & operator=
(const G4NeutronHPInelasticVI &right) = delete;
private:
void InitialiseOnFly();
void Initialise();
G4ParticleHPManager* fManagerHP;
G4bool fInitializer{false};
static G4bool fLock;
static constexpr G4int ZMAXHPI{101}; // 101 because Z range is 1-100
static G4ParticleHPChannelList* theChannels[ZMAXHPI];
};
#endif
@@ -23,10 +23,29 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHP2AInelasticFS_h
#define G4NeutronHP2AInelasticFS_h
// V. Ivanchenko 23 September 2023
//
// Cross-section data set for a high precision (based on evaluated data
// libraries) description of neutron inelastic interactions below 20 MeV.
//
#include "G4ParticleHP2AInelasticFS.hh"
using G4NeutronHP2AInelasticFS = G4ParticleHP2AInelasticFS;
#ifndef G4NeutronHPInelasticXS_h
#define G4NeutronHPInelasticXS_h 1
#include "G4CrossSectionHP.hh"
#include <fstream>
class G4NeutronHPInelasticXS final : public G4CrossSectionHP
{
public:
G4NeutronHPInelasticXS();
~G4NeutronHPInelasticXS() override = default;
void CrossSectionDescription(std::ostream&) const final;
G4NeutronHPInelasticXS & operator=(const G4NeutronHPInelasticXS &right) = delete;
G4NeutronHPInelasticXS(const G4NeutronHPInelasticXS&) = delete;
};
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPInterpolator_h
#define G4NeutronHPInterpolator_h
#include "G4ParticleHPInterpolator.hh"
using G4NeutronHPInterpolator = G4ParticleHPInterpolator;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPIsoData_h
#define G4NeutronHPIsoData_h
#include "G4ParticleHPIsoData.hh"
using G4NeutronHPIsoData = G4ParticleHPIsoData;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPIsotropic_h
#define G4NeutronHPIsotropic_h
#include "G4ParticleHPIsotropic.hh"
using G4NeutronHPIsotropic = G4ParticleHPIsotropic;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPLabAngularEnergy_h
#define G4NeutronHPLabAngularEnergy_h
#include "G4ParticleHPLabAngularEnergy.hh"
using G4NeutronHPLabAngularEnergy = G4ParticleHPLabAngularEnergy;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPLegendreStore_h
#define G4NeutronHPLegendreStore_h
#include "G4ParticleHPLegendreStore.hh"
using G4NeutronHPLegendreStore = G4ParticleHPLegendreStore;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPLegendreTable_h
#define G4NeutronHPLegendreTable_h
#include "G4ParticleHPLegendreTable.hh"
using G4NeutronHPLegendreTable = G4ParticleHPLegendreTable;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPList_h
#define G4NeutronHPList_h
#include "G4ParticleHPList.hh"
using G4NeutronHPList = G4ParticleHPList;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPMadlandNixSpectrum_h
#define G4NeutronHPMadlandNixSpectrum_h
#include "G4ParticleHPMadlandNixSpectrum.hh"
using G4NeutronHPMadlandNixSpectrum = G4ParticleHPMadlandNixSpectrum;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPManager_h
#define G4NeutronHPManager_h
#include "G4ParticleHPManager.hh"
using G4NeutronHPManager = G4ParticleHPManager;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPMessenger_h
#define G4NeutronHPMessenger_h
#include "G4ParticleHPMessenger.hh"
using G4NeutronHPMessenger = G4ParticleHPMessenger;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPN2AInelasticFS_h
#define G4NeutronHPN2AInelasticFS_h
#include "G4ParticleHPN2AInelasticFS.hh"
using G4NeutronHPN2AInelasticFS = G4ParticleHPN2AInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPN2PInelasticFS_h
#define G4NeutronHPN2PInelasticFS_h
#include "G4ParticleHPN2PInelasticFS.hh"
using G4NeutronHPN2PInelasticFS = G4ParticleHPN2PInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPN3AInelasticFS_h
#define G4NeutronHPN3AInelasticFS_h
#include "G4ParticleHPN3AInelasticFS.hh"
using G4NeutronHPN3AInelasticFS = G4ParticleHPN3AInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNAInelasticFS_h
#define G4NeutronHPNAInelasticFS_h
#include "G4ParticleHPNAInelasticFS.hh"
using G4NeutronHPNAInelasticFS = G4ParticleHPNAInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNBodyPhaseSpace_h
#define G4NeutronHPNBodyPhaseSpace_h
#include "G4ParticleHPNBodyPhaseSpace.hh"
using G4NeutronHPNBodyPhaseSpace = G4ParticleHPNBodyPhaseSpace;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPND2AInelasticFS_h
#define G4NeutronHPND2AInelasticFS_h
#include "G4ParticleHPND2AInelasticFS.hh"
using G4NeutronHPND2AInelasticFS = G4ParticleHPND2AInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNDInelasticFS_h
#define G4NeutronHPNDInelasticFS_h
#include "G4ParticleHPNDInelasticFS.hh"
using G4NeutronHPNDInelasticFS = G4ParticleHPNDInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNHe3InelasticFS_h
#define G4NeutronHPNHe3InelasticFS_h
#include "G4ParticleHPNHe3InelasticFS.hh"
using G4NeutronHPNHe3InelasticFS = G4ParticleHPNHe3InelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNInelasticFS_h
#define G4NeutronHPNInelasticFS_h
#include "G4ParticleHPNInelasticFS.hh"
using G4NeutronHPNInelasticFS = G4ParticleHPNInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNPAInelasticFS_h
#define G4NeutronHPNPAInelasticFS_h
#include "G4ParticleHPNPAInelasticFS.hh"
using G4NeutronHPNPAInelasticFS = G4ParticleHPNPAInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNPInelasticFS_h
#define G4NeutronHPNPInelasticFS_h
#include "G4ParticleHPNPInelasticFS.hh"
using G4NeutronHPNPInelasticFS = G4ParticleHPNPInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNT2AInelasticFS_h
#define G4NeutronHPNT2AInelasticFS_h
#include "G4ParticleHPNT2AInelasticFS.hh"
using G4NeutronHPNT2AInelasticFS = G4ParticleHPNT2AInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNTInelasticFS_h
#define G4NeutronHPNTInelasticFS_h
#include "G4ParticleHPNTInelasticFS.hh"
using G4NeutronHPNTInelasticFS = G4ParticleHPNTInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNXInelasticFS_h
#define G4NeutronHPNXInelasticFS_h
#include "G4ParticleHPNXInelasticFS.hh"
using G4NeutronHPNXInelasticFS = G4ParticleHPNXInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNames_h
#define G4NeutronHPNames_h
#include "G4ParticleHPNames.hh"
using G4NeutronHPNames = G4ParticleHPNames;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPNeutronYield_h
#define G4NeutronHPNeutronYield_h
#include "G4ParticleHPNeutronYield.hh"
using G4NeutronHPNeutronYield = G4ParticleHPNeutronYield;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPPAInelasticFS_h
#define G4NeutronHPPAInelasticFS_h
#include "G4ParticleHPPAInelasticFS.hh"
using G4NeutronHPPAInelasticFS = G4ParticleHPPAInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPPDInelasticFS_h
#define G4NeutronHPPDInelasticFS_h
#include "G4ParticleHPPDInelasticFS.hh"
using G4NeutronHPPDInelasticFS = G4ParticleHPPDInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPPInelasticFS_h
#define G4NeutronHPPInelasticFS_h
#include "G4ParticleHPPInelasticFS.hh"
using G4NeutronHPPInelasticFS = G4ParticleHPPInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPPTInelasticFS_h
#define G4NeutronHPPTInelasticFS_h
#include "G4ParticleHPPTInelasticFS.hh"
using G4NeutronHPPTInelasticFS = G4ParticleHPPTInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPPartial_h
#define G4NeutronHPPartial_h
#include "G4ParticleHPPartial.hh"
using G4NeutronHPPartial = G4ParticleHPPartial;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPPhotonDist_h
#define G4NeutronHPPhotonDist_h
#include "G4ParticleHPPhotonDist.hh"
using G4NeutronHPPhotonDist = G4ParticleHPPhotonDist;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPPolynomExpansion_h
#define G4NeutronHPPolynomExpansion_h
#include "G4ParticleHPPolynomExpansion.hh"
using G4NeutronHPPolynomExpansion = G4ParticleHPPolynomExpansion;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPProduct_h
#define G4NeutronHPProduct_h
#include "G4ParticleHPProduct.hh"
using G4NeutronHPProduct = G4ParticleHPProduct;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPReactionWhiteBoard_h
#define G4NeutronHPReactionWhiteBoard_h
#include "G4ParticleHPReactionWhiteBoard.hh"
using G4NeutronHPReactionWhiteBoard = G4ParticleHPReactionWhiteBoard;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPSimpleEvapSpectrum_h
#define G4NeutronHPSimpleEvapSpectrum_h
#include "G4ParticleHPSimpleEvapSpectrum.hh"
using G4NeutronHPSimpleEvapSpectrum = G4ParticleHPSimpleEvapSpectrum;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPT2AInelasticFS_h
#define G4NeutronHPT2AInelasticFS_h
#include "G4ParticleHPT2AInelasticFS.hh"
using G4NeutronHPT2AInelasticFS = G4ParticleHPT2AInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPTInelasticFS_h
#define G4NeutronHPTInelasticFS_h
#include "G4ParticleHPTInelasticFS.hh"
using G4NeutronHPTInelasticFS = G4ParticleHPTInelasticFS;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPThreadLocalManager_h
#define G4NeutronHPThreadLocalManager_h
#include "G4ParticleHPThreadLocalManager.hh"
using G4NeutronHPThreadLocalManager = G4ParticleHPThreadLocalManager;
#endif
@@ -1,32 +0,0 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
#ifndef G4NeutronHPVector_h
#define G4NeutronHPVector_h
#include "G4ParticleHPVector.hh"
using G4NeutronHPVector = G4ParticleHPVector;
#endif
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
//
//
// Geant4 header : G4NeutronRadCaptureHP
// Created: 02 October 2023
// Author V.Ivanchenko
//
// Modified:
//
// Class Description
// Sampling of neutron radiative capture. The same approach is used
// as in the G4NeutronRadCapture with the difference in sampling of
// nucleus termal motion.
// Class Description - End
//
#ifndef G4NeutronRadCaptureHP_h
#define G4NeutronRadCaptureHP_h 1
#include "globals.hh"
#include "G4HadronicInteraction.hh"
#include "G4HadProjectile.hh"
#include "G4Nucleus.hh"
#include "G4LorentzVector.hh"
class G4VEvaporationChannel;
class G4IonTable;
class G4ParticleHPManager;
class G4NeutronRadCaptureHP : public G4HadronicInteraction
{
public:
G4NeutronRadCaptureHP();
~G4NeutronRadCaptureHP() override;
G4HadFinalState* ApplyYourself(const G4HadProjectile & aTrack,
G4Nucleus & targetNucleus) override;
void BuildPhysicsTable(const G4ParticleDefinition&) override;
G4NeutronRadCaptureHP & operator=
(const G4NeutronRadCaptureHP &right) = delete;
G4NeutronRadCaptureHP(const G4NeutronRadCaptureHP&) = delete;
private:
G4int icID{-1}; // creator model ID for e- produced by internal conversion
G4int secID{-1}; // creator model ID for the other secondaries produced by this model
const G4ParticleDefinition* electron;
G4ParticleHPManager* fManagerHP;
G4VEvaporationChannel* photonEvaporation{nullptr};
G4IonTable* theTableOfIons;
G4double lowestEnergyLimit;
G4double minExcitation;
G4double emax;
G4double emaxT;
G4LorentzVector lab4mom;
G4bool fLocalPE{false};
};
#endif
@@ -23,53 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
// Hadronic Process: Very Low Energy Neutron X-Sections
// original by H.P. Wellisch, TRIUMF, 14-Feb-97
// Builds and has the Cross-section data for one material.
// Class Description
// Final state production model for a high precision (based on evaluated data
// libraries) description of neutron capture below 20 MeV;
// To be used in your physics list in case you need this physics.
// In this case you want to register an object of this class with
// the corresponding process.
// Class Description - End
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
//
#ifndef G4ParticleHPCapture_h
#define G4ParticleHPCapture_h 1
#define G4ParticleHPCapture_h
#include "G4HadronicInteraction.hh"
#include "G4ParticleHPChannel.hh"
#include "globals.hh"
class G4ParticleHPCapture : public G4HadronicInteraction
{
public:
G4ParticleHPCapture();
~G4ParticleHPCapture() override;
G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack,
G4Nucleus& aTargetNucleus) override;
const std::pair<G4double, G4double> GetFatalEnergyCheckLevels() const override;
public:
G4int GetVerboseLevel() const;
void SetVerboseLevel(G4int);
void BuildPhysicsTable(const G4ParticleDefinition&) override;
void ModelDescription(std::ostream& outFile) const override;
private:
std::vector<G4ParticleHPChannel*>* theCapture{nullptr};
G4String dirName;
G4int numEle{0};
G4HadFinalState theResult;
};
#include "G4NeutronHPCapture.hh"
using G4ParticleHPCapture = G4NeutronHPCapture;
#endif
@@ -23,71 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
// 080417 Add IsZAApplicable method (return false) by T. Koi
// 080428 Add bool onFlightDB by T. Koi
// 091118 Add Ignore and Enable On Flight Doppler Broadening methods by T. Koi
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
//
#ifndef G4ParticleHPCaptureData_h
#define G4ParticleHPCaptureData_h 1
#define G4ParticleHPCaptureData_h
// Class Description
// Cross-section data set for a high precision (based on evaluated data
// libraries) description of neutron capture below 20 MeV;
// To be used in your physics list in case you need this physics.
// In this case you want to register an object of this class with
// the corresponding process.
// Class Description - End
#include "G4DynamicParticle.hh"
#include "G4Element.hh"
#include "G4ParticleDefinition.hh"
#include "G4PhysicsTable.hh"
#include "G4VCrossSectionDataSet.hh"
class G4ParticleHPCaptureData : public G4VCrossSectionDataSet
{
public:
G4ParticleHPCaptureData();
~G4ParticleHPCaptureData() override;
G4bool IsIsoApplicable(const G4DynamicParticle*, G4int /*Z*/, G4int /*A*/,
const G4Element* /*elm*/, const G4Material* /*mat*/) override;
G4double GetIsoCrossSection(const G4DynamicParticle*, G4int /*Z*/, G4int /*A*/,
const G4Isotope* /*iso*/, const G4Element* /*elm*/,
const G4Material* /*mat*/) override;
// G4bool IsApplicable(const G4DynamicParticle*, const G4Element*);
public:
// G4bool IsZAApplicable( const G4DynamicParticle* , G4double /*ZZ*/, G4double /*AA*/)
//{ return false;}
G4double GetCrossSection(const G4DynamicParticle*, const G4Element*, G4double aT);
void BuildPhysicsTable(const G4ParticleDefinition&) override;
void DumpPhysicsTable(const G4ParticleDefinition&) override;
public:
G4int GetVerboseLevel() const;
void SetVerboseLevel(G4int) override;
void CrossSectionDescription(std::ostream&) const override;
private:
G4PhysicsTable* theCrossSections;
G4bool instanceOfWorker;
G4double ke_cache;
G4double xs_cache;
const G4Element* element_cache;
const G4Material* material_cache;
};
#include "G4NeutronHPCaptureData.hh"
using G4ParticleHPCaptureData = G4NeutronHPCaptureData;
#endif
@@ -23,49 +23,10 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
//
#ifndef G4ParticleHPCaptureFS_h
#define G4ParticleHPCaptureFS_h 1
#define G4ParticleHPCaptureFS_h
#include "G4HadFinalState.hh"
#include "G4HadProjectile.hh"
#include "G4ParticleHPEnAngCorrelation.hh"
#include "G4ParticleHPFinalState.hh"
#include "G4ParticleHPNames.hh"
#include "G4ParticleHPPhotonDist.hh"
#include "G4ReactionProductVector.hh"
#include "globals.hh"
#include "G4NeutronHPCaptureFS.hh"
using G4ParticleHPCaptureFS = G4NeutronHPCaptureFS;
class G4ParticleHPCaptureFS : public G4ParticleHPFinalState
{
public:
G4ParticleHPCaptureFS();
~G4ParticleHPCaptureFS() override = default;
void Init(G4double A, G4double Z, G4int M, G4String& dirName, G4String& aFSType,
G4ParticleDefinition*) override;
G4HadFinalState* ApplyYourself(const G4HadProjectile& theTrack) override;
G4ParticleHPFinalState* New() override
{
auto theNew = new G4ParticleHPCaptureFS;
return theNew;
}
private:
G4double targetMass;
G4ParticleHPPhotonDist theFinalStatePhotons;
G4ParticleHPEnAngCorrelation theMF6FinalState;
G4bool hasExactMF6;
G4ParticleHPNames theNames;
// G4double theCurrentA;
// G4double theCurrentZ;
};
#endif
@@ -33,7 +33,9 @@
// 080520 Delete unnecessary dependencies by T. Koi
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko, July-2023 Basic revision of particle HP classes
//
#ifndef G4ParticleHPChannel_h
#define G4ParticleHPChannel_h 1
@@ -53,154 +55,106 @@ class G4ParticleDefinition;
class G4ParticleHPChannel
{
public:
G4ParticleHPChannel(G4ParticleDefinition* projectile)
: wendtFissionGenerator(G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel()
? G4WendtFissionFragmentGenerator::GetInstance()
: nullptr)
{
if (G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel()) {
// Make sure both fission fragment models are not active at same time
G4ParticleHPManager::GetInstance()->SetProduceFissionFragments(false);
public:
G4ParticleHPChannel(G4ParticleDefinition* projectile = nullptr);
~G4ParticleHPChannel();
G4double GetXsec(G4double energy);
G4double GetWeightedXsec(G4double energy, G4int isoNumber);
G4double GetFSCrossSection(G4double energy, G4int isoNumber);
G4bool IsActive(G4int isoNumber) const
{
return active[isoNumber];
}
G4bool HasFSData(G4int isoNumber)
{
return theFinalStates[isoNumber]->HasFSData();
}
G4bool HasAnyData(G4int isoNumber)
{
return theFinalStates[isoNumber]->HasAnyData();
}
G4bool Register(G4ParticleHPFinalState* theFS);
void Init(G4Element* theElement, const G4String& dirName);
void Init(G4Element* theElement, const G4String& dirName,
const G4String& fsType);
void UpdateData(G4int A, G4int Z, G4int index, G4double abundance,
G4ParticleDefinition* projectile)
{
UpdateData(A, Z, 0, index, abundance, projectile);
}
void UpdateData(G4int A, G4int Z, G4int M, G4int index, G4double abundance,
G4ParticleDefinition* projectile);
void Harmonise(G4ParticleHPVector*& theStore, G4ParticleHPVector* theNew);
G4HadFinalState* ApplyYourself(const G4HadProjectile& theTrack,
G4int isoNumber = -1,
G4bool isElastic = false);
G4int GetNiso() const { return niso; }
G4double GetN(G4int i) const { return theFinalStates[i]->GetN(); }
G4double GetZ(G4int i) const { return theFinalStates[i]->GetZ(); }
G4double GetM(G4int i) const { return theFinalStates[i]->GetM(); }
G4bool HasDataInAnyFinalState()
{
G4bool result = false;
for (G4int i = 0; i < niso; ++i) {
if (theFinalStates[i]->HasAnyData()) {
result = true;
break;
}
theProjectile = const_cast<G4ParticleDefinition*>(projectile);
theChannelData = new G4ParticleHPVector;
theBuffer = nullptr;
theIsotopeWiseData = nullptr;
theFinalStates = nullptr;
active = nullptr;
registerCount = -1;
niso = -1;
theElement = nullptr;
}
return result;
}
G4ParticleHPChannel()
: wendtFissionGenerator(G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel()
? G4WendtFissionFragmentGenerator::GetInstance()
: nullptr)
{
if (G4ParticleHPManager::GetInstance()->GetUseWendtFissionModel()) {
// Make sure both fission fragment models are not active at same time
G4ParticleHPManager::GetInstance()->SetProduceFissionFragments(false);
}
theProjectile = G4Neutron::Neutron();
theChannelData = new G4ParticleHPVector;
theBuffer = nullptr;
theIsotopeWiseData = nullptr;
theFinalStates = nullptr;
active = nullptr;
registerCount = -1;
niso = -1;
theElement = nullptr;
}
void DumpInfo();
~G4ParticleHPChannel()
{
delete theChannelData;
// Following statement disabled to avoid SEGV
// theBuffer is also deleted as "theChannelData" in
// ~G4ParticleHPIsoData. FWJ 06-Jul-1999
// if(theBuffer != 0) delete theBuffer;
delete[] theIsotopeWiseData;
// Deletion of FinalStates disabled to avoid endless looping
// in the destructor heirarchy. FWJ 06-Jul-1999
// if(theFinalStates != 0)
//{
// for(i=0; i<niso; i++)
// {
// delete theFinalStates[i];
// }
// delete [] theFinalStates;
//}
// FWJ experiment
// if(active!=0) delete [] active;
// T.K.
if (theFinalStates != nullptr) {
for (G4int i = 0; i < niso; i++) {
delete theFinalStates[i];
}
delete[] theFinalStates;
}
delete[] active;
}
G4String& GetFSType() { return theFSType; }
G4double GetXsec(G4double energy);
G4ParticleHPFinalState** GetFinalStates() const { return theFinalStates; }
G4double GetWeightedXsec(G4double energy, G4int isoNumber);
G4ParticleHPChannel(G4ParticleHPChannel &) = delete;
G4ParticleHPChannel & operator=
(const G4ParticleHPChannel &right) = delete;
G4double GetFSCrossSection(G4double energy, G4int isoNumber);
protected:
G4ParticleHPManager* fManager;
inline G4bool IsActive(G4int isoNumber) { return active[isoNumber]; }
private:
G4ParticleDefinition* theProjectile;
inline G4bool HasFSData(G4int isoNumber) { return theFinalStates[isoNumber]->HasFSData(); }
G4ParticleHPVector* theChannelData;
G4Element* theElement{nullptr};
inline G4bool HasAnyData(G4int isoNumber) { return theFinalStates[isoNumber]->HasAnyData(); }
// total (element) cross-section for this channel
G4ParticleHPVector* theBuffer{nullptr};
G4bool Register(G4ParticleHPFinalState* theFS);
G4ParticleHPIsoData* theIsotopeWiseData{nullptr};
// these are the isotope-wise cross-sections for each final state.
G4ParticleHPFinalState** theFinalStates{nullptr};
// also these are isotope-wise pionters, parallel to the above.
void Init(G4Element* theElement, const G4String dirName);
G4WendtFissionFragmentGenerator* wendtFissionGenerator{nullptr};
G4bool* active{nullptr};
G4int niso{-1};
G4int registerCount{-1};
void Init(G4Element* theElement, const G4String dirName, const G4String fsType);
// void UpdateData(G4int A, G4int Z, G4int index, G4double abundance);
void UpdateData(G4int A, G4int Z, G4int index, G4double abundance,
G4ParticleDefinition* projectile)
{
G4int M = 0;
UpdateData(A, Z, M, index, abundance, projectile);
};
void UpdateData(G4int A, G4int Z, G4int M, G4int index, G4double abundance,
G4ParticleDefinition* projectile);
void Harmonise(G4ParticleHPVector*& theStore, G4ParticleHPVector* theNew);
G4HadFinalState* ApplyYourself(const G4HadProjectile& theTrack, G4int isoNumber = -1,
G4bool isElastic = false);
inline G4int GetNiso() { return niso; }
inline G4double GetN(G4int i) { return theFinalStates[i]->GetN(); }
inline G4double GetZ(G4int i) { return theFinalStates[i]->GetZ(); }
inline G4double GetM(G4int i) { return theFinalStates[i]->GetM(); }
inline G4bool HasDataInAnyFinalState()
{
G4bool result = false;
G4int i;
for (i = 0; i < niso; i++) {
if (theFinalStates[i]->HasAnyData()) result = true;
}
return result;
}
void DumpInfo();
G4String GetFSType() const { return theFSType; }
G4ParticleHPFinalState** GetFinalStates() const { return theFinalStates; }
private:
G4ParticleDefinition* theProjectile;
G4ParticleHPVector* theChannelData; // total (element) cross-section for this channel
G4ParticleHPVector* theBuffer;
G4ParticleHPIsoData*
theIsotopeWiseData; // these are the isotope-wise cross-sections for each final state.
G4ParticleHPFinalState**
theFinalStates; // also these are isotope-wise pionters, parallel to the above.
G4bool* active;
G4int niso;
G4StableIsotopes theStableOnes;
G4String theDir;
G4String theFSType;
G4Element* theElement;
G4int registerCount;
G4WendtFissionFragmentGenerator* const wendtFissionGenerator;
G4String theDir{""};
G4String theFSType{""};
};
#endif
@@ -23,19 +23,18 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
//
//
// Hadronic Process: Very Low Energy Neutron X-Sections
// original by H.P. Wellisch, TRIUMF, 14-Feb-97
// Builds and has the Cross-section data for one material.
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko, July-2023 Basic revision of particle HP classes
//
#ifndef G4ParticleHPChannelList_h
#define G4ParticleHPChannelList_h 1
#include "G4ParticleHPChannel.hh"
#include "G4StableIsotopes.hh"
#include "globals.hh"
class G4Element;
@@ -47,62 +46,57 @@ class G4ParticleDefinition;
class G4ParticleHPChannelList
{
public:
G4ParticleHPChannelList(G4int n, G4ParticleDefinition* projectile);
G4ParticleHPChannelList();
G4ParticleHPChannelList(G4int n = 0, G4ParticleDefinition* p = nullptr);
void Init(G4int n);
~G4ParticleHPChannelList();
G4HadFinalState* ApplyYourself(const G4Element* theElement, const G4HadProjectile& aTrack);
G4HadFinalState* ApplyYourself(const G4Element* theElement,
const G4HadProjectile& aTrack);
void Init(G4Element* anElement, const G4String& dirName, G4ParticleDefinition* projectile);
void Init(G4Element* anElement, const G4String& dirName,
G4ParticleDefinition* projectile);
void Register(G4ParticleHPFinalState* theFS, const G4String& aName);
inline G4double GetXsec(G4double anEnergy)
G4double GetXsec(G4double anEnergy)
{
G4double result = 0;
G4int i;
for (i = 0; i < nChannels; i++) {
G4double result = 0.0;
for (G4int i = 0; i < nChannels; ++i) {
result += std::max(0., theChannels[i]->GetXsec(anEnergy));
}
return result;
}
inline G4int GetNumberOfChannels() { return nChannels; }
G4int GetNumberOfChannels() { return nChannels; }
inline G4bool HasDataInAnyFinalState()
G4bool HasDataInAnyFinalState()
{
G4bool result = false;
G4int i;
for (i = 0; i < nChannels; i++) {
if (theChannels[i]->HasDataInAnyFinalState()) result = true;
for (G4int i = 0; i < nChannels; ++i) {
if (theChannels[i]->HasDataInAnyFinalState())
{
result = true;
break;
}
}
return result;
}
inline void RestartRegistration()
{
allChannelsCreated = true;
theInitCount = 0;
}
void DumpInfo();
G4ParticleHPChannelList(G4ParticleHPChannelList &) = delete;
G4ParticleHPChannelList & operator=
(const G4ParticleHPChannelList &right) = delete;
private:
static G4ThreadLocal G4int trycounter;
G4ParticleHPChannel** theChannels;
G4int nChannels;
G4String theDir;
G4Element* theElement;
G4bool allChannelsCreated;
G4int theInitCount;
G4StableIsotopes theStableOnes;
G4ParticleDefinition* theProjectile;
G4Element* theElement{nullptr};
G4int nChannels;
G4int idx{0};
G4String theDir{""};
G4HadFinalState unChanged;
};
@@ -28,6 +28,7 @@
// 080718 Add ClearHistories method and related class member
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko, July-2023 Basic revision of particle HP classes
//
#ifndef G4ParticleHPContAngularPar_h
#define G4ParticleHPContAngularPar_h 1
@@ -49,77 +50,33 @@ class G4ParticleHPContAngularPar
{
struct toBeCached
{
G4bool fresh{true};
G4double currentMeanEnergy{-2.0};
G4double remaining_energy{0.0};
G4double theTargetCode{-1.0};
G4ReactionProduct* theTarget{nullptr};
G4ReactionProduct* thePrimary{nullptr};
toBeCached() = default;
G4bool fresh{true};
G4double currentMeanEnergy{-2.0};
G4double remaining_energy{0.0};
G4double theTargetCode{-1.0};
G4ReactionProduct* theTarget{nullptr};
G4ReactionProduct* thePrimary{nullptr};
toBeCached() = default;
};
public:
G4ParticleHPContAngularPar()
{
theAngular = nullptr;
// currentMeanEnergy = -2;
// fresh = true;
fCache.Put(nullptr);
theMinEner = DBL_MAX;
theMaxEner = -DBL_MAX;
theEnergy = -1;
nEnergies = -1;
nDiscreteEnergies = -1;
nAngularParameters = -1;
theProjectile = nullptr;
adjustResult = true;
}
G4ParticleHPContAngularPar(const G4ParticleDefinition* p = nullptr);
G4ParticleHPContAngularPar(G4ParticleHPContAngularPar&);
G4ParticleHPContAngularPar(G4ParticleHPContAngularPar& val)
{
theEnergy = val.theEnergy;
nEnergies = val.nEnergies;
nDiscreteEnergies = val.nDiscreteEnergies;
nAngularParameters = val.nAngularParameters;
theProjectile = val.theProjectile;
theManager = val.theManager;
theInt = val.theInt;
adjustResult = val.adjustResult;
theMinEner = val.theMinEner;
theMaxEner = val.theMaxEner;
theEnergiesTransformed = val.theEnergiesTransformed;
theDiscreteEnergies = val.theDiscreteEnergies;
theDiscreteEnergiesOwn = val.theDiscreteEnergiesOwn;
fCache.Put(nullptr);
theAngular = new G4ParticleHPList[nEnergies];
for (G4int ie = 0; ie < nEnergies; ++ie) {
theAngular[ie].SetLabel(val.theAngular[ie].GetLabel());
for (G4int ip = 0; ip < nAngularParameters; ++ip) {
theAngular[ie].SetValue(ip, val.theAngular[ie].GetValue(ip));
}
}
}
~G4ParticleHPContAngularPar();
G4ParticleHPContAngularPar(G4ParticleDefinition* projectile);
void Init(std::istream& aDataFile, const G4ParticleDefinition* projectile);
~G4ParticleHPContAngularPar()
{
delete[] theAngular;
if (fCache.Get() != nullptr) delete fCache.Get();
}
void Init(std::istream& aDataFile, G4ParticleDefinition* projectile);
G4ReactionProduct* Sample(G4double anEnergy, G4double massCode, G4double mass, G4int angularRep,
G4int interpol);
G4ReactionProduct* Sample(G4double anEnergy, G4double massCode,
G4double mass, G4int angularRep, G4int interpol);
G4double GetEnergy() const { return theEnergy; }
void SetPrimary(G4ReactionProduct* aPrimary) { fCache.Get()->thePrimary = aPrimary; }
void SetPrimary(G4ReactionProduct* aPrimary) { fCache.Get().thePrimary = aPrimary; }
void SetTarget(G4ReactionProduct* aTarget) { fCache.Get()->theTarget = aTarget; }
void SetTarget(G4ReactionProduct* aTarget) { fCache.Get().theTarget = aTarget; }
void SetTargetCode(G4double aTargetCode) { fCache.Get()->theTargetCode = aTargetCode; }
void SetTargetCode(G4double aTargetCode) { fCache.Get().theTargetCode = aTargetCode; }
void SetInterpolation(G4int theInterpolation)
{
@@ -135,15 +92,8 @@ class G4ParticleHPContAngularPar
G4double MeanEnergyOfThisInteraction()
{
G4double result;
if (fCache.Get()->currentMeanEnergy < -1) {
return 0;
// throw G4HadronicException(__FILE__, __LINE__, "G4ParticleHPContAngularPar: Logical error
// in Product class");
}
result = fCache.Get()->currentMeanEnergy;
fCache.Get()->currentMeanEnergy = -2;
G4double result = std::max(fCache.Get().currentMeanEnergy, 0.0);
fCache.Get().currentMeanEnergy = -2.0;
return result;
}
@@ -158,47 +108,45 @@ class G4ParticleHPContAngularPar
void ClearHistories()
{
if (fCache.Get() == nullptr) cacheInit();
fCache.Get()->fresh = true;
fCache.Get().fresh = true;
fCache.Get().currentMeanEnergy = -2.0;
fCache.Get().remaining_energy = 0.0;
fCache.Get().theTargetCode = -1.0;
fCache.Get().theTarget = nullptr;
fCache.Get().thePrimary = nullptr;
}
void Dump() const;
G4ParticleHPContAngularPar& operator=(const G4ParticleHPContAngularPar &right) = delete;
private:
// incoming particle
G4double theEnergy;
G4double theEnergy{0.0};
G4double theMinEner{DBL_MAX};
G4double theMaxEner{-DBL_MAX};
// number of exit channel energies
G4int nEnergies;
G4int nEnergies{0};
// number of discrete exit channels
G4int nDiscreteEnergies;
G4int nDiscreteEnergies{0};
// number of angular paramerers per channel
G4int nAngularParameters;
G4int nAngularParameters{0};
const G4ParticleDefinition* theProjectile{nullptr};
// on per exit-channel energy
G4ParticleHPList* theAngular{nullptr};
// knows the interpolation between List labels
G4InterpolationManager theManager;
// on per exit-channel energy
G4ParticleHPList* theAngular;
G4ParticleHPInterpolator theInt;
private:
G4Cache<toBeCached*> fCache;
void cacheInit()
{
auto val = new toBeCached;
val->currentMeanEnergy = -2;
val->remaining_energy = 0;
val->fresh = true;
fCache.Put(val);
};
G4Cache<toBeCached> fCache;
G4ParticleDefinition* theProjectile;
G4bool adjustResult;
G4bool adjustResult{true};
// if not set it will not force the conservation of energy in angularRep==1,
// but will sample the particle energy according to the database
G4double theMinEner;
G4double theMaxEner;
std::set<G4double> theEnergiesTransformed;
std::set<G4double> theDiscreteEnergies;
std::map<G4double, G4int> theDiscreteEnergiesOwn;
@@ -28,6 +28,7 @@
// 080721 Add ClearHistories() method by T. Koi
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko, July-2023 Basic revision of particle HP classes
//
#ifndef G4ParticleHPContEnergyAngular_h
#define G4ParticleHPContEnergyAngular_h 1
@@ -43,58 +44,36 @@
class G4ParticleDefinition;
// we will need one of these per product.
class G4ParticleHPContEnergyAngular : public G4VParticleHPEnergyAngular
{
public:
G4ParticleHPContEnergyAngular(G4ParticleDefinition* proj) : theProjectile(proj)
{
theAngular = nullptr;
currentMeanEnergy.Put(-2);
theTargetCode = -1.0;
theAngularRep = -1;
nEnergy = -1;
theInterpolation = -1;
fCacheAngular.Put(nullptr); // fix
}
public:
~G4ParticleHPContEnergyAngular() override
{
delete[] theAngular;
if (fCacheAngular.Get() != nullptr) delete fCacheAngular.Get(); // fix
}
G4ParticleHPContEnergyAngular(const G4ParticleDefinition* proj);
void Init(std::istream& aDataFile) override
{
aDataFile >> theTargetCode >> theAngularRep >> theInterpolation >> nEnergy;
theAngular = new G4ParticleHPContAngularPar[nEnergy];
theManager.Init(aDataFile);
for (G4int i = 0; i < nEnergy; i++) {
theAngular[i].Init(aDataFile, theProjectile);
theAngular[i].SetInterpolation(theInterpolation);
#ifndef PHP_AS_HP
theAngular[i].PrepareTableInterpolation();
#endif
}
}
~G4ParticleHPContEnergyAngular() override;
G4double MeanEnergyOfThisInteraction() override;
G4ReactionProduct* Sample(G4double anEnergy, G4double massCode, G4double mass) override;
void ClearHistories() override;
void Init(std::istream& aDataFile) override;
private:
G4double theTargetCode;
G4int theAngularRep;
G4int nEnergy;
G4double MeanEnergyOfThisInteraction() override;
G4ReactionProduct* Sample(G4double anEnergy, G4double massCode, G4double mass) override;
void ClearHistories() override;
G4int theInterpolation;
G4ParticleHPContEnergyAngular(G4ParticleHPContEnergyAngular&) = delete;
G4ParticleHPContEnergyAngular& operator=
(const G4ParticleHPContEnergyAngular& right) = delete;
G4InterpolationManager theManager; // knows the interpolation between stores
G4ParticleHPContAngularPar* theAngular;
private:
G4double theTargetCode{-1};
G4int theAngularRep{-1};
G4int nEnergy{-1};
G4int theInterpolation{-1};
G4Cache<G4double> currentMeanEnergy;
G4Cache<G4ParticleHPContAngularPar*> fCacheAngular; // fix
G4ParticleDefinition* theProjectile;
G4InterpolationManager theManager; // knows the interpolation between stores
G4ParticleHPContAngularPar* theAngular;
G4Cache<G4double> currentMeanEnergy;
G4Cache<G4ParticleHPContAngularPar*> fCacheAngular;
const G4ParticleDefinition* theProjectile;
};
#endif
@@ -32,8 +32,9 @@
//
#ifndef G4ParticleHPData_h
#define G4ParticleHPData_h 1
#include "G4Element.hh"
#include "G4ParticleHPCaptureData.hh"
#include "G4NeutronHPCaptureData.hh"
#include "G4ParticleHPElasticData.hh"
#include "G4ParticleHPElementData.hh"
#include "G4ParticleHPFissionData.hh"
@@ -45,31 +46,33 @@
class G4ParticleHPData
{
public:
G4ParticleHPData(G4ParticleDefinition* projectile);
explicit G4ParticleHPData(G4ParticleDefinition* projectile);
~G4ParticleHPData();
inline G4PhysicsVector* MakePhysicsVector(G4Element* thE, G4ParticleHPFissionData* theP)
inline G4PhysicsVector* MakePhysicsVector(const G4Element* thE, G4ParticleHPFissionData* theP)
{
if (numEle <= (G4int)thE->GetIndex()) addPhysicsVector();
return DoPhysicsVector((*theData[thE->GetIndex()]).GetData(theP));
auto idx = (G4int)thE->GetIndex();
if (numEle <= idx) addPhysicsVector();
return DoPhysicsVector((*theData[idx]).GetData(theP));
}
inline G4PhysicsVector* MakePhysicsVector(G4Element* thE, G4ParticleHPCaptureData* theP)
inline G4PhysicsVector* MakePhysicsVector(const G4Element* thE, G4NeutronHPCaptureData* theP)
{
if (numEle <= (G4int)thE->GetIndex()) addPhysicsVector();
return DoPhysicsVector((*theData[thE->GetIndex()]).GetData(theP));
auto idx = (G4int)thE->GetIndex();
if (numEle <= idx) addPhysicsVector();
return DoPhysicsVector((*theData[idx]).GetData(theP));
}
inline G4PhysicsVector* MakePhysicsVector(G4Element* thE, G4ParticleHPElasticData* theP)
inline G4PhysicsVector* MakePhysicsVector(const G4Element* thE, G4ParticleHPElasticData* theP)
{
if (numEle <= (G4int)thE->GetIndex()) addPhysicsVector();
return DoPhysicsVector((*theData[thE->GetIndex()]).GetData(theP));
auto idx = (G4int)thE->GetIndex();
if (numEle <= idx) addPhysicsVector();
return DoPhysicsVector((*theData[idx]).GetData(theP));
}
inline G4PhysicsVector* MakePhysicsVector(G4Element* thE, G4ParticleHPInelasticData* theP)
inline G4PhysicsVector* MakePhysicsVector(const G4Element* thE, G4ParticleHPInelasticData* theP)
{
// G4cout << "entered G4ParticleHPData::MakePhysicsVector!!!"<<G4endl;
// G4cout << "thE->GetIndex()="<<thE->GetIndex()<<G4endl;
if (numEle <= (G4int)thE->GetIndex()) addPhysicsVector();
return DoPhysicsVector((*theData[thE->GetIndex()]).GetData(theP));
auto idx = (G4int)thE->GetIndex();
if (numEle <= idx) addPhysicsVector();
return DoPhysicsVector((*theData[idx]).GetData(theP));
}
G4PhysicsVector* DoPhysicsVector(G4ParticleHPVector* theVector);
@@ -26,7 +26,9 @@
// 070625 add natural abundance (nat) flag by T. Koi
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko, July-2023 Basic revision of particle HP classes
//
#ifndef G4ParticleHPDataUsed_h
#define G4ParticleHPDataUsed_h 1
@@ -34,38 +36,29 @@
class G4ParticleHPDataUsed
{
public:
G4ParticleHPDataUsed()
{
theName = "";
theA = 0;
theZ = 0;
theM = 0;
nat = false;
}
public:
G4ParticleHPDataUsed() = default;
void SetA(G4double anA) { theA = anA; }
void SetZ(G4int aZ) { theZ = aZ; }
void SetM(G4int aM) { theM = aM; }
void SetName(G4String aName) { theName = aName; }
void SetA(G4double anA) { theA = G4lrint(anA); }
void SetA(G4int anA) { theA = anA; }
void SetZ(G4int aZ) { theZ = aZ; }
void SetM(G4int aM) { theM = aM; }
void SetName(const G4String& aName) { theName = aName; }
G4int GetZ() { return theZ; }
G4double GetA() { return theA; }
G4int GetM() { return theM; }
G4String GetName() { return theName; }
G4int GetZ() { return theZ; }
G4int GetA() { return theA; }
G4int GetM() { return theM; }
G4String& GetName() { return theName; }
private:
G4String theName;
G4double theA;
G4int theZ;
G4int theM;
G4bool IsThisNaturalAbundance() { return nat; };
void SetNaturalAbundanceFlag() { nat = TRUE; };
public:
G4bool IsThisNaturalAbundance() { return nat; };
void SetNaturalAbundanceFlag() { nat = TRUE; };
private:
G4bool nat;
private:
G4int theA{0};
G4int theZ{0};
G4int theM{0};
G4bool nat{true};
G4String theName{""};
};
#endif
@@ -42,54 +42,24 @@
class G4ParticleHPDiscreteTwoBody : public G4VParticleHPEnergyAngular
{
public:
G4ParticleHPDiscreteTwoBody()
{
theCoeff = nullptr;
bCheckDiffCoeffRepr = true;
if (std::getenv("G4PHP_DO_NOT_CHECK_DIFF_COEFF_REPR") != nullptr) bCheckDiffCoeffRepr = false;
nEnergy = 0;
}
~G4ParticleHPDiscreteTwoBody() override { delete[] theCoeff; }
public:
G4ParticleHPDiscreteTwoBody();
~G4ParticleHPDiscreteTwoBody() override;
void Init(std::istream& aDataFile) override
{
aDataFile >> nEnergy;
theManager.Init(aDataFile);
theCoeff = new G4ParticleHPLegendreTable[nEnergy];
for (G4int i = 0; i < nEnergy; i++) {
G4double energy;
G4int aRep, nCoeff;
aDataFile >> energy >> aRep >> nCoeff;
//- G4cout << this << " " << i << " G4ParticleHPDiscreteTwoBody READ DATA " << energy
//<< " " << aRep << " " << nCoeff << G4endl;
energy *= CLHEP::eV;
G4int nPoints = nCoeff;
if (aRep > 0) nPoints *= 2;
// theCoeff[i].Init(energy, nPoints);
void Init(std::istream& aDataFile) override;
theCoeff[i].Init(energy, nPoints - 1);
theCoeff[i].SetRepresentation(aRep);
for (G4int ii = 0; ii < nPoints; ii++) {
G4double y;
aDataFile >> y;
theCoeff[i].SetCoeff(ii, y);
}
}
}
G4ReactionProduct* Sample(G4double anEnergy, G4double massCode, G4double mass) override;
G4double MeanEnergyOfThisInteraction() override { return -1.0; }
G4ReactionProduct* Sample(G4double anEnergy, G4double massCode, G4double mass) override;
G4double MeanEnergyOfThisInteraction() override { return -1; }
private:
G4int nEnergy{0};
G4ParticleHPLegendreTable* theCoeff{nullptr};
G4bool bCheckDiffCoeffRepr{true};
// for example ENDF-VII0_proton/Inelastic/F01/4_9_Beryllium has 0
// for energy 7.5E+07 and 12 for energy 1.e+08
private:
G4int nEnergy;
G4InterpolationManager theManager; // knows the interpolation between stores
G4ParticleHPLegendreTable* theCoeff;
private:
G4ParticleHPInterpolator theInt;
G4bool bCheckDiffCoeffRepr; // for example ENDF-VII0_proton/Inelastic/F01/4_9_Beryllium has 0
// for energy 7.5E+07 and 12 for energy 1.e+08
G4InterpolationManager theManager; // knows the interpolation between stores
G4ParticleHPInterpolator theInt;
};
#endif
@@ -31,20 +31,21 @@
// 080520 Delete unnecessary dependencies by T. Koi
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko July-2023 converted back capture
//
#ifndef G4ParticleHPElementData_h
#define G4ParticleHPElementData_h 1
#include "G4Material.hh"
#include "G4Neutron.hh"
#include "G4Nucleus.hh"
#include "G4ParticleHPCaptureData.hh"
#include "G4NeutronHPCaptureData.hh"
#include "G4ParticleHPElasticData.hh"
#include "G4ParticleHPFissionData.hh"
#include "G4ParticleHPInelasticData.hh"
#include "G4ParticleHPIsoData.hh"
#include "G4ParticleHPVector.hh"
#include "G4ReactionProduct.hh"
#include "G4StableIsotopes.hh"
#include "globals.hh"
class G4ParticleHPElementData
@@ -54,41 +55,46 @@ class G4ParticleHPElementData
~G4ParticleHPElementData();
// void Init(G4Element * theElement,char* dataDirVariable = "G4NEUTRONHPDATA",
// G4ParticleDefinition* projectile = G4Neutron::Neutron() );
void Init(G4Element* theElement, G4ParticleDefinition* projectile, const char* dataDirVariable);
void Init(G4Element* theElement, G4ParticleDefinition* projectile,
const char* dataDirVariable);
// void UpdateData(G4int A, G4int Z, G4int index, G4double abundance);
// void UpdateData(G4int A, G4int Z, G4int index, G4double abundance,char* dataDirVariable,
// G4ParticleDefinition* projectile = G4Neutron::Neutron() ) { G4int M=0; UpdateData( A, Z, M,
// index, abundance, projectile, dataDirVariable); };
void UpdateData(G4int A, G4int Z, G4int index, G4double abundance,
G4ParticleDefinition* projectile, const char* dataDirVariable)
G4ParticleDefinition* projectile,
const char* dataDirVariable)
{
G4int M = 0;
UpdateData(A, Z, M, index, abundance, projectile, dataDirVariable);
UpdateData(A, Z, 0, index, abundance, projectile, dataDirVariable);
};
void UpdateData(G4int A, G4int Z, G4int M, G4int index, G4double abundance,
G4ParticleDefinition* projectile, const char* dataDirVariable);
G4ParticleDefinition* projectile,
const char* dataDirVariable);
void Harmonise(G4ParticleHPVector*& theStore, G4ParticleHPVector* theNew);
inline G4ParticleHPVector* GetData(G4ParticleHPFissionData*) { return theFissionData; }
inline G4ParticleHPVector* GetData(G4ParticleHPCaptureData*) { return theCaptureData; }
inline G4ParticleHPVector* GetData(G4NeutronHPCaptureData*) { return theCaptureData; }
inline G4ParticleHPVector* GetData(G4ParticleHPElasticData*) { return theElasticData; }
inline G4ParticleHPVector* GetData(G4ParticleHPInelasticData*) { return theInelasticData; }
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement, G4ParticleDefinition* projectile,
G4ParticleHPFissionData* theSet, char* dataDirVariable);
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement,
G4ParticleDefinition* projectile,
G4ParticleHPFissionData* theSet,
char* dataDirVariable);
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement, G4ParticleDefinition* projectile,
G4ParticleHPCaptureData* theSet, char* dataDirVariable);
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement,
G4ParticleDefinition* projectile,
G4NeutronHPCaptureData* theSet,
char* dataDirVariable);
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement, G4ParticleDefinition* projectile,
G4ParticleHPElasticData* theSet, char* dataDirVariable);
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement,
G4ParticleDefinition* projectile,
G4ParticleHPElasticData* theSet,
char* dataDirVariable);
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement, G4ParticleDefinition* projectile,
G4ParticleHPInelasticData* theSet, char* dataDirVariable);
G4ParticleHPVector* MakePhysicsVector(G4Element* theElement,
G4ParticleDefinition* projectile,
G4ParticleHPInelasticData* theSet,
char* dataDirVariable);
private:
G4ParticleHPVector* theFissionData;
@@ -98,11 +104,8 @@ class G4ParticleHPElementData
G4double precision;
G4ParticleHPVector* theBuffer;
G4ParticleHPIsoData* theIsotopeWiseData;
G4StableIsotopes theStableOnes;
G4String filename;
};
@@ -25,6 +25,7 @@
//
//
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
// V. Ivanchenko, July-2023 Basic revision of particle HP classes
//
#ifndef G4ParticleHPEnAngCorrelation_h
#define G4ParticleHPEnAngCorrelation_h 1
@@ -46,93 +47,64 @@ class G4ParticleHPEnAngCorrelation
{
struct toBeCached
{
G4ReactionProduct* theProjectileRP{nullptr};
G4ReactionProduct* theTarget{nullptr};
G4double theTotalMeanEnergy{-1.0};
toBeCached() = default;
G4ReactionProduct* theProjectileRP{nullptr};
G4ReactionProduct* theTarget{nullptr};
G4double theTotalMeanEnergy{-1.0};
toBeCached() = default;
};
public:
G4ParticleHPEnAngCorrelation() // for G4ParticleHPCaptureFS::theMF6FinalState
{
theProjectile = G4Neutron::Neutron();
theProducts = nullptr;
inCharge = false;
toBeCached val;
fCache.Put(val);
// theTotalMeanEnergy = -1.;
fCache.Get().theTotalMeanEnergy = -1.;
targetMass = 0.0;
frameFlag = 0;
nProducts = 0;
}
explicit G4ParticleHPEnAngCorrelation(const G4ParticleDefinition* proj = nullptr);
~G4ParticleHPEnAngCorrelation();
G4ParticleHPEnAngCorrelation(G4ParticleDefinition* proj) : theProjectile(proj)
{
theProducts = nullptr;
inCharge = false;
toBeCached val;
fCache.Put(val);
// theTotalMeanEnergy = -1.;
fCache.Get().theTotalMeanEnergy = -1.;
targetMass = 0.0;
frameFlag = 0;
nProducts = 0;
}
~G4ParticleHPEnAngCorrelation() { delete[] theProducts; }
inline void Init(std::istream& aDataFile)
{
inCharge = true;
aDataFile >> targetMass >> frameFlag >> nProducts;
theProducts = new G4ParticleHPProduct[nProducts];
for (G4int i = 0; i < nProducts; i++) {
theProducts[i].Init(aDataFile, theProjectile);
}
}
void Init(std::istream& aDataFile);
G4ReactionProduct* SampleOne(G4double anEnergy);
G4ReactionProductVector* Sample(G4double anEnergy);
inline void SetTarget(G4ReactionProduct& aTarget)
void SetTarget(G4ReactionProduct& aTarget)
{
fCache.Get().theTarget = &aTarget;
for (G4int i = 0; i < nProducts; i++)
theProducts[i].SetTarget(fCache.Get().theTarget);
for (G4int i = 0; i < nProducts; ++i)
theProducts[i].SetTarget(&aTarget);
}
inline void SetProjectileRP(G4ReactionProduct& aIncidentPart)
void SetProjectileRP(G4ReactionProduct& aIncidentPart)
{
fCache.Get().theProjectileRP = &aIncidentPart;
for (G4int i = 0; i < nProducts; i++)
theProducts[i].SetProjectileRP(fCache.Get().theProjectileRP);
for (G4int i = 0; i < nProducts; ++i)
theProducts[i].SetProjectileRP(&aIncidentPart);
}
inline G4bool InCharge() { return inCharge; }
G4bool InCharge() { return inCharge; }
inline G4double GetTargetMass() { return targetMass; }
G4double GetTargetMass() { return targetMass; }
G4double GetNumberOfProducts() { return nProducts; }
G4double GetTotalMeanEnergy()
{
return fCache.Get().theTotalMeanEnergy; // cached in 'sample' call
}
private:
// data members
G4ParticleHPEnAngCorrelation(G4ParticleHPEnAngCorrelation&) = delete;
G4ParticleHPEnAngCorrelation& operator=
(const G4ParticleHPEnAngCorrelation &right) = delete;
G4double targetMass;
G4int frameFlag; // =1: Target rest frame; =2: CMS system; incident in lab
G4int nProducts;
G4ParticleHPProduct* theProducts;
G4bool inCharge;
private:
const G4ParticleDefinition* theProjectile;
G4ParticleHPProduct* theProducts{nullptr};
G4double targetMass{0.0};
G4int frameFlag{1}; // =1: Target rest frame; =2: CMS system; incident in lab
G4int nProducts{0};
G4bool inCharge{false};
// cached values
//
G4Cache<toBeCached> fCache;
G4ParticleDefinition* theProjectile;
};
#endif

Some files were not shown because too many files have changed in this diff Show More