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
GFlashSamplingShowerParameterisation.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// GFlashSamplingShowerParameterisation
34//
35// Class description:
36//
37// GFlash concrete sampling shower parameterisation
38
39// Author: Joanna Weng - 02.2004
40//---------------------------------------------------------------
41#ifndef GFlashSamplingShowerParameterisation_h
42#define GFlashSamplingShowerParameterisation_h 1
43
44#include "globals.hh"
47
48class G4Material;
49
52{
53 public:
54
56 G4double d1, G4double d2,
59
62 void ComputeZAX0EFFetc();
63
66 G4double ComputeTau(G4double LongitudinalPosition);
67 void SetMaterial(G4Material *mat1, G4Material *mat2);
70 G4double LongitudinalPosition);
72
73 inline G4double GetAveR99() {return (3.5 * Rmeff);}
74 inline G4double GetAveR90() {return (1.5 * Rmeff);} //ok
75 //
76 inline G4double GetAveTmx() {return (X0eff*std::exp(AveLogTmax));}
77 inline G4double GetAveT99() {return (X0eff*AveLogTmax/(AveLogAlpha-1.00));}
78 inline G4double GetAveT90() {return (2.5* X0eff* std::exp( AveLogTmax));}
79 //
80 inline G4double GetNspot() {return NSpot;}
81 inline G4double GetX0() {return X0eff;}
82 inline G4double GetEc() {return Eceff;}
83 inline G4double GetRm() {return Rmeff;}
84
85 G4double ApplySampling(const G4double DEne, const G4double Energy);
86
87 private:
88
89 // medium related quantities
90 //
91 G4Material *material1, *material2 ;
92 G4double density1, A1, Z1, X01, Ec1, Rm1, d1;
93 G4double density2, A2, Z2, X02, Ec2, Rm2, d2;
94 G4double Aeff, Rhoeff, X0eff, Eceff, Rmeff, Fs, ehat, Zeff;
95
96 // Resolution
97 //
98 G4double ConstantResolution;
99 G4double NoiseResolution;
100 G4double SamplingResolution;
101
102 // parametrization parameters
103 //
105 G4bool owning;
106
107 // Cashed parameters:
108 // Longitudinal Coefficients for a homogenious calo
109 //
110 G4double ParAveT1, ParAveT2;
111 G4double ParAveA1,ParAveA2, ParAveA3;
112 G4double ParSigLogT1,ParSigLogT2;
113 G4double ParSigLogA1,ParSigLogA2;
114 G4double ParRho1,ParRho2;
115
116 //Cashed parameters:
117 // Longitudinal Coefficients for a sampling calo
118 //
119 G4double ParsAveT1, ParsAveT2;
120 G4double ParsAveA1,ParsAveA2;
121 G4double ParsSigLogT1,ParsSigLogT2;
122 G4double ParsSigLogA1,ParsSigLogA2;
123 G4double ParsRho1,ParsRho2;
124 void ComputeLongitudinalParameters(G4double y);
125 void GenerateEnergyProfile(G4double y);
126 void GenerateNSpotProfile(G4double y);
127
128 // Radial Coefficients homo
129 //
130 G4double ParRC1,ParRC2,ParRC3,ParRC4;
131 G4double ParWC1,ParWC2,ParWC3;
132 G4double ParWC4,ParWC5,ParWC6;
133 G4double ParRT1,ParRT2,ParRT3,ParRT4;
134 G4double ParRT5,ParRT6;
135
136 // Radial Coefficients sampling
137 //
138 G4double ParsRC1,ParsRC2;
139 G4double ParsWC1,ParsWC2;
140 G4double ParsRT1,ParsRT2;
141
142 // Spot multiplicity Coefficients
143 //
144 G4double ParsSpotT1,ParsSpotT2,ParsSpotA1, ParsSpotA2;
145 G4double ParsSpotN1,ParsSpotN2;
146
147 // PARAMETRISATION variables (Energy & position dependent)
148 // Longitudinal
149 // homogeneous
150 //
151 G4double AveLogAlphah,AveLogTmaxh;
152 G4double SigmaLogAlphah,SigmaLogTmaxh;
153 G4double Rhoh;
154 G4double Alphah,Tmaxh,Betah;
155
156 // PARAMETRISATION variables (Energy & position dependent)
157 // Longitudinal
158 // sampling
159 //
160 G4double AveLogAlpha,AveLogTmax;
161 G4double SigmaLogAlpha,SigmaLogTmax;
162 G4double Rho;
163 G4double Alpha,Tmax,Beta;
164
165 // Multiplicity
166 //
167 G4double NSpot,AlphaNSpot,TNSpot,BetaNSpot;
168
169 //Radial
170 //
171 G4double RadiusCore, WeightCore,RadiusTail;
172};
173
174#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4double GenerateRadius(G4int ispot, G4double Energy, G4double LongitudinalPosition)
G4double ApplySampling(const G4double DEne, const G4double Energy)
G4double IntegrateNspLongitudinal(G4double LongitudinalStep)
G4double IntegrateEneLongitudinal(G4double LongitudinalStep)
G4double ComputeTau(G4double LongitudinalPosition)
void SetMaterial(G4Material *mat1, G4Material *mat2)