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

Reads in and stores input settings for the run. More...

#include <Settings.h>

Inheritance diagram for Settings:

Public Member Functions

 Settings ()
 
 ~Settings ()
 
void Initialize ()
 
void printAllKeyValuePairStrings ()
 
void getSetting (const char *key, int &value, bool nonag=false)
 
void getSetting (const char *key, float &value, bool nonag=false)
 
void getSetting (const char *key, double &value, bool nonag=false)
 
void getSetting (const char *key, std::string &value, bool nonag=false)
 
void getSetting (const char *key, vector< int > &valueArray, bool nonag=false)
 
void getSetting (const char *key, vector< float > &valueArray, bool nonag=false)
 
void getSetting (const char *key, vector< double > &valueArray, bool nonag=false)
 
void ReadInputs (const char *fileName, ofstream &foutput, int &NNU, double &RANDOMISEPOL)
 
void ApplyInputs (Anita *anita1, Secondaries *sec1, Signal *sig1, Balloon *bn1, Ray *ray1)
 
 ClassDef (Settings, 2)
 

Public Attributes

int UNBIASED_SELECTION
 
double UNBIASED_PS_MAX_DISTANCE_KM
 
double UNBIASED_CHORD_STEP_M
 
int WHICH
 
int ANITAVERSION
 
int CYLINDRICALSYMMETRY
 
double SIGMA_FACTOR
 
int SIGMAPARAM
 
int YPARAM
 
int SIGNAL_FLUCT
 
int TRIGGERSCHEME
 
int ZEROSIGNAL
 
int REMOVEPOLARIZATION
 
double INCLINE_TOPTHREE
 
double INCLINE_NADIR
 
int USEDARTBOARD
 
int GAINS
 
int BANDING
 
int NBANDS
 
int PERCENTBW
 
int trigRequirements [4]
 
int REQUIRE_CENTRE
 
double INCLUDE_NADIRONLY
 
int PULSER
 
double SIGMA_THETA
 
double FREQ_LOW
 lowest frequency More...
 
double FREQ_HIGH
 
int SECONDARIES
 
int TAUDECAY
 
int trigEffScanPhi
 
int WHICHPATH
 
int BN_LATITUDE
 
int BN_LONGITUDE
 
int BN_ALTITUDE
 
int RANDOMIZE_BN_ORIENTATION
 
int CENTER
 whether or not to center one phi sector of the payload on the incoming signal (for making signal efficiency curves) More...
 
double MAXHORIZON
 
int EVENTSMAP
 
int WHICHRAYS
 
int MAKEVERTICAL
 
int LCPRCP
 
int JUSTVPOL
 
int NFOLD
 
int CHMASKING
 
int PHIMASKING
 
int NLAYERS
 
int NANTENNAS
 
int ONLYFINAL
 
int HIST_MAX_ENTRIES
 
int HIST
 
double BW
 
int DISCONES
 
double NDISCONES_PASS
 
int BORESIGHTS
 
int SLAC
 
double SLACSLOPE
 
double SLACICELENGTH
 
double SLAC_HORIZDIST
 
double SLAC_DEPTH
 
double SLAC_HORIZ_DEPTH
 
std::string SOURCE
 
std::string WHICH_SOURCES
 
std::string WHICH_SUBTYPE
 
std::string WHICH_START_TIME
 
std::string WHICH_END_TIME
 
int SOURCE_USE_EXPONENT
 
double SOURCE_MIN_E
 
double SOURCE_MAX_E
 
int SOURCE_SKIP_WHEN_NONE
 
int ROUGHNESS
 
int FIRN
 
int SLOPEY
 
double SLOPEYSIZE
 
bool DEBUG
 
double THERMALNOISE_FACTOR
 
double FREQ_LOW_SEAVEYS
 
double FREQ_HIGH_SEAVEYS
 
double BW_SEAVEYS
 
int FORSECKEL
 
double ROUGHSIZE
 
double SCREENEDGELENGTH
 
double SCREENSTEPSIZE
 
int ICE_MODEL
 
int NOFZ
 
int CONSTANTCRUST
 
int CONSTANTICETHICKNESS
 
int FIXEDELEVATION
 
int MOOREBAY
 
