Geant4 11.1.1
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4QMDReaction.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// -------------------------------------------------------------------
27// GEANT4 Class file
28//
29//
30// File name: G4QMDReaction.hh
31//
32// Author: Koi, Tatsumi (tkoi@slac.stanford.edu)
33//
34// Creation date: 02 April 2007
35// -----------------------------------------------------------------------------
36//
37// 081107 Add UnUseGEM (then use the default channel of G4Evaporation)
38// UseFrag (chage criterion of a inelastic reaction)
39// 090331 Change member shenXS and genspaXS object to pointer
40//
41
42#ifndef G4QMDReaction_hh
43#define G4QMDReaction_hh
44
45#include "G4QMDSystem.hh"
46#include "G4QMDCollision.hh"
47#include "G4QMDMeanField.hh"
48#include "G4QMDParticipant.hh"
49
51
52#include "G4Evaporation.hh"
54
58
60{
61 public:
64
65 std::vector< G4QMDSystem* > GetFinalStates();
66
68 G4Nucleus & targetNucleus);
69
70 G4ExcitationHandler* GetExcitationHandler() {return excitationHandler;};
71
72 void UnUseGEM() {gem = false; setEvaporationCh();};
73 void UseFRAG() {frag = true;};
74
75 void SetTMAX(G4int i) { maxTime = i; };
76 void SetDT(G4double t) { deltaT = t; };
77 void SetEF(G4double x) { envelopF = x; };
78
79 virtual void ModelDescription(std::ostream& outFile) const;
80
81 private:
82 //copy is unexpected
83 void operator =( const G4QMDReaction& ){};
85
86 void setEvaporationCh();
87 void setHighEnergyModel();
88
89 G4QMDMeanField* meanField;
90
91 G4QMDCollision* collision;
92
93 void doCollision();
94 std::vector< G4QMDSystem* > doClusterJudgment();
95
96 G4QMDSystem* system;
97 G4double deltaT;
98 G4int maxTime;
99 G4double envelopF;
100
101 G4Evaporation* evaporation;
102 G4ExcitationHandler* excitationHandler;
103
104 // b pd_proj pd_targ z_p a_p z_t a_t plab elab
105// G4double offSetOfCollision( G4double , G4ParticleDefinition* , G4ParticleDefinition* , G4int , G4int , G4int , G4int , G4double , G4double );
106 // b pd_proj pd_targ plab elab bmax boostToCM
107
108 void calcOffSetOfCollision(G4double, const G4ParticleDefinition*,
111
112 G4double coulomb_collision_gamma_proj;
113 G4double coulomb_collision_rx_proj;
114 G4double coulomb_collision_rz_proj;
115 G4double coulomb_collision_px_proj;
116 G4double coulomb_collision_pz_proj;
117
118 G4double coulomb_collision_gamma_targ;
119 G4double coulomb_collision_rx_targ;
120 G4double coulomb_collision_rz_targ;
121 G4double coulomb_collision_px_targ;
122 G4double coulomb_collision_pz_targ;
123
125
126 G4BGGPionElasticXS* pipElNucXS;
127 G4BGGPionElasticXS* pimElNucXS;
128 G4BGGPionInelasticXS* pipInelNucXS;
129 G4BGGPionInelasticXS* pimInelNucXS;
130
131 G4bool gem;
132 G4bool frag;
133 G4int secID; // Creator model ID for the secondaries
134};
135
136#endif
double G4double
Definition: G4Types.hh:83
bool G4bool
Definition: G4Types.hh:86
int G4int
Definition: G4Types.hh:85
void SetDT(G4double t)
std::vector< G4QMDSystem * > GetFinalStates()
G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
void SetEF(G4double x)
virtual void ModelDescription(std::ostream &outFile) const
void SetTMAX(G4int i)
G4ExcitationHandler * GetExcitationHandler()