Jpp  19.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Functions
JWriteOscParametersGrid.cc File Reference
#include <set>
#include <string>
#include <iostream>
#include "JIO/JFileStreamIO.hh"
#include "Jeep/JPrint.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"
#include "JOscProb/JOscParameters.hh"

Go to the source code of this file.

Functions

int main (const int argc, const char **argv)
 Auxiliary program to write all elements in an oscillation parameters grid to separate output files. More...
 

Function Documentation

int main ( const int  argc,
const char **  argv 
)

Auxiliary program to write all elements in an oscillation parameters grid to separate output files.

Definition at line 52 of file JWriteOscParametersGrid.cc.

53 {
54  using namespace std;
55  using namespace JPP;
56 
57  typedef JGrid<double> JGrid_t;
58  typedef JOscParameters<JGrid_t> JOscParameters_t;
59 
60 
61  JOscParameters_t parameterGrids;
62  string outputFile;
63 
64  char wildcard;
65 
66  int debug;
67 
68  try {
69 
70  JParser<> zap;
71 
72  zap['o'] = make_field(outputFile, "output file")
73  = "oscillation_parameters.%.txt";
74  zap['w'] = make_field(wildcard, "wildcard character")
75  = '%';
76  zap['@'] = make_field(parameterGrids, "oscillation parameter grids")
77  = JOscParameters_t(true);
78  zap['d'] = make_field(debug, "debug")
79  = 0;
80 
81  zap(argc, argv);
82  }
83  catch(const exception& error) {
84  FATAL(error.what() << endl);
85  }
86 
87 
88  const size_t pos = outputFile.find(wildcard);
89 
90  if (pos == std::string::npos) {
91  FATAL("Given output file name must contain the given wildcard character " << wildcard);
92  }
93 
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;
100 
101  const int N = (theta12.getSize() *
102  theta13.getSize() *
103  theta23.getSize() *
104  deltaCP.getSize() *
105  dM21sq.getSize() *
106  dM31sq.getSize());
107 
108  const int maxDigits = to_string(N).length();
109 
110  NOTICE("Writing " << N << " oscillation parameters files" << endl);
111 
112  JOscParameters<double> parameters;
113 
114  for (int i1 = 0; i1 != dM21sq.getSize(); ++i1) {
115 
116  parameters.dM21sq = dM21sq.getX(i1);
117 
118  for (int i2 = 0; i2 != dM31sq.getSize(); ++i2) {
119 
120  parameters.dM31sq = dM31sq.getX(i2);
121 
122  for (int i3 = 0; i3 != deltaCP.getSize(); ++i3) {
123 
124  parameters.deltaCP = deltaCP.getX(i3);
125 
126  for (int i4 = 0; i4 != theta12.getSize(); ++i4) {
127 
128  parameters.theta12 = theta12.getX(i4);
129 
130  for (int i5 = 0; i5 != theta13.getSize(); ++i5) {
131 
132  parameters.theta13 = theta13.getX(i5);
133 
134  for (int i6 = 0; i6 != theta23.getSize(); ++i6) {
135 
136  parameters.theta23 = theta23.getX(i6);
137 
138  const int index = (getIndex(i6, theta23,
139  i5, theta13,
140  i4, theta12,
141  i3, deltaCP,
142  i2, dM31sq,
143  i1) + 1);
144 
145  const string filename = string(outputFile).replace(pos, 1, MAKE_STRING(FILL(maxDigits,'0') << index));
146 
147  ofstream out(filename.c_str());
148 
149  out << parameters;
150 
151  out.close();
152  }
153  }
154  }
155  }
156  }
157  }
158 
159  return 0;
160 }
Utility class to parse command line options.
Definition: JParser.hh:1711
static constexpr const char *const theta23()
static constexpr const char *const dM21sq()
static constexpr const char *const dM31sq()
static constexpr const char *const deltaCP()
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
string outputFile
#define MAKE_STRING(A)
Make string.
Definition: JPrint.hh:127
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition: JParser.hh:2158
#define NOTICE(A)
Definition: JMessage.hh:64
int getIndex()
Get index for user I/O manipulation.
Definition: JManip.hh:26
Auxiliary data structure for sequence of same character.
Definition: JManip.hh:328
#define FATAL(A)
Definition: JMessage.hh:67
static constexpr const char *const theta13()
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
std::string to_string(const T &value)
Convert value to string.
int debug
debug level
static constexpr const char *const theta12()