int USEPOSITIONWEIGHTS
 
int WRITE_FILE
 
int MINRAY
 
int MAXRAY
 
int horizontal_banana_points
 
int vertical_banana_points
 
double EXPONENT
 
int FILLRAYTREES
 
int SEED
 
double THETA_TH_FACTOR
 
double CHANCEINHELL_FACTOR
 
int WEIGHTABSORPTION
 
int CONSTANTY
 
int taumodes
 
int VARIABLE_ATTEN
 
int TRIGTYPE
 
int ATMOSPHERE
 
int SCALEDOWNLCPRX1
 
int SCALEDOWNEPOLRX1
 
int SCALEDOWNHPOLRX1
 
int SCALEDOWNEPOLRX2
 
double SCALEFACTOREPOLRX2
 
int SCALEDOWNHPOLRX2
 
int EPOLRX2ZERO
 
int HPOLRX2ZERO
 
int RCPRX2ZERO
 
int LCPRX2ZERO
 
int FLATSURFACE
 
int WRITEPOSFILE
 
int SKIPCUTS
 
int USEDIRECTIONWEIGHTS
 
int SHOWERTYPE
 
int antennaclump
 
double COHERENT_THRESHOLD
 
int APPLYIMPULSERESPONSEDIGITIZER
 
int APPLYIMPULSERESPONSETRIGGER
 
int USETIMEDEPENDENTTHRESHOLDS
 
int USEDEADTIME
 
int NOISEFROMFLIGHTTRIGGER
 
int NOISEFROMFLIGHTDIGITIZER
 
int MINBIAS
 
int TRIGGEREFFSCAN
 
int TRIGGEREFFSCAPULSE
 
int TUFFSTATUS
 
int ADDCW
 
int PAYLOAD_USE_SPECIFIC_TIME
 
int PAYLOAD_USE_SPECIFIC_TIME_DELTA
 
int SPECIFIC_NU_POSITION
 
double SPECIFIC_NU_POSITION_LATITUDE
 
double SPECIFIC_NU_POSITION_LONGITUDE
 
double SPECIFIC_NU_POSITION_ALTITUDE
 
double SPECIFIC_NU_POSITION_DISTANCE
 
int IGNORE_CROSSPOL
 
int POL_SIGN_HACK
 
double CUTONWEIGHTS
 
double CUTONWEIGHTPROBS
 
double DEC_CUT
 
int ALL_SKY_MAP
 
std::string CUSTOM_NAME
 
double CUSTOM_RA
 
double CUSTOM_DEC
 
double CUSTOM_GAMMA
 
double HORIZON_OFFSET
 
int useLPM
 
double jamieFactor
 
int medium
 
int askaryanParameterization
 
int SAVE_TRUTH_NU_TREE
 

Private Types

typedef std::map< TString, TString > kvpMap
 

Private Member Functions

Bool_t newKvpPassesSanityChecks (const TString &key, const TString &value, const char *fileName, int lineNum)
 
void complainAboutNotFindingKey (const TString &key)
 
void parseValueArray (const char *valueString, vector< int > &values)
 
void parseValueArray (const char *valueString, vector< float > &values)
 
void parseValueArray (const char *valueString, vector< double > &values)
 
void parseSettingsFile (const char *fileName, ofstream &outputFile)
 

Private Attributes

kvpMap keyValuePairStrings
 
vector< double > efficiencyScanOffAxisAttenuations
 
vector< double > efficiencyScanPhiSectorDelay
 
vector< double > efficiencyScanRingDelay
 
vector< int > efficiencyScanRingsUsed
 
vector< int > efficiencyScanApplyRingDelay
 
vector< int > whichTUFFsON
 
vector< double > tempThresholds
 
vector< double > bandLowEdgesMHz
 
vector< double > bandHighEdgesMHz
 
vector< int > requiredBands
 
vector< int > allowedBands
 
vector< double > notchFilterLimitsMHz
 
vector< int > channelRequirePol
 
vector< int > channelAllowedPol
 

Detailed Description

Reads in and stores input settings for the run.

Member Typedef Documentation

◆ kvpMap

typedef std::map<TString, TString> Settings::kvpMap
private

Constructor & Destructor Documentation

◆ Settings()

