![]() |
|
|||
File indexing completed on 2025-08-02 08:29:02
0001 // 0002 // ******************************************************************** 0003 // * License and Disclaimer * 0004 // * * 0005 // * The Geant4 software is copyright of the Copyright Holders of * 0006 // * the Geant4 Collaboration. It is provided under the terms and * 0007 // * conditions of the Geant4 Software License, included in the file * 0008 // * LICENSE and available at http://cern.ch/geant4/license . These * 0009 // * include a list of copyright holders. * 0010 // * * 0011 // * Neither the authors of this software system, nor their employing * 0012 // * institutes,nor the agencies providing financial support for this * 0013 // * work make any representation or warranty, express or implied, * 0014 // * regarding this software system or assume any liability for its * 0015 // * use. Please see the license in the file LICENSE and URL above * 0016 // * for the full disclaimer and the limitation of liability. * 0017 // * * 0018 // * This code implementation is the result of the scientific and * 0019 // * technical work of the GEANT4 collaboration. * 0020 // * By using, copying, modifying or distributing the software (or * 0021 // * any work based on the software) you agree to acknowledge its * 0022 // * use in resulting scientific publications, and indicate your * 0023 // * acceptance of all terms of the Geant4 Software license. * 0024 // ******************************************************************** 0025 // 0026 // 0027 // ------------------------------------------------------------------- 0028 // 0029 // GEANT4 header file 0030 // 0031 // File name: G4NuDEXNeutronCaptureModel 0032 // 0033 // Author: E.Mendoza & A.Ribon 0034 // 0035 // Creation date: 29 May 2024 0036 // 0037 // Description: This class (a proxy of the class G4NuDEX) uses 0038 // the NuDEX model to produce gammas and internal 0039 // conversion electrons from neutron capture. 0040 // Whenever NuDEX is not applicable, G4PhotonEvaporation 0041 // is used. 0042 // The implementation of this class follows the code 0043 // of the class G4NeutronRadCapture. 0044 // 0045 // Modifications: 0046 // 0047 // ------------------------------------------------------------------- 0048 // 0049 // Class to use NuDEX model inside Geant4 0050 // 0051 0052 #ifndef G4NUDEXNEUTRONCAPTUREMODEL_HH 0053 #define G4NUDEXNEUTRONCAPTUREMODEL_HH 1 0054 0055 #include "globals.hh" 0056 #include "G4HadronicInteraction.hh" 0057 #include "G4HadProjectile.hh" 0058 #include "G4Nucleus.hh" 0059 0060 class G4NuDEXStatisticalNucleus; 0061 class G4VEvaporationChannel; 0062 0063 0064 #define G4NUDEX_MAXZA 120000 0065 0066 0067 class G4NuDEXNeutronCaptureModel : public G4HadronicInteraction { 0068 public: 0069 explicit G4NuDEXNeutronCaptureModel(); 0070 virtual ~G4NuDEXNeutronCaptureModel(); 0071 0072 virtual G4HadFinalState* ApplyYourself( const G4HadProjectile &aTrack, G4Nucleus &targetNucleus ) final; 0073 virtual void InitialiseModel() final; 0074 0075 private: 0076 G4NuDEXNeutronCaptureModel & operator=( const G4NuDEXNeutronCaptureModel &right ) = delete; 0077 G4NuDEXNeutronCaptureModel( const G4NuDEXNeutronCaptureModel& ) = delete; 0078 0079 G4int GenerateNeutronCaptureCascade( G4int theZ, G4int theA, G4double NeutronEnergy, G4int InitialLevel, 0080 std::vector< char >& pType, std::vector< G4double >& pEnergy, std::vector< G4double >& pTime ); 0081 0082 // Initial level for neutron capture. If jspinx2v < 0 it is sampled according to the 2J+1 rule 0083 // l-spin = 0, 1, 2 --> s-wave, p-wave, d-wave ... 0084 G4int SelectInitialLevel( G4int theCompoundZ, G4int theCompoundA, G4double NeutronEnergy, G4int lspin, G4int jspinx2 ); 0085 G4int SampleJ( G4int theCompoundZ, G4int theCompoundA, G4int lspin ); 0086 G4int GetAllowedJx2values( G4int theCompoundZ, G4int theCompoundA, G4int lspin, G4int* jx2vals ); 0087 0088 const G4NuDEXStatisticalNucleus* GetStatisticalNucleus( G4int za ) { return theStatisticalNucleus[za]; } 0089 G4int Init( G4int theZA, unsigned int seed1 = 0, unsigned int seed2 = 0, unsigned int seed3 = 0 ); 0090 void SetBandWidth( G4double bandWidth ) { BandWidth = bandWidth; } 0091 void SetBrOption( G4int brOption ) { BrOption = brOption; } 0092 0093 G4NuDEXStatisticalNucleus* theStatisticalNucleus[G4NUDEX_MAXZA]; 0094 G4int HasData[G4NUDEX_MAXZA]; // -1:no; 0:don't know; 1:yes 0095 G4String NuDEXLibDirectory; 0096 G4int BrOption; 0097 G4double BandWidth; 0098 0099 G4int secID; // creator model ID for the other secondaries produced by this model 0100 G4double lowestEnergyLimit; 0101 G4double minExcitation; 0102 G4VEvaporationChannel* photonEvaporation; // Needed when NuDEX is not applicable 0103 }; 0104 0105 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |