33 int main(
int argc,
char **argv)
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.
then for HISTOGRAM in h0 h1
Various implementations of functional maps.
Numbering scheme for PDF types.
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
General purpose messaging.
Utility class to parse command line options.
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
double getSinThetaC()
Get average sine of Cherenkov angle of water corresponding to group velocity.
bool hasWildCard(const std::string &file_name)
Check wild card.
int main(int argc, char *argv[])