Settings::Settings ( )

Default constructor

◆ ~Settings()

Settings::~Settings ( )

Default destructor

Member Function Documentation

◆ ApplyInputs()

void Settings::ApplyInputs ( Anita anita1,
Secondaries sec1,
Signal sig1,
Balloon bn1,
Ray ray1 
)

◆ ClassDef()

Settings::ClassDef ( Settings  ,
 
)

◆ complainAboutNotFindingKey()

void Settings::complainAboutNotFindingKey ( const TString &  key)
private

◆ getSetting() [1/7]

void Settings::getSetting ( const char *  key,
int &  value,
bool  nonag = false 
)

◆ getSetting() [2/7]

void Settings::getSetting ( const char *  key,
float &  value,
bool  nonag = false 
)

◆ getSetting() [3/7]

void Settings::getSetting ( const char *  key,
double &  value,
bool  nonag = false 
)

◆ getSetting() [4/7]

void Settings::getSetting ( const char *  key,
std::string &  value,
bool  nonag = false 
)

◆ getSetting() [5/7]

void Settings::getSetting ( const char *  key,
vector< int > &  valueArray,
bool  nonag = false 
)

◆ getSetting() [6/7]

void Settings::getSetting ( const char *  key,
vector< float > &  valueArray,
bool  nonag = false 
)

◆ getSetting() [7/7]

void Settings::getSetting ( const char *  key,
vector< double > &  valueArray,
bool  nonag = false 
)

◆ Initialize()

void Settings::Initialize ( )

Set member variables to default values

◆ newKvpPassesSanityChecks()

Bool_t Settings::newKvpPassesSanityChecks ( const TString &  key,
const TString &  value,
const char *  fileName,
int  lineNum 
)
private

Perform some basic checks on the key value pair parsed on this line Prints an appropriate warning message if there was a problem Gets it own function as the warnings are a little verbose

Parameters
keyis the key (Setting name)
valueis the value (Setting value)
fileNameis the name of the input.conf file
lineNumis the line being parsed.
Returns
true if we should insert the key into the kvp map, false if there was a problem.

◆ parseSettingsFile()

void Settings::parseSettingsFile ( const char *  fileName,
ofstream &  outputFile 
)
private

Copies the contents of a yaml settings file into internal memory as strings Later on these strings get turned into ints, floats, doubles...

Parameters
fileNamethe name of the settings file to read

◆ parseValueArray() [1/3]

void Settings::parseValueArray ( const char *  valueString,
vector< int > &  values 
)
private

◆ parseValueArray() [2/3]

void Settings::parseValueArray ( const char *  valueString,
vector< float > &  values 
)
private

◆ parseValueArray() [3/3]

void Settings::parseValueArray ( const char *  valueString,
vector< double > &  values 
)
private

◆ printAllKeyValuePairStrings()

void Settings::printAllKeyValuePairStrings ( )

Print all entries in the config key/value pair string map.

For debugging and testing

◆ ReadInputs()

void Settings::ReadInputs ( const char *  fileName,
ofstream &  foutput,
int &  NNU,
double &  RANDOMISEPOL 
)

Member Data Documentation

◆ ADDCW

int Settings::ADDCW

◆ ALL_SKY_MAP

int Settings::ALL_SKY_MAP

◆ allowedBands

vector<int> Settings::allowedBands
private

◆ ANITAVERSION

int Settings::ANITAVERSION

◆ antennaclump

int Settings::antennaclump

◆ APPLYIMPULSERESPONSEDIGITIZER

int Settings::APPLYIMPULSERESPONSEDIGITIZER

◆ APPLYIMPULSERESPONSETRIGGER

int Settings::APPLYIMPULSERESPONSETRIGGER

◆ askaryanParameterization

int Settings::askaryanParameterization

◆ ATMOSPHERE

int Settings::ATMOSPHERE

◆ bandHighEdgesMHz

vector<double> Settings::bandHighEdgesMHz
private

◆ BANDING

int Settings::BANDING

◆ bandLowEdgesMHz

vector<double> Settings::bandLowEdgesMHz
private

◆ BN_ALTITUDE

int Settings::BN_ALTITUDE

◆ BN_LATITUDE

int Settings::BN_LATITUDE

