icemc
Public Member Functions | Private Attributes | List of all members
Screen Class Reference

#include <screen.hh>

Public Member Functions

 Screen (int a)
 Creates an instance of a screen. More...
 
void SetNsamples (int i)
 Sets number of grid divisions for the base screen. More...
 
int GetNsamples ()
 Gets number of grid divisions for the base screen. More...
 
void SetEdgeLength (double a)
 Sets the physical length of a side of the screen. More...
 
void SetCentralPoint (Position a)
 Sets the position of the central point of the screen. More...
 
void SetCosineProjectionFactor (double a)
 Sets the projection factor of the screen relative to the specular RF exit point. More...
 
double GetCosineProjectionFactor ()
 Gets the projection factor. More...
 
void SetNormal (Vector a)
 Sets the screen normal. More...
 
void SetUnitX (Vector a)
 Sets an orientation vector of the screen. More...
 
void SetUnitY (Vector a)
 Sets another orientation vector of the screen. More...
 
double GetEdgeLength ()
 Gets the screen length. More...
 
Position GetCentralPoint ()
 Gets the position of the screen's central point. More...
 
Vector GetNormal ()
 Gets the screen normal. More...
 
Vector GetUnitX ()
 Gets an orientation vector. More...
 
Vector GetUnitY ()
 Gets another orientation vector. More...
 
double CalcXindex (int i)
 Calculates the X index of the screen corresponding to the specified counter value. More...
 
double CalcYindex (int i)
 Calculates the Y index of the screen corresponding to the specified counter value. More...
 
Position GetPosition (int i, int j)
 Calculates the physical position of the screen corresponding to the specified counter value. More...
 
void AddVmmhz_freq (double A)
 Appends a Vmmhz value to the fVmmhz_freq array. More...
 
double GetVmmhz_freq (int i)
 Get the Vmmhz value stored at the specified index. More...
 
void AddVmmhz0 (double A)
 Appends a Vmmhz value (for the lowest Anita frequency) to the fVmmhz0 array. More...
 
double GetVmmhz0 (int i)
 Gets the Vmmhz0 value stored at the specified index. More...
 
void AddViewangle (double A)
 Appends a viewangle value to the fViewangle array. More...
 
double GetViewangle (int i)
 Get the viewangle value stored at the specified index. More...
 
void AddDelay (double A)
 Appends a delay value to the fDelays array. More...
 
double GetDelay (int i)
 Get the delay value stores at the specified index. More...
 
void SetNvalidPoints (int i)
 Sets the total number of points on the screen. More...
 
double GetNvalidPoints ()
 Gets the total number of points. More...
 
void AddVec2bln (Vector v)
 Appends a vector to the fVec2blns array. More...
 
Vector GetVec2bln (int i)
 Gets the to-balloon vector at the specified index. More...
 
void AddPol (Vector v)
 Appends a vector to the fPols array. More...
 
Vector GetPol (int i)
 Gets the polarization vector at the specified index. More...
 
void AddImpactPt (Position p)
 Appends a vector to the fImpactPt array. More...
 
Position GetImpactPt (int i)
 Gets the position at the specified index. More...
 
void AddWeight (double a)
 Appends a weight value to the fWeight array. More...
 
double GetWeight (int i)
 Gets the weight value at the specified index. More...
 
void SetWeightNorm (double a)
 Sets the normalization factor for the weights (so they sum to 1) More...
 
double GetWeightNorm ()
 Gets the weight normalization factor. More...
 
void AddIncidenceAngle (double A)
 Appends an incidence angle value to the fIncAngles array. More...
 
double GetIncidenceAngle (int i)
 Get the incidence angle value stored at the specified index. More...
 
void AddTransmissionAngle (double A)
 Appends a transmission angle value to the fTransAngles array. More...
 
double GetTransmissionAngle (int i)
 Get the transmission angle value stored at the specified index. More...
 
void AddFacetLength (double A)
 Appends a facet edge length value to the fFacetLength array. More...
 
double GetFacetLength (int i)
 Get the facet edge length value stored at the specified index. More...
 
void AddTparallel_polParallel (double A)
 Appends a parallel transmission coefficient value to the fTcoeff_parl array. More...
 
double GetTparallel_polParallel (int i)
 Get the parallel transmission coefficient value stored at the specified index. More...
 
void AddTperpendicular_polParallel (double A)
 Appends a perpendicular transmission coefficient value to the fTcoeff_perp array. More...
 
double GetTperpendicular_polParallel (int i)
 Get the perpendicular transmission coefficient value stored at the specified index. More...
 
void AddTparallel_polPerpendicular (double A)
 Appends a parallel transmission coefficient value to the fTcoeff_parl array. More...
 
