CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
corsika::TimeDomainAntenna Class Reference

An implementation of a time-domain antenna that has a customized start time, sampling rate, and waveform duration. More...

#include <TimeDomainAntenna.hpp>

Inheritance diagram for corsika::TimeDomainAntenna:

Public Member Functions

 TimeDomainAntenna (std::string const &name, Point const &location, CoordinateSystemPtr coordinateSystem, TimeType const &start_time, TimeType const &duration, InverseTimeType const &sample_rate, TimeType const ground_hit_time)
 Construct a new TimeDomainAntenna. More...
 
void receive (TimeType const time, Vector< dimensionless_d > const &receive_vector, ElectricFieldVector const &efield)
 Receive an electric field at this antenna. More...
 
void receive (TimeType const time, Vector< dimensionless_d > const &receive_vector, VectorPotential const &vectorP)
 
auto const & getWaveformX () const
 Return the time-units of each waveform for X polarization. More...
 
auto const & getWaveformY () const
 Return the time-units of each waveform for Y polarization. More...
 
auto const & getWaveformZ () const
 Return the time-units of each waveform for Z polarization. More...
 
std::string const getDomainLabel ()
 Return a label that indicates that this is a time domain antenna. More...
 
std::vector< long double > createTimeAxis () const
 Creates time-units of each waveform. More...
 
auto const getAxis () const
 Return the time-units of each waveform. More...
 
InverseTimeType const & getSampleRate () const
 Returns the sampling rate of the time domain antenna.
 
TimeType const & getStartTime () const
 Returns the start time of detection for the time domain antenna.
 
void reset ()
 Reset the antenna before starting a new simulation.
 
YAML::Node getConfig () const
 Return a YAML configuration for this antenna.
 
- Public Member Functions inherited from corsika::Antenna< TimeDomainAntenna >
 Antenna (std::string const &name, Point const &location, CoordinateSystemPtr const &coordinateSystem)
 Construct a base antenna instance. More...
 
void receive (TVArgs &&... args)
 Receive a signal at this antenna. More...
 
Point const & getLocation () const
 Get the location of this antenna.
 
std::string const & getName () const
 Get the name of this name antenna. More...
 
void reset ()
 Reset the antenna before starting a new simulation.
 
axistype getAxis () const
 Return a reference to the x-axis labels (i.e. More...
 
std::vector< double > const & getWaveformX () const
 Return a reference to the underlying waveform data for X polarization. More...
 
std::vector< double > const & getWaveformY () const
 Return a reference to the underlying waveform data for Y polarization. More...
 
std::vector< double > const & getWaveformZ () const
 Return a reference to the underlying waveform data for Z polarization. More...
 
TimeDomainAntennaimplementation ()
 Get a reference to the underlying radio implementation.
 

Additional Inherited Members

- Public Types inherited from corsika::Antenna< TimeDomainAntenna >
using axistype = std::vector< long double >
 
- Protected Attributes inherited from corsika::Antenna< TimeDomainAntenna >
std::string const name_
 The name/identifier of this antenna.
 
Point const location_
 The location of this antenna.
 
CoordinateSystemPtr const coordinateSystem_
 The coordinate system of the antenna.
 

Detailed Description

An implementation of a time-domain antenna that has a customized start time, sampling rate, and waveform duration.

Definition at line 21 of file TimeDomainAntenna.hpp.

Constructor & Destructor Documentation

◆ TimeDomainAntenna()

corsika::TimeDomainAntenna::TimeDomainAntenna ( std::string const &  name,
Point const &  location,
CoordinateSystemPtr  coordinateSystem,
TimeType const &  start_time,
TimeType const &  duration,
InverseTimeType const &  sample_rate,
TimeType const  ground_hit_time 
)

Construct a new TimeDomainAntenna.

Parameters
nameThe name of this antenna.
locationThe location of this antenna.
coordinateSystemThe coordinate system of this antenna.
start_timeThe starting time of this waveform.
durationThe duration of this waveform.
sample_rateThe sample rate of this waveform.
ground_hit_timeThe time the primary particle hits the ground on a straight vertical line.

Member Function Documentation

◆ createTimeAxis()

std::vector<long double> corsika::TimeDomainAntenna::createTimeAxis ( ) const

Creates time-units of each waveform.

It creates them in nanoseconds for ease of use.

◆ getAxis()

auto const corsika::TimeDomainAntenna::getAxis ( ) const

Return the time-units of each waveform.

This returns them in nanoseconds for ease of use.

◆ getDomainLabel()

std::string const corsika::TimeDomainAntenna::getDomainLabel ( )

Return a label that indicates that this is a time domain antenna.

This returns the string "Time".

◆ getWaveformX()

auto const& corsika::TimeDomainAntenna::getWaveformX ( ) const

Return the time-units of each waveform for X polarization.

This returns them in nanoseconds for ease of use.

◆ getWaveformY()

auto const& corsika::TimeDomainAntenna::getWaveformY ( ) const

Return the time-units of each waveform for Y polarization.

This returns them in nanoseconds for ease of use.

◆ getWaveformZ()

auto const& corsika::TimeDomainAntenna::getWaveformZ ( ) const

Return the time-units of each waveform for Z polarization.

This returns them in nanoseconds for ease of use.

◆ receive()

void corsika::TimeDomainAntenna::receive ( TimeType const  time,
Vector< dimensionless_d > const &  receive_vector,
ElectricFieldVector const &  efield 
)

Receive an electric field at this antenna.

This assumes that the antenna will receive an instantaneous electric field modeled as a delta function (or timebin).

Parameters
timeThe (global) time at which this signal is received.
receive_vectorThe incident unit vector. (not used at the moment)
fieldThe incident electric field vector.

The documentation for this class was generated from the following file: