51 typedef JAbstractHistogram<double> JHistogram_t;
61 JHistogram_t histogram;
66 JParser<> zap(
"Auxiliary program to draw PDF of Cherenkov light from EM-shower including shower profile.");
70 zap[
'e'] =
make_field(epsilon,
"precision for integration") = 1.0e-10;
75 zap[
'c'] =
make_field(cd,
"cosine emission angle");
76 zap[
'D'] =
make_field(dir,
"(theta, phi) of PMT [rad]");
78 zap[
'H'] =
make_field(histogram,
"histogram binning") = JHistogram_t();
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;
128 if (!histogram.is_valid()) {
132 histogram = JHistogram_t(t0 - 20.0, t0 + 50.0);
134 histogram.setBinWidth(0.1);
138 histogram = JHistogram_t(t0 - 20.0, t0 + 500.0);
140 histogram.setBinWidth(0.5);
144 TH1D h0(
"h0", NULL, histogram.getNumberOfBins(), histogram.getLowerLimit(), histogram.getUpperLimit());
146 JSplineFunction1D_t f1;
148 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
150 const double dt = h0.GetBinCenter(i) - t0;
155 value += pdf.getLightFromEMshower(*
F,
E,
D, cd, dir.getTheta(), dir.getPhi(), dt);
158 h0.SetBinContent(i, value);
165 JQuantiles quantiles(f1);
167 DEBUG(
"int " << quantiles.getIntegral() << endl);
168 DEBUG(
"x " << quantiles.getX() << endl);
169 DEBUG(
"y " << quantiles.getY() << endl);
170 DEBUG(
"FWHM " << quantiles.getFWHM() << endl);
Utility class to parse command line options.
const double getPhotocathodeArea()
Photo-cathode area 10 inch PMT.
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
double absorptionLengthFactor
Scaling of absorption and scattering length.
double getScatteringProbability(const double x)
Function to describe light scattering in water.
double getMinimalWavelength()
Get minimal wavelength for PDF evaluations.
Auxiliary data structure for floating point format specification.
static const double C
Physics constants.
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.
direct light from EM shower
double getAbsorptionLength(const double lambda)
Absoption length.
double getScatteringLength(const double lambda)
Scattering length.
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
double scatteringLengthFactor
Auxiliary data structure for floating point format specification.
do echo Generating $dir eval D
then usage $script[input file[working directory[option]]] nWhere option can be E
double getAngularAcceptance(const double x)
Angular acceptence of PMT.