double GetTparallel_polPerpendicular (int i)
 Get the parallel transmission coefficient value stored at the specified index. More...
 
void AddTperpendicular_polPerpendicular (double A)
 Appends a perpendicular transmission coefficient value to the fTcoeff_perp array. More...
 
double GetTperpendicular_polPerpendicular (int i)
 Get the perpendicular transmission coefficient value stored at the specified index. More...
 
void ResetParameters ()
 Resets the following screen parameters (fNvalidpoints,fVmmhz_freq,fVmmhz0,fViewangle,fDelays,fVec2blns,fPols,fImpactPt,fWeight,fWeightNorm) More...
 

Private Attributes

double fedgeLength
 the full length of one side More...
 
Position fcentralPoint
 coordinates of screen center More...
 
double fcosineProjectionFactor
 cosine projection factor of the screen onto the ground, corrects for the long extension so sampling is faster; cos(angle between local normal at RF exit and vector to balloon) More...
 
Vector fnormal
 screen orientation, '+' = pointing back to balloon More...
 
Vector funit_x
 X unit vector in screen (parallel to ground surface, perp. to screen normal) More...
 
Vector funit_y
 Y unit vector in screen (~ perp. to ground surface, perp. to screen normal) More...
 
int fNsamples
 number of samples in X-direction (and Y-, assuming symmetry) More...
 
int fNvalidpoints
 total number of points on the screen More...
 
std::vector< double > fVmmhz_freq
 container for the valid screen points giving the frequency dependence magnitude for each point; every anita::NFREQ will be each screen point; final size will be (anita::NFREQ * fNsamples) More...
 
std::vector< double > fVmmhz0
 container for vmmhz[0] More...
 
std::vector< double > fViewangle
 
std::vector< double > fDelays
 container for the relative propagation phase delays for each frequency and screen point; final size will be (anita::NFREQ *fNsamples) after the push_backs More...
 
std::vector< VectorfVec2blns
 container of 'vector to balloon' More...
 
std::vector< VectorfPols
 container of transmitted polarizations More...
 
std::vector< PositionfImpactPt
 container of ground impact points More...
 
std::vector< double > fWeight
 container for weight of a screen point ( == area of screen element), normalized when used More...
 
std::vector< double > fIncAngles
 container for incidence angles More...
 
std::vector< double > fTransAngles
 container for transmission angle More...
 
double fWeightNorm
 normalization of the weights == simple weight sum More...
 
std::vector< double > fFacetLength
 edge length [m] of individual contributing facet More...
 
std::vector< double > fTcoeff_parl_polparl
 transmission coefficients of parallel components for parallel polarization More...
 
std::vector< double > fTcoeff_perp_polparl
 transmission coefficients of perpendicular components for parallel polarization More...
 
std::vector< double > fTcoeff_parl_polperp
 transmission coefficients of parallel components for perpendicular polarization More...
 
std::vector< double > fTcoeff_perp_polperp
 transmission coefficients of perpendicular components for perpendicular polarization More...
 

Constructor & Destructor Documentation

◆ Screen()

Screen::Screen ( int  a)

Creates an instance of a screen.

Parameters
a- unused (needs removed)

Member Function Documentation

◆ AddDelay()

void Screen::AddDelay ( double  A)

Appends a delay value to the fDelays array.

Parameters
A- delay

◆ AddFacetLength()

void Screen::AddFacetLength ( double  A)

Appends a facet edge length value to the fFacetLength array.

Parameters
A- viewangle

◆ AddImpactPt()

void Screen::AddImpactPt ( Position  p)

Appends a vector to the fImpactPt array.

Parameters
p- Position

◆ AddIncidenceAngle()

void Screen::AddIncidenceAngle ( double  A)

Appends an incidence angle value to the fIncAngles array.

Parameters
A- viewangle

◆ AddPol()

void Screen::AddPol ( Vector  v)

Appends a vector to the fPols array.

Parameters
v- Vector

◆ AddTparallel_polParallel()

void Screen::AddTparallel_polParallel ( double  A)

Appends a parallel transmission coefficient value to the fTcoeff_parl array.

Parameters
A- coefficient

◆ AddTparallel_polPerpendicular()

void Screen::AddTparallel_polPerpendicular ( double  A)

Appends a parallel transmission coefficient value to the fTcoeff_parl array.

Parameters
A- coefficient

◆ AddTperpendicular_polParallel()

void Screen::AddTperpendicular_polParallel ( double  A)

Appends a perpendicular transmission coefficient value to the fTcoeff_perp array.

Parameters
A- coefficient

◆ AddTperpendicular_polPerpendicular()

void Screen::AddTperpendicular_polPerpendicular ( double  A)

Appends a perpendicular transmission coefficient value to the fTcoeff_perp array.

