testShowerImpl.cc
Go to the documentation of this file.
1 
8 
9 #include <utl/AugerUnits.h>
10 #include <utl/CoordinateSystem.h>
11 #include <fwk/CoordinateSystemRegistry.h>
12 #include <fwk/CentralConfig.h>
13 #include <utl/ErrorLogger.h>
14 #include <utl/MultiTabulatedFunction.h>
15 #include <utl/Particle.h>
16 #include <utl/Point.h>
17 #include <utl/TabulatedFunction.h>
18 #include <utl/TabulatedFunctionErrors.h>
19 #include <utl/TimeStamp.h>
20 #include <utl/Vector.h>
21 #include <det/Detector.h>
22 
23 #include <evt/Event.h>
24 #include <evt/ShowerSimData.h>
25 #include <evt/ShowerRecData.h>
26 #include <evt/ShowerFRecData.h>
27 #include <evt/ShowerSRecData.h>
28 #include <evt/DefaultShowerGeometryProducer.h>
29 
30 #include <evt/ShowerUnivRecData.h>
31 
32 #include <evt/GaisserHillas4Parameter.h>
33 
34 #include <evt/LaserData.h>
35 
36 #include <tst/Verify.h>
37 #include <cppunit/extensions/HelperMacros.h>
38 #include <boost/tuple/tuple.hpp>
39 
40 #include <boost/tuple/tuple_io.hpp>
41 #include <cstddef>
42 #include <iostream>
43 #include <string>
44 #include <vector>
45 
46 using namespace fwk;
47 using namespace utl;
48 using namespace tst;
49 using namespace evt;
50 using namespace std;
51 using namespace tst;
52 using namespace tst;
53 
54 
55 const CoordinateSystemPtr testCoordinateSystem = CoordinateSystem::GetRootCoordinateSystem();
56 
57 
59 {
60  fEvent = 0;
61  fIsOwnerOfEvent = true;
62  fTestIO = false;
63 }
64 
65 
67 {
68  if (fIsOwnerOfEvent)
69  delete fEvent;
70 }
71 
72 
73 void
74 testShowerImpl::setUp(evt::Event& event, bool testIO)
75 {
76  delete fEvent;
77  fEvent = &event;
78  this->setUp();
79  fIsOwnerOfEvent = false;
80  fTestIO = testIO;
81 }
82 
83 
84 void
86 {
87  fwk::CentralConfig::GetInstance(BOOTSTRAPFILE);
88 
89  if (!fEvent)
90  fEvent = new evt::Event;
91  ErrorLogger::GetInstance().SetVerbosity(Verbosity::eVerbose);
92 
93  fEvent->MakeRecShower();
94 }
95 
96 
97 void
99 {
100 }
101 
102 
103 void
105 {
106  if (!fEvent->HasRecShower())
107  fEvent->MakeRecShower();
108 
109  ShowerRecData& theRecShower = fEvent->GetRecShower();
110 
111  SetShowerRecDataValues(theRecShower);
112  CheckShowerRecDataValues(theRecShower);
113 }
114 
115 
116 void
118 {
119  // theRecShower.SetAzimuthAngle(90.0*deg);
120  // theRecShower.SetZenithAngle(90.0*deg);
121  theRecShower.SetEnergy(1.2*exaelectronvolt, 0.3*exaelectronvolt);
122 
123  Point core(1.1, 2.2, 3.3, testCoordinateSystem);
124  Vector axis(4.4, 5.5, 6.6, testCoordinateSystem);
125 
126  theRecShower.SetCorePosition(core);
127  theRecShower.SetAxis(axis);
128 
129  vector<double> x;
130  vector<double> y;
131  for (int i = 0; i < 10; ++i) {
132  x.push_back(i);
133  y.push_back(i);
134  }
135 
136  // SRec part
137 
138  if (!theRecShower.HasSRecShower())
139  theRecShower.MakeSRecShower();
140 
141  ShowerSRecData& theSRecShower = theRecShower.GetSRecShower();
142 
143  TabulatedFunctionErrors ldf(x, x, y, y);
144 
145  if (!theSRecShower.HasLDF())
146  theSRecShower.MakeLDF();
147  theSRecShower.GetLDF() = ldf;
148 
149  theSRecShower.SetBeta(1.0, 0.1);
150  theSRecShower.SetCurvature(1.0, 0.1);
151  theSRecShower.SetShowerSizeType(ShowerSRecData::eS1000);
152  theSRecShower.SetShowerSize(1.0, 0.1);
153 
154  // UnivRec part
155 
156  if (!theRecShower.HasUnivRecShower())
157  theRecShower.MakeUnivRecShower();
158 
159  CPPUNIT_ASSERT(theRecShower.HasUnivRecShower());
160 
161  ShowerUnivRecData& theUnivRecShower = theRecShower.GetUnivRecShower();
162 
163  theUnivRecShower.SetEnergy(10*EeV, 1*EeV);
164  theUnivRecShower.SetNmu(1., .1);
165  theUnivRecShower.SetXmax(800*g/cm2, 50*g/cm2);
166  theUnivRecShower.SetXmaxMu(400*g/cm2, 50*g/cm2);
167 
168  // FRec part
169 
170  if (!theRecShower.HasFRecShower())
171  theRecShower.MakeFRecShower();
172 
173  ShowerFRecData& theFRecShower = theRecShower.GetFRecShower();
174 
175  TabulatedFunctionErrors longitudinalProfile(x, x, y, y);
176 
177  if (!theFRecShower.HasLongitudinalProfile())
178  theFRecShower.MakeLongitudinalProfile();
179 
180  theFRecShower.GetLongitudinalProfile() = longitudinalProfile;
181 
182  TabulatedFunctionErrors fluorescencePhotons(x, x, y, y);
183 
184  if (!theFRecShower.HasFluorescencePhotons())
185  theFRecShower.MakeFluorescencePhotons();
186 
187  theFRecShower.GetFluorescencePhotons() = fluorescencePhotons;
188 
189  TabulatedFunctionErrors cherenkovPhotons(x, x, y, y);
190 
191  if (!theFRecShower.HasCherenkovPhotons())
192  theFRecShower.MakeCherenkovPhotons();
193 
194  theFRecShower.GetCherenkovPhotons() = cherenkovPhotons;
195 
196  // Gaisser-Hillas parameters
197 
199  gh.SetXMax(700*g/cm2, 30*g/cm2);
200  gh.SetNMax(1e8, 1e7);
201  gh.SetShapeParameter(gh::eX0, 10*g/cm2, 2*g/cm2);
202  gh.SetShapeParameter(gh::eLambda, 60*g/cm2, 6*g/cm2);
203  gh.SetChiSquare(0.1, 1);
204 
205  if (!theFRecShower.HasGHParameters())
206  theFRecShower.MakeGHParameters(gh);
207  else
208  theFRecShower.GetGHParameters() = gh;
209 
210  if (!theRecShower.HasLaserData())
211  theRecShower.MakeLaserData();
212  LaserData& theLaserData = theRecShower.GetLaserData();
213  theLaserData.SetLaserWavelength(400*nanometer);
214  theLaserData.SetPolarizationStatus(true);
215 
216  theLaserData.SetPolarizationVector(Vector(1.,0.,0.,testCoordinateSystem));
217 }
218 
219 
220 void
222 {
223  CPPUNIT_ASSERT(Verify<CloseTo>(theRecShower.GetEnergy(), 1.2*exaelectronvolt));
224 
225  // Following Checks must be reinserted when functions are implemented
226  //CPPUNIT_ASSERT(Verify<Equal>(theRecShower.GetAzimuth(), 90.0*deg));
227  //CPPUNIT_ASSERT(Verify<Equal>(theRecShower.GetZenith(), 90.0*deg));
228 
229  CPPUNIT_ASSERT(theRecShower.HasSRecShower());
230 
231  const ShowerSRecData& theSRecShower = theRecShower.GetSRecShower();
232 
233  CPPUNIT_ASSERT(theSRecShower.HasLDF());
234 
235  const TabulatedFunctionErrors& ldf = theSRecShower.GetLDF();
236 
237  for (unsigned int i = 0; i < 10; ++i)
238  CPPUNIT_ASSERT(Verify<CloseTo>(ldf.GetYErr(i), double(i)));
239 
240  CPPUNIT_ASSERT(Verify<CloseTo>(theSRecShower.GetBeta(), 1.0));
241  CPPUNIT_ASSERT(Verify<CloseTo>(theSRecShower.GetBetaError(), 0.1));
242  CPPUNIT_ASSERT(Verify<CloseTo>(theSRecShower.GetCurvature(), 1.0));
243  CPPUNIT_ASSERT(Verify<CloseTo>(theSRecShower.GetCurvatureError(), 0.1));
244  CPPUNIT_ASSERT(Verify<Equal>(theSRecShower.GetShowerSizeType(), ShowerSRecData::eS1000));
245  CPPUNIT_ASSERT(Verify<CloseTo>(theSRecShower.GetShowerSize(), 1.0));
246  CPPUNIT_ASSERT(Verify<CloseTo>(theSRecShower.GetShowerSizeError(), 0.1));
247 
248  // UnivRec part
249  CPPUNIT_ASSERT(theRecShower.HasUnivRecShower());
250 
251  const ShowerUnivRecData& theUnivRecShower = theRecShower.GetUnivRecShower();
252 
253  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetEnergy(), 10*exaelectronvolt));
254  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetEnergyError(), 1*exaelectronvolt));
255  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetNmu(), 1.));
256  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetNmuError(), .1));
257  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetXmax(), 800*g/cm2));
258  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetXmaxError(), 50*g/cm2));
259  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetXmaxMu(), 400*g/cm2));
260  CPPUNIT_ASSERT(Verify<CloseTo>(theUnivRecShower.GetXmaxMuError(), 50*g/cm2));
261 
262  // FRec part
263 
264  CPPUNIT_ASSERT(theRecShower.HasFRecShower());
265 
266  const ShowerFRecData& theFRecShower = theRecShower.GetFRecShower();
267 
268  CPPUNIT_ASSERT(theFRecShower.HasLongitudinalProfile());
269 
270  const TabulatedFunctionErrors& lp = theFRecShower.GetLongitudinalProfile();
271 
272  for (int i = 0; i < 10; ++i)
273  CPPUNIT_ASSERT(Verify<CloseTo>(lp.GetYErr(i), double(i)));
274 
275  CPPUNIT_ASSERT(theFRecShower.HasFluorescencePhotons());
276 
277  /*const TabulatedFunctionErrors& fp =*/ theFRecShower.GetFluorescencePhotons();
278 
279  for (int i = 0; i < 10; i++)
280  CPPUNIT_ASSERT(Verify<CloseTo>(lp.GetYErr(i), double(i)));
281 
282  CPPUNIT_ASSERT(theFRecShower.HasCherenkovPhotons());
283 
284  const TabulatedFunction& cp = theFRecShower.GetCherenkovPhotons();
285 
286  for (int i = 0; i < 10; i++)
287  CPPUNIT_ASSERT(Verify<CloseTo>(cp[i].Y(), double(i)));
288 
289  // Gaisser-Hillas parameters
290 
291  CPPUNIT_ASSERT(theFRecShower.HasGHParameters());
292 
293  VGaisserHillasParameter* const gh =
294  &const_cast<VGaisserHillasParameter&>(theFRecShower.GetGHParameters());
295  GaisserHillas4Parameter* const gh4 = dynamic_cast<GaisserHillas4Parameter*>(gh);
296  CPPUNIT_ASSERT(gh4);
297 
298  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetXMax(), 700.0*g/cm2));
299  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetXMaxError(), 30.0*g/cm2));
300  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetXZero(), 10.0*g/cm2));
301  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetXZeroError(), 2.0*g/cm2));
302  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetLambda(), 60.0*g/cm2));
303  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetLambdaError(), 6.0*g/cm2));
304  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetNMax(), 1.0e8));
305  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetNMaxError(), 1.0e7));
306  CPPUNIT_ASSERT(Verify<CloseTo>(gh4->GetChiSquare(), 0.1));
307  CPPUNIT_ASSERT(Verify<CloseTo>(int(gh4->GetNdof()), 1));
308 
309  const evt::LaserData& laser = theRecShower.GetLaserData();
310  CPPUNIT_ASSERT(Verify<CloseTo>(laser.GetLaserWavelength(),
311  400*nanometer));
312  CPPUNIT_ASSERT(laser.IsPolarized());
313  CPPUNIT_ASSERT(Verify<CloseTo>(laser.
314  GetPolarizationVector().
315  GetCoordinates(testCoordinateSystem),
316  boost::make_tuple(1.,0.,0.)));
317 }
318 
319 
320 void
322 {
323  Event* testSimEvent = new evt::Event;
324  const double rotatedCS = 90*degree; // similar to the situation in corsika
325  testSimEvent->MakeSimShower(DefaultShowerGeometryProducer(rotatedCS));
326  ShowerSimData& theSimData = testSimEvent->GetSimShower();
327  SetShowerSimDataValues(theSimData);
328  CheckShowerSimDataValues(theSimData, rotatedCS);
329  delete testSimEvent;
330 }
331 
332 
333 void
335 {
336  Event* testSimEvent = new evt::Event;
338  ShowerSimData& theSimData = testSimEvent->GetSimShower();
339  // this should fail with exception:
340  theSimData.MakeGeometry(Point(0*m, 0*m, 0*m, det::Detector::GetInstance().GetSiteCoordinateSystem()));
341  delete testSimEvent;
342 }
343 
344 
345 void
347 {
348  Event* testSimEvent = new evt::Event;
350  ShowerSimData& theSimData = testSimEvent->GetSimShower();
351  SetShowerSimDataValues(theSimData);
352  CheckShowerSimDataValues(theSimData);
353  delete testSimEvent;
354 }
355 
356 
357 void
359 {
361  theSimShower.SetEnergy(1.2*exaelectronvolt);
363  theSimShower.SetGroundParticleCoordinateSystemZenith(10.0*deg);
364  theSimShower.SetMinRadiusCut(160.*meter);
365  theSimShower.SetMaxRadiusCut(50.*km);
366 
367  const Point position(1000*m, 876*m, 0*m, det::Detector::GetInstance().GetSiteCoordinateSystem());
368  theSimShower.MakeGeometry(position);
369 
370  vector<double> x;
371  for (int i = 0; i < 10; ++i)
372  x.push_back(i);
373  vector<double> y;
374  for (int i = 0; i < 10; ++i)
375  y.push_back(i);
376 
377  TabulatedFunction longitudinalProfile(x, y);
378 
379  if (!theSimShower.HasLongitudinalProfile())
380  theSimShower.MakeLongitudinalProfile(longitudinalProfile);
381 
382  TabulatedFunction fluorescencePhotons(x, y);
383 
384  if (!theSimShower.HasFluorescencePhotons(1))
385  theSimShower.AddFluorescencePhotons(fluorescencePhotons, 1);
386 
387  TabulatedFunction cherenkovPhotons(x, y);
388 
389  if (!theSimShower.HasCherenkovPhotons(1))
390  theSimShower.AddCherenkovPhotons(cherenkovPhotons, 1);
391 
392  TabulatedFunction dEdX(x, y);
393 
394  if (!theSimShower.HasdEdX())
395  theSimShower.MakedEdX(dEdX);
396 
397  if (!theSimShower.HasLaserData())
398  theSimShower.MakeLaserData();
399 
400  LaserData& theLaserData = theSimShower.GetLaserData();
401  theLaserData.SetLaserWavelength(400*nanometer);
402  theLaserData.SetPolarizationStatus(true);
403  theLaserData.SetPolarizationVector(Vector(1.,0.,0.,
404  theSimShower.GetLocalCoordinateSystem())); // yeah i know.. it's just a test
405 
406  theSimShower.SetShowerNumber(10);
407  theSimShower.SetShowerRunId(string("showerName"));
408 }
409 
410 
411 void
413  const double rotatedCS)
414 {
415  if (!fTestIO) {
416 
417  // tests previously in testSimShower
418  const Point position(1000*m, 876*m, 0*m, det::Detector::GetInstance().GetSiteCoordinateSystem());
419 
420  CoordinateSystemPtr cs = theSimShower.GetLocalCoordinateSystem();
421 
422  CPPUNIT_ASSERT(Verify<CloseTo>(position.GetCoordinates(cs),
423  boost::make_tuple(0., 0., 0.)));
424 
425  CoordinateSystemPtr lcs = theSimShower.GetLocalCoordinateSystem();
426  CoordinateSystemPtr scs = theSimShower.GetShowerCoordinateSystem();
427  CPPUNIT_ASSERT(Verify<CloseTo>(position.GetCoordinates(scs),
428  boost::make_tuple(0., 0., 0.)));
429 
430  const double zenith = (-theSimShower.GetDirection()).GetTheta(lcs);
431  const double azimuth = (-theSimShower.GetDirection()).GetPhi(lcs);
432 
433  const Vector v(1, zenith, azimuth, lcs, Vector::kSpherical);
434  CPPUNIT_ASSERT(Verify<CloseTo>(v.GetSphericalCoordinates(lcs),
435  boost::make_tuple(1., zenith, azimuth)));
436  CPPUNIT_ASSERT(Verify<CloseTo>(v.GetCoordinates(scs),
437  boost::make_tuple(0., 0., 1.)));
438 
439  const Vector u(1, azimuth+90*deg, 0, lcs, Vector::kCylindrical);
440  CPPUNIT_ASSERT(Verify<CloseTo>(u.GetCoordinates(scs),
441  boost::make_tuple(0., 1., 0.)));
442  }
443 
444  //CPPUNIT_ASSERT(Verify<Equal>(static_cast<utl::Particle::Type>(theSimShower.GetPrimaryParticle()),
445  // Particle::eProton));
446 
447  CPPUNIT_ASSERT(Verify<CloseTo>(theSimShower.GetEnergy(), 1.2*exaelectronvolt));
448 
449  CoordinateSystemPtr lcs = theSimShower.GetLocalCoordinateSystem();
450  const double zenith = (-theSimShower.GetDirection()).GetTheta(lcs);
451  const double azimuth = (-theSimShower.GetDirection()).GetPhi(lcs);
452 
453  CPPUNIT_ASSERT(Verify<CloseTo>(azimuth/deg, 23.0+rotatedCS/deg));
454  CPPUNIT_ASSERT(Verify<CloseTo>(zenith/deg, 10.0));
455  CPPUNIT_ASSERT(Verify<CloseTo>(theSimShower.GetMinRadiusCut()/meter, 160.));
456  CPPUNIT_ASSERT(Verify<CloseTo>(theSimShower.GetMaxRadiusCut()/km, 50.));
457 
458  CPPUNIT_ASSERT(Verify<Equal>(theSimShower.HasLongitudinalProfile(), true));
459 
460  const TabulatedFunction& lp = theSimShower.GetLongitudinalProfile();
461 
462  for (int i = 0; i < 10; ++i)
463  CPPUNIT_ASSERT(Verify<CloseTo>(lp[i].Y(), double(i)));
464 
465  CPPUNIT_ASSERT(Verify<Equal>(theSimShower.HasFluorescencePhotons(1), true));
466 
467  const TabulatedFunction& fp = theSimShower.GetFluorescencePhotons(1);
468 
469  for (int i = 0; i < 10; ++i)
470  CPPUNIT_ASSERT(Verify<CloseTo>(fp[i].Y(), double(i)));
471 
472  CPPUNIT_ASSERT(Verify<Equal>(theSimShower.HasCherenkovPhotons(1), true));
473 
474  const TabulatedFunction& cp = theSimShower.GetCherenkovPhotons(1);
475 
476  for (int i = 0; i < 10; ++i)
477  CPPUNIT_ASSERT(Verify<CloseTo>(cp[i].Y(), double(i)));
478 
479  CPPUNIT_ASSERT(Verify<Equal>(theSimShower.HasdEdX(), true));
480 
481  const TabulatedFunction& dedx = theSimShower.GetdEdX();
482 
483  for (int i = 0; i < 10; ++i)
484  CPPUNIT_ASSERT(Verify<CloseTo>(dedx[i].Y(), double(i)));
485 
486  const LaserData& laser = theSimShower.GetLaserData();
487  CPPUNIT_ASSERT(Verify<CloseTo>(laser.GetLaserWavelength()/nanometer, 400.));
488  CPPUNIT_ASSERT(Verify<Equal>(laser.IsPolarized(), true));
489  CPPUNIT_ASSERT(Verify<CloseTo>(
490  laser.GetPolarizationVector().GetCoordinates(theSimShower.GetLocalCoordinateSystem()),
491  boost::make_tuple(1.,0.,0.))
492  );
493 
494  CPPUNIT_ASSERT(Verify<Equal>(theSimShower.GetShowerNumber(), 10));
495  CPPUNIT_ASSERT(Verify<Equal>(theSimShower.GetShowerRunId(), string("showerName")));
496 }
void SetLaserWavelength(const double laserwavelength)
Definition: LaserData.h:35
utl::CoordinateSystemPtr GetLocalCoordinateSystem() const
Get the Auger coordinate system associated to the shower core position.
void SetPolarizationStatus(const bool PolarizationStatus)
Definition: LaserData.h:41
void SetCurvature(const double curvature, const double error)
gaussian curvature = 1 / Rc
void CheckShowerRecDataValues(const evt::ShowerRecData &theRecShower)
LaserData & GetLaserData()
Get the laser data.
bool HasUnivRecShower() const
const utl::TabulatedFunction & GetdEdX() const
Get the energy deposit of the shower.
void SetShowerSize(const double value, const double error)
const double degree
Point object.
Definition: Point.h:32
bool HasLaserData() const
Check initialization of the LaserData.
ShowerFRecData & GetFRecShower()
void SetBeta(const double beta, const double error)
double GetLaserWavelength() const
Definition: LaserData.h:32
Interface class to access to the SD Reconstruction of a Shower (universality)
double GetMinRadiusCut() const
Get the minimum radius from shower axis for which there are valid particles in the shower...
Interface class to access to the SD Reconstruction of a Shower.
bool HasFluorescencePhotons() const
void MakeLaserData()
Make the LaserData.
Interface class to access Shower Reconstructed parameters.
Definition: ShowerRecData.h:33
const utl::TabulatedFunctionErrors & GetLDF() const
void SetAxis(const utl::Vector &axis)
Class to hold collection (x,y) points and provide interpolation between them.
bool HasCherenkovPhotons(const int wavelength) const
utl::TabulatedFunction & GetCherenkovPhotons()
retrieve number of Cerenkov photons versus depth
void testShowerRecData()
void testShowerSimData()
void SetMaxRadiusCut(const double maxR)
const utl::TabulatedFunction & GetFluorescencePhotons(const int wavelength) const
Get the fluorescence photons generated along the shower axis.
bool HasFluorescencePhotons(const int wavelength) const
const double meter
Definition: GalacticUnits.h:29
void SetXMax(const double xMax, const double error)
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)...
Traditional name.
Definition: Verbosity.h:17
void SetShapeParameter(const gh::EShapeParameter par, const double value, const double error)
Setters.
const utl::Vector & GetPolarizationVector() const
Definition: LaserData.h:44
double GetEnergy() const
const double EeV
Definition: GalacticUnits.h:34
void MakedEdX(const utl::TabulatedFunction &dEdX)
Make the energy deposit of the shower.
constexpr double exaelectronvolt
Definition: AugerUnits.h:178
ShowerSRecData & GetSRecShower()
void SetShowerSimDataValues(evt::ShowerSimData &theSimShower)
void SetPolarizationVector(const utl::Vector &polarizationvector)
Definition: LaserData.h:47
void testShowerSimDataNoGeometry()
constexpr double nanometer
Definition: AugerUnits.h:102
constexpr double deg
Definition: AugerUnits.h:140
const CoordinateSystemPtr testCoordinateSystem
Interface class to access Shower Simulated parameters.
Definition: ShowerSimData.h:49
ShowerUnivRecData & GetUnivRecShower()
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
const utl::TabulatedFunction & GetCherenkovPhotons(const int wavelength) const
Get the Cherenkov photon production along the shower axis.
int GetShowerNumber() const
Get the number of the shower in the file.
Definition: ShowerSimData.h:72
void MakeLongitudinalProfile(const utl::TabulatedFunction &lp, const ProfileType type=eCharged)
Make the longitudinal charge profile of the shower.
const utl::Vector & GetDirection() const
Get the direction of the shower axis. This is the true direction of shower movement.
bool HasLongitudinalProfile() const
void SetEnergy(const double energy, const double error)
bool HasFRecShower() const
double GetMaxRadiusCut() const
Get the maximum radius cut used during shower generation.
ShowerSimData & GetSimShower()
void SetEnergy(const double theEnergy)
Set the energy of the shower primary particle.
Definition: ShowerSimData.h:91
const double km
constexpr double g
Definition: AugerUnits.h:200
double GetEnergy() const
Get the energy of the shower primary particle.
Definition: ShowerSimData.h:89
void SetChiSquare(const double chi, const unsigned int ndof)
void CheckShowerSimDataValues(const evt::ShowerSimData &theSimShower, const double rotatedCS=0)
void SetNMax(const double nMax, const double error, const bool isEnergyDeposit=false)
bool HasdEdX() const
Check initialization of the energy deposit.
bool HasCherenkovPhotons() const
bool HasGHParameters() const
Data structure for Laser simulation and reconstruction.
Definition: LaserData.h:29
void AddCherenkovPhotons(const utl::TabulatedFunction &cp, const int wavelength)
void SetPrimaryParticle(const int type)
Set the type of the shower primary particle.
utl::TabulatedFunctionErrors & GetLongitudinalProfile()
retrieve longitudinal profile information (size vs depth)
void SetGroundParticleCoordinateSystemZenith(const double zenith)
Set the zenith angle of the shower. Room angle between z-axis and direction from where the shower is ...
utl::TabulatedFunctionErrors & GetFluorescencePhotons()
retrieve number of fluorescence photons versus depth
static CentralConfig * GetInstance()
Use this the first time you get an instance of central configuration.
std::string GetShowerRunId() const
Get the run id for the shower.
Definition: ShowerSimData.h:78
void MakeGeometry(const utl::Point &pointOnShowerAxis)
initialize the shower geometry. Pos is a point on the shower axis, but not necessarily the core ...
void SetShowerNumber(const int sid)
Definition: ShowerSimData.h:75
bool IsPolarized() const
Definition: LaserData.h:38
Interface class for access to the Gaisser-Hillas parameters.
void AddFluorescencePhotons(const utl::TabulatedFunction &fp, const int wavelength)
void SetMinRadiusCut(const double minR)
Set the minimum radius cut.
Vector object.
Definition: Vector.h:30
void MakeSimShower(const evt::VShowerGeometryProducer &p)
Interface class to access to Fluorescence reconstruction of a Shower.
void SetCorePosition(const utl::Point &core)
void SetShowerSizeType(const ShowerSizeType type)
bool HasLDF() const
bool HasLaserData() const
Definition: ShowerRecData.h:80
void testShowerSimDataRotated()
void SetEnergy(const double energy, const double error)
Gaisser Hillas with 4 parameters.
void SetShowerRunId(const std::string srid)
Definition: ShowerSimData.h:81
void MakeGHParameters(const VGaisserHillasParameter &gh)
constexpr double m
Definition: AugerUnits.h:121
bool HasSRecShower() const
LaserData & GetLaserData()
Definition: ShowerRecData.h:77
void SetShowerRecDataValues(evt::ShowerRecData &theRecShower)
bool HasLongitudinalProfile(const ProfileType type=eCharged) const
Check initialization of the longitudinal profile.
utl::CoordinateSystemPtr GetShowerCoordinateSystem() const
const utl::TabulatedFunction & GetLongitudinalProfile(const ProfileType type=eCharged) const
Get the longitudinal charge profile of the shower.
constexpr double cm2
Definition: AugerUnits.h:118

, generated on Tue Sep 26 2023.