45 int main(
int argc,
char **argv)
50 typedef JAbstractHistogram<double> JHistogram_t;
59 JHistogram_t histogram;
64 JParser<> zap(
"Auxiliary program to draw PDF of Cherenkov light from bright point.");
68 zap[
'e'] =
make_field(epsilon,
"precision for integration") = 1.0e-10;
75 zap[
'H'] =
make_field(histogram,
"histogram binning") = JHistogram_t();
80 catch(
const exception &error) {
81 FATAL(error.what() << endl);
101 for (
double dt; cin >> dt; ) {
105 cout << setw(2) << *
F <<
' '
108 <<
FIXED(5,2) << ct <<
' '
109 <<
FIXED(5,1) << dt <<
' '
110 <<
SCIENTIFIC(9,3) << pdf.getLightFromBrightPoint(*
F,
D, ct, dt) *
E << endl;
121 const double t0 = 0.0;
123 if (!histogram.is_valid()) {
127 histogram = JHistogram_t(t0 - 20.0, t0 + 50.0);
129 histogram.setBinWidth(0.1);
133 histogram = JHistogram_t(t0 - 20.0, t0 + 500.0);
135 histogram.setBinWidth(0.5);
139 TH1D h0(
"h0", NULL, histogram.getNumberOfBins(), histogram.getLowerLimit(), histogram.getUpperLimit());
141 JSplineFunction1D_t f1;
143 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
145 const double dt = h0.GetBinCenter(i) - t0;
150 value += pdf.getLightFromBrightPoint(*
F,
D, ct, dt) *
E;
153 h0.SetBinContent(i, value);
160 JQuantiles quantiles(f1);
162 DEBUG(
"int " << quantiles.getIntegral() << endl);
163 DEBUG(
"x " << quantiles.getX() << endl);
164 DEBUG(
"y " << quantiles.getY() << endl);
165 DEBUG(
"FWHM " << quantiles.getFWHM() << endl);
Utility class to parse command line options.
int main(int argc, char *argv[])
Properties of Antares PMT and deep-sea water.
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.
direct light from bright point
Auxiliary data structure for floating point format specification.
Properties of KM3NeT PMT and deep-sea water.
double getMaximalWavelength()
Get maximal wavelength for PDF evaluations.
I/O formatting auxiliaries.
#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.
General purpose messaging.
double getAbsorptionLength(const double lambda)
Get absorption length.
Utility class to parse command line options.
double getScatteringLength(const double lambda)
Get 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
double getAngularAcceptance(const double x)
Angular acceptence of PMT.