51 typedef JAbstractHistogram<double> JHistogram_t;
66 JParser<> zap(
"Auxiliary program to draw PDF of Cherenkov light from EM-shower or scattered light from muon.");
73 zap[
'E'] =
make_field(
E,
"shower energy [GeV]") = 1.0;
75 zap[
'c'] =
make_field(cd,
"cosine emission angle");
76 zap[
'D'] =
make_field(dir,
"(theta, phi) of PMT [rad]");
83 catch(
const exception &error) {
84 FATAL(error.what() << endl);
104 for (
double dt; cin >> dt; ) {
108 cout << setw(2) << *
F <<
' '
111 <<
FIXED(5,2) << cd <<
' '
112 <<
FIXED(5,2) << dir.getTheta() <<
' '
113 <<
FIXED(5,2) << dir.getPhi() <<
' '
114 <<
FIXED(5,1) << dt <<
' '
115 <<
SCIENTIFIC(9,3) << pdf.getLightFromEMshower(*
F,
E,
D, cd, dir.getTheta(), dir.getPhi(), dt) *
E << endl;
126 const double t0 = 0.0;
132 histogram = JHistogram_t(t0 - 20.0, t0 + 50.0);
138 histogram = JHistogram_t(t0 - 20.0, t0 + 1000.0);
146 JSplineFunction1S_t
f1;
148 for (
int i = 1;
i <= h0.GetNbinsX(); ++
i) {
150 const double dt = h0.GetBinCenter(
i) - t0;
156 value += pdf.getScatteredLightFromMuon(
D, cd, dir.getTheta(), dir.getPhi(), dt);
158 value += pdf.getLightFromEMshower(*
F,
D, cd, dir.getTheta(), dir.getPhi(), dt) *
E;
161 h0.SetBinContent(
i, value);
166 f1.setExceptionHandler(
new JSplineFunction1S_t::JDefaultResult(
JMATH::zero));
169 JQuantiles quantiles(
f1);
171 DEBUG(
"int " << quantiles.getIntegral() << endl);
172 DEBUG(
"x " << quantiles.getX() << endl);
173 DEBUG(
"y " << quantiles.getY() << endl);
174 DEBUG(
"FWHM " << quantiles.getFWHM() << endl);
Utility class to parse command line options.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
scattered light from muon
double absorptionLengthFactor
Scaling of absorption and scattering length.
double getScatteringProbability(const double x)
Function to describe light scattering in water.
static const JZero zero
Function object to assign zero value.
double getMinimalWavelength()
Get minimal wavelength for PDF evaluations.
then warning Cannot perform comparison test for histogram
Auxiliary data structure for floating point format specification.
const JPolynome f1(1.0, 2.0, 3.0)
Function.
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.
double getPhotocathodeArea()
Get photo-cathode area of PMT.
double getAbsorptionLength(const double lambda)
Get absorption length.
double getScatteringLength(const double lambda)
Get scattering length.
double scatteringLengthFactor
Auxiliary data structure for floating point format specification.
do echo Generating $dir eval D
#define DEBUG(A)
Message macros.
double getAngularAcceptance(const double x)
Angular acceptence of PMT.