Geant4  10.02.p03
GFlashSamplingShowerParameterisation Class Reference

#include <GFlashSamplingShowerParameterisation.hh>

Inheritance diagram for GFlashSamplingShowerParameterisation:
Collaboration diagram for GFlashSamplingShowerParameterisation:

Public Member Functions

 GFlashSamplingShowerParameterisation (G4Material *aMat1, G4Material *aMat2, G4double d1, G4double d2, GFlashSamplingShowerTuning *aPar=0)
 
 ~GFlashSamplingShowerParameterisation ()
 
void ComputeRadialParameters (G4double y, G4double Tau)
 
void GenerateLongitudinalProfile (G4double Energy)
 
void ComputeZAX0EFFetc ()
 
G4double IntegrateEneLongitudinal (G4double LongitudinalStep)
 
G4double IntegrateNspLongitudinal (G4double LongitudinalStep)
 
G4double ComputeTau (G4double LongitudinalPosition)
 
void SetMaterial (G4Material *mat1, G4Material *mat2)
 
G4double GeneratePhi ()
 
G4double GenerateRadius (G4int ispot, G4double Energy, G4double LongitudinalPosition)
 
G4double GenerateExponential (G4double Energy)
 
G4double GetAveR99 ()
 
G4double GetAveR90 ()
 
G4double GetAveTmx ()
 
G4double GetAveT99 ()
 
G4double GetAveT90 ()
 
G4double GetNspot ()
 
G4double GetX0 ()
 
G4double GetEc ()
 
G4double GetRm ()
 
G4double ApplySampling (const G4double DEne, const G4double Energy)
 
- Public Member Functions inherited from GVFlashShowerParameterisation
 GVFlashShowerParameterisation ()
 
virtual ~GVFlashShowerParameterisation ()
 
G4double GeneratePhi ()
 
G4double GetEffZ (const G4Material *material)
 
G4double GetEffA (const G4Material *material)
 
G4double gam (G4double x, G4double a) const
 
void PrintMaterial (const G4Material *mat)
 

Private Member Functions

void ComputeLongitudinalParameters (G4double y)
 
void GenerateEnergyProfile (G4double y)
 
void GenerateNSpotProfile (G4double y)
 

Private Attributes

G4Materialmaterial1
 
G4Materialmaterial2
 
G4double density1
 
G4double A1
 
G4double Z1
 
G4double X01
 
G4double Ec1
 
G4double Rm1
 
G4double d1
 
G4double density2
 
G4double A2
 
G4double Z2
 
G4double X02
 
G4double Ec2
 
G4double Rm2
 
G4double d2
 
G4double Aeff
 
G4double Rhoeff
 
G4double X0eff
 
G4double Eceff
 
G4double Rmeff
 
G4double Fs
 
G4double ehat
 
G4double Zeff
 
G4double ConstantResolution
 
G4double NoiseResolution
 
G4double SamplingResolution
 
GFlashSamplingShowerTuningthePar
 
G4bool owning
 
G4double ParAveT1
 
G4double ParAveT2
 
G4double ParAveA1
 
G4double ParAveA2
 
G4double ParAveA3
 
G4double ParSigLogT1
 
G4double ParSigLogT2
 
G4double ParSigLogA1
 
G4double ParSigLogA2
 
G4double ParRho1
 
G4double ParRho2
 
G4double ParsAveT1
 
G4double ParsAveT2
 
G4double ParsAveA1
 
G4double ParsAveA2
 
G4double ParsSigLogT1
 
G4double ParsSigLogT2
 
G4double ParsSigLogA1
 
G4double ParsSigLogA2
 
G4double ParsRho1
 
G4double ParsRho2
 
G4double ParRC1
 
G4double ParRC2
 
G4double ParRC3
 
G4double ParRC4
 
G4double ParWC1
 
G4double ParWC2
 
G4double ParWC3
 
G4double ParWC4
 
G4double ParWC5
 
G4double ParWC6
 
G4double ParRT1
 
G4double ParRT2
 
G4double ParRT3
 
G4double ParRT4
 
G4double ParRT5
 
G4double ParRT6
 
G4double ParsRC1
 
G4double ParsRC2
 
G4double ParsWC1
 
G4double ParsWC2
 
G4double ParsRT1
 
G4double ParsRT2
 
G4double ParsSpotT1
 
G4double ParsSpotT2
 
G4double ParsSpotA1
 
G4double ParsSpotA2
 
G4double ParsSpotN1
 
G4double ParsSpotN2
 
G4double AveLogAlphah
 
G4double AveLogTmaxh
 
G4double SigmaLogAlphah
 
G4double SigmaLogTmaxh
 
G4double Rhoh
 
G4double Alphah
 
G4double Tmaxh
 
G4double Betah
 
G4double AveLogAlpha
 
G4double AveLogTmax
 
G4double SigmaLogAlpha
 
G4double SigmaLogTmax
 
G4double Rho
 
G4double Alpha
 
G4double Tmax
 
G4double Beta
 
G4double NSpot
 
G4double AlphaNSpot
 
G4double TNSpot
 
G4double BetaNSpot
 
G4double RadiusCore
 
G4double WeightCore
 
G4double RadiusTail
 

Additional Inherited Members

- Protected Attributes inherited from GVFlashShowerParameterisation
GVFlashHomoShowerTuningthePar
 