Parameters
A- coefficient

◆ AddTransmissionAngle()

void Screen::AddTransmissionAngle ( double  A)

Appends a transmission angle value to the fTransAngles array.

Parameters
A- viewangle

◆ AddVec2bln()

void Screen::AddVec2bln ( Vector  v)

Appends a vector to the fVec2blns array.

Parameters
v- Vector

◆ AddViewangle()

void Screen::AddViewangle ( double  A)

Appends a viewangle value to the fViewangle array.

Parameters
A- viewangle

◆ AddVmmhz0()

void Screen::AddVmmhz0 ( double  A)

Appends a Vmmhz value (for the lowest Anita frequency) to the fVmmhz0 array.

Parameters
A- Vmmhz value

◆ AddVmmhz_freq()

void Screen::AddVmmhz_freq ( double  A)

Appends a Vmmhz value to the fVmmhz_freq array.

Parameters
A- Vmmhz value

◆ AddWeight()

void Screen::AddWeight ( double  a)

Appends a weight value to the fWeight array.

Parameters
a- double

◆ CalcXindex()

double Screen::CalcXindex ( int  i)

Calculates the X index of the screen corresponding to the specified counter value.

Parameters
i- index
Returns
double

◆ CalcYindex()

double Screen::CalcYindex ( int  i)

Calculates the Y index of the screen corresponding to the specified counter value.

Parameters
i- index
Returns
double

◆ GetCentralPoint()

Position Screen::GetCentralPoint ( )

Gets the position of the screen's central point.

Returns
Position

◆ GetCosineProjectionFactor()

double Screen::GetCosineProjectionFactor ( )

Gets the projection factor.

Returns
double

◆ GetDelay()

double Screen::GetDelay ( int  i)

Get the delay value stores at the specified index.

Parameters
i- index
Returns
double

◆ GetEdgeLength()

double Screen::GetEdgeLength ( )

Gets the screen length.

Returns
double

◆ GetFacetLength()

double Screen::GetFacetLength ( int  i)

Get the facet edge length value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetImpactPt()

Position Screen::GetImpactPt ( int  i)

Gets the position at the specified index.

Parameters
i- index
Returns
Position

◆ GetIncidenceAngle()

double Screen::GetIncidenceAngle ( int  i)

Get the incidence angle value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetNormal()

Vector Screen::GetNormal ( )

Gets the screen normal.

Returns
Vector

◆ GetNsamples()

int Screen::GetNsamples ( )

Gets number of grid divisions for the base screen.

Returns
integer

◆ GetNvalidPoints()

double Screen::GetNvalidPoints ( )

Gets the total number of points.

Returns
int

◆ GetPol()

Vector Screen::GetPol ( int  i)

Gets the polarization vector at the specified index.

Parameters
i- index
Returns
Vector

◆ GetPosition()

Position Screen::GetPosition ( int  i,
int  j 
)

Calculates the physical position of the screen corresponding to the specified counter value.

Parameters
i- index
Returns
double

◆ GetTparallel_polParallel()

double Screen::GetTparallel_polParallel ( int  i)

Get the parallel transmission coefficient value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetTparallel_polPerpendicular()

double Screen::GetTparallel_polPerpendicular ( int  i)

Get the parallel transmission coefficient value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetTperpendicular_polParallel()

double Screen::GetTperpendicular_polParallel ( int  i)

Get the perpendicular transmission coefficient value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetTperpendicular_polPerpendicular()

double Screen::GetTperpendicular_polPerpendicular ( int  i)

Get the perpendicular transmission coefficient value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetTransmissionAngle()

double Screen::GetTransmissionAngle ( int  i)

Get the transmission angle value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetUnitX()

Vector Screen::GetUnitX ( )

Gets an orientation vector.

Returns
Vector

◆ GetUnitY()

Vector Screen::GetUnitY ( )

Gets another orientation vector.

Returns
Vector

◆ GetVec2bln()

Vector Screen::GetVec2bln ( int  i)

Gets the to-balloon vector at the specified index.

Parameters
i- index
Returns
Vector

◆ GetViewangle()

double Screen::GetViewangle ( int  i)

Get the viewangle value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetVmmhz0()

double Screen::GetVmmhz0 ( int  i)

Gets the Vmmhz0 value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetVmmhz_freq()

double Screen::GetVmmhz_freq ( int  i)

Get the Vmmhz value stored at the specified index.

Parameters
i- index
Returns
double

◆ GetWeight()

double Screen::GetWeight ( int  i)

Gets the weight value at the specified index.

Parameters
i- index
Returns
double

◆ GetWeightNorm()

double Screen::GetWeightNorm ( )

Gets the weight normalization factor.

Returns
double

◆ ResetParameters()

void Screen::ResetParameters ( )

