33 typedef JAbstractHistogram<double> JHistogram_t;
41 JHistogram_t histogram;
46 JParser<> zap(
"Program to plot PDF of Cherenkov light from bright point using interpolation tables.");
50 zap[
'E'] =
make_field(
E,
"shower energy [GeV]") = 1.0;
53 zap[
'T'] =
make_field(TTS_ns,
"PMT time smearing [ns]") = 0.0;
54 zap[
'H'] =
make_field(histogram,
"histogram binning") = JHistogram_t();
59 catch(
const exception &error) {
60 FATAL(error.what() << endl);
63 JDistance<double>::precision = 1.0e-10;
65 typedef JSplineFunction1S_t JFunction1D_t;
66 typedef JMAPLIST<JPolint1FunctionalMap,
67 JPolint1FunctionalGridMap>::maplist JMapList_t;
68 typedef JPDFTable<JFunction1D_t, JMapList_t> JPDF_t;
70 const int N = inputFile.size();
77 for (
int i = 0; i !=
N; ++i) {
79 NOTICE(
"loading input from file " << inputFile[i] <<
"... " << flush);
83 pdf [i].load(inputFile[i].c_str());
85 pdf [i].setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
94 catch(
const JException& error) {
95 FATAL(error.what() << endl);
101 for (
double dt; cin >> dt; ) {
103 for (
int i = 0; i !=
N; ++i) {
105 JFunction1D_t::result_type y = pdf[i](
D, ct, dt);
107 cout << setw(2) << type[i] <<
' '
109 <<
FIXED(5,1) << D <<
' '
110 <<
FIXED(5,2) << ct <<
' '
111 <<
FIXED(5,1) << dt <<
' '
127 if (inputFile.size() == 1 &&
133 const double t0 = 0.0;
135 if (!histogram.is_valid()) {
139 histogram = JHistogram_t(t0 - 20.0, t0 + 50.0);
141 histogram.setBinWidth(0.1);
145 histogram = JHistogram_t(t0 - 20.0, t0 + 500.0);
147 histogram.setBinWidth(0.5);
151 TH1D h0(
"h0", NULL, histogram.getNumberOfBins(), histogram.getLowerLimit(), histogram.getUpperLimit());
153 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
155 const double dt = h0.GetBinCenter(i) - t0;
159 for (
int j = 0;
j !=
N; ++
j) {
160 Y += pdf[
j](
D, ct, dt) *
E;
Utility class to parse command line options.
std::string getLabel(const JLocation &location)
Get module label for monitoring and other applications.
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
static const JZero zero
Function object to assign zero value.
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
Auxiliary data structure for floating point format specification.
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
scattered light from bright point
int getPDFType(const std::string &file_name)
Get PDF type.
Auxiliary data structure for floating point format specification.
do echo Generating $dir eval D