◆ BN_LONGITUDE

int Settings::BN_LONGITUDE

◆ BORESIGHTS

int Settings::BORESIGHTS

◆ BW

double Settings::BW

◆ BW_SEAVEYS

double Settings::BW_SEAVEYS

◆ CENTER

int Settings::CENTER

whether or not to center one phi sector of the payload on the incoming signal (for making signal efficiency curves)

◆ CHANCEINHELL_FACTOR

double Settings::CHANCEINHELL_FACTOR

◆ channelAllowedPol

vector<int> Settings::channelAllowedPol
private

◆ channelRequirePol

vector<int> Settings::channelRequirePol
private

◆ CHMASKING

int Settings::CHMASKING

◆ COHERENT_THRESHOLD

double Settings::COHERENT_THRESHOLD

◆ CONSTANTCRUST

int Settings::CONSTANTCRUST

◆ CONSTANTICETHICKNESS

int Settings::CONSTANTICETHICKNESS

◆ CONSTANTY

int Settings::CONSTANTY

◆ CUSTOM_DEC

double Settings::CUSTOM_DEC

◆ CUSTOM_GAMMA

double Settings::CUSTOM_GAMMA

◆ CUSTOM_NAME

std::string Settings::CUSTOM_NAME

◆ CUSTOM_RA

double Settings::CUSTOM_RA

◆ CUTONWEIGHTPROBS

double Settings::CUTONWEIGHTPROBS

◆ CUTONWEIGHTS

double Settings::CUTONWEIGHTS

◆ CYLINDRICALSYMMETRY

int Settings::CYLINDRICALSYMMETRY

◆ DEBUG

bool Settings::DEBUG

◆ DEC_CUT

double Settings::DEC_CUT

◆ DISCONES

int Settings::DISCONES

◆ efficiencyScanApplyRingDelay

vector<int> Settings::efficiencyScanApplyRingDelay
private

◆ efficiencyScanOffAxisAttenuations

vector<double> Settings::efficiencyScanOffAxisAttenuations
private

◆ efficiencyScanPhiSectorDelay

vector<double> Settings::efficiencyScanPhiSectorDelay
private

◆ efficiencyScanRingDelay

vector<double> Settings::efficiencyScanRingDelay
private

◆ efficiencyScanRingsUsed

vector<int> Settings::efficiencyScanRingsUsed
private

◆ EPOLRX2ZERO

int Settings::EPOLRX2ZERO

◆ EVENTSMAP

int Settings::EVENTSMAP

◆ EXPONENT

double Settings::EXPONENT

◆ FILLRAYTREES

int Settings::FILLRAYTREES

◆ FIRN

int Settings::FIRN

◆ FIXEDELEVATION

int Settings::FIXEDELEVATION

◆ FLATSURFACE

int Settings::FLATSURFACE

◆ FORSECKEL

int Settings::FORSECKEL

◆ FREQ_HIGH

double Settings::FREQ_HIGH

◆ FREQ_HIGH_SEAVEYS

double Settings::FREQ_HIGH_SEAVEYS

◆ FREQ_LOW

double Settings::FREQ_LOW

lowest frequency

◆ FREQ_LOW_SEAVEYS

double Settings::FREQ_LOW_SEAVEYS

◆ GAINS

int Settings::GAINS

◆ HIST

int Settings::HIST

◆ HIST_MAX_ENTRIES

int Settings::HIST_MAX_ENTRIES

◆ HORIZON_OFFSET

double Settings::HORIZON_OFFSET

◆ horizontal_banana_points

int Settings::horizontal_banana_points

◆ HPOLRX2ZERO

int Settings::HPOLRX2ZERO

◆ ICE_MODEL

int Settings::ICE_MODEL

◆ IGNORE_CROSSPOL

int Settings::IGNORE_CROSSPOL

◆ INCLINE_NADIR

double Settings::INCLINE_NADIR

◆ INCLINE_TOPTHREE

double Settings::INCLINE_TOPTHREE

◆ INCLUDE_NADIRONLY

double Settings::INCLUDE_NADIRONLY

◆ jamieFactor

double Settings::jamieFactor

◆ JUSTVPOL

int Settings::JUSTVPOL

◆ keyValuePairStrings

