39 string fileDescriptor;
44 JParser<> zap(
"Program to convert multi-dimensional histograms of shower light to multi-dimensional PDFs.");
47 zap[
'o'] =
make_field(fileDescriptor) =
"J%p.dat";
52 catch(
const exception &error) {
53 FATAL(error.what() << endl);
58 FATAL(
"error file descriptor " << fileDescriptor << endl);
64 JMAPLIST<JHistogramMap_t,
67 JHistogramGridMap_t>::maplist> JMultiHistogram_t;
74 h1.transformer.reset(
new JFunction4DTransformer_t());
78 NOTICE(
"Loading in input, " << flush);
80 JFileStreamReader
in(inputFile.c_str());
82 for (JMultiHistogram_t* p : { &h0, &h1 }) {
92 for (JMultiHistogram_t::super_iterator
93 i0 = h0.super_begin(),
94 i1 = h1.super_begin(); i1 != h1.super_end(); ++i0, ++i1) {
96 const double W = i0.getValue().getIntegral();
100 const JDirection3D
u(JAngle3D(i0->second->first, i0->second->second->first));
103 int number_of_bins = (int) (2 +
u.getDot(
v));
106 i1.getValue().div(W);
116 const JMultiHistogram_t& value;
119 typedef JPDFTable<JPolint1Function1D_t,
120 JMAPLIST<JPolint1FunctionalMap,
121 JPolint1FunctionalMap,
122 JPolint1FunctionalGridMap,
123 JPolint1FunctionalGridMap>::maplist> JPDF_t;
128 NOTICE(
"storing output to file " << file_name <<
"... " << flush);
130 const JPDF_t pdf(h1);
132 pdf.store(file_name.c_str());
136 catch(
const JException& error) {
137 FATAL(error.what() << endl);
Utility class to parse command line options.
double getCosThetaC()
Get average cosine of Cherenkov angle of water corresponding to group velocity.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
direct light from EM shower
then fatal The output file must have the wildcard in the e g root fi eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
then set_variable DETECTOR set_variable OUTPUT_FILE set_variable DAQ_FILE set_variable PMT_FILE else fatal Wrong number of arguments fi JPrintTree f $DAQ_FILE type
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
bool hasWildCard(const std::string &file_name)
Check presence of wild card.