1 #include <evt/ShowerSimData.h>
2 #include <evt/LaserData.h>
3 #include <evt/RadioSimulation.h>
4 #include <fwk/LocalCoordinateSystem.h>
5 #include <utl/ParticlePropertiesFactory.h>
6 #include <utl/ErrorLogger.h>
8 #include <utl/LameShadowPtr_imp.h>
30 ShowerSimData::SetGroundParticleCoordinateSystemZenith(
const double zenith)
33 ERROR(
"ShowerSimData Geometry already exists - Not replacing zenith");
34 throw AugerException(
"ShowerSimData Geometry already exists - Not replacing zenith.");
36 fGroundParticleCoordinateSystemZenith = zenith;
41 ShowerSimData::SetGroundParticleCoordinateSystemAzimuth(
const double azimuth)
44 ERROR(
"ShowerSimData Geometry already exists - Not replacing azimuth");
45 throw AugerException(
"ShowerSimData Geometry already exists - Not replacing azimuth.");
47 fGroundParticleCoordinateSystemAzimuth = azimuth;
52 ShowerSimData::GetPosition()
55 if (!fCachedPosition) {
56 fCachedPosition =
new utl::Point(0, 0, 0, GetGroundParticleCoordinateSystem());
58 return *fCachedPosition;
63 ShowerSimData::GetDirection()
66 if (!fCachedDirection)
68 return *fCachedDirection;
83 ShowerSimData::MakeGeometry(
const utl::Point& anyPointOnShowerAxis)
86 ERROR(
"ShowerSimData Geometry already exists - Not replacing");
87 throw AugerException(
"ShowerSimData Geometry already exists - Not replacing.");
90 if (!fShowerGeometryProducer) {
91 ERROR(
"ShowerGeometryProducer does not exists. You need to define one in the EventIO");
92 throw AugerException(
"ShowerGeometryProducer does not exists. You need to define one in the EventIO");
95 fParticleCS = fShowerGeometryProducer->MakeGroundParticleCoordinateSystem(anyPointOnShowerAxis);
99 fGroundParticleCoordinateSystemZenith,
108 ShowerSimData::CheckGeometry()
117 ShowerSimData::MakeGroundParticles()
119 if (fGroundParticles)
120 ERROR(
"ShowerSimData already has GroundParticles - not replacing");
129 if (fGroundCherenkov.count(am) && fGroundCherenkov[am])
130 ERROR(
"ShowerSimData already has GroundCherenkov - not replacing");
137 ShowerSimData::SetPrimaryParticle(
const int type)
147 ERROR(
"Sim Shower GHParameters already exists - Not replacing");
149 fGHParameters = gHParameters.
Clone();
156 if (fAtmosphereParameters)
157 ERROR(
"Sim Shower AtmosphereParameters already exists - Not replacing");
167 ERROR(
"Sim Shower TimeStamp already exists - Not replacing");
179 return fEnergyCutoffMuon;
181 return fEnergyCutoff;
189 ShowerSimData::SetEnergyCutoff(
const double energy,
194 fEnergyCutoffMuon = energy;
197 fEnergyCutoff = energy;
206 ShowerSimData::MakeLaserData()
211 ERROR(
"LaserData already exists - Not replacing");
216 ShowerSimData::MakeRadioSimulation()
218 if (!fRadioSimulation)
221 ERROR(
"RadioSimulation already exists - Not replacing");
228 fSimCores.push_back(pos);
#define LAMESHADOWPTR_INST(_T_...)
Base class for all exceptions used in the auger offline code.
std::map< std::string, std::string > AttributeMap
Data structure for a radio simulation (including several SimRadioPulses)
CoordinateSystemPtr GetShowerCoordinateSystem(const double theta, const double phi, const Point &core)
A TimeStamp holds GPS second and nanosecond for some event.
Interface class to access Shower Simulated parameters.
Data structure for Laser simulation and reconstruction.
virtual VGaisserHillasParameter * Clone() const =0
Interface class for access to the Gaisser-Hillas parameters.
Interface class for accessing a list of particles from a shower file.
static Policy::type Create(const utl::Point &theOrigin)
Create the standard local coordinate system for a Point.
#define ERROR(message)
Macro for logging error messages.
Class to hold the standard parameters used to specify an atmospheric profile.
static ObjectPtrType Create(const IdentifierType &id)
Create an object (0-argument constructor)