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
GFlashHomoShowerParameterisation.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// GFlashHomoShowerParameterisation
34//
35// Class description:
36//
37// GFlash homogeneous shower parameterisation.
38
39// Author: Joanna Weng - 02.2004
40// ---------------------------------------------------------------
41#ifndef GFlashHomoShowerParameterisation_h
42#define GFlashHomoShowerParameterisation_h 1
43
44#include "globals.hh"
47
48class G4Material;
49
51{
52 public: // with description
53
55 GVFlashHomoShowerTuning * aPar = 0);
57
61
64 G4double ComputeTau(G4double LongitudinalPosition);
65
68 G4double LongitudinalPosition);
70 void SetMaterial(G4Material *mat);
71
72 inline G4double GetAveR99() {return (3.5 * Rm);}
73 inline G4double GetAveR90() {return (1.5 * Rm);} //ok
74
75 inline G4double GetAveTmx() {return (X0 * std::exp(AveLogTmaxh));}
76 inline G4double GetAveT99() {return (X0 * AveLogTmaxh/(AveLogAlphah-1.00));}
77 inline G4double GetAveT90() {return (2.5* X0*std::exp( AveLogTmaxh) );}
78
79 inline G4double GetNspot(){ return NSpot;}
80 inline G4double GetX0(){return X0;}
81 inline G4double GetEc(){return Ec;}
82 inline G4double GetRm(){return Rm;}
83
84 private:
85
86 G4Material *material;
87
88 //Resolution
89 G4double ConstantResolution;
90 G4double NoiseResolution;
91 G4double SamplingResolution;
92
93 // parametrization parameters
95 G4bool owning;
96
97 // Cashed parameters:
98 // Longitudinal Coefficients for a homogeneous calo
99 G4double ParAveT1;
100 G4double ParAveA1,ParAveA2,ParAveA3;
101 G4double ParSigLogT1,ParSigLogT2;
102 G4double ParSigLogA1,ParSigLogA2;
103 G4double ParRho1,ParRho2;
104
105 void ComputeLongitudinalParameters(G4double y);
106 void GenerateEnergyProfile(G4double y);
107 void GenerateNSpotProfile(G4double y);
108
109 // Radial Coefficients
110 G4double ParRC1,ParRC2,ParRC3,ParRC4;
111 G4double ParWC1,ParWC2,ParWC3;
112 G4double ParWC4,ParWC5,ParWC6;
113 G4double ParRT1,ParRT2,ParRT3,ParRT4;
114 G4double ParRT5,ParRT6;
115
116 // Spot multiplicity Coefficients
117 G4double ParSpotT1,ParSpotT2,ParSpotA1, ParSpotA2;
118 G4double ParSpotN1,ParSpotN2;
119
120 // PARAMETRISATION variables (Energy & position dependent)
121 // Longitudinal
122 // homogeneous
123 G4double AveLogAlphah,AveLogTmaxh;
124 G4double SigmaLogAlphah,SigmaLogTmaxh;
125 G4double Rhoh;
126 G4double Alphah,Tmaxh,Betah;
127
128 // Multiplicity
129 G4double NSpot,AlphaNSpot,TNSpot,BetaNSpot;
130
131 //Radial
132 G4double RadiusCore, WeightCore,RadiusTail;
133};
134
135#endif
136
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4double ComputeTau(G4double LongitudinalPosition)
G4double IntegrateEneLongitudinal(G4double LongitudinalStep)
G4double GenerateRadius(G4int ispot, G4double Energy, G4double LongitudinalPosition)
G4double IntegrateNspLongitudinal(G4double LongitudinalStep)
void ComputeRadialParameters(G4double y, G4double Tau)