kvpMap Settings::keyValuePairStrings
private

◆ LCPRCP

int Settings::LCPRCP

◆ LCPRX2ZERO

int Settings::LCPRX2ZERO

◆ MAKEVERTICAL

int Settings::MAKEVERTICAL

◆ MAXHORIZON

double Settings::MAXHORIZON

◆ MAXRAY

int Settings::MAXRAY

◆ medium

int Settings::medium

◆ MINBIAS

int Settings::MINBIAS

◆ MINRAY

int Settings::MINRAY

◆ MOOREBAY

int Settings::MOOREBAY

◆ NANTENNAS

int Settings::NANTENNAS

◆ NBANDS

int Settings::NBANDS

◆ NDISCONES_PASS

double Settings::NDISCONES_PASS

◆ NFOLD

int Settings::NFOLD

◆ NLAYERS

int Settings::NLAYERS

◆ NOFZ

int Settings::NOFZ

◆ NOISEFROMFLIGHTDIGITIZER

int Settings::NOISEFROMFLIGHTDIGITIZER

◆ NOISEFROMFLIGHTTRIGGER

int Settings::NOISEFROMFLIGHTTRIGGER

◆ notchFilterLimitsMHz

vector<double> Settings::notchFilterLimitsMHz
private

◆ ONLYFINAL

int Settings::ONLYFINAL

◆ PAYLOAD_USE_SPECIFIC_TIME

int Settings::PAYLOAD_USE_SPECIFIC_TIME

◆ PAYLOAD_USE_SPECIFIC_TIME_DELTA

int Settings::PAYLOAD_USE_SPECIFIC_TIME_DELTA

◆ PERCENTBW

int Settings::PERCENTBW

◆ PHIMASKING

int Settings::PHIMASKING

◆ POL_SIGN_HACK

int Settings::POL_SIGN_HACK

◆ PULSER

int Settings::PULSER

◆ RANDOMIZE_BN_ORIENTATION

int Settings::RANDOMIZE_BN_ORIENTATION

◆ RCPRX2ZERO

int Settings::RCPRX2ZERO

◆ REMOVEPOLARIZATION

int Settings::REMOVEPOLARIZATION

◆ REQUIRE_CENTRE

int Settings::REQUIRE_CENTRE

◆ requiredBands

vector<int> Settings::requiredBands
private

◆ ROUGHNESS

int Settings::ROUGHNESS

◆ ROUGHSIZE

double Settings::ROUGHSIZE

◆ SAVE_TRUTH_NU_TREE

int Settings::SAVE_TRUTH_NU_TREE

◆ SCALEDOWNEPOLRX1

int Settings::SCALEDOWNEPOLRX1

◆ SCALEDOWNEPOLRX2

int Settings::SCALEDOWNEPOLRX2

◆ SCALEDOWNHPOLRX1

int Settings::SCALEDOWNHPOLRX1

◆ SCALEDOWNHPOLRX2

int Settings::SCALEDOWNHPOLRX2

◆ SCALEDOWNLCPRX1

int Settings::SCALEDOWNLCPRX1

◆ SCALEFACTOREPOLRX2

double Settings::SCALEFACTOREPOLRX2

◆ SCREENEDGELENGTH

double Settings::SCREENEDGELENGTH

◆ SCREENSTEPSIZE

double Settings::SCREENSTEPSIZE

◆ SECONDARIES

int Settings::SECONDARIES

◆ SEED

int Settings::SEED

◆ SHOWERTYPE

int Settings::SHOWERTYPE

◆ SIGMA_FACTOR

double Settings::SIGMA_FACTOR

◆ SIGMA_THETA

double Settings::SIGMA_THETA

◆ SIGMAPARAM

int Settings::SIGMAPARAM

◆ SIGNAL_FLUCT

int Settings::SIGNAL_FLUCT

◆ SKIPCUTS

int Settings::SKIPCUTS

◆ SLAC

int Settings::SLAC

◆ SLAC_DEPTH

double Settings::SLAC_DEPTH

◆ SLAC_HORIZ_DEPTH

double Settings::SLAC_HORIZ_DEPTH

◆ SLAC_HORIZDIST

double Settings::SLAC_HORIZDIST

