1 #ifndef __JPHYSICS__JPDFTRANSFORMER__
2 #define __JPHYSICS__JPDFTRANSFORMER__
20 namespace JPP {
using namespace JPHYSICS; }
39 template<
class JArgument_t>
114 using namespace JTOOLS;
116 const double R = buffer[0];
142 using namespace JTOOLS;
144 const double R = buffer[0];
169 using namespace JTOOLS;
171 const double R = buffer[0];
174 const double ct0 = 1.0 /
n;
175 const double st0 = sqrt((1.0 + ct0)*(1.0 - ct0));
223 std::ostream&
print(std::ostream& out)
const
227 out <<
"Effective attenuation length [m] " <<
ln << endl;
228 out <<
"Distance dependence (power term) " <<
alpha << endl;
229 out <<
"Minimal kappa " <<
kmin << endl;
230 out <<
"Maximal kappa " <<
kmax << endl;
253 template<
class JArgument_t>
328 using namespace JTOOLS;
330 const double D = buffer[0];
356 using namespace JTOOLS;
358 const double D = buffer[0];
383 using namespace JTOOLS;
385 const double D = buffer[0];
387 const double d = sqrt(getDmin()*getDmin() +
D*
D);
433 std::ostream&
print(std::ostream& out)
const
437 out <<
"Effective attenuation length [m] " <<
ln << endl;
438 out <<
"Distance dependence (power term) " <<
alpha << endl;
439 out <<
"Minimal kappa " <<
kmin << endl;
440 out <<
"Maximal kappa " <<
kmax << endl;
465 template<
class JArgument_t>
486 getShowerProbability()
506 transformer(ln, alpha, kmin, kmax),
507 getShowerProbability(geant)
509 getShowerProbability.add(bmin);
510 getShowerProbability.compile();
534 return transformer.putXn(buffer, xn);
547 return transformer.getXn(buffer, xn);
559 using namespace JTOOLS;
562 const double cd = buffer[1];
577 in >> getShowerProbability;
592 out << getShowerProbability;
604 std::ostream&
print(std::ostream& out)
const
606 return transformer.print(out);
619 template<
unsigned int N,
class JArgument_t>
634 template<
class JArgument_t>
668 transformer(ln, alpha, kmin, kmax)
692 return transformer.putXn(buffer, xn);
705 return transformer.getXn(buffer, xn);
717 return transformer.getWeight(buffer);
755 std::ostream&
print(std::ostream& out)
const
757 return transformer.print(out);
778 template<
class JArgument_t>
822 transformer(ln, alpha, kmin, kmax),
852 return transformer.putXn(buffer, xn);
865 return transformer.getXn(buffer, xn);
877 using namespace JTOOLS;
880 const double theta = buffer[1];
881 const double phi = buffer[2];
884 const double ct0 = 1.0 /
n;
885 const double st0 = sqrt((1.0 + ct0)*(1.0 - ct0));
887 const double px =
sin(theta)*cos(phi);
889 const double pz = cos(theta);
891 const double ct = st0*px + ct0*pz;
908 getAngularAcceptance.compile();
935 std::ostream&
print(std::ostream& out)
const
937 return transformer.print(out);
961 template<
class JArgument_t>
1008 const double amin) :
1009 transformer(ln, alpha, kmin, kmax, geant, bmin),
1039 return transformer.putXn(buffer, xn);
1052 return transformer.getXn(buffer, xn);
1064 const double cd = buffer[1];
1065 const double theta = buffer[2];
1066 const double phi = buffer[3];
1068 const double ct0 = (cd > -1.0 ? cd < +1.0 ? cd : +1.0 : -1.0);
1069 const double st0 = sqrt((1.0 + ct0)*(1.0 - ct0));
1071 const double px =
sin(theta)*cos(phi);
1073 const double pz = cos(theta);
1075 const double ct = st0*px + ct0*pz;
1092 getAngularAcceptance.compile();
1119 std::ostream&
print(std::ostream& out)
const
1121 return transformer.print(out);
1147 template<
class JArgument_t>
1175 transformer(transformer)
1200 const double amin) :
1201 transformer(ln, alpha, kmin, kmax, geant, bmin, pmt, amin)
1225 return transformer.putXn(buffer.
pop_front(), xn);
1238 return transformer.getXn(buffer.
pop_front(), xn);
1250 const double E = buffer[0];
1252 return transformer.getWeight(buffer.
pop_front()) / E;
1290 std::ostream&
print(std::ostream& out)
const
1292 return transformer.print(out);
Interface for binary output.
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Base class for photon emission profile EM-shower.
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
static const JGeant geant(geanx, 0.0001)
Function object for the number of photons from EM-shower as a function of emission angle...
Compiler version dependent expressions, macros, etc.
JClonable< JClonable_t >::clone_type clone_type
do set_variable OUTPUT_DIRECTORY $WORKDIR T
T pow(const T &x, const double y)
Power .
Interface for binary input.
double getIndexOfRefractionPhase()
Get average index of refraction of water corresponding to phase velocity.
Base class for the probability density function of photon emission from EM-shower as a function of th...
then JCookie sh JDataQuality D $DETECTOR_ID R
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
const double getInverseSpeedOfLight()
Get inverse speed of light.
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity.
do echo Generating $dir eval D
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable STRING $argv[2] set_array QUANTILES set_variable FORMULA *[0] exp(-0.5 *(x-[1])*(x-[1])/([2]*[2]))" set_variable MODULE `getModule -a $DETECTOR -L "$STRING 0"` source JAcousticsToolkit.sh typeset -A TRIPODS get_tripods $WORKDIR/tripod.txt TRIPODS XMEAN
double getAngularAcceptance(const double x)
Angular acceptence of PMT.