33 typedef JAbstractHistogram<double> JHistogram_t;
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;
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;
139 histogram = JHistogram_t(t0 - 20.0, t0 + 50.0);
145 histogram = JHistogram_t(t0 - 20.0, t0 + 500.0);
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.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
std::string getLabel(const JLocation &location)
Get module label for monitoring and other applications.
static const JZero zero
Function object to assign zero value.
then warning Cannot perform comparison test for histogram
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.
then set_variable PMT_FILE set_variable DAQ_FILE set_variable OUTPUT_FILE set_variable DETECTOR else fatal Wrong number of arguments fi JPrintTree f $DAQ_FILE type
#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.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Auxiliary data structure for floating point format specification.
do echo Generating $dir eval D