G4double density
 
G4double A
 
G4double Z
 
G4double X0
 
G4double Ec
 
G4double Rm
 
G4double NSpot
 

Detailed Description

Definition at line 50 of file GFlashSamplingShowerParameterisation.hh.

Constructor & Destructor Documentation

◆ GFlashSamplingShowerParameterisation()

GFlashSamplingShowerParameterisation::GFlashSamplingShowerParameterisation ( G4Material aMat1,
G4Material aMat2,
G4double  d1,
G4double  d2,
GFlashSamplingShowerTuning aPar = 0 
)

Definition at line 48 of file GFlashSamplingShowerParameterisation.cc.

52  ParAveT2(0.), ParSigLogT1(0.), ParSigLogT2(0.),
53  ParSigLogA1(0.), ParSigLogA2(0.), ParRho1(0.), ParRho2(0.), ParsAveA2(0.),
55  Rhoh(0.), Alphah(0.), Tmaxh(0.), Betah(0.), AveLogAlpha(0.), AveLogTmax(0.),
56  SigmaLogAlpha(0.), SigmaLogTmax(0.), Rho(0.), Alpha(0.), Tmax(0.), Beta(0.)
57 {
58  if(!aPar) { thePar = new GFlashSamplingShowerTuning; owning = true; }
59  else { thePar = aPar; owning = false; }
60 
61  SetMaterial(aMat1,aMat2 );
62  d1=dd1;
63  d2=dd2;
64 
65  // Longitudinal Coefficients for a homogenious calo
66 
67  // shower max
68  ParAveT1 = thePar->ParAveT1(); // ln (ln y -0.812)
69  ParAveA1 = thePar->ParAveA1(); // ln a (0.81 + (0.458 + 2.26/Z)ln y)
72  // Sampling
73  ParsAveT1 = thePar->ParsAveT1(); // T_sam = log(exp( log T_hom) + t1*Fs-1 + t2*(1-ehat));
76  // Variance of shower max sampling
77  ParsSigLogT1 = thePar->ParSigLogT1(); // Sigma T1 (-2.5 + 1.25 ln y)**-1
79  // variance of 'alpha'
80  ParsSigLogA1 = thePar->ParSigLogA1(); // Sigma a (-0.82 + 0.79 ln y)**-1
82  // correlation alpha%T
83  ParsRho1 = thePar->ParRho1(); // Rho = 0.784 -0.023 ln y
84  ParsRho2 = thePar->ParRho2();
85 
86  // Radial Coefficients
87  // r_C (tau)= z_1 +z_2 tau
88  // r_t (tau)= k1 (std::exp (k3(tau -k2 ))+std::exp (k_4 (tau- k_2))))
89  ParRC1 = thePar->ParRC1(); // z_1 = 0.0251 + 0.00319 ln E
90  ParRC2 = thePar->ParRC2();
91  ParRC3 = thePar->ParRC3(); // z_2 = 0.1162 + - 0.000381 Z
92  ParRC4 = thePar->ParRC4();
93 
94  ParWC1 = thePar->ParWC1();
95  ParWC2 = thePar->ParWC2();
96  ParWC3 = thePar->ParWC3();
97  ParWC4 = thePar->ParWC4();
98  ParWC5 = thePar->ParWC5();
99  ParWC6 = thePar->ParWC6();
100  ParRT1 = thePar->ParRT1();
101  ParRT2 = thePar->ParRT2();
102  ParRT3 = thePar->ParRT3();
103  ParRT4 = thePar->ParRT4();
104  ParRT5 = thePar->ParRT5();
105  ParRT6 = thePar->ParRT6();
106 
107  //additional sampling parameter
108  ParsRC1= thePar->ParsRC1();
109  ParsRC2= thePar->ParsRC2();
110  ParsWC1= thePar->ParsWC1();
111  ParsWC2= thePar->ParsWC2();
112  ParsRT1= thePar->ParsRT1();
113  ParsRT2= thePar->ParsRT2();
114 
115  // Coeff for fluctuedted radial profiles for a sampling media
116  ParsSpotT1 = thePar->ParSpotT1(); // T_spot = T_hom =(0.698 + 0.00212)
118  ParsSpotA1 = thePar->ParSpotA1(); // a_spot= a_hom (0.639 + 0.00334)
120  ParsSpotN1 = thePar->ParSpotN1(); // N_Spot 93 * ln(Z) E ** 0.876
125 
126  // Inits
127  NSpot = 0.00;
128  AlphaNSpot = 0.00;
129  TNSpot = 0.00;
130  BetaNSpot = 0.00;
131  RadiusCore = 0.00;
132  WeightCore = 0.00;
133  RadiusTail = 0.00;
135 
136  G4cout << "/********************************************/ " << G4endl;
137  G4cout << " - GFlashSamplingShowerParameterisation::Constructor - " << G4endl;
138  G4cout << "/********************************************/ " << G4endl;
139 }
G4GLOB_DLL std::ostream G4cout
void SetMaterial(G4Material *mat1, G4Material *mat2)
#define G4endl
Definition: G4ios.hh:61
Here is the call graph for this function:

◆ ~GFlashSamplingShowerParameterisation()

GFlashSamplingShowerParameterisation::~GFlashSamplingShowerParameterisation ( )

Definition at line 143 of file GFlashSamplingShowerParameterisation.cc.

