diff --git a/corsika/modules/radio/CoREAS.hpp b/corsika/modules/radio/CoREAS.hpp index 9907baf56c63403aa97a12c61e3ecefc8080317c..24d695e50e63b683fa0810d53e0963cc53b35326 100755 --- a/corsika/modules/radio/CoREAS.hpp +++ b/corsika/modules/radio/CoREAS.hpp @@ -93,8 +93,9 @@ namespace corsika { // This is a SignalPathCollection auto paths2{this->propagator_.propagate(endPoint_, antenna.getLocation(), 1_m)}; - if (paths1.size() == paths2.size()) { - for (size_t i = 0; (i < paths1.size() && i < paths2.size()); i++) { + // loop over both paths at once and directly compare 'start' and 'end' attributes + for (size_t i = (paths1.size() == paths2.size()) ? 0 : paths1.size(); + (i < paths1.size() && i < paths2.size()); i++) { // First start with the 'start' point // calculate preDoppler factor @@ -342,7 +343,6 @@ namespace corsika { antenna.receive(endPointReceiveTime_, ReceiveVectorEnd_, EV2_); } // End of loop over both paths to get signal info - } // End of checking that we have the same number of paths } // End of looping over antennas } // End of simulate method diff --git a/corsika/modules/radio/antennas/TimeDomainAntenna.hpp b/corsika/modules/radio/antennas/TimeDomainAntenna.hpp index 23647895710ad3f4a7691993fd6c34d291fe4cd5..9e5b539d0f6ace4d1194203372fcae0d58732f34 100644 --- a/corsika/modules/radio/antennas/TimeDomainAntenna.hpp +++ b/corsika/modules/radio/antennas/TimeDomainAntenna.hpp @@ -86,6 +86,7 @@ namespace corsika { * @param field The incident electric field vector. * */ + // TODO: rethink this method a bit. If the endpoint is at the end of the antenna resolution then you get the startpoint signal but you lose the endpoint signal! void receive(TimeType const time, Vector<dimensionless_d> const& receive_vector, ElectricFieldVector const& efield) { diff --git a/examples/radio_shower.cpp b/examples/radio_shower.cpp index 9745cdbba2b32cd9107284bea282929edd1a2d4f..6132620d91703f781c606ea9387e460781638e9b 100644 --- a/examples/radio_shower.cpp +++ b/examples/radio_shower.cpp @@ -131,8 +131,8 @@ int main(int argc, char** argv) { const auto point1{Point(env.getCoordinateSystem(), 50_m, 50_m, 50_m)}; const auto point2{Point(env.getCoordinateSystem(), 25_m, 25_m, 25_m)}; // the antennas - TimeDomainAntenna ant1("antenna1", point1, 0_s, 100_s, 1/1e-8_s); - TimeDomainAntenna ant2("antenna2", point2, 0_s, 100_s, 1/1e-8_s); + TimeDomainAntenna ant1("antenna1", point1, 0_s, 100_s, 1/1e-6_s); + TimeDomainAntenna ant2("antenna2", point2, 0_s, 100_s, 1/1e-6_s); // the detector AntennaCollection<TimeDomainAntenna> detector; detector.addAntenna(ant1); diff --git a/examples/radio_shower2.cpp b/examples/radio_shower2.cpp index 8859c9651f8436ba883018253a89e09eb4dd24ba..269b3dcbcacf5db524cf921ebc9b43566de49760 100644 --- a/examples/radio_shower2.cpp +++ b/examples/radio_shower2.cpp @@ -89,10 +89,10 @@ int main() { const auto point4{Point(rootCS, -50_m, -50_m, 0_m)}; // the antennas - TimeDomainAntenna ant1("antenna1", point1, 0_s, 1_s, 1/1e+6_s); - TimeDomainAntenna ant2("antenna2", point2, 0_s, 1_s, 1/1e+6_s); - TimeDomainAntenna ant3("antenna3", point3, 0_s, 1_s, 1/1e+6_s); - TimeDomainAntenna ant4("antenna4", point4, 0_s, 1_s, 1/1e+6_s); + TimeDomainAntenna ant1("antenna1", point1, 0_s, 1_s, 1/1e-6_s); + TimeDomainAntenna ant2("antenna2", point2, 0_s, 1_s, 1/1e-6_s); + TimeDomainAntenna ant3("antenna3", point3, 0_s, 1_s, 1/1e-6_s); + TimeDomainAntenna ant4("antenna4", point4, 0_s, 1_s, 1/1e-6_s); // the detector AntennaCollection<TimeDomainAntenna> detector; diff --git a/tests/modules/testRadio.cpp b/tests/modules/testRadio.cpp index 0cec7d9e112dc3c552fce3cb9587fc86a9787c6b..0391d8fbbfc440b27a47a345d2242f193aa5c97c 100644 --- a/tests/modules/testRadio.cpp +++ b/tests/modules/testRadio.cpp @@ -170,6 +170,8 @@ TEST_CASE("Radio", "[processes]") { // check that I can create an antenna at (1, 2, 3) TimeDomainAntenna ant1("antenna_name", point1, t1, t2, t3); TimeDomainAntenna ant2("antenna_name2", point2, t1, t2, t3); +// TimeDomainAntenna ant3("antenna1", point1, 0_s, 2_s, 1/1e-7_s); + // construct a radio detector instance to store our antennas AntennaCollection<TimeDomainAntenna> detector; @@ -177,6 +179,8 @@ TEST_CASE("Radio", "[processes]") { // add the antennas to the detector detector.addAntenna(ant1); detector.addAntenna(ant2); +// detector.addAntenna(ant3); + // create a particle @@ -193,7 +197,7 @@ TEST_CASE("Radio", "[processes]") { auto const k{1_m * ((1_m) / ((1_s * 1_s) * 1_V))}; - auto const t = 10000_ms; + auto const t = 10_s; LeapFrogTrajectory base(point4, v0, B0, k, t); // create a new stack for each trial