From 00102e43920e1708fe06d3538b119b160900d68b Mon Sep 17 00:00:00 2001 From: Maximilian Reininghaus <maximilian.reininghaus@kit.edu> Date: Tue, 5 Apr 2022 15:04:32 +0200 Subject: [PATCH] write time --- corsika/detail/modules/ObservationPlane.inl | 2 +- .../modules/writers/ParticleWriterParquet.inl | 13 ++++++++----- corsika/modules/writers/ParticleWriterParquet.hpp | 7 ++++--- tests/output/testWriterObservationPlane.cpp | 10 +++++----- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/corsika/detail/modules/ObservationPlane.inl b/corsika/detail/modules/ObservationPlane.inl index 8f4a658b5..23e5837ad 100644 --- a/corsika/detail/modules/ObservationPlane.inl +++ b/corsika/detail/modules/ObservationPlane.inl @@ -53,7 +53,7 @@ namespace corsika { // add our particles to the output file stream double const weight = 1.; // particle.getWeight() this->write(particle.getPID(), energy, displacement.dot(xAxis_), - displacement.dot(yAxis_), 0_m, weight); + displacement.dot(yAxis_), 0_m, particle.getTime(), weight); CORSIKA_LOG_TRACE("Particle detected absorbed={}", deleteOnHit_); diff --git a/corsika/detail/modules/writers/ParticleWriterParquet.inl b/corsika/detail/modules/writers/ParticleWriterParquet.inl index 4c6a49ada..271346417 100644 --- a/corsika/detail/modules/writers/ParticleWriterParquet.inl +++ b/corsika/detail/modules/writers/ParticleWriterParquet.inl @@ -37,6 +37,8 @@ namespace corsika { parquet::ConvertedType::NONE); output_.addField("z", parquet::Repetition::REQUIRED, parquet::Type::FLOAT, parquet::ConvertedType::NONE); + output_.addField("time", parquet::Repetition::REQUIRED, parquet::Type::DOUBLE, + parquet::ConvertedType::NONE); output_.addField("weight", parquet::Repetition::REQUIRED, parquet::Type::FLOAT, parquet::ConvertedType::NONE); @@ -59,16 +61,17 @@ namespace corsika { inline void ParticleWriterParquet::endOfLibrary() { output_.closeStreamer(); } - inline void ParticleWriterParquet::write(Code const& pid, HEPEnergyType const& energy, - LengthType const& x, LengthType const& y, - LengthType const& z, double const weight) { + inline void ParticleWriterParquet::write(Code const pid, HEPEnergyType const energy, + LengthType const x, LengthType const y, + LengthType const z, TimeType const t, + double const weight) { // write the next row - we must write `shower_` first. *(output_.getWriter()) << showerId_ << static_cast<int>(get_PDG(pid)) << static_cast<float>(energy / 1_GeV) << static_cast<float>(x / 1_m) << static_cast<float>(y / 1_m) - << static_cast<float>(z / 1_m) << static_cast<float>(weight) - << parquet::EndRow; + << static_cast<float>(z / 1_m) << static_cast<double>(t / 1_s) + << static_cast<float>(weight) << parquet::EndRow; totalEnergy_ += energy; diff --git a/corsika/modules/writers/ParticleWriterParquet.hpp b/corsika/modules/writers/ParticleWriterParquet.hpp index 12451f4ed..d28abdd1c 100644 --- a/corsika/modules/writers/ParticleWriterParquet.hpp +++ b/corsika/modules/writers/ParticleWriterParquet.hpp @@ -49,9 +49,10 @@ namespace corsika { /** * Write a PDG/corsika::Code particle to the file. */ - void write(Code const& pid, units::si::HEPEnergyType const& energy, - units::si::LengthType const& x, units::si::LengthType const& y, - units::si::LengthType const& z, const double weight); + void write(Code const pid, units::si::HEPEnergyType const energy, + units::si::LengthType const x, units::si::LengthType const y, + units::si::LengthType const z, units::si::TimeType const time, + const double weight); /** * Return collected library-level summary for output. diff --git a/tests/output/testWriterObservationPlane.cpp b/tests/output/testWriterObservationPlane.cpp index c58861f52..5b2483cf9 100644 --- a/tests/output/testWriterObservationPlane.cpp +++ b/tests/output/testWriterObservationPlane.cpp @@ -22,11 +22,11 @@ struct TestWriterPlane : public ParticleWriterParquet { YAML::Node getConfig() const { return YAML::Node(); } void checkWrite() { - ParticleWriterParquet::write(Code::Unknown, 1_GeV, 2_m, 3_m, 0_m, 1.0); - ParticleWriterParquet::write(Code::Proton, 1_GeV, 2_m, 3_m, 0_m, 1.0); - ParticleWriterParquet::write(Code::MuPlus, 1_GeV, 2_m, 3_m, 0_m, 1.0); - ParticleWriterParquet::write(Code::MuMinus, 1_GeV, 2_m, 3_m, 0_m, 1.0); - ParticleWriterParquet::write(Code::Photon, 1_GeV, 2_m, 3_m, 0_m, 1.0); + ParticleWriterParquet::write(Code::Unknown, 1_GeV, 2_m, 3_m, 0_m, 1_us, 1.0); + ParticleWriterParquet::write(Code::Proton, 1_GeV, 2_m, 3_m, 0_m, 1_us, 1.0); + ParticleWriterParquet::write(Code::MuPlus, 1_GeV, 2_m, 3_m, 0_m, 1_us, 1.0); + ParticleWriterParquet::write(Code::MuMinus, 1_GeV, 2_m, 3_m, 0_m, 1_us, 1.0); + ParticleWriterParquet::write(Code::Photon, 1_GeV, 2_m, 3_m, 0_m, 1_us, 1.0); } }; -- GitLab