Here is the call graph for this function:

Member Function Documentation

◆ ApplySampling()

G4double GFlashSamplingShowerParameterisation::ApplySampling ( const G4double  DEne,
const G4double  Energy 
)

Definition at line 294 of file GFlashSamplingShowerParameterisation.cc.

295 {
296  G4double DEneFluctuated = DEne;
297  G4double Resolution = std::pow(SamplingResolution,2);
298 
299  // +pow(NoiseResolution,2)/ //@@@@@@@@ FIXME
300  // Energy*(1.*MeV)+
301  // pow(ConstantResolution,2)*
302  // Energy/(1.*MeV);
303 
304  if(Resolution >0.0 && DEne > 0.00)
305  {
306  G4float x1=DEne/Resolution;
307  G4float x2 = G4RandGamma::shoot(x1, 1.0)*Resolution;
308  DEneFluctuated=x2;
309  }
310  return DEneFluctuated;
311 }
ThreeVector shoot(const G4int Ap, const G4int Af)
Double_t x2[nxs]
float G4float
Definition: G4Types.hh:77
Double_t x1[nxs]
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeLongitudinalParameters()

void GFlashSamplingShowerParameterisation::ComputeLongitudinalParameters ( G4double  y)
privatevirtual

Implements GVFlashShowerParameterisation.

Definition at line 234 of file GFlashSamplingShowerParameterisation.cc.

235 {
236  AveLogTmaxh = std::log(std::max(ParAveT1 +std::log(y),0.1)); //ok
237  AveLogAlphah = std::log(std::max(ParAveA1 + (ParAveA2+ParAveA3/Zeff)*std::log(y),.1)); //ok
238  //hom
239  SigmaLogTmaxh = std::min(0.5,1.00/( ParSigLogT1 + ParSigLogT2*std::log(y)) ); //ok
240  SigmaLogAlphah = std::min(0.5,1.00/( ParSigLogA1 + ParSigLogA2*std::log(y))); //ok
241  Rhoh = ParRho1+ParRho2*std::log(y);//ok
242  // if sampling
243  AveLogTmax = std::max(0.1,std::log(std::exp(AveLogTmaxh)
244  + ParsAveT1/Fs + ParsAveT2*(1-ehat))); //ok
245  AveLogAlpha = std::max(0.1,std::log(std::exp(AveLogAlphah)
246  + (ParsAveA1/Fs))); //ok
247  //
248  SigmaLogTmax = std::min(0.5,1.00/( ParsSigLogT1
249  + ParsSigLogT2*std::log(y)) ); //ok
250  SigmaLogAlpha = std::min(0.5,1.00/( ParsSigLogA1
251  + ParsSigLogA2*std::log(y))); //ok
252  Rho = ParsRho1+ParsRho2*std::log(y); //ok
253 }
Double_t y
Here is the caller graph for this function:

◆ ComputeRadialParameters()

void GFlashSamplingShowerParameterisation::ComputeRadialParameters ( G4double  y,
G4double  Tau 
)
virtual

Implements GVFlashShowerParameterisation.

Definition at line 383 of file GFlashSamplingShowerParameterisation.cc.

384 {
385  G4double z1 = ParRC1 + ParRC2* std::log(Energy/GeV); //ok
386  G4double z2 = ParRC3+ParRC4*Zeff; //ok
387  RadiusCore = z1 + z2 * Tau; //ok
388  G4double p1 = ParWC1+ParWC2*Zeff; //ok
389  G4double p2 = ParWC3+ParWC4*Zeff; //ok
390  G4double p3 = ParWC5+ParWC6*std::log(Energy/GeV); //ok
391  WeightCore = p1 * std::exp( (p2-Tau)/p3- std::exp( (p2-Tau) /p3) ); //ok
392 
393  G4double k1 = ParRT1+ParRT2*Zeff; // ok
394  G4double k2 = ParRT3; // ok
395  G4double k3 = ParRT4; // ok
396  G4double k4 = ParRT5+ParRT6* std::log(Energy/GeV); // ok
397 
398  RadiusTail = k1*(std::exp(k3*(Tau-k2))
399  + std::exp(k4*(Tau-k2)) ); //ok
400 
401  // sampling calorimeter
402 
403  RadiusCore = RadiusCore + ParsRC1*(1-ehat) + ParsRC2/Fs*std::exp(-Tau); //ok
404  WeightCore = WeightCore + (1-ehat)
405  * (ParsWC1+ParsWC2/Fs * std::exp(-std::pow((Tau-1.),2))); //ok
406  RadiusTail = RadiusTail + (1-ehat)* ParsRT1+ ParsRT2/Fs *std::exp(-Tau); //ok
407 }
static const double GeV
Definition: G4SIunits.hh:214
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeTau()

G4double GFlashSamplingShowerParameterisation::ComputeTau ( G4double  LongitudinalPosition)
virtual

Implements GVFlashShowerParameterisation.

Definition at line 372 of file GFlashSamplingShowerParameterisation.cc.

373 {
374  G4double tau = LongitudinalPosition / Tmax/ X0eff //<t> = T* a /(a - 1)
375  * (Alpha-1.00) /Alpha
376  * std::exp(AveLogAlpha)/(std::exp(AveLogAlpha)-1.); //ok
377  return tau;
378 }
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeZAX0EFFetc()

void GFlashSamplingShowerParameterisation::ComputeZAX0EFFetc ( )

Definition at line 174 of file GFlashSamplingShowerParameterisation.cc.

175 {
176  G4cout << "/************ ComputeZAX0EFFetc ************/" << G4endl;
177  G4cout << " - GFlashSamplingShowerParameterisation::Material - " << G4endl;
178 
179  G4double Es = 21*MeV; //constant
180 
181  // material and geometry parameters for a sampling calorimeter
182  G4double denominator = (d1*density1 + d2*density2);
183  G4double W1 = (d1*density1) / denominator;
184  G4double W2 = (d2*density2) / denominator;
185  Zeff = ( W1*Z1 ) + ( W2*Z2 ); //X0*Es/Ec;
186  Aeff = ( W1*A1 ) + ( W2*A2 );
187  X0eff = ( 1./ ( ( W1 / X01) +( W2 / X02) ) );
188  Rhoeff = ( (d1 *density1 ) + (d2 * density2 ))/G4double (d2 + d1 );
189  Rmeff = 1/ ((((W1*Ec1)/ X01) + ((W2* Ec2)/ X02) ) / Es ) ;
190  Eceff = X0eff *((W1*Ec1)/ X01 + (W2* Ec2)/ X02 );
191  Fs = X0eff/G4double ((d1/mm )+(d2/mm) );
192  ehat = (1. / (1+ 0.007*(Z1- Z2)));
193 
194  G4cout << "W1= " << W1 << G4endl;
195  G4cout << "W2= " << W2 << G4endl;
196  G4cout << "effective quantities Zeff = "<<Zeff<< G4endl;
197  G4cout << "effective quantities Aeff = "<<Aeff<< G4endl;
198  G4cout << "effective quantities Rhoeff = "<<Rhoeff/g *cm3<<" g/cm3" << G4endl;
199  G4cout << "effective quantities X0eff = "<<X0eff/cm <<" cm" << G4endl;
200 
201  X0eff = X0eff * Rhoeff;
202 
203  G4cout << "effective quantities X0eff = "<<X0eff/g*cm2 <<" g/cm2" << G4endl;
204  X0eff = X0eff /Rhoeff;
205  G4cout << "effective quantities RMeff = "<<Rmeff/cm<<" cm" << G4endl;
206  Rmeff = Rmeff* Rhoeff;
207  G4cout << "effective quantities RMeff = "<<Rmeff/g *cm2<<" g/cm2" << G4endl;
208  Rmeff = Rmeff/ Rhoeff;
209  G4cout << "effective quantities Eceff = "<<Eceff/MeV<< " MeV"<< G4endl;
210  G4cout << "effective quantities Fs = "<<Fs<<G4endl;
211  G4cout << "effective quantities ehat = "<<ehat<<G4endl;
212  G4cout << "/********************************************/ " <<G4endl;
213 }
static const double cm
Definition: G4SIunits.hh:118
static const double MeV
Definition: G4SIunits.hh:211
static const double cm2
Definition: G4SIunits.hh:119
function g(Y1, Y2, PT2)
Definition: hijing1.383.f:5206
G4GLOB_DLL std::ostream G4cout
static const double cm3
Definition: G4SIunits.hh:120
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static const double mm
Definition: G4SIunits.hh:114
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GenerateEnergyProfile()

void GFlashSamplingShowerParameterisation::GenerateEnergyProfile ( G4double  y)
privatevirtual

Implements GVFlashShowerParameterisation.

Definition at line 257 of file GFlashSamplingShowerParameterisation.cc.

258 {
259  G4double Correlation1 = std::sqrt((1+Rho)/2);
260  G4double Correlation2 = std::sqrt((1-Rho)/2);
261  G4double Correlation1h = std::sqrt((1+Rhoh)/2);
262  G4double Correlation2h = std::sqrt((1-Rhoh)/2);
263  G4double Random1 = G4RandGauss::shoot();
264  G4double Random2 = G4RandGauss::shoot();
265 
266  Tmax = std::max(1.,std::exp( AveLogTmax + SigmaLogTmax *
267  (Correlation1*Random1 + Correlation2*Random2) ));
268  Alpha = std::max(1.1,std::exp( AveLogAlpha + SigmaLogAlpha *
269  (Correlation1*Random1 - Correlation2*Random2) ));
270  Beta = (Alpha-1.00)/Tmax;
271  //Parameters for Enenrgy Profile including correaltion and sigmas
272  Tmaxh = std::exp( AveLogTmaxh + SigmaLogTmaxh *
273  (Correlation1h*Random1 + Correlation2h*Random2) );
274  Alphah = std::exp( AveLogAlphah + SigmaLogAlphah *
275  (Correlation1h*Random1 - Correlation2h*Random2) );
276  Betah = (Alphah-1.00)/Tmaxh;
277 }
ThreeVector shoot(const G4int Ap, const G4int Af)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GenerateExponential()

G4double GFlashSamplingShowerParameterisation::GenerateExponential ( G4double  Energy)
virtual

Implements GVFlashShowerParameterisation.

Definition at line 412 of file GFlashSamplingShowerParameterisation.cc.

413 {
414  G4double ParExp1 = 9./7.*X0eff;
415  G4double random = -ParExp1*G4RandExponential::shoot() ;
416  return random;
417 }
ThreeVector shoot(const G4int Ap, const G4int Af)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GenerateLongitudinalProfile()

void GFlashSamplingShowerParameterisation::GenerateLongitudinalProfile ( G4double  Energy)
virtual

Implements GVFlashShowerParameterisation.

Definition at line 218 of file GFlashSamplingShowerParameterisation.cc.

219 {
220  if ((material1==0) || (material2 ==0))
221  {
222  G4Exception("GFlashSamplingShowerParameterisation::GenerateLongitudinalProfile()",
223  "InvalidSetup", FatalException, "No material initialized!");
224  }
225  G4double y = Energy/Eceff;
229 }
Double_t y
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GenerateNSpotProfile()

void GFlashSamplingShowerParameterisation::GenerateNSpotProfile ( G4double  y)
privatevirtual

Implements GVFlashShowerParameterisation.

Definition at line 281 of file GFlashSamplingShowerParameterisation.cc.

282 {
283  TNSpot = Tmaxh * (ParsSpotT1+ParsSpotT2*Zeff); //ok.
286  BetaNSpot = (AlphaNSpot-1.00)/TNSpot; // ok
288 }
Double_t y
static const double GeV
Definition: G4SIunits.hh:214
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GeneratePhi()

G4double GFlashSamplingShowerParameterisation::GeneratePhi ( )

◆ GenerateRadius()

G4double GFlashSamplingShowerParameterisation::GenerateRadius ( G4int  ispot,
G4double  Energy,
G4double  LongitudinalPosition 
)
virtual

Implements GVFlashShowerParameterisation.

Definition at line 342 of file GFlashSamplingShowerParameterisation.cc.

343 {
344  if(ispot < 1)
345  {
346  // Determine lateral parameters in the middle of the step.
347  // They depend on energy & position along step
348  //
349  G4double Tau = ComputeTau(LongitudinalPosition);
350  ComputeRadialParameters(Energy,Tau);
351  }
352 
353  G4double Radius;
354  G4double Random1 = G4UniformRand();
355  G4double Random2 = G4UniformRand();
356  if(Random1 <WeightCore) //WeightCore = p < w_i
357  {
358  Radius = Rmeff * RadiusCore * std::sqrt( Random2/(1. - Random2) );
359  }
360  else
361  {
362  Radius = Rmeff * RadiusTail * std::sqrt( Random2/(1. - Random2) );
363  }
364  Radius = std::min(Radius,DBL_MAX);
365  return Radius;
366 }
G4double ComputeTau(G4double LongitudinalPosition)
#define G4UniformRand()
Definition: Randomize.hh:97
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAveR90()

G4double GFlashSamplingShowerParameterisation::GetAveR90 ( )
inlinevirtual

◆ GetAveR99()

G4double GFlashSamplingShowerParameterisation::GetAveR99 ( )
inlinevirtual

◆ GetAveT90()

G4double GFlashSamplingShowerParameterisation::GetAveT90 ( )
inlinevirtual

◆ GetAveT99()

◆ GetAveTmx()

G4double GFlashSamplingShowerParameterisation::GetAveTmx ( )
inlinevirtual

◆ GetEc()

G4double GFlashSamplingShowerParameterisation::GetEc ( )
inlinevirtual

◆ GetNspot()

G4double GFlashSamplingShowerParameterisation::GetNspot ( )
inlinevirtual

◆ GetRm()

G4double GFlashSamplingShowerParameterisation::GetRm ( )
inlinevirtual

Implements GVFlashShowerParameterisation.

Definition at line 83 of file GFlashSamplingShowerParameterisation.hh.

Here is the call graph for this function:

◆ GetX0()

G4double GFlashSamplingShowerParameterisation::GetX0 ( )
inlinevirtual

◆ IntegrateEneLongitudinal()

G4double GFlashSamplingShowerParameterisation::IntegrateEneLongitudinal ( G4double  LongitudinalStep)
virtual

Implements GVFlashShowerParameterisation.

Definition at line 316 of file GFlashSamplingShowerParameterisation.cc.

317 {
318  G4double LongitudinalStepInX0 = LongitudinalStep / X0eff;
319  G4float x1= Betah*LongitudinalStepInX0;
320  G4float x2= Alphah;
321  float x3 = gam(x1,x2);
322  G4double DEne=x3;
323  return DEne;
324 }
Double_t x2[nxs]
float G4float
Definition: G4Types.hh:77
G4double gam(G4double x, G4double a) const
Double_t x1[nxs]
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IntegrateNspLongitudinal()

G4double GFlashSamplingShowerParameterisation::IntegrateNspLongitudinal ( G4double  LongitudinalStep)
virtual

Implements GVFlashShowerParameterisation.

Definition at line 329 of file GFlashSamplingShowerParameterisation.cc.

330 {
331  G4double LongitudinalStepInX0 = LongitudinalStep / X0eff;
332  G4float x1 = BetaNSpot*LongitudinalStepInX0;
334  G4float x3 = gam(x1,x2);
335  G4double DNsp = x3;
336  return DNsp;
337 }
Double_t x2[nxs]
float G4float
Definition: G4Types.hh:77
G4double gam(G4double x, G4double a) const
Double_t x1[nxs]
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetMaterial()

void GFlashSamplingShowerParameterisation::SetMaterial ( G4Material mat1,
G4Material mat2 
)

