Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

SlastShowerGenerator

#include "SlastShowerGenerator.hh"

SlastShowerGenerator


class description - source file - inheritance tree (.pdf)

class SlastShowerGenerator : public EventGenerator, public EsafMsgSource

Inheritance Chart:
EsafConfigurable
<-
EventGenerator
EsafMsgSource
<-
SlastShowerGenerator

    public:
SlastShowerGenerator(Bool_t quiet = kFALSE) virtual ~SlastShowerGenerator() static TClass* Class() virtual const char* ClassName() const virtual const char* ClassType() const Bool_t DevelopShower() virtual PhysicsData* Get() Double_t GetEnergy() Bool_t GetFarFirstPoint() void GetFirstPoint() Bool_t GetNextStep() Double_t GetPhi() void GetShowerInfo() void GetShowerParametrization(Double_t) const ShowerStep& GetShowerStep() const Double_t GetTheta() virtual MCTruth* GetTruth() void GetX1() 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 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)

Data Members

    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 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 Generated ShowerTrack theta Double_t fPhi Generated ShowerTrack phi 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 Double_t fXnext next slanth depth 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 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 Double_t fAtomicMass Atomic mass of the UHECR's hadron

Class Description

 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

SlastShowerGenerator(Bool_t quiet) : EventGenerator("slast++"), EsafMsgSource(), fTrack(0), fTruth(0), fInCome(0), fOutCome(0), fQuiet(kFALSE)
 This is ctor

Bool_t Init()
 SlastShowerGenerator is initialized reading from config/LightToEuso/GeneratorLightToEuso.cfg file
 Edit that file to setup desired parameters of the showers such as energy, theta, phi intervals
 or initial position in case of unique parameters.
 Init() is called in SlastShowerGenerator ctor

~SlastShowerGenerator()
  This is dtor

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 HadronInteractionLength(Double_t A, Double_t E)
 SlastShowerGenerator internal function which computes the hadronic interactio  length.
 Used by GetX1() method

Double_t NucleonAirCrossSection(Double_t E)

const ShowerStep& GetShowerStep()
 Filling the ShowerStep object with relevant information

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 GetFarFirstPoint()
 This method generates the first ``far'' point which is ensured to be visible by EUSO FoV.
 1. Generate point uniformly on the Earth surface underneath of EUSO


void GetFirstPoint()
 Once ``far'' first point is found this method find the real first point according to the generated X1

Bool_t GetNextStep()
 This method checks if next point is visible, not outside of FoV and makes the next step if
 it is OK.
if ((fEusoVector-fCurrentPoint).Theta()<=fFoV) //TOFIX : shower dvpt should not be stopped outside FoV

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
 Xmax, Nmax, sigma values fitted and extrapolated

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

PhysicsData* Get()
 method returning the ShowerTrack object

void Reset()
 Reset ShowerTrack and SlastShowerGenerator internal parameters

void GetShowerInfo()
 Fills ShowerTrack parameters

Bool_t DevelopShower()
 Method developing the shower

MCTruth* GetTruth()
 Method returning the Truth object



Inline Functions


           Double_t GetEnergy()
           Double_t GetTheta()
           Double_t GetPhi()
               void SetEnergy(Double_t e)
               void SetTheta(Double_t t)
               void SetPhi(Double_t p)
               void SetQuiet(Bool_t key = kTRUE)
               void SetDepthStep(Double_t step)
        const char* ClassType() const
        const char* ClassName() const
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)
About Us | EUSO Official Website | Web pages created by Roberto Pesce and Alessandro Thea - Last Update Wed Nov 16 16:20:13 2005