Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4QNGamma.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26// GEANT4 tag $Name: not supported by cvs2svn $
27//
28// ---------------- G4QNGamma header ----------------
29// by Mikhail Kossov, April 2012.
30// Header of G4QNGamma class (neutrons) of the CHIPS Simulation Branch in GEANT4
31// -------------------------------------------------------------------------------
32// This is a CHIPS class for the (n,gamma) reactions.
33// -------------------------------------------------------------------------------
34// ****************************************************************************************
35// This Header is a part of the CHIPS physics package (author: M. Kosov)
36// ****************************************************************************************
37// Short description: This is a CHIPS process class for (n,gamma) reactions.
38// -------------------------------------------------------------------------
39
40#ifndef G4QNGamma_hh
41#define G4QNGamma_hh
42
43// GEANT4 Headers
44#include "globals.hh"
45#include "G4ios.hh"
46#include "Randomize.hh"
47#include "G4QThd.hh"
48#include "G4VDiscreteProcess.hh"
49#include "G4Track.hh"
50#include "G4Step.hh"
51#include "G4ParticleTypes.hh"
52#include "G4VParticleChange.hh"
54#include "G4DynamicParticle.hh"
55#include "G4ThreeVector.hh"
56#include "G4LorentzVector.hh"
57#include "G4RandomDirection.hh"
58
59// CHIPS Headers
60#include "G4VQCrossSection.hh"
61#include "G4QIsotope.hh"
64#include "G4QPDGToG4Particle.hh"
65
67{
68public:
69
70 // Constructor
71 G4QNGamma(const G4String& processName = "CHIPS_N-Gamma" );
72
73 // Destructor
74 ~G4QNGamma();
75
77
78 G4double GetMeanFreePath(const G4Track& aTrack, G4double previousStepSize,
80 // It returns the MeanFreePath of the process for the current track :
81 // (energy, material)
82 // The previousStepSize and G4ForceCondition* are not used.
83 // This function overloads a virtual function of the base class.
84 // It is invoked by the ProcessManager of the Particle.
85
86
87 G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep);
88 // It computes the final state of the process (at end of step),
89 // returned as a ParticleChange object.
90 // This function overloads a virtual function of the base class.
91 // It is invoked by the ProcessManager of the Particle.
92
93 // Fake void functions
97
98 // Internal Energy-Momentum Residual
100
101 // Number of neutrons in the target nucleus (primary)
103
104
105private:
106
107 // Hide assignment operator as private
108 G4QNGamma& operator=(const G4QNGamma &right);
109
110 // Copy constructor
111 G4QNGamma(const G4QNGamma&);
112
113 // BODY
114 // Working parameters
115 G4LorentzVector EnMomConservation; // Residual of Energy/Momentum Cons.
116 G4int nOfNeutrons; // #of neutrons in the target nucleus
117
118 // Modifires for the reaction
119 G4double Time; // Time shift of the capture reaction
120 G4double EnergyDeposition; // Energy deposited in the reaction
121 static std::vector <G4int> ElementZ; // Z of the element(i) in theLastCalc
122 static std::vector <G4double> ElProbInMat; // SumProbabilityElements in Material
123 static std::vector <std::vector<G4int>*> ElIsoN; // N of isotope(j) of Element(i)
124 static std::vector <std::vector<G4double>*> IsoProbInEl;// SumProbabIsotopes in Element i
125};
126#endif
G4double condition(const G4ErrorSymMatrix &m)
G4ForceCondition
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4bool IsApplicable(const G4ParticleDefinition &particle)
Definition: G4QNGamma.cc:250
void BuildPhysicsTable(const G4ParticleDefinition &)
Definition: G4QNGamma.hh:95
G4double GetMeanFreePath(const G4Track &aTrack, G4double previousStepSize, G4ForceCondition *condition)
Definition: G4QNGamma.cc:102
void PrintInfoDefinition()
Definition: G4QNGamma.hh:96
~G4QNGamma()
Definition: G4QNGamma.cc:67
G4int GetNumberOfNeutronsInTarget()
Definition: G4QNGamma.cc:93
G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
Definition: G4QNGamma.cc:259
G4LorentzVector GetEnegryMomentumConservation()
Definition: G4QNGamma.cc:88
void SetPhysicsTableBining(G4double, G4double, G4int)
Definition: G4QNGamma.hh:94
Definition: G4Step.hh:78