Definition at line 151 of file GFlashSamplingShowerParameterisation.cc.

152 {
153  G4double Es = 21*MeV;
154  material1= mat1;
155  Z1 = GetEffZ(material1);
156  A1 = GetEffA(material1);
158  X01 = material1->GetRadlen();
159  Ec1 = 2.66 * std::pow((X01 * Z1 / A1),1.1);
160  Rm1 = X01*Es/Ec1;
161 
162  material2= mat2;
163  Z2 = GetEffZ(material2);
164  A2 = GetEffA(material2);
166  X02 = material2->GetRadlen();
167  Ec2 = 2.66 * std::pow((X02 * Z2 / A2),1.1);
168  Rm2 = X02*Es/Ec2;
169  // PrintMaterial();
170 }
G4double GetEffZ(const G4Material *material)
static const double MeV
Definition: G4SIunits.hh:211
G4double GetDensity() const
Definition: G4Material.hh:180
G4double GetEffA(const G4Material *material)
double G4double
Definition: G4Types.hh:76
G4double GetRadlen() const
Definition: G4Material.hh:220
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ A1

G4double GFlashSamplingShowerParameterisation::A1
private

Definition at line 92 of file GFlashSamplingShowerParameterisation.hh.

◆ A2

G4double GFlashSamplingShowerParameterisation::A2
private

Definition at line 93 of file GFlashSamplingShowerParameterisation.hh.

◆ Aeff

G4double GFlashSamplingShowerParameterisation::Aeff
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.

◆ Alpha

G4double GFlashSamplingShowerParameterisation::Alpha
private

Definition at line 163 of file GFlashSamplingShowerParameterisation.hh.

◆ Alphah

G4double GFlashSamplingShowerParameterisation::Alphah
private

Definition at line 154 of file GFlashSamplingShowerParameterisation.hh.

◆ AlphaNSpot

G4double GFlashSamplingShowerParameterisation::AlphaNSpot
private

Definition at line 167 of file GFlashSamplingShowerParameterisation.hh.

◆ AveLogAlpha

G4double GFlashSamplingShowerParameterisation::AveLogAlpha
private

Definition at line 160 of file GFlashSamplingShowerParameterisation.hh.

◆ AveLogAlphah

G4double GFlashSamplingShowerParameterisation::AveLogAlphah
private

Definition at line 151 of file GFlashSamplingShowerParameterisation.hh.

◆ AveLogTmax

G4double GFlashSamplingShowerParameterisation::AveLogTmax
private

Definition at line 160 of file GFlashSamplingShowerParameterisation.hh.

◆ AveLogTmaxh

G4double GFlashSamplingShowerParameterisation::AveLogTmaxh
private

Definition at line 151 of file GFlashSamplingShowerParameterisation.hh.

◆ Beta

G4double GFlashSamplingShowerParameterisation::Beta
private

Definition at line 163 of file GFlashSamplingShowerParameterisation.hh.

◆ Betah

G4double GFlashSamplingShowerParameterisation::Betah
private

Definition at line 154 of file GFlashSamplingShowerParameterisation.hh.

◆ BetaNSpot

G4double GFlashSamplingShowerParameterisation::BetaNSpot
private

Definition at line 167 of file GFlashSamplingShowerParameterisation.hh.

◆ ConstantResolution

G4double GFlashSamplingShowerParameterisation::ConstantResolution
private

Definition at line 98 of file GFlashSamplingShowerParameterisation.hh.

◆ d1

G4double GFlashSamplingShowerParameterisation::d1
private

Definition at line 92 of file GFlashSamplingShowerParameterisation.hh.

◆ d2

G4double GFlashSamplingShowerParameterisation::d2
private

Definition at line 93 of file GFlashSamplingShowerParameterisation.hh.

◆ density1

G4double GFlashSamplingShowerParameterisation::density1
private

Definition at line 92 of file GFlashSamplingShowerParameterisation.hh.

◆ density2

G4double GFlashSamplingShowerParameterisation::density2
private

Definition at line 93 of file GFlashSamplingShowerParameterisation.hh.

◆ Ec1

G4double GFlashSamplingShowerParameterisation::Ec1
private

Definition at line 92 of file GFlashSamplingShowerParameterisation.hh.

◆ Ec2

G4double GFlashSamplingShowerParameterisation::Ec2
private

Definition at line 93 of file GFlashSamplingShowerParameterisation.hh.

◆ Eceff

G4double GFlashSamplingShowerParameterisation::Eceff
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.

◆ ehat

G4double GFlashSamplingShowerParameterisation::ehat
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.

◆ Fs

G4double GFlashSamplingShowerParameterisation::Fs
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.

◆ material1

G4Material* GFlashSamplingShowerParameterisation::material1
private

Definition at line 91 of file GFlashSamplingShowerParameterisation.hh.

◆ material2

G4Material * GFlashSamplingShowerParameterisation::material2
private

Definition at line 91 of file GFlashSamplingShowerParameterisation.hh.

◆ NoiseResolution

G4double GFlashSamplingShowerParameterisation::NoiseResolution
private

Definition at line 99 of file GFlashSamplingShowerParameterisation.hh.

◆ NSpot

G4double GFlashSamplingShowerParameterisation::NSpot
private

Definition at line 167 of file GFlashSamplingShowerParameterisation.hh.

