42int main(
int argc,
char **argv)
47 string fileDescriptor;
61 JParser<> zap(
"Program to create interpolation tables of the PDF of the arrival time of the Cherenkov light from a shower.");
63 zap[
'F'] =
make_field(fileDescriptor,
"file name descriptor for PDF tables");
66 zap[
'e'] =
make_field(epsilon,
"precision for integration") = 1.0e-10;
71 zap[
'T'] =
make_field(TTS,
"sigma of time bluring [ns]") = 2.0;
77 catch(
const exception &error) {
108 DEBUG(
"Memory " <<
FIXED(5,1) << getMemoryUsage() <<
"%" <<
endl);
110 const string file_name = getFilename(fileDescriptor, SCATTERED_LIGHT_FROM_EMSHOWER);
112 NOTICE(
"loading input from file " << file_name <<
"... " << flush);
118 DEBUG(
"Memory " <<
FIXED(5,1) << getMemoryUsage() <<
"%" <<
endl);
122 const string file_name = getFilename(fileDescriptor, DIRECT_LIGHT_FROM_EMSHOWER);
124 NOTICE(
"loading input from file " << file_name <<
"... " << flush);
126 pdf.
load(file_name.c_str());
129 DEBUG(
"Memory " <<
FIXED(5,1) << getMemoryUsage() <<
"%" <<
endl);
133 NOTICE(
"Add PDF... " << flush);
143 if (
debug >= debug_t) {
149 DEBUG(
"Memory " <<
FIXED(5,1) << getMemoryUsage() <<
"%" <<
endl);
155 NOTICE(
"Smearing combined table with sigma [ns] = " << TTS <<
" ..." << flush);
164 const JFunction4DTransformer_t*
i_transformer =
dynamic_cast<JFunction4DTransformer_t*
>(
i_pdf.transformer->
clone());
269 const double grid = 7.0;
270 const double alpha = 2.0 * sqrt(1.0 -
cos(
grid * PI / 180.0));
272 NOTICE(
"building multi-dimensional function object" <<
endl);
274 for (
const double E :
Es) {
283 const double len = geanz.getLength(pow(10.0, E),
fraction, 1e-6);
295 for (
const double D_m :
Ds) {
299 for (
const double cd : C) {
311 JFunction1D_t& f1 =
o_pdf[E][
D_m][
cd][theta][phi];
313 f1.reserve(X.size());
329 const double Z1 =
Z0 - Z;
333 const double t_prime = t - (Z) / getSpeedOfLight() - (
D_m_prime -
D_m) * getIndexOfRefraction() / getSpeedOfLight();
343 WARNING(
"dt < 0 " << *x <<
' ' <<
D_m <<
' ' << t <<
' ' << y <<
endl);
374 NOTICE(
"transform... " << flush);
Various implementations of functional maps.
Photon emission profile EM-shower.
Longitudinal emission profile EM-shower.
int main(int argc, char **argv)
General purpose messaging.
#define DEBUG(A)
Message macros.
Numbering scheme for PDF types.
Utility class to parse command line options.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Auxiliary classes for numerical integration.
Auxiliary class for CPU timing and usage.
void print(std::ostream &out, const JScale_t scale=milli_t) const
Print timer data.
Template definition of a multi-dimensional oscillation probability interpolation table.
void load()
Load oscillation probability table.
Utility class to parse command line options.
static const JZero zero
Function object to assign zero value.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Auxiliary data structure for floating point format specification.
void store(const char *file_name) const
Store to output file.
virtual clone_type clone() const override
Get clone of this object.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...