IAP GITLAB

Skip to content
Snippets Groups Projects
Commit fdab0239 authored by ralfulrich's avatar ralfulrich
Browse files

added FourVector with tests

parent 33f597da
No related branches found
No related tags found
No related merge requests found
......@@ -17,7 +17,7 @@ set (
BaseVector.h
QuantityVector.h
Trajectory.h
# BaseTrajectory.h
FourVector.h
)
set (
......@@ -57,16 +57,22 @@ install (
PUBLIC_HEADER DESTINATION include/${GEOMETRY_NAMESPACE}
)
# --------------------
# code unit testing
add_executable (testGeometry testGeometry.cc)
target_link_libraries (
testGeometry
CORSIKAgeometry
CORSIKAunits
CORSIKAthirdparty # for catch2
)
CORSIKA_ADD_TEST(testGeometry)
add_executable (testFourVector testFourVector.cc)
target_link_libraries (
testFourVector
CORSIKAgeometry
CORSIKAunits
CORSIKAthirdparty # for catch2
)
CORSIKA_ADD_TEST(testFourVector)
......@@ -29,8 +29,7 @@ namespace corsika::geometry {
template <typename dim>
class QuantityVector {
protected:
// todo: check if we need to move "quantity" into namespace corsika::units
public:
using Quantity = phys::units::quantity<dim, double>; //< the phys::units::quantity
// corresponding to the dimension
......
......@@ -31,6 +31,7 @@ namespace corsika::geometry {
template <typename dim>
class Vector : public BaseVector<dim> {
public:
using Quantity = phys::units::quantity<dim, double>;
public:
......
......@@ -261,39 +261,6 @@ namespace corsika::process {
return ProcessSequence<P1, P2>(A.GetRef(), B.GetRef());
}
/* #define OPSEQ(C1, C2) \ */
/* template < \ */
/* typename P1, typename P2, \ */
/* typename std::enable_if<is_process<typename std::decay<P1>::type>::value &&
* \ */
/* is_process<typename
* std::decay<P2>::type>::value>::type...> \ */
/* inline auto operator+(P1&& A, P2&& B)->ProcessSequence<P1, P2> { \ */
/* return ProcessSequence<P1, P2>(A.GetRef(), B.GetRef()); \ */
/* } */
/* /\*template <typename T1, typename T2> \ */
/* inline ProcessSequence<T1, T2> operator%(C1<T1>& A, C2<T2>& B) { \ */
/* return ProcessSequence<T1, T2>(A.GetRef(), B.GetRef()); \ */
/* }*\/ */
/* OPSEQ(BaseProcess, BaseProcess) */
/* OPSEQ(BaseProcess, InteractionProcess) */
/* OPSEQ(BaseProcess, ContinuousProcess) */
/* OPSEQ(BaseProcess, DecayProcess) */
/* OPSEQ(ContinuousProcess, BaseProcess) */
/* OPSEQ(ContinuousProcess, InteractionProcess) */
/* OPSEQ(ContinuousProcess, ContinuousProcess) */
/* OPSEQ(ContinuousProcess, DecayProcess) */
/* OPSEQ(InteractionProcess, BaseProcess) */
/* OPSEQ(InteractionProcess, InteractionProcess) */
/* OPSEQ(InteractionProcess, ContinuousProcess) */
/* OPSEQ(InteractionProcess, DecayProcess) */
/* OPSEQ(DecayProcess, BaseProcess) */
/* OPSEQ(DecayProcess, InteractionProcess) */
/* OPSEQ(DecayProcess, ContinuousProcess) */
/* OPSEQ(DecayProcess, DecayProcess) */
/// marker to identify objectas ProcessSequence
template <typename A, typename B>
struct is_process_sequence<corsika::process::ProcessSequence<A, B> > {
......
......@@ -79,20 +79,35 @@ namespace corsika::units::si {
/**
* @file PhysicalUnits
*
* Define _XeV literals, alowing 10_GeV in the code.
* Define _barn literal
*/
namespace phys {
namespace units {
namespace literals {
/**
* Define new _XeV literals, alowing 10_GeV in the code.
* Define new _barn literal
*/
QUANTITY_DEFINE_SCALING_LITERALS(eV, hepenergy_d, 1)
QUANTITY_DEFINE_SCALING_LITERALS(barn, corsika::units::si::sigma_d,
magnitude(corsika::units::constants::barn))
// QUANTITY_DEFINE_SCALING_LITERALS(Ns, corsika::units::si::momentum_d,
// magnitude(1_m * 1_kg / 1_s))
/**
* add additional literals missing in the original library:
*
*/
QUANTITY_DEFINE_SCALING_LITERALS(gram, mass_d, 1e-3)
/*
QUANTITY_DEFINE_LITERALS(meter, length_d)
QUANTITY_DEFINE_LITERALS(second, time_interval_d)
QUANTITY_DEFINE_LITERALS(ampere, electric_current_d)
QUANTITY_DEFINE_LITERALS(Kelvin, thermodynamic_temperature_d)
*/
} // namespace literals
} // namespace units
......
......@@ -438,7 +438,7 @@ namespace phys {
typedef dimensions<0, 0, 0, 0, 1, 0, 0, 0> thermodynamic_temperature_d;
typedef dimensions<0, 0, 0, 0, 0, 1, 0, 0> amount_of_substance_d;
typedef dimensions<0, 0, 0, 0, 0, 0, 1, 0> luminous_intensity_d;
typedef dimensions<0, 0, 0, 0, 0, 0, 0, 1> hepenergy_d;
typedef dimensions<0, 0, 0, 0, 0, 0, 0, 1> hepenergy_d; // this is not an SI unit !
// Addition operators
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment