VShowerGeometryProducer.h
Go to the documentation of this file.
1 #ifndef _evt_VShowerGeometryProducer_h_
2 #define _evt_VShowerGeometryProducer_h_
3 
4 #include <utl/CoordinateSystemPtr.h>
5 #include <utl/Point.h>
6 #include <utl/AugerException.h>
7 #include <utl/ErrorLogger.h>
8 
9 
10 namespace utl {
11  class Point;
12 }
13 
14 namespace evt {
15 
17  public:
18  typedef int IsClonableTag;
19 
20  virtual ~VShowerGeometryProducer() = default;
21 
22  virtual VShowerGeometryProducer* Create() const = 0;
23  virtual VShowerGeometryProducer* Clone() const = 0;
24  virtual utl::CoordinateSystemPtr MakeGroundParticleCoordinateSystem(const utl::Point& anyPointOnShowerAxis) = 0;
25  };
26 
27 
29  public:
30  virtual ShowerGeometryAlreadyProduced* Create() const override
31  { return new ShowerGeometryAlreadyProduced; }
32 
33  virtual ShowerGeometryAlreadyProduced* Clone() const override
34  { return new ShowerGeometryAlreadyProduced(*this); }
35 
36  virtual
38  MakeGroundParticleCoordinateSystem(const utl::Point& /*anyPointOnShowerAxis*/)
39  override
40  {
41  ERROR("Cannot produce new simulated shower geometry for this event!");
42  throw utl::AugerException("Cannot produce new simulated shower geometry for this event!");
43  return utl::CoordinateSystemPtr();
44  }
45 
46  };
47 
48 }
49 
50 
51 #endif
virtual VShowerGeometryProducer * Clone() const =0
Point object.
Definition: Point.h:32
Base class for all exceptions used in the auger offline code.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
virtual ~VShowerGeometryProducer()=default
virtual ShowerGeometryAlreadyProduced * Clone() const override
virtual VShowerGeometryProducer * Create() const =0
virtual ShowerGeometryAlreadyProduced * Create() const override
virtual utl::CoordinateSystemPtr MakeGroundParticleCoordinateSystem(const utl::Point &anyPointOnShowerAxis)=0
#define ERROR(message)
Macro for logging error messages.
Definition: ErrorLogger.h:165

, generated on Tue Sep 26 2023.