◆ SLACICELENGTH

double Settings::SLACICELENGTH

◆ SLACSLOPE

double Settings::SLACSLOPE

◆ SLOPEY

int Settings::SLOPEY

◆ SLOPEYSIZE

double Settings::SLOPEYSIZE

◆ SOURCE

std::string Settings::SOURCE

◆ SOURCE_MAX_E

double Settings::SOURCE_MAX_E

◆ SOURCE_MIN_E

double Settings::SOURCE_MIN_E

◆ SOURCE_SKIP_WHEN_NONE

int Settings::SOURCE_SKIP_WHEN_NONE

◆ SOURCE_USE_EXPONENT

int Settings::SOURCE_USE_EXPONENT

◆ SPECIFIC_NU_POSITION

int Settings::SPECIFIC_NU_POSITION

◆ SPECIFIC_NU_POSITION_ALTITUDE

double Settings::SPECIFIC_NU_POSITION_ALTITUDE

◆ SPECIFIC_NU_POSITION_DISTANCE

double Settings::SPECIFIC_NU_POSITION_DISTANCE

◆ SPECIFIC_NU_POSITION_LATITUDE

double Settings::SPECIFIC_NU_POSITION_LATITUDE

◆ SPECIFIC_NU_POSITION_LONGITUDE

double Settings::SPECIFIC_NU_POSITION_LONGITUDE

◆ TAUDECAY

int Settings::TAUDECAY

◆ taumodes

int Settings::taumodes

◆ tempThresholds

vector<double> Settings::tempThresholds
private

◆ THERMALNOISE_FACTOR

double Settings::THERMALNOISE_FACTOR

◆ THETA_TH_FACTOR

double Settings::THETA_TH_FACTOR

◆ trigEffScanPhi

int Settings::trigEffScanPhi

◆ TRIGGEREFFSCAN

int Settings::TRIGGEREFFSCAN

◆ TRIGGEREFFSCAPULSE

int Settings::TRIGGEREFFSCAPULSE

◆ TRIGGERSCHEME

int Settings::TRIGGERSCHEME

◆ trigRequirements

int Settings::trigRequirements[4]

◆ TRIGTYPE

int Settings::TRIGTYPE

◆ TUFFSTATUS

int Settings::TUFFSTATUS

◆ UNBIASED_CHORD_STEP_M

double Settings::UNBIASED_CHORD_STEP_M

◆ UNBIASED_PS_MAX_DISTANCE_KM

double Settings::UNBIASED_PS_MAX_DISTANCE_KM

◆ UNBIASED_SELECTION

int Settings::UNBIASED_SELECTION

◆ USEDARTBOARD

int Settings::USEDARTBOARD

◆ USEDEADTIME

int Settings::USEDEADTIME

◆ USEDIRECTIONWEIGHTS

int Settings::USEDIRECTIONWEIGHTS

◆ useLPM

int Settings::useLPM

◆ USEPOSITIONWEIGHTS

int Settings::USEPOSITIONWEIGHTS

◆ USETIMEDEPENDENTTHRESHOLDS

int Settings::USETIMEDEPENDENTTHRESHOLDS

◆ VARIABLE_ATTEN

int Settings::VARIABLE_ATTEN

◆ vertical_banana_points

int Settings::vertical_banana_points

◆ WEIGHTABSORPTION

int Settings::WEIGHTABSORPTION

◆ WHICH

int Settings::WHICH

◆ WHICH_END_TIME

std::string Settings::WHICH_END_TIME

◆ WHICH_SOURCES

std::string Settings::WHICH_SOURCES

◆ WHICH_START_TIME

std::string Settings::WHICH_START_TIME

◆ WHICH_SUBTYPE

std::string Settings::WHICH_SUBTYPE

◆ WHICHPATH

int Settings::WHICHPATH

◆ WHICHRAYS

int Settings::WHICHRAYS

◆ whichTUFFsON

vector<int> Settings::whichTUFFsON
private

◆ WRITE_FILE

int Settings::WRITE_FILE

◆ WRITEPOSFILE

int Settings::WRITEPOSFILE

◆ YPARAM

int Settings::YPARAM

◆ ZEROSIGNAL

int Settings::ZEROSIGNAL

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