icemc
|
#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< Vector > | fVec2blns |
container of 'vector to balloon' More... | |
std::vector< Vector > | fPols |
container of transmitted polarizations More... | |
std::vector< Position > | fImpactPt |
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... | |
Screen::Screen | ( | int | a | ) |
Creates an instance of a screen.
a | - unused (needs removed) |
void Screen::AddDelay | ( | double | A | ) |
Appends a delay value to the fDelays array.
A | - delay |
void Screen::AddFacetLength | ( | double | A | ) |
Appends a facet edge length value to the fFacetLength array.
A | - viewangle |
void Screen::AddImpactPt | ( | Position | p | ) |
Appends a vector to the fImpactPt array.
p | - Position |
void Screen::AddIncidenceAngle | ( | double | A | ) |
Appends an incidence angle value to the fIncAngles array.
A | - viewangle |
void Screen::AddTparallel_polParallel | ( | double | A | ) |
Appends a parallel transmission coefficient value to the fTcoeff_parl array.
A | - coefficient |
void Screen::AddTparallel_polPerpendicular | ( | double | A | ) |
Appends a parallel transmission coefficient value to the fTcoeff_parl array.
A | - coefficient |
void Screen::AddTperpendicular_polParallel | ( | double | A | ) |
Appends a perpendicular transmission coefficient value to the fTcoeff_perp array.
A | - coefficient |
void Screen::AddTperpendicular_polPerpendicular | ( | double | A | ) |
Appends a perpendicular transmission coefficient value to the fTcoeff_perp array.
A | - coefficient |
void Screen::AddTransmissionAngle | ( | double | A | ) |
Appends a transmission angle value to the fTransAngles array.
A | - viewangle |
void Screen::AddViewangle | ( | double | A | ) |
Appends a viewangle value to the fViewangle array.
A | - viewangle |
void Screen::AddVmmhz0 | ( | double | A | ) |
Appends a Vmmhz value (for the lowest Anita frequency) to the fVmmhz0 array.
A | - Vmmhz value |
void Screen::AddVmmhz_freq | ( | double | A | ) |
Appends a Vmmhz value to the fVmmhz_freq array.
A | - Vmmhz value |
void Screen::AddWeight | ( | double | a | ) |
Appends a weight value to the fWeight array.
a | - double |
double Screen::CalcXindex | ( | int | i | ) |
Calculates the X index of the screen corresponding to the specified counter value.
i | - index |
double Screen::CalcYindex | ( | int | i | ) |
Calculates the Y index of the screen corresponding to the specified counter value.
i | - index |
Position Screen::GetCentralPoint | ( | ) |
Gets the position of the screen's central point.
double Screen::GetCosineProjectionFactor | ( | ) |
Gets the projection factor.
double Screen::GetDelay | ( | int | i | ) |
Get the delay value stores at the specified index.
i | - index |
double Screen::GetEdgeLength | ( | ) |
Gets the screen length.
double Screen::GetFacetLength | ( | int | i | ) |
Get the facet edge length value stored at the specified index.
i | - index |
Position Screen::GetImpactPt | ( | int | i | ) |
double Screen::GetIncidenceAngle | ( | int | i | ) |
Get the incidence angle value stored at the specified index.
i | - index |
int Screen::GetNsamples | ( | ) |
Gets number of grid divisions for the base screen.
double Screen::GetNvalidPoints | ( | ) |
Gets the total number of points.
Vector Screen::GetPol | ( | int | i | ) |
Position Screen::GetPosition | ( | int | i, |
int | j | ||
) |
Calculates the physical position of the screen corresponding to the specified counter value.
i | - index |
double Screen::GetTparallel_polParallel | ( | int | i | ) |
Get the parallel transmission coefficient value stored at the specified index.
i | - index |
double Screen::GetTparallel_polPerpendicular | ( | int | i | ) |
Get the parallel transmission coefficient value stored at the specified index.
i | - index |
double Screen::GetTperpendicular_polParallel | ( | int | i | ) |
Get the perpendicular transmission coefficient value stored at the specified index.
i | - index |
double Screen::GetTperpendicular_polPerpendicular | ( | int | i | ) |
Get the perpendicular transmission coefficient value stored at the specified index.
i | - index |
double Screen::GetTransmissionAngle | ( | int | i | ) |
Get the transmission angle value stored at the specified index.
i | - index |
Vector Screen::GetVec2bln | ( | int | i | ) |
double Screen::GetViewangle | ( | int | i | ) |
Get the viewangle value stored at the specified index.
i | - index |
double Screen::GetVmmhz0 | ( | int | i | ) |
Gets the Vmmhz0 value stored at the specified index.
i | - index |
double Screen::GetVmmhz_freq | ( | int | i | ) |
Get the Vmmhz value stored at the specified index.
i | - index |
double Screen::GetWeight | ( | int | i | ) |
Gets the weight value at the specified index.
i | - index |
double Screen::GetWeightNorm | ( | ) |
Gets the weight normalization factor.
void Screen::ResetParameters | ( | ) |
Resets the following screen parameters (fNvalidpoints,fVmmhz_freq,fVmmhz0,fViewangle,fDelays,fVec2blns,fPols,fImpactPt,fWeight,fWeightNorm)
void Screen::SetCentralPoint | ( | Position | a | ) |
Sets the position of the central point of the screen.
a | - position vector |
void Screen::SetCosineProjectionFactor | ( | double | a | ) |
Sets the projection factor of the screen relative to the specular RF exit point.
a | - cosine of the viewing angle w.r.t. to screen normal |
void Screen::SetEdgeLength | ( | double | a | ) |
Sets the physical length of a side of the screen.
a | - size (meters) |
void Screen::SetNormal | ( | Vector | a | ) |
Sets the screen normal.
a | - normal vector |
void Screen::SetNsamples | ( | int | i | ) |
Sets number of grid divisions for the base screen.
i | - number of grid point |
void Screen::SetNvalidPoints | ( | int | i | ) |
Sets the total number of points on the screen.
i | - number of points |
void Screen::SetUnitX | ( | Vector | a | ) |
Sets an orientation vector of the screen.
a | - vector |
void Screen::SetUnitY | ( | Vector | a | ) |
Sets another orientation vector of the screen.
a | - vector |
void Screen::SetWeightNorm | ( | double | a | ) |
Sets the normalization factor for the weights (so they sum to 1)
a | - double |
|
private |
coordinates of screen center
|
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)
|
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
|
private |
the full length of one side
|
private |
edge length [m] of individual contributing facet
|
private |
container of ground impact points
|
private |
container for incidence angles
|
private |
screen orientation, '+' = pointing back to balloon
|
private |
number of samples in X-direction (and Y-, assuming symmetry)
|
private |
total number of points on the screen
|
private |
container of transmitted polarizations
|
private |
transmission coefficients of parallel components for parallel polarization
|
private |
transmission coefficients of parallel components for perpendicular polarization
|
private |
transmission coefficients of perpendicular components for parallel polarization
|
private |
transmission coefficients of perpendicular components for perpendicular polarization
|
private |
container for transmission angle
|
private |
X unit vector in screen (parallel to ground surface, perp. to screen normal)
|
private |
Y unit vector in screen (~ perp. to ground surface, perp. to screen normal)
|
private |
container of 'vector to balloon'
|
private |
|
private |
container for vmmhz[0]
|
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)
|
private |
container for weight of a screen point ( == area of screen element), normalized when used
|
private |
normalization of the weights == simple weight sum