39 template<
class ...Args,
class JContainer_t>
41 const JContainer_t& container,
52int main(
const int argc,
const char **argv)
61 JOscParameters_t parameterGrids;
73 =
"oscillation_parameters.%.txt";
74 zap[
'w'] =
make_field(wildcard,
"wildcard character")
76 zap[
'@'] =
make_field(parameterGrids,
"oscillation parameter grids")
77 = JOscParameters_t(
true);
83 catch(
const exception& error) {
84 FATAL(error.what() << endl);
90 if (pos == std::string::npos) {
91 FATAL(
"Given output file name must contain the given wildcard character " << wildcard);
94 const JGrid_t& theta12 = parameterGrids.
theta12;
95 const JGrid_t& theta13 = parameterGrids.theta13;
96 const JGrid_t& theta23 = parameterGrids.theta23;
97 const JGrid_t& deltaCP = parameterGrids.deltaCP;
98 const JGrid_t& dM21sq = parameterGrids.dM21sq;
99 const JGrid_t& dM31sq = parameterGrids.dM31sq;
101 const int N = (theta12.getSize() *
108 const int maxDigits = to_string(N).length();
110 NOTICE(
"Writing " << N <<
" oscillation parameters files" << endl);
114 for (
int i1 = 0; i1 != dM21sq.getSize(); ++i1) {
116 parameters.
dM21sq = dM21sq.getX(i1);
118 for (
int i2 = 0; i2 != dM31sq.getSize(); ++i2) {
120 parameters.
dM31sq = dM31sq.getX(i2);
122 for (
int i3 = 0; i3 != deltaCP.getSize(); ++i3) {
124 parameters.
deltaCP = deltaCP.getX(i3);
126 for (
int i4 = 0; i4 != theta12.getSize(); ++i4) {
128 parameters.
theta12 = theta12.getX(i4);
130 for (
int i5 = 0; i5 != theta13.getSize(); ++i5) {
132 parameters.
theta13 = theta13.getX(i5);
134 for (
int i6 = 0; i6 != theta23.getSize(); ++i6) {
136 parameters.
theta23 = theta23.getX(i6);
138 const int index = (getIndex(i6, theta23,
147 ofstream out(filename.c_str());
General purpose messaging.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
I/O formatting auxiliaries.
#define MAKE_STRING(A)
Make string.
int main(const int argc, const char **argv)
Auxiliary program to write all elements in an oscillation parameters grid to separate output files.
Data structure for single set of oscillation parameters.
JMixingAngle< T > theta23
PMNS mixing angle between the second and third neutrino mass eigenstates [rad].
JMassSquaredDifference< T > dM21sq
Squared mass difference between the first and second neutrino mass eigenstates [eV2].
JMixingAngle< T > theta12
PMNS mixing angle between the first and second neutrino mass eigenstates [rad].
JMassSquaredDifference< T > dM31sq
Squared mass difference between the first and third neutrino mass eigenstates [eV2].
JMixingAngle< T > theta13
PMNS mixing angle between the first and third neutrino mass eigenstates [rad].
JComplexPhase< T > deltaCP
PMNS phase angle [rad].
Utility class to parse command line options.
int getIndex()
Get index for user I/O manipulation.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for sequence of same character.