Resets the following screen parameters (fNvalidpoints,fVmmhz_freq,fVmmhz0,fViewangle,fDelays,fVec2blns,fPols,fImpactPt,fWeight,fWeightNorm)

◆ SetCentralPoint()

void Screen::SetCentralPoint ( Position  a)

Sets the position of the central point of the screen.

Parameters
a- position vector

◆ SetCosineProjectionFactor()

void Screen::SetCosineProjectionFactor ( double  a)

Sets the projection factor of the screen relative to the specular RF exit point.

Parameters
a- cosine of the viewing angle w.r.t. to screen normal

◆ SetEdgeLength()

void Screen::SetEdgeLength ( double  a)

Sets the physical length of a side of the screen.

Parameters
a- size (meters)

◆ SetNormal()

void Screen::SetNormal ( Vector  a)

Sets the screen normal.

Parameters
a- normal vector

◆ SetNsamples()

void Screen::SetNsamples ( int  i)

Sets number of grid divisions for the base screen.

Parameters
i- number of grid point

◆ SetNvalidPoints()

void Screen::SetNvalidPoints ( int  i)

Sets the total number of points on the screen.

Parameters
i- number of points

◆ SetUnitX()

void Screen::SetUnitX ( Vector  a)

Sets an orientation vector of the screen.

Parameters
a- vector

◆ SetUnitY()

void Screen::SetUnitY ( Vector  a)

Sets another orientation vector of the screen.

Parameters
a- vector

◆ SetWeightNorm()

void Screen::SetWeightNorm ( double  a)

Sets the normalization factor for the weights (so they sum to 1)

Parameters
a- double

Member Data Documentation

◆ fcentralPoint

Position Screen::fcentralPoint
private

coordinates of screen center

◆ fcosineProjectionFactor

double Screen::fcosineProjectionFactor
private

cosine projection factor of the screen onto the ground, corrects for the long extension so sampling is faster; cos(angle between local normal at RF exit and vector to balloon)

◆ fDelays

std::vector<double> Screen::fDelays
private

container for the relative propagation phase delays for each frequency and screen point; final size will be (anita::NFREQ *fNsamples) after the push_backs

◆ fedgeLength

double Screen::fedgeLength
private

the full length of one side

◆ fFacetLength

std::vector<double> Screen::fFacetLength
private

edge length [m] of individual contributing facet

◆ fImpactPt

std::vector<Position> Screen::fImpactPt
private

container of ground impact points

◆ fIncAngles

std::vector<double> Screen::fIncAngles
private

container for incidence angles

◆ fnormal

Vector Screen::fnormal
private

screen orientation, '+' = pointing back to balloon

◆ fNsamples

int Screen::fNsamples
private

number of samples in X-direction (and Y-, assuming symmetry)

◆ fNvalidpoints

int Screen::fNvalidpoints
private

total number of points on the screen

◆ fPols

std::vector<Vector> Screen::fPols
private

container of transmitted polarizations

◆ fTcoeff_parl_polparl

std::vector<double> Screen::fTcoeff_parl_polparl
private

transmission coefficients of parallel components for parallel polarization

◆ fTcoeff_parl_polperp

std::vector<double> Screen::fTcoeff_parl_polperp
private

transmission coefficients of parallel components for perpendicular polarization

◆ fTcoeff_perp_polparl

std::vector<double> Screen::fTcoeff_perp_polparl
private

transmission coefficients of perpendicular components for parallel polarization

◆ fTcoeff_perp_polperp

std::vector<double> Screen::fTcoeff_perp_polperp
private

transmission coefficients of perpendicular components for perpendicular polarization

◆ fTransAngles

std::vector<double> Screen::fTransAngles
private

container for transmission angle

◆ funit_x

Vector Screen::funit_x
private

X unit vector in screen (parallel to ground surface, perp. to screen normal)

◆ funit_y

Vector Screen::funit_y
private

Y unit vector in screen (~ perp. to ground surface, perp. to screen normal)

◆ fVec2blns

std::vector<Vector> Screen::fVec2blns
private

container of 'vector to balloon'

◆ fViewangle

std::vector<double> Screen::fViewangle
private

◆ fVmmhz0

std::vector<double> Screen::fVmmhz0
private

container for vmmhz[0]

◆ fVmmhz_freq

std::vector<double> Screen::fVmmhz_freq
private

container for the valid screen points giving the frequency dependence magnitude for each point; every anita::NFREQ will be each screen point; final size will be (anita::NFREQ * fNsamples)

◆ fWeight

std::vector<double> Screen::fWeight
private

container for weight of a screen point ( == area of screen element), normalized when used

◆ fWeightNorm

double Screen::fWeightNorm
private

normalization of the weights == simple weight sum


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