◆ owning

G4bool GFlashSamplingShowerParameterisation::owning
private

Definition at line 105 of file GFlashSamplingShowerParameterisation.hh.

◆ ParAveA1

G4double GFlashSamplingShowerParameterisation::ParAveA1
private

Definition at line 111 of file GFlashSamplingShowerParameterisation.hh.

◆ ParAveA2

G4double GFlashSamplingShowerParameterisation::ParAveA2
private

Definition at line 111 of file GFlashSamplingShowerParameterisation.hh.

◆ ParAveA3

G4double GFlashSamplingShowerParameterisation::ParAveA3
private

Definition at line 111 of file GFlashSamplingShowerParameterisation.hh.

◆ ParAveT1

G4double GFlashSamplingShowerParameterisation::ParAveT1
private

Definition at line 110 of file GFlashSamplingShowerParameterisation.hh.

◆ ParAveT2

G4double GFlashSamplingShowerParameterisation::ParAveT2
private

Definition at line 110 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRC1

G4double GFlashSamplingShowerParameterisation::ParRC1
private

Definition at line 130 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRC2

G4double GFlashSamplingShowerParameterisation::ParRC2
private

Definition at line 130 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRC3

G4double GFlashSamplingShowerParameterisation::ParRC3
private

Definition at line 130 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRC4

G4double GFlashSamplingShowerParameterisation::ParRC4
private

Definition at line 130 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRho1

G4double GFlashSamplingShowerParameterisation::ParRho1
private

Definition at line 114 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRho2

G4double GFlashSamplingShowerParameterisation::ParRho2
private

Definition at line 114 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRT1

G4double GFlashSamplingShowerParameterisation::ParRT1
private

Definition at line 133 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRT2

G4double GFlashSamplingShowerParameterisation::ParRT2
private

Definition at line 133 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRT3

G4double GFlashSamplingShowerParameterisation::ParRT3
private

Definition at line 133 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRT4

G4double GFlashSamplingShowerParameterisation::ParRT4
private

Definition at line 133 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRT5

G4double GFlashSamplingShowerParameterisation::ParRT5
private

Definition at line 134 of file GFlashSamplingShowerParameterisation.hh.

◆ ParRT6

G4double GFlashSamplingShowerParameterisation::ParRT6
private

Definition at line 134 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsAveA1

G4double GFlashSamplingShowerParameterisation::ParsAveA1
private

Definition at line 120 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsAveA2

G4double GFlashSamplingShowerParameterisation::ParsAveA2
private

Definition at line 120 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsAveT1

G4double GFlashSamplingShowerParameterisation::ParsAveT1
private

Definition at line 119 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsAveT2

G4double GFlashSamplingShowerParameterisation::ParsAveT2
private

Definition at line 119 of file GFlashSamplingShowerParameterisation.hh.

◆ ParSigLogA1

G4double GFlashSamplingShowerParameterisation::ParSigLogA1
private

Definition at line 113 of file GFlashSamplingShowerParameterisation.hh.

◆ ParSigLogA2

G4double GFlashSamplingShowerParameterisation::ParSigLogA2
private

Definition at line 113 of file GFlashSamplingShowerParameterisation.hh.

◆ ParSigLogT1

G4double GFlashSamplingShowerParameterisation::ParSigLogT1
private

Definition at line 112 of file GFlashSamplingShowerParameterisation.hh.

◆ ParSigLogT2

G4double GFlashSamplingShowerParameterisation::ParSigLogT2
private

Definition at line 112 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsRC1

G4double GFlashSamplingShowerParameterisation::ParsRC1
private

Definition at line 138 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsRC2

G4double GFlashSamplingShowerParameterisation::ParsRC2
private

Definition at line 138 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsRho1

G4double GFlashSamplingShowerParameterisation::ParsRho1
private

Definition at line 123 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsRho2

G4double GFlashSamplingShowerParameterisation::ParsRho2
private

Definition at line 123 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsRT1

G4double GFlashSamplingShowerParameterisation::ParsRT1
private

Definition at line 140 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsRT2

G4double GFlashSamplingShowerParameterisation::ParsRT2
private

Definition at line 140 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSigLogA1

G4double GFlashSamplingShowerParameterisation::ParsSigLogA1
private

Definition at line 122 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSigLogA2

G4double GFlashSamplingShowerParameterisation::ParsSigLogA2
private

Definition at line 122 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSigLogT1

G4double GFlashSamplingShowerParameterisation::ParsSigLogT1
private

Definition at line 121 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSigLogT2

G4double GFlashSamplingShowerParameterisation::ParsSigLogT2
private

Definition at line 121 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSpotA1

G4double GFlashSamplingShowerParameterisation::ParsSpotA1
private

Definition at line 144 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSpotA2

G4double GFlashSamplingShowerParameterisation::ParsSpotA2
private

Definition at line 144 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSpotN1

G4double GFlashSamplingShowerParameterisation::ParsSpotN1
private

Definition at line 145 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSpotN2

G4double GFlashSamplingShowerParameterisation::ParsSpotN2
private

Definition at line 145 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSpotT1

G4double GFlashSamplingShowerParameterisation::ParsSpotT1
private

Definition at line 144 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsSpotT2

G4double GFlashSamplingShowerParameterisation::ParsSpotT2
private

Definition at line 144 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsWC1

