#include "SlastShowerGenerator.hh" |
SlastShowerGenerator
class description - header file - source file - inheritance tree (.pdf)
public:
SlastShowerGenerator(Bool_t quiet = kFALSE)
virtual ~SlastShowerGenerator()
static TClass* Class()
virtual const char* ClassName() const
virtual const char* ClassType() const
Bool_t DevelopShower()
Bool_t FindImpactOnTOA()
EarthVector FoVintersection(const EarthVector&, const EarthVector&) const
virtual PhysicsData* Get()
Double_t GetEnergy()
Bool_t GetFirstPoint()
Bool_t GetNextStep()
Double_t GetPhi()
void GetShowerInfo()
void GetShowerParametrization(Double_t)
const ShowerStep& GetShowerStep()
Double_t GetTheta()
virtual MCTruth* GetTruth()
void GetX1()
Double_t GetXmax()
void GFA(Double_t)
void GHF(Double_t)
void GIL(Double_t)
Double_t HadronInteractionLength(Double_t, Double_t)
Bool_t Init()
virtual TClass* IsA() const
Bool_t IsInFoV(const EarthVector&) const
Bool_t IsXmaxInFoV()
Double_t NucleonAirCrossSection(Double_t)
virtual void Reset()
void SetDepthStep(Double_t step)
void SetEnergy(Double_t e)
void SetPhi(Double_t p)
void SetQuiet(Bool_t key = kTRUE)
void SetShower(Double_t, Double_t, Double_t, EarthVector)
void SetTheta(Double_t t)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
ShowerTrack* fTrack pointer to Shower Track object
ShowerStep fStep current ShowerStep object
MCTruth* fTruth pointer to the Truth object
Double_t fFoV Space Telescope Field of View (FoV) in rad
Double_t fEusoAltitude Euso Altitude
string fSpectrumType Spectrum type (powermaw / GZKHiRes2005 ..)
TH1F* fSpectrumRdnm for non-analytical spectrum, used to get random energy
Double_t fEnergyMin Minimum Energy Range for the ShowerTrack generation
Double_t fEnergyMax Maximum Energy Range for the ShowerTrack generation
Double_t fEnergySlope Slope of the Differential Energy Spectrum
Double_t fThetaMin Minimum Theta Range for the ShowerTrack generation
Double_t fThetaMax Maximum Theta Range for the ShowerTrack generation
Double_t fPhiMin Minimum Phi Range for the ShowerTrack generation
Double_t fPhiMax Maximum Phi Range for the ShowerTrack generation
Double_t fFirstPointX X coordinate of the first ShowerTrack point
Double_t fFirstPointY Y coordinate of the first ShowerTrack point
Double_t fFirstPointZ Z coordinate of the first ShowerTrack point
string fFirstType Choice of the generation type for the first interaction
Double_t fDepthStep depth step
Double_t fEnergy Generated ShowerTrack energy
Double_t fTheta_local Generated ShowerTrack theta - frame defined at TOAimpact
Double_t fPhi_local Generated ShowerTrack phi - frame defined at TOAimpact
Double_t fTheta_mes Generated ShowerTrack theta - in mes frame
Double_t fPhi_mes Generated ShowerTrack phi - in mes frame
Double_t fAge current age of the shower (varies from 0 to 2. Age = 1
Double_t fNe current number of electrons
Double_t fX1 atmosphere depth for the first point
Double_t fXcurrent current slanth depth (from X1, not TOA !!)
Double_t fXnext next slanth depth (from X1, not TOA !!)
Double_t fTimecurrent time from the ShowerTrack origin (current)
Double_t fTimenext time from the ShowerTrack origin (next)
EarthVector fEusoVector vector pointing to EUSO
EarthVector fInitPoint vector of init point
EarthVector fOmega unit vector of the ShowerTrack object
EarthVector fCurrentPoint vector of the current point. Z=0 on the Earth underneath EUSO
EarthVector fNextPoint vector of the next point. Z=0 on the Earth underneath EUSO
EarthVector fEarthImpact vector of the impact on the Earth. Z=0 on the Earth underneath EUSO
EarthVector fTOAImpact vector of the impact on top of atmosphere
Int_t fHitGround Boolian if the ShowerTrack hits the ground
Bool_t fInCome Boolian if the ShowerTrack becomes visible to EUSO (in FoV)
Bool_t fOutCome Boolian if the ShowerTrack becomes invisible to EUSO (in FoV)
string fType Type of the UHECR particle: hadron, netrino
string fEnergyDistribution Type of the Shower Parametrization for the energy distribution
string fShowerParametrization Type of the Shower Parametrization for the number of charged particles
Bool_t fQuiet kTRUE - no messages, kFALSE - with messages
Bool_t fRejectFakeEvents kTRUE : if cosmic ray (not in the FoV || has not interacted in atmosphere) --> re-try
Bool_t fRejectNoXmax kTRUE : if Xmax is not in FoV --> re-try for another event
Bool_t fOutOfFoV if kTRUE : shower dvpt is switched off
Double_t fAtomicMass Atomic mass of the UHECR's hadron
_____________________________________________________________________________
SlastShowerGenerator
Slast is short of "Shower Light Attenuated to the Space Telescope".
Originally written by Dmitry V.Naumov as a collection of F77 routines doing
the full chain:
Shower generation, light production (fluorescence and cherenkov), light
attenuation in the atmosphere.
See SlastLightToEuso C++ / Fortran interface which is doing the full chain.
SlastShowerGenerator is the simple generator written in pure C++ which is
NOT doing the full simulation chain. Instead it returnes only the
ShowerTrack object which is taken later by ShowerLightSource and
RadiativeTransfer parts of the ESAF package.
ESAF prodides some testing macros which can help to understand how to use
SlastShowerGenerator. See macros/CheckDistrs.C as an example.
A simple way to use SlastShowerGenerator is directly in root:
root[] gSystem->Load("libatmosphere.so");
root[] gSystem->Load("libgenbase.so");
root[] gSystem->Load("libshowers.so");
root[] SlastShowerGenerator *ShowerGenerator = new SlastShowerGenerator;
root[] ShowerTrack *track = ShowerGenerator->Get();
root[] track->DrawXYZ()
as an example.
Now having the track object in hand one can use whatever functions avalaible
for it. See ShowerTrack class for documentation of ShowerTrack object
void SetShower(Double_t e,Double_t t,Double_t p,EarthVector pos)
This is a special method to setup desired showertrack parameters from the code (not from the config file)
This can be a usefull function in the reconstruction code
void GetX1()
Returns atmosphere depth before the first interaction.
Attention: units are ESAF internal. In order to get in human way one has to multiple by cm2/g
Double_t NucleonAirCrossSection(Double_t E)
Computes NUCLEN + AIR CROSS SECTION:
... USES AN EMPIRICAL PARAMETRIZATION OF TOTAL INELASTIC
... NUCLEON AIR CROSS SECTION (in mbarn)
... INPUT: NUCLEON ENERGY in eV
... OUTPUT: NUCLEON AIR CROSS SECTION (in mbarn)
... REFERENCES:
... 1. Mielke H.H., Foller, M, Knapp J.
... // J.Phys.G: Nucl.Part.Phys. 1994. V 20, P637
... 2. V.A. Naumov, T.S. Sinegovskaya (eq (17))
void GetShowerParametrization(Double_t x)
Assigning of fNe - number of electrons in the current step according to the Shower Parameterization.
GIL stands for Greizen-Ilina-Linsley which is the QGSJET model
parameterization.
GFA stands for Gaussian Function in Age
GHF stands for Gaisser Hillas Function
Bool_t FindImpactOnTOA()
Generates point uniformly on top of atmosphere on the upper part of the earth hemisphere
theta, phi angles are taken at TOA impact, then translated into MES frame for further steps of event simulation
Bool_t IsXmaxInFoV()
Assess Xmax position and tell if it is in FoV
used to reject event with Xmax out of FoV, without simulating the dvpt
Bool_t GetNextStep()
This method checks if next point is visible and makes the next step if it is OK.
void GIL(Double_t x)
Assigning of fNe - number of electrons in the current step according to GIL parameterization.
(GIL stands for Greizen-Ilina-Linsley which is the QGSJET model parameterization.
void GFA(Double_t x)
Assigning of fNe - number of electrons in the current step according to Gaussian Function in Age parameterization.
Formulae from C. Song, Astropart. Physics 22(2004)151
sigma values fitted and extrapolated, Xmax, Nmax from GHF used
Factor 1.1 added to Ne because of threshold energy used for corsika simulation (10% particles missing)
WARNING !!! not usable yet, cause cannot currently handle X1 fluctuations
void GHF(Double_t x)
Assigning of fNe - number of electrons in the current step according to
Gaisser Hillas parametrisation
Formulae from C. Song, Astropart. Physics 22(2004)151
Xmax, Nmax, lambda, X1, X0 values fitted and extrapolated
Factor 1.1 added to Ne because of threshold energy used for corsika simulation (10% particles missing)
WARNING !!! not usable yet, cause cannot currently handle X1 fluctuations
Double_t GetXmax()
returns Xmax of the shower according to GIL parametrization (used by Reco)
Author: Dmitry V.Naumov 03/03/2004
Last update: Mon Nov 27 14:57:08 2006
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.