SlastShowerGenerator
#include "SlastShowerGenerator.hh" |
SlastShowerGenerator
class description - source file - inheritance tree (.pdf)
class SlastShowerGenerator : public EventGenerator, public EsafMsgSource
Inheritance Chart: | |||||||||||||||
|
public:
SlastShowerGenerator() 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
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
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.
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
void ~SlastShowerGenerator() SlastShowerGenerator SlastShowerGenerator() 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)