icemc
 All Classes Namespaces Files Functions Variables Friends Macros Pages
Settings.h
Go to the documentation of this file.
1 
2 //class Tools:
4 
5 #ifndef SETTINGS_H_
6 #define SETTINGS_H_
7 
8 #include <fstream>
9 
10 class Anita;
11 class Secondaries;
12 class Signal;
13 class Balloon;
14 class Ray;
15 
16 using std::string;
17 using std::ifstream;
18 using std::ofstream;
19 
21 class Settings {
22 
23 protected:
24 
25 public:
26  Settings();
27  void Initialize();
28  void ReadInputs(ifstream &inputsfile, ofstream &foutput, Anita* anita1, Secondaries* sec1, Signal* sig1, Balloon* bn1, Ray* ray1);
29 
30 
32  int WHICH; // which payload to use 0=Anita-lite,1=Ross,2=Smex,3=make your own
33  int CYLINDRICALSYMMETRY; // is it cylindrically symmetric =1 if which=1,2, =0 if which=0
34  // if which=3 then 0 or 1
35  double SIGMA_FACTOR; // factor to multiply cross section by for error analysis
36  int SIGMAPARAM; // 0=Reno, 1=Connolly et al. 2011 for cross section parametrization
37  int YPARAM; // 0=Reno, 1=Connolly et al. 2011 for cross section parametrization
38  int SIGNAL_FLUCT; // 1=add noise fluctuation to signal or 0=do not
39  int TRIGGERSCHEME; // frequency domain voltage, frequency domain energy, time domain diode integration
40  int ZEROSIGNAL; // zero the signal to see how many of our hits are noise hits
41  int REMOVEPOLARIZATION; //Disable polarizations
42 
43  int EVENTSMAP;//whether draw the events distribution map
44 
45  int WHICHRAYS; // how many rays to look at (1) direct only (2) direct and down-going.
46 
47  // trigger
48  int LCPRCP; // 1 for circular polarization trigger, 0 for V and H
49  int JUSTVPOL; // 0 for both polarizations, 1 for just V polarization
50  // doesn't allow for both LCPRCP=1 and JUSTVPOL=1
51  //int FIFTHBAND; // 1 to include 0.2-1.2 GHz as a frequency band if JUSTVPOL==1
52  //int NFOLD=3; // how many channels must pass the trigger - in old mechanism - only used for anita-lite
53  int NFOLD; // how many channels must pass the trigger - in old mechanism - only used for anita-lite
54 
55 
56  //int CHMASKING=1; // whether or not to include channel masking
57  //int PHIMASKING=1; // whether or not to include phi masking
58  int CHMASKING; // whether or not to include channel masking
59  int PHIMASKING; // whether or not to include phi masking
60 
61  //int NLAYERS=0;
62  //int NANTENNAS=0;
63 
64  int NLAYERS;
65  int NANTENNAS;
66 
67  /* int ONLYFINAL=1; // only write to final histogram */
68  /* int HIST_MAX_ENTRIES=10000; //maximum number of events to put in histograms */
69  /* int HIST=1; //write to histograms */
70 
71  int ONLYFINAL; // only write to final histogram
72  int HIST_MAX_ENTRIES; //maximum number of events to put in histograms
73  int HIST; //write to histograms
74  double BW; // BANDWIDTH
75  //int DISCONES=1; // whether or not to use discones
76  int DISCONES; // whether or not to use discones
77 
78  //double NDISCONES_PASS=3; // number of discones needed to pass
79  double NDISCONES_PASS; // number of discones needed to pass
80 
81  int BORESIGHTS; // whether to loop over boresights
82  int SLAC; // whether or not we are simulating the slac run
83  double SLACSLOPE; // slope of the ice
84  double SLACICELENGTH; // length of the block of ice
85  double SLAC_HORIZDIST; // horizontal distance from interaction to center of payload at slac beam test
86  double SLAC_DEPTH; // vertical depth of interaction at slac beam test
87  double SLAC_HORIZ_DEPTH; // horizontal depth of interaction at slac
88 
89  int ROUGHNESS; // include effects of surface roughness
90  int FIRN; // whether or not to include the firn
91 
92  //int SLOPEY=1; // 1=slopeyness on, 0=slopeyness off
93  //double SLOPEYSIZE=0.012; // This determines size of the slopeyness (0.10=5.4, 0.20=7.4 deg mean)
94 
95  int SLOPEY; // 1=slopeyness on, 0=slopeyness off
96  double SLOPEYSIZE; // This determines size of the slopeyness (0.10=5.4, 0.20=7.4 deg mean)
97 
98  bool DEBUG;
99  string outputdir; // directory where outputs go
100 
101  //double THERMALNOISE_FACTOR=1.0; // factor to multiply thermal noise for error analysis
102  double THERMALNOISE_FACTOR; // factor to multiply thermal noise for error analysis
103 
104  //double FREQ_LOW_SEAVEYS=200.E6; // min frequency for seaveys
105  //const double FREQ_HIGH_SEAVEYS=1200.E6; // max frequency for seaveys
106 
107  double FREQ_LOW_SEAVEYS; // min frequency for seaveys
108  double FREQ_HIGH_SEAVEYS; // max frequency for seaveys
109  double BW_SEAVEYS;
110  //int FORSECKEL=1; // Make array of strength of signal across frequencies for different viewing angles.
111  int FORSECKEL; // Make array of strength of signal across frequencies for different viewing angles.
112 
113  double ROUGHSIZE; // roughness size
114 
115 
116  /* int ICE_MODEL=0; //Select ice model to be used. 0 = Crust 2.0 , 1 = BEDMAP. */
117  /* int NOFZ=1; // 1=depth dependent index of refraction,0=off */
118  /* int CONSTANTCRUST=0; // set crust density and thickness to constant values. */
119  /* int CONSTANTICETHICKNESS=0; // set ice thickness to constant value */
120  /* int FIXEDELEVATION=0; // fix the elevation to the thickness of ice. */
121  /* int MOOREBAY=0; //1=use Moore's Bay measured ice field attenuation length for the west land, otherwise use South Pole data */
122  /* int USEPOSITIONWEIGHTS=1;// whether or not to restrict the neutrino position so it is within the horizon of the balloon */
123  /* int WRITE_FILE=0; //Select whether or not to write a new input file for CreateHorizons */
124 
125  int ICE_MODEL; //Select ice model to be used. 0 = Crust 2.0 , 1 = BEDMAP.
126  int NOFZ; // 1=depth dependent index of refraction,0=off
127  int CONSTANTCRUST; // set crust density and thickness to constant values.
128  int CONSTANTICETHICKNESS; // set ice thickness to constant value
129  int FIXEDELEVATION; // fix the elevation to the thickness of ice.
130  int MOOREBAY; //1=use Moore's Bay measured ice field attenuation length for the west land, otherwise use South Pole data
131  int USEPOSITIONWEIGHTS;// whether or not to restrict the neutrino position so it is within the horizon of the balloon
132  int WRITE_FILE; //Select whether or not to write a new input file for CreateHorizons
133 
134  int MINRAY;
135  int MAXRAY;
136 
139  double EXPONENT; //Select neutrino flux exponent value or flux model. Detail : READ_EXPONENT
140 
141 
142  // Bunch of variables which were global in icemc.cc but are settings:
143  int FILLRAYTREES; // fill tree for each ray in roughness simulation
144  int SEED; // random number seed.
145  double THETA_TH_FACTOR; // factor to multiply theta_th to check code is working properly
146  double CHANCEINHELL_FACTOR; // loosen chance in hell cuts to check code is working properly
147  int WEIGHTABSORPTION; // whether or not to weight for earth absorption
148  int CONSTANTY; // whether or not to set y to a constant=0.2
149  int taumodes; //whether to choose a flat distribution for y (tau made in rock) or not
150  int VARIABLE_ATTEN; // 0=depth dependent attenuation length, 1=fixed
151  int TRIGTYPE; //1=Trigger scheme as in the SMEX proposal or 0= Just at least 8 channels pass with 2.3 sigma signal
152  int ATMOSPHERE;// include atmosphere
153  int SCALEDOWNLCPRX1; // scale down lcp voltage of antenna 1 by sqrt(2)
154  int SCALEDOWNEPOLRX1; // scale down power of e pol. of antenna 1 by factor of 2
155  int SCALEDOWNHPOLRX1; // scale down power of h pol. of antenna 1 by factor of 2
156  int SCALEDOWNEPOLRX2; // scale down power of e pol. of antenna 2 by factor of user's choice
157  double SCALEFACTOREPOLRX2; // scale power of e pol. of antenna 2 by this factor
158  int SCALEDOWNHPOLRX2; // scale down power of h pol. of antenna 2 by factor of 2
159  int EPOLRX2ZERO; // lcp channel on anita-lite is not considered for triggering.
160  int HPOLRX2ZERO; // h pol. of 2nd antenna set to zero.
161  int RCPRX2ZERO; // rcp of 2nd antenna set to zero.
162  int LCPRX2ZERO; // lcp of 2nd antenna set to zero.
163  int FLATSURFACE; // Normals of all positions on the surface are straight up.
164  int WRITEPOSFILE; //Write neutrino position information to file
165  int SKIPCUTS; //See every neutrino through to the end - don't make any of the various cuts designed to speed up the program. (For checking distributions.)
166  int USEDIRECTIONWEIGHTS;// whether or not to restrict the neutrino angle so that the viewing angle is near the cerenkov cone
167  int SHOWERTYPE; // Type of shower for previous option
168  int antennaclump; //number of antenna in clump (L2)
169  // End of the once-global varibles.
171 
172 };
173 #endif