54 int main(
int argc,
char **argv)
68 JParser<> zap(
"Program to create interpolation tables of the PDF of the arrival time of the Cherenkov light from a bright point.");
72 zap[
'e'] =
make_field(epsilon,
"precision for integration") = 1.0e-10;
85 catch(
const exception &error) {
86 FATAL(error.what() << endl);
91 typedef double (
JPDF::*fcn)(
const double,
117 typedef JSplineFunction1D_t JFunction1D_t;
118 typedef JMAPLIST<JPolint1FunctionalMap,
119 JPolint1FunctionalGridMap>::maplist JMapList_t;
120 typedef JPDFTable<JFunction1D_t, JMapList_t> JPDF_t;
122 typedef JPDFTransformer<2, JFunction1D_t::argument_type> JFunction2DTransformer_t;
123 typedef JArray<2, JFunction1D_t::argument_type> JArray_t;
128 NOTICE(
"building multi-dimensional function object <" <<
function <<
">... " << flush);
130 const double ng[] = { pdf_c.getIndexOfRefractionGroup(wmax),
131 pdf_c.getIndexOfRefractionGroup(wmin) };
138 if (zmap.find(
function) == zmap.end()) {
139 FATAL(
"illegal function specifier" << endl);
142 fcn
f = zmap[
function].first;
143 JFunction2DTransformer_t transformer = zmap[
function].second;
167 for (
double buffer[] = { 0.0, 0.005, 0.01, 0.015, -1 }, *
x = buffer; *
x >= 0; ++
x) {
172 for (
double x = 0.02;
x < 0.99;
x += 0.01)
238 const double D_m = *
d;
240 for (
double dc = 0.1, ct = -1.0; ct < +1.0 + 0.5*dc; ct += dc) {
242 JFunction1D_t& f1 = pdf[D_m][ct];
244 const JArray_t array(D_m, ct);
246 double t_old = transformer.getXn(array, *
X.begin());
251 const double t = transformer.getXn(array, *
x);
252 const double y = (pdf_c.*
f)(D_m, ct, t);
257 WARNING(
"dt < 0 " << *
x <<
' ' << D_m <<
' ' << t <<
' ' << y << endl);
279 pdf.transform(transformer);
292 catch(
const JException& error) {
293 FATAL(error.what() << endl);
Utility class to parse command line options.
int main(int argc, char *argv[])
o $QUALITY_ROOT d $DEBUG!JPlot1D f
Properties of Antares PMT and deep-sea water.
double absorptionLengthFactor
Scaling of absorption and scattering length.
double getScatteringProbability(const double x)
Function to describe light scattering in water.
Empty structure for specification of parser element that is initialised (i.e. does not require input)...
double getMinimalWavelength()
Get minimal wavelength for PDF evaluations.
direct light from bright point
Various implementations of functional maps.
Properties of KM3NeT PMT and deep-sea water.
double getMaximalWavelength()
Get maximal wavelength for PDF evaluations.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
double getQE(const double R, const double mu)
Get QE for given ratio of hit probabilities and expectation value of the number of photo-electrons...
double getAmbientPressure()
Get ambient pressure.
then break fi done getCenter read X Y Z let X
double getPhotocathodeArea()
Get photo-cathode area of PMT.
General purpose messaging.
scattered light from bright point
Empty structure for specification of parser element that is not initialised (i.e. does require input)...
Auxiliary classes for numerical integration.
double getAbsorptionLength(const double lambda)
Get absorption length.
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Utility class to parse command line options.
double getScatteringLength(const double lambda)
Get scattering length.
double scatteringLengthFactor
do echo Generating $dir eval D
double getAngularAcceptance(const double x)
Angular acceptence of PMT.
Auxiliary data structure for muon PDF.