G4double GFlashSamplingShowerParameterisation::ParsWC1
private

Definition at line 139 of file GFlashSamplingShowerParameterisation.hh.

◆ ParsWC2

G4double GFlashSamplingShowerParameterisation::ParsWC2
private

Definition at line 139 of file GFlashSamplingShowerParameterisation.hh.

◆ ParWC1

G4double GFlashSamplingShowerParameterisation::ParWC1
private

Definition at line 131 of file GFlashSamplingShowerParameterisation.hh.

◆ ParWC2

G4double GFlashSamplingShowerParameterisation::ParWC2
private

Definition at line 131 of file GFlashSamplingShowerParameterisation.hh.

◆ ParWC3

G4double GFlashSamplingShowerParameterisation::ParWC3
private

Definition at line 131 of file GFlashSamplingShowerParameterisation.hh.

◆ ParWC4

G4double GFlashSamplingShowerParameterisation::ParWC4
private

Definition at line 132 of file GFlashSamplingShowerParameterisation.hh.

◆ ParWC5

G4double GFlashSamplingShowerParameterisation::ParWC5
private

Definition at line 132 of file GFlashSamplingShowerParameterisation.hh.

◆ ParWC6

G4double GFlashSamplingShowerParameterisation::ParWC6
private

Definition at line 132 of file GFlashSamplingShowerParameterisation.hh.

◆ RadiusCore

G4double GFlashSamplingShowerParameterisation::RadiusCore
private

Definition at line 171 of file GFlashSamplingShowerParameterisation.hh.

◆ RadiusTail

G4double GFlashSamplingShowerParameterisation::RadiusTail
private

Definition at line 171 of file GFlashSamplingShowerParameterisation.hh.

◆ Rho

G4double GFlashSamplingShowerParameterisation::Rho
private

Definition at line 162 of file GFlashSamplingShowerParameterisation.hh.

◆ Rhoeff

G4double GFlashSamplingShowerParameterisation::Rhoeff
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.

◆ Rhoh

G4double GFlashSamplingShowerParameterisation::Rhoh
private

Definition at line 153 of file GFlashSamplingShowerParameterisation.hh.

◆ Rm1

G4double GFlashSamplingShowerParameterisation::Rm1
private

Definition at line 92 of file GFlashSamplingShowerParameterisation.hh.

◆ Rm2

G4double GFlashSamplingShowerParameterisation::Rm2
private

Definition at line 93 of file GFlashSamplingShowerParameterisation.hh.

◆ Rmeff

G4double GFlashSamplingShowerParameterisation::Rmeff
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.

◆ SamplingResolution

G4double GFlashSamplingShowerParameterisation::SamplingResolution
private

Definition at line 100 of file GFlashSamplingShowerParameterisation.hh.

◆ SigmaLogAlpha

G4double GFlashSamplingShowerParameterisation::SigmaLogAlpha
private

Definition at line 161 of file GFlashSamplingShowerParameterisation.hh.

◆ SigmaLogAlphah

G4double GFlashSamplingShowerParameterisation::SigmaLogAlphah
private

Definition at line 152 of file GFlashSamplingShowerParameterisation.hh.

◆ SigmaLogTmax

G4double GFlashSamplingShowerParameterisation::SigmaLogTmax
private

Definition at line 161 of file GFlashSamplingShowerParameterisation.hh.

◆ SigmaLogTmaxh

G4double GFlashSamplingShowerParameterisation::SigmaLogTmaxh
private

Definition at line 152 of file GFlashSamplingShowerParameterisation.hh.

◆ thePar

GFlashSamplingShowerTuning* GFlashSamplingShowerParameterisation::thePar
private

Definition at line 104 of file GFlashSamplingShowerParameterisation.hh.

◆ Tmax

G4double GFlashSamplingShowerParameterisation::Tmax
private

Definition at line 163 of file GFlashSamplingShowerParameterisation.hh.

◆ Tmaxh

G4double GFlashSamplingShowerParameterisation::Tmaxh
private

Definition at line 154 of file GFlashSamplingShowerParameterisation.hh.

◆ TNSpot

G4double GFlashSamplingShowerParameterisation::TNSpot
private

Definition at line 167 of file GFlashSamplingShowerParameterisation.hh.

◆ WeightCore

G4double GFlashSamplingShowerParameterisation::WeightCore
private

Definition at line 171 of file GFlashSamplingShowerParameterisation.hh.

◆ X01

G4double GFlashSamplingShowerParameterisation::X01
private

Definition at line 92 of file GFlashSamplingShowerParameterisation.hh.

◆ X02

G4double GFlashSamplingShowerParameterisation::X02
private

Definition at line 93 of file GFlashSamplingShowerParameterisation.hh.

◆ X0eff

G4double GFlashSamplingShowerParameterisation::X0eff
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.

◆ Z1

G4double GFlashSamplingShowerParameterisation::Z1
private

Definition at line 92 of file GFlashSamplingShowerParameterisation.hh.

◆ Z2

G4double GFlashSamplingShowerParameterisation::Z2
private

Definition at line 93 of file GFlashSamplingShowerParameterisation.hh.

◆ Zeff

G4double GFlashSamplingShowerParameterisation::Zeff
private

Definition at line 94 of file GFlashSamplingShowerParameterisation.hh.


The documentation for this class was generated from the following files: