IAP GITLAB

Commit cfe2a28d authored by Ralf Ulrich's avatar Ralf Ulrich

PhysicalGeometry

parent 896d611b
Pipeline #3483 passed with stages
in 64 minutes and 30 seconds
...@@ -26,7 +26,7 @@ namespace corsika { ...@@ -26,7 +26,7 @@ namespace corsika {
inline Point const& Plane::getCenter() const { return center_; } inline Point const& Plane::getCenter() const { return center_; }
inline Plane::DimLessVec const& Plane::getNormal() const { return normal_; } inline DirectionVector const& Plane::getNormal() const { return normal_; }
inline std::string Plane::asString() const { inline std::string Plane::asString() const {
std::ostringstream txt; std::ostringstream txt;
......
...@@ -20,6 +20,21 @@ ...@@ -20,6 +20,21 @@
namespace corsika { namespace corsika {
/**
* A 3D vector defined in a specific coordinate system with units HEPMomentumType
**/
typedef Vector<hepmomentum_d> MomentumVector; typedef Vector<hepmomentum_d> MomentumVector;
/**
* A 3D vector defined in a specific coordinate system with no units. But, note, this is
* not automatically normaliyed! It is not a "NormalVector".
**/
typedef Vector<dimensionless_d> DirectionVector;
/**
* A 3D vector defined in a specific coordinate system with units "velocity_t".
*
**/
typedef Vector<SpeedType::dimension_type> VelocityVector;
} // namespace corsika } // namespace corsika
...@@ -8,11 +8,13 @@ ...@@ -8,11 +8,13 @@
#pragma once #pragma once
#include <cmath>
#include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/framework/core/PhysicalUnits.hpp>
#include <corsika/framework/core/PhysicalGeometry.hpp>
#include <corsika/framework/geometry/Point.hpp> #include <corsika/framework/geometry/Point.hpp>
#include <corsika/framework/geometry/Vector.hpp> #include <corsika/framework/geometry/Vector.hpp>
#include <cmath>
namespace corsika { namespace corsika {
/*! /*!
...@@ -31,12 +33,9 @@ namespace corsika { ...@@ -31,12 +33,9 @@ namespace corsika {
class Helix { class Helix {
///! \todo move VelocityVec into PhysicalUnits
using VelocityVec = Vector<SpeedType::dimension_type>;
public: public:
Helix(Point const& pR0, FrequencyType pOmegaC, VelocityVec const& pvPar, Helix(Point const& pR0, FrequencyType pOmegaC, VelocityVector const& pvPar,
VelocityVec const& pvPerp) VelocityVector const& pvPerp)
: r0_(pR0) : r0_(pR0)
, omegaC_(pOmegaC) , omegaC_(pOmegaC)
, vPar_(pvPar) , vPar_(pvPar)
...@@ -48,7 +47,7 @@ namespace corsika { ...@@ -48,7 +47,7 @@ namespace corsika {
Point getPosition(TimeType const t) const; Point getPosition(TimeType const t) const;
VelocityVec getVelocity(TimeType const t) const; VelocityVector getVelocity(TimeType const t) const;
Point getPositionFromArclength(LengthType const l) const; Point getPositionFromArclength(LengthType const l) const;
...@@ -60,8 +59,8 @@ namespace corsika { ...@@ -60,8 +59,8 @@ namespace corsika {
Point r0_; ///! origin of helix, but this is in the center of the Point r0_; ///! origin of helix, but this is in the center of the
///! "cylinder" on which the helix rotates ///! "cylinder" on which the helix rotates
FrequencyType omegaC_; ///! speed of angular rotation FrequencyType omegaC_; ///! speed of angular rotation
VelocityVec vPar_; ///! speed along direction of "cylinder" VelocityVector vPar_; ///! speed along direction of "cylinder"
VelocityVec vPerp_, uPerp_; VelocityVector vPerp_, uPerp_;
LengthType radius_; LengthType radius_;
}; };
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#pragma once #pragma once
#include <corsika/framework/core/PhysicalUnits.hpp> #include <corsika/framework/core/PhysicalUnits.hpp>
#include <corsika/framework/core/PhysicalGeometry.hpp>
#include <corsika/framework/geometry/Point.hpp> #include <corsika/framework/geometry/Point.hpp>
#include <corsika/framework/geometry/Vector.hpp> #include <corsika/framework/geometry/Vector.hpp>
...@@ -18,27 +19,24 @@ namespace corsika { ...@@ -18,27 +19,24 @@ namespace corsika {
class Plane { class Plane {
///! \todo move to PhysicalUnits
using DimLessVec = Vector<dimensionless_d>;
public: public:
Plane(Point const& vCenter, DimLessVec const& vNormal) Plane(Point const& vCenter, DirectionVector const& vNormal)
: center_(vCenter) : center_(vCenter)
, normal_(vNormal.normalized()) {} , normal_(vNormal.normalized()) {}
bool isAbove(Point const& vP) const; bool isAbove(Point const& vP) const;
LengthType getDistanceTo(corsika::Point const& vP) const; LengthType getDistanceTo(Point const& vP) const;
Point const& getCenter() const; Point const& getCenter() const;
DimLessVec const& getNormal() const; DirectionVector const& getNormal() const;
std::string asString() const; std::string asString() const;
public: public:
Point const center_; Point const center_;
DimLessVec const normal_; DirectionVector const normal_;
}; };
} // namespace corsika } // namespace corsika
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment