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
GVFlashHomoShowerTuning.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// $Id$
28//
29//
30// ---------------------------------------------------------------
31// GEANT 4 class header file
32//
33// GVFlashHomoShowerTuning
34//
35// Class description:
36//
37// Tuning class for GFlash homogeneous shower parameterisation.
38// Definitions:
39// <t>: shower center of gravity
40// T: Depth at shower maximum
41// Ec: Critical energy
42// X0: Radiation length
43// y = E/Ec
44//
45// Homogeneous media:
46// Average shower profile
47// (1/E)(dE(t)/dt) = f(t)
48// = (beta*t)**(alpha-1)*beta*std::exp(-beta*t)/Gamma(alpha)
49// where Gamma is the Gamma function
50//
51// <t> = alpha/beta
52// T = (alpha-1)/beta
53// and
54// T = ln(y) + t1
55// alpha = a1+(a2+a3/Z)ln(y)
56
57// Author: J.P. Wellisch - October 2004
58//---------------------------------------------------------------
59#ifndef GVFlashHomoShowerTuning_hh
60#define GVFlashHomoShowerTuning_hh
61
63{
64 public:
67
68 public: // with description
69
70 virtual G4double ParAveT1(){ return -0.812;} // t1
71 virtual G4double ParAveA1(){ return 0.81; } // a1
72 virtual G4double ParAveA2(){ return 0.458; } // a2
73 virtual G4double ParAveA3(){ return 2.26; } // a3
74
75 virtual G4double ParSigLogT1(){ return -1.4;} // t1
76 virtual G4double ParSigLogT2(){ return 1.26;} // t2
77 // std::sqrt(var(ln(T))) = 1/(t+t2*ln(y))
78
79 virtual G4double ParSigLogA1(){ return -0.58;} // a1
80 virtual G4double ParSigLogA2(){ return 0.86; } // a2
81 // std::sqrt(var(ln(alpha))) = 1/(a1+a2*ln(y))
82
83 virtual G4double ParRho1(){ return 0.705; } // r1
84 virtual G4double ParRho2(){ return -0.023;} // r2
85 // Correlation(ln(T),ln(alpha))=r1+r2*ln(y)
86
87 // Radial profiles
88 // f(r) := (1/dE(t))(dE(t,r)/dr)
89 // Ansatz:
90 // f(r) = p(2*r*Rc**2)/(r**2+Rc**2)**2+(1-p)*(2*r*Rt**2)/(r**2+Rt**2)**2,
91 // 0<p<1
92
93 virtual G4double ParRC1(){ return 0.0251; } // c1
94 virtual G4double ParRC2(){ return 0.00319; } // c2
95 virtual G4double ParRC3(){ return 0.1162; } // c3
96 virtual G4double ParRC4(){ return -0.000381;} // c4
97 // Rc (t/T)= z1 +z2*t/T
98 // z1 = c1+c2*ln(E/GeV)
99 // z2 = c3+c4*Z
100
101 virtual G4double ParRT1(){ return 0.659; } // t1
102 virtual G4double ParRT2(){ return -0.00309;} // t2
103 virtual G4double ParRT3(){ return 0.645; } // k2
104 virtual G4double ParRT4(){ return -2.59; } // k3
105 virtual G4double ParRT5(){ return 0.3585; } // t5
106 virtual G4double ParRT6(){ return 0.0412; } // t6
107 // Rt (t/T)= k1*(std::exp(k3*(t/T-k2))+std::exp(k4*(t/T-k2)))
108 // k1 = t1+t2*Z
109 // k4 = t5+t6*ln(E/GeV)
110
111 virtual G4double ParWC1(){ return 2.632; } // c1
112 virtual G4double ParWC2(){ return -0.00094;} // c2
113 virtual G4double ParWC3(){ return 0.401; } // c3
114 virtual G4double ParWC4(){ return 0.00187; } // c4
115 virtual G4double ParWC5(){ return 1.313; } // c5
116 virtual G4double ParWC6(){ return -0.0686; } // c6
117 // p(t/T) = p1*std::exp((p2-t/T)/p3 - std::exp((p2-t/T)/p3))
118 // p1 = c1+c2*Z
119 // p2 = c3+c4*Z
120 // p3 = c5 + c6*ln(E/GeV)
121
122 virtual G4double ParSpotN1(){ return 93.; } // n1
123 virtual G4double ParSpotN2(){ return 0.876;} // n2
124 // Fluctuations on radial profiles through number of spots
125 // The total number of spots needed for a shower is
126 // Ns = n1*ln(Z)(E/GeV)**n2
127
128 // The number of spots per longitudinal interval is:
129 // (1/Ns)(dNs(t)/dt) = f(t)
130 // = (beta*t)**(alpha-1)*beta*std::exp(-beta*t)/Gamma(alpha)
131 // <t> = alpha_s/beta_s
132 // Ts = (alpha_s-1)/beta_s
133 // and
134 // Ts = T*(t1+t2*Z)
135 // alpha_s = alpha*(a1+a2*Z)
136
137 virtual G4double ParSpotT1(){ return 0.698; } // t1
138 virtual G4double ParSpotT2(){ return 0.00212;} // t2
139
140 virtual G4double ParSpotA1(){ return 0.639; } //a1
141 virtual G4double ParSpotA2(){ return 0.00334;} //a2
142
143};
144
145#endif
double G4double
Definition: G4Types.hh:64