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
G4PiMinusStopTa.cc
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// File name: G4PiMinusStopTa
27//
28// Author: Maria Grazia Pia (pia@genova.infn.it)
29//
30// Creation date: 8 May 1998
31//
32// -------------------------------------------------------------------
33
34#include "G4ios.hh"
35
36#include "G4PiMinusStopTa.hh"
37
38#include <vector>
39
40#include "globals.hh"
41#include "Randomize.hh"
42#include "G4Proton.hh"
43#include "G4Neutron.hh"
44#include "G4ParticleTypes.hh"
47#include "G4LorentzVector.hh"
50
51// np/pp production ratio
52// Experimental values:
53// R(np/pp) = 6.3 +- 1.4 (R. Madey et al., Phys Rev C25 (1982) 3050
54G4double G4PiMinusStopTa::npRatio = 17.;
55
56// Average numbers of final nucleons detected, for N-pair absorption
57// (R. Madey et al., Phys Rev C25 (1982) 3050
58G4double G4PiMinusStopTa::nFinalNucleons = 1.8;
59
60// Kinetic energy (MeV) distributions measured for coincident nucleon
61// emission
62// (R. Madey et al., Phys Rev C25 (1982) 3050
63
64G4int G4PiMinusStopTa::eKinEntries = 10;
65
66G4double G4PiMinusStopTa::eKinData[10] = { 0.24, 0.59, 1.13, 1.38,
67 1.50,
68 1.38, 1.13, 0.83, 0.49, 0.22};
69
70G4double G4PiMinusStopTa::eKin[11] = { 5.2, 12., 25., 41.5,
71 49.6,
72 57.7, 79.3, 94.4, 104., 120., 140.};
73
74
75// Opening angle distributions measured for coincident nucleon emission
76// (P.Heusi et al., Nucl. Phys. A407 (1983) 429
77
78G4int G4PiMinusStopTa::angleEntries = 7;
79
80G4double G4PiMinusStopTa::angleData[7] =
81{ 1.43, 1.67, 2.62, 4.29, 7.62, 11.90, 14.76 };
82
83G4double G4PiMinusStopTa::angle[8] = { 1.308997, 1.570796, 1.832596, 2.094395,
84 2.356194, 2.617994, 2.967060, 3.1415927 };
85
86
87
88// Constructor
89
91{
92 // Cluster size: nucleon pair, alpha, triton etc.
93 // First implementation: interaction with nucleon pair only
94 _clusterSize = 2;
95
96 // R ratio
97 theR = 1. / (1. + npRatio);
98
99 _definitions = new std::vector<G4ParticleDefinition*>();
100 _momenta = new std::vector<G4LorentzVector*>();
101
102 std::vector<double> eKinVector;
103 std::vector<double> eKinDataVector;
104 int i;
105 for (i=0; i<eKinEntries; i++)
106 {
107 eKinVector.push_back(eKin[i]);
108 eKinDataVector.push_back(eKinData[i]);
109 }
110 eKinVector.push_back(eKin[eKinEntries]);
111 _distributionE = new G4DistributionGenerator(eKinVector,eKinDataVector);
112
113 std::vector<double> angleVector;
114 std::vector<double> angleDataVector;
115 for (i=0; i<angleEntries; i++)
116 {
117 angleVector.push_back(angle[i]);
118 angleDataVector.push_back(angleData[i]);
119 }
120 angleVector.push_back(angle[angleEntries]);
121 _distributionAngle = new G4DistributionGenerator(angleVector,angleDataVector);
122}
123
124
125// Destructor
126
128{}
129
131{
132 return nFinalNucleons;
133}
134
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
std::vector< G4ParticleDefinition * > * _definitions
G4DistributionGenerator * _distributionE
std::vector< G4LorentzVector * > * _momenta
G4DistributionGenerator * _distributionAngle
virtual ~G4PiMinusStopTa()
virtual G4double FinalNucleons()