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
const double getInverseSpeedOfLight()
Get inverse speed of light.
double getTanThetaC()
Get average tangent of Cherenkov angle of water corresponding to group velocity.
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
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.