ShowerSimData_ROOT.cc
Go to the documentation of this file.
1 #include <io/ShowerSimData_ROOT.h>
2 #include <io/Point_ROOT.h>
3 #include <io/CoordinateSystem_ROOT.h>
4 #include <io/Vector_ROOT.h>
5 #include <io/TimeStamp_ROOT.h>
6 #include <io/GaisserHillasParameters_ROOT.h>
7 #include <io/LaserData_ROOT.h>
8 #include <io/AtmosphereParameters_ROOT.h>
9 #include <io/StreamerUtilities.h>
10 #include <io/GenParticle_ROOT.h>
11 #include <io/RadioSimulation_ROOT.h>
12 
13 using namespace io;
14 
15 
16 ClassImp(ShowerSimData_ROOT)
17 
18 
20 {
21  delete fParticleCS;
22  delete fShowerCS;
23  delete fLocalCS;
24  delete fTimeStamp;
25  delete fGHParameters;
26  delete fLaserData;
27  delete fAtmosphereParameters;
28  delete fGenParticle;
29  delete fRadioSimulation;
30 }
31 
32 
35 {
36  if (this != &s) {
38  fEnergy = s.fEnergy;
54  fXFirst = s.fXFirst;
55  fXInject = s.fXInject;
57  fNmu = s.fNmu;
58  fXmaxMu = s.fXmaxMu;
75  }
76  return *this;
77 }
78 
79 
81  fPrimaryParticle(s.GetPrimaryParticle()),
82  fEnergy(s.GetEnergy()),
83  fMuonNumber(s.GetMuonNumber()),
84  fMuonWeightScale(s.GetMuonWeightScale()),
85  fCalorimetricEnergy(s.GetCalorimetricEnergy()),
86  fElectromagneticEnergy(s.GetElectromagneticEnergy()),
89  fEnergyCutoff(s.GetEnergyCutoff()),
90  fEnergyCutoffMuon(s.GetEnergyCutoff(evt::ShowerSimData::eMuon)),
91  fMinRadiusCut(s.GetMinRadiusCut()),
92  fMaxRadiusCut(s.GetMaxRadiusCut()),
93  fMinCherenkovWavelength(s.GetMinCherenkovWavelength()),
94  fMaxCherenkovWavelength(s.GetMaxCherenkovWavelength()),
95  fMagneticFieldInclination(s.GetMagneticFieldInclination()),
96  fMagneticFieldDeclination(s.GetMagneticFieldDeclination()),
97  fMagneticFieldStrength(s.GetMagneticFieldStrength()),
98  fShowerNumber(s.GetShowerNumber()),
99  fShowerRunId(s.GetShowerRunId()),
100  fXFirst(s.GetXFirst()),
101  fXInject(s.GetXInject()),
102  fDistanceOfShowerMaximum(s.GetDistanceOfShowerMaximum()),
103  fNmu(s.GetNmu()),
104  fXmaxMu(s.GetXmaxMu()),
110 {
111  if (s.HasGeometry()) {
115  }
116  if (s.HasTimeStamp())
118  if (s.HasGHParameters())
120  if (s.HasLaserData())
122  if (s.HasAtmosphereParameters())
124  if (s.HasParticleTree()) {
126  }
127  if (s.HasRadioSimulation()) {
129  }
130 }
131 
132 
133 void
135  const
136 {
138  s.SetEnergy(fEnergy);
156  s.SetXFirst(fXFirst);
157  s.SetXInject(fXInject);
159 
160  s.SetNmu(fNmu);
161  s.SetXmaxMu(fXmaxMu);
162 
163  if (fParticleCS)
164  *fParticleCS >> s.fParticleCS;
165 
166  if (fShowerCS)
167  *fShowerCS >> s.fShowerCS;
168 
169  if (fLocalCS)
170  *fLocalCS >> s.fLocalCS;
171 
172  if (fTimeStamp)
174 
180 
181  if (fGHParameters) {
182  evt::VGaisserHillasParameter* ghp = nullptr;
183  *fGHParameters >> ghp;
184  s.MakeGHParameters(*ghp);
185  }
186 
187  if (fLaserData) {
188  if (!s.HasLaserData())
189  s.MakeLaserData();
190  *fLaserData >> *s.fLaserData;
191  }
192 
195 
196  if (fGenParticle)
198 
199  if (fRadioSimulation) {
200  if (!s.HasRadioSimulation())
203  }
204 }
GaisserHillasParameters_ROOT * fGHParameters
utl::CoordinateSystemPtr GetLocalCoordinateSystem() const
Get the Auger coordinate system associated to the shower core position.
LaserData & GetLaserData()
Get the laser data.
void SetMagneticFieldDeclination(const double magneticFieldDeclination)
Set the declination of the Earth&#39;s magnetic field used in CORSIKA/REAS simulation.
utl::CoordinateSystemPtr fShowerCS
CoordinateSystem_ROOT * fParticleCS
void SetMaxCherenkovWavelength(const double wl)
Set the maximum Cherenkov wavelength for photons in longitudinal profile.
const evt::AtmosphereParameters & GetAtmosphereParameters() const
Get the Atmosphere profile used to simulate the shower.
bool HasLaserData() const
Check initialization of the LaserData.
const utl::TimeStamp & GetTimeStamp() const
Get the TimeStamp of the absolute shower core-time.
void SetMuonNumber(const double nmuon)
Set the number of muons which reach ground level.
Definition: ShowerSimData.h:96
void MakeLaserData()
Make the LaserData.
void ConvertCopy(T *&destination, const U &source)
const evt::VGaisserHillasParameter & GetGHParameters() const
Get the Gaisser-Hillas parameters of the shower.
void MakeRadioSimulation()
Make the RadioSimulation.
void SetEnergyCutoff(const double energy, const ProfileType type=eElectron)
Set the enegy cutoff for which the profile of charged particles was calculated.
void SetMaxRadiusCut(const double maxR)
void SetGroundParticleCoordinateSystemAzimuth(const double azimuth)
Set the azimuth angle of the shower. Angle in x-y plane wrt. to the x axis (0 is from east)...
bool HasRadioSimulation() const
Check initialization of the RadioSimulation.
RadioSimulation_ROOT * fRadioSimulation
MultiTabulatedFunction_ROOT fCherenkovBeamPhotons
CoordinateSystem_ROOT * fShowerCS
void MakeGHParameters(const evt::VGaisserHillasParameter &ghPar)
Make the Gaisser-Hillas parameters of the shower.
AtmosphereParameters_ROOT * fAtmosphereParameters
utl::CoordinateSystemPtr fParticleCS
double fGroundParticleCoordinateSystemZenith
utl::TimeStamp Convert() const
Interface class to access Shower Simulated parameters.
Definition: ShowerSimData.h:49
MultiTabulatedFunction_ROOT fLongitudinalProfile
constexpr double s
Definition: AugerUnits.h:163
CoordinateSystem_ROOT * fLocalCS
void DeepCopy(T *&destination, U *const source)
TimeStamp_ROOT * fTimeStamp
utl::CoordinateSystemPtr GetGroundParticleCoordinateSystem() const
RadioSimulation & GetRadioSimulation()
Get the radio simulation data.
utl::MultiTabulatedFunction fCherenkovPhotons
void SetCalorimetricEnergy(const double energy)
Set the calorimetric energy of the shower.
void operator>>(evt::ShowerSimData &s) const
utl::LameShadowPtr< LaserData > fLaserData
evt::AtmosphereParameters Convert() const
void MakeAtmosphereParameters(const evt::AtmosphereParameters &par)
Provide the parameters of the atmospheric profile used to simulate the shower.
void SetEnergy(const double theEnergy)
Set the energy of the shower primary particle.
Definition: ShowerSimData.h:91
void SetXmaxMu(const double XmaxMu)
void SetElectromagneticEnergy(const double energy)
Set the electromagnetic energy of the shower.
void SetMinCherenkovWavelength(const double wl)
Set the maximum Cherenkov wavelength for photons in longitudinal profile.
utl::MultiTabulatedFunction fCherenkovBeamPhotons
void SetXFirst(const double xFirst)
Set depth of first interaction.
utl::LameShadowPtr< RadioSimulation > fRadioSimulation
void SetNmu(const double Nmu)
utl::CoordinateSystemPtr fLocalCS
ROOT wise implementation of streaming for class ShowerSimData.
void SetPrimaryParticle(const int type)
Set the type of the shower primary particle.
bool HasAtmosphereParameters() const
Check if the Atmosphere profile used to simulate the shower is known.
double fGroundParticleCoordinateSystemAzimuth
utl::MultiTabulatedFunction fLongitudinalProfile
void SetGroundParticleCoordinateSystemZenith(const double zenith)
Set the zenith angle of the shower. Room angle between z-axis and direction from where the shower is ...
bool HasGeometry() const
check initialization of shower geometry
MultiTabulatedFunction_ROOT fCherenkovBeamProductionPhotons
LaserData_ROOT * fLaserData
void SetShowerNumber(const int sid)
Definition: ShowerSimData.h:75
bool HasGHParameters() const
Check initialization of the Gaisser-Hillas parameters.
Interface class for access to the Gaisser-Hillas parameters.
void SetMinRadiusCut(const double minR)
Set the minimum radius cut.
void SetDistanceOfShowerMaximum(const double parDistance)
Set the geometrical distance of the shower maximum from the core.
bool HasTimeStamp() const
Check initialization of the TimeStamp.
void MakeTimeStamp(const utl::TimeStamp &ts)
Make the TimeStamp of the shower.
utl::MultiTabulatedFunction fFluorescencePhotons
MultiTabulatedFunction_ROOT fFluorescencePhotons
void SetParticleTree(const evt::GenParticle &partTree)
Set the tree of particles in the first few generations.
void SetMuonWeightScale(const double scale)
Set the muon weight scale.
void SetMagneticFieldStrength(const double magneticFieldStrength)
Set the absolute strength of the Earth&#39;s magnetic field used in CORSIKA/REAS simulation.
const evt::GenParticle & GetParticleTree() const
Get the tree of particles in the first few generations as simulated by the MC.
void SetShowerRunId(const std::string srid)
Definition: ShowerSimData.h:81
void SetXInject(const double xInject)
Set depth of particle injection.
void SetMagneticFieldInclination(const double magneticFieldInclination)
Set the inclination of the Earth&#39;s magnetic field used in CORSIKA/REAS simulation.
ShowerSimData_ROOT & operator=(const ShowerSimData_ROOT &s)
evt::GenParticle Convert()
utl::CoordinateSystemPtr GetShowerCoordinateSystem() const
MultiTabulatedFunction_ROOT fCherenkovPhotons
bool HasParticleTree() const
Check if the MC data have been filled in.
GenParticle_ROOT * fGenParticle
utl::MultiTabulatedFunction fCherenkovBeamProductionPhotons

, generated on Tue Sep 26 2023.