1 #ifndef _utl_radio_RadioGeometryUtilities_h_
2 #define _utl_radio_RadioGeometryUtilities_h_
5 #include <utl/Vector.h>
8 #include <utl/CoordinateSystemPtr.h>
9 #include <boost/numeric/ublas/matrix.hpp>
10 #include <boost/numeric/ublas/vector.hpp>
11 #include <boost/numeric/ublas/io.hpp>
36 const double chargeExcessStrength);
56 {
return 1 + Z_vxB / distanceXmax; }
80 const double chargeExcessStrength);
84 const utl::Vector& vMagField,
const double chargeExcessStrength);
88 const utl::Vector& vMagField,
const double chargeExcessStrength,
94 const double altitudeObsLvl);
constexpr T Sqr(const T &x)
boost::numeric::ublas::matrix< double > fInverseTransformationMatrix
const utl::Vector fMagneticField
const utl::CoordinateSystemPtr fcs
static double GetDistanceToAxis(const utl::Vector &ShowerAxis, const utl::Point &CorePosition, const utl::Point &AntennaPosition)
computes the distance from the antenna position to the shower "line" defined by the core position and...
static double GetEarlyLateCorrectionFactor(const utl::Point &showerCore, const utl::Point &stationPosition, const utl::Point &showerMax, const utl::Vector &showerAxis)
static double GetAngleToEFieldExpectation2D(const utl::Vector &measuredEField, const utl::Point &core, const utl::Vector &showeraxis, const utl::Point &stationPosition, const utl::Vector &vMagField, const double chargeExcessStrength, const utl::CoordinateSystemPtr localCS)
boost::numeric::ublas::matrix< double > fTransformationMatrix
static double GetEnergyFluenceCorrectionEarlyLateEffect(const utl::Point &showerCore, const utl::Point &stationPosition, const utl::Point &showerMax, const utl::Vector &showerAxis)
utl::Point GetVectorFromShowerPlaneVxB(const double x, const double y, const double z) const
static utl::Vector GetChargeExcessVector(const utl::Point &core, const utl::Vector &showeraxis, const utl::Point &stationPosition)
returns the charge excess vector normalized to unity
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
utl::Point GetVectorFromShowerPlaneVxB(const double x, const double y, const double z, const bool verticalZero) const
in case of positions, the positions has to be relative to the core positions!!!
static double GetAngleToEFieldExpectation(const utl::Vector &measuredEField, const utl::Point &core, const utl::Vector &showeraxis, const utl::Point &stationPosition, const utl::Vector &vMagField, const double chargeExcessStrength)
static double GetEnergyFluenceCorrectionEarlyLateEffect(const double distanceXmax, const double Z_vxB)
static utl::Vector GetLorentzVector(const utl::Vector &showeraxis, const utl::Vector &vMagField)
returns the Lorentz force vector normalized to length = 1 for maximal emission (showeraxis vertical t...
static double GetDistanceCorrectionEarlyLateEffect(const utl::Point &showerCore, const utl::Point &stationPosition, const utl::Point &showerMax, const utl::Vector &showerAxis)
static double GetEarlyLateCorrectionFactor(const double distanceXmax, const double Z_vxB)
static const Point GetCoreAtObservationLevel(const Point &core, const Vector &showerAxis, const CoordinateSystemPtr cs, const double altitudeObsLvl)
RadioGeometryUtilities(const utl::Vector &showeraxis, const utl::CoordinateSystemPtr cs, const utl::Vector &magneticField)
static double GetDistanceCorrectionEarlyLateEffect(const double distanceXmax, const double Z_vxB)
void GetVectorInShowerPlaneVxB(double &x, double &y, double &z, const utl::Point &point) const
in case of positions, the positions has to be relative to the core positions!!!
static utl::Vector GetExpectedEFieldVector(const utl::Point &core, const utl::Vector &showeraxis, const utl::Point &stationPosition, const utl::Vector &vMagField, const double chargeExcessStrength)
Template class for a FADC data or calibrated data container. Use the typedefs (TraceD, TraceI, etc.) defined in Trace-fwd.h.
static double GetAngleToLorentzVector(const utl::Vector &measuredEField, const utl::Vector &showeraxis, const utl::Vector &vMagField)
utl::TraceV3D GetTraceInShowerPlaneVxB(const utl::TraceV3D &trace) const
double GetHeightInShowerPlane(const double x, const double y) const
static double GetSignalCorrectionFactor(const utl::Point &core, const utl::Vector &showeraxis, const utl::Point &stationPosition, const utl::Vector &vMagField, const double chargeExcessStrength)
utl::TraceV3D GetTraceFromShowerPlaneVxB(const utl::TraceV3D &trace) const