source: trunk/source/parameterisations/gflash/include/GFlashSamplingShowerParameterisation.hh @ 1202

Last change on this file since 1202 was 1058, checked in by garnier, 15 years ago

file release beta

File size: 6.0 KB
Line 
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: GFlashSamplingShowerParameterisation.hh,v 1.4 2006/06/29 19:13:53 gunter Exp $
28// GEANT4 tag $Name: geant4-09-02-ref-02 $
29//
30//
31//---------------------------------------------------------------
32//  GEANT 4 class header file
33//
34//  GFlashSamplingShowerParameterisation
35//
36//  Class description:
37//
38//  GFlash concrete sampling shower parameterisation
39
40// Author: Joanna Weng - 02.2004
41//---------------------------------------------------------------
42#ifndef GFlashSamplingShowerParameterisation_h
43#define GFlashSamplingShowerParameterisation_h 1
44
45#include "globals.hh"
46#include "GFlashSamplingShowerTuning.hh"
47#include "GVFlashShowerParameterisation.hh"
48
49class G4Material;
50
51class GFlashSamplingShowerParameterisation
52  : public GVFlashShowerParameterisation
53{
54  public:
55
56    GFlashSamplingShowerParameterisation(G4Material* aMat1, G4Material* aMat2,
57                                         G4double d1, G4double d2,
58    GFlashSamplingShowerTuning * aPar = 0);
59    ~GFlashSamplingShowerParameterisation();
60
61    void ComputeRadialParameters(G4double y, G4double Tau);
62    void GenerateLongitudinalProfile(G4double Energy); 
63    void ComputeZAX0EFFetc();
64
65    G4double IntegrateEneLongitudinal(G4double LongitudinalStep);
66    G4double IntegrateNspLongitudinal(G4double LongitudinalStep);
67    G4double ComputeTau(G4double LongitudinalPosition);
68    void SetMaterial(G4Material *mat1, G4Material *mat2);
69    G4double GeneratePhi();
70    G4double GenerateRadius(G4int ispot, G4double Energy,
71    G4double LongitudinalPosition);
72    G4double GenerateExponential(G4double Energy);
73
74    inline G4double GetAveR99() {return (3.5 * Rmeff);}
75    inline G4double GetAveR90() {return (1.5 * Rmeff);} //ok
76    //
77    inline G4double GetAveTmx() {return (X0eff*std::exp(AveLogTmax));}
78    inline G4double GetAveT99() {return (X0eff*AveLogTmax/(AveLogAlpha-1.00));}
79    inline G4double GetAveT90() {return (2.5* X0eff* std::exp( AveLogTmax));}
80    //
81    inline G4double GetNspot()  {return NSpot;}
82    inline G4double GetX0()     {return X0eff;} 
83    inline G4double GetEc()     {return Eceff;} 
84    inline G4double GetRm()     {return Rmeff;} 
85
86    G4double ApplySampling(const G4double DEne, const G4double Energy);
87
88  private:
89
90    // medium related quantities
91    //
92    G4Material *material1, *material2 ;
93    G4double  density1, A1, Z1, X01, Ec1, Rm1, d1;
94    G4double  density2, A2, Z2, X02, Ec2, Rm2, d2;
95    G4double  Aeff, Rhoeff, X0eff, Eceff, Rmeff, Fs, ehat, Zeff;
96
97    // Resolution
98    //
99    G4double ConstantResolution; 
100    G4double NoiseResolution;   
101    G4double SamplingResolution;
102     
103    // parametrization parameters
104    //
105    GFlashSamplingShowerTuning * thePar;
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
Note: See TracBrowser for help on using the repository browser.