31int main(
int argc,
char **argv)
50 JParser<> zap(
"Auxiliary program to plot PDF of Cherenkov light from muon using interpolation tables.");
54 zap[
'E'] =
make_field(E,
"muon energy at vertex [GeV]") = 1.0;
58 zap[
'T'] =
make_field(TTS_ns,
"PMT time smearing [ns]") = 0.0;
64 catch(
const exception &error) {
75 const int N = inputFile.size();
82 for (
int i = 0; i != N; ++i) {
84 NOTICE(
"loading input from file " << inputFile[i] <<
"... " << flush);
86 type[i] = getPDFType(inputFile[i]);
88 pdf [i].load(inputFile[i].c_str());
90 pdf [i].setExceptionHandler(
new JFunction1D_t::JDefaultResult(
JMATH::zero));
103 const double z_emission = z - R/getTanThetaC();
108 cout <<
"enter time (^C to exit) > " << flush;
112 for (
int i = 0; i != N; ++i) {
116 if (is_bremsstrahlung(type[i])) {
118 }
else if (is_deltarays(type[i])) {
119 y *= JDeltaRays::getEnergyLossFromMuon(
E_emission);
124 <<
FIXED(5,1) << R <<
' '
125 <<
FIXED(5,1) << z <<
' '
140 if (inputFile.size() == 1 && getPDFType(inputFile[0]) == DIRECT_LIGHT_FROM_MUON) {
144 const double t0 = 0.0;
166 for (
int i = 1; i <= h0.GetNbinsX(); ++i) {
168 const double dt = h0.GetBinCenter(i) - t0;
172 for (
int j = 0; j != N; ++j) {
174 if (
E_emission >= MASS_MUON* (1/SIN_THETA_C_WATER ) ) {
180 if (is_bremsstrahlung(type[j])) {
182 }
else if (is_deltarays(type[j])) {
183 y *= JDeltaRays::getEnergyLossFromMuon(
E_emission);
191 h0.SetBinContent(i, get_value (Y));
192 h1.SetBinContent(i, get_derivative(Y));
193 h2.SetBinContent(i, get_integral (Y));