Evaluation of fit.
912 for (data_type::const_iterator p = data.begin(); p != data.end(); ++p) {
918 for (data_type::mapped_type::const_iterator emitter = p->second.begin(); emitter != p->second.end(); ++emitter) {
920 const double D = emitter->first.getDistance(position);
921 const double Vi = velocity.getInverseVelocity(D, emitter->first.getZ(), position.
getZ());
923 const H_t H0(1.0,
string.getGradient(parameters, emitter->first.getPosition(), p->first.getFloor()) * Vi);
925 for (data_type::mapped_type::mapped_type::const_iterator hit = emitter->second.begin(); hit != emitter->second.end(); ++hit) {
927 const double toa_s =
value.
emission[hit->getEKey()].t1 + D * Vi;
929 const double u = (toa_s - hit->getValue()) / hit->getSigma();
930 const double W = sqrt(hit->getWeight());
932 successor += (W*W) * estimator->getRho(u);
934 const H_t
H = H0 * (W * estimator->getPsi(u) / hit->getSigma());
945 V(i.t1, i.t1) += H.t1 * H.t1;
949 if (hit->getFloor() != 0) {
951 switch (this->option) {
954 V(i.t1, i.vs) += H.t1 * H.vs;
V(i.tx, i.vs) += H.tx * H.vs;
V(i.ty, i.vs) += H.ty * H.vs;
V(i.tx2, i.vs) += H.tx2 * H.vs;
V(i.ty2, i.vs) += H.ty2 * H.vs;
956 V(i.vs, i.t1) =
V(i.t1, i.vs);
957 V(i.vs, i.tx) =
V(i.tx, i.vs);
958 V(i.vs, i.ty) =
V(i.ty, i.vs);
959 V(i.vs, i.tx2) =
V(i.tx2, i.vs);
960 V(i.vs, i.ty2) =
V(i.ty2, i.vs);
962 V(i.vs, i.vs) += H.vs * H.vs;
967 V(i.t1, i.tx2) += H.t1 * H.tx2;
V(i.tx, i.tx2) += H.tx * H.tx2;
V(i.ty, i.tx2) += H.ty * H.tx2;
969 V(i.tx2, i.t1) =
V(i.t1, i.tx2);
970 V(i.tx2, i.tx) =
V(i.tx, i.tx2);
971 V(i.tx2, i.ty) =
V(i.ty, i.tx2);
973 V(i.t1, i.ty2) += H.t1 * H.ty2;
V(i.tx, i.ty2) += H.tx * H.ty2;
V(i.ty, i.ty2) += H.ty * H.ty2;
975 V(i.ty2, i.t1) =
V(i.t1, i.ty2);
976 V(i.ty2, i.tx) =
V(i.tx, i.ty2);
977 V(i.ty2, i.ty) =
V(i.ty, i.ty2);
979 V(i.tx2, i.tx2) += H.tx2 * H.tx2;
V(i.tx2, i.ty2) += H.tx2 * H.ty2;
980 V(i.ty2, i.tx2) =
V(i.tx2, i.ty2);
V(i.ty2, i.ty2) += H.ty2 * H.ty2;
982 Y[i.tx2] += W * H.tx2;
983 Y[i.ty2] += W * H.ty2;
986 V(i.t1, i.tx) += H.t1 * H.tx;
V(i.t1, i.ty) += H.t1 * H.ty;
987 V(i.tx, i.t1) =
V(i.t1, i.tx);
V(i.ty, i.t1) =
V(i.t1, i.ty);
989 V(i.tx, i.tx) += H.tx * H.tx;
V(i.tx, i.ty) += H.tx * H.ty;
990 V(i.ty, i.tx) =
V(i.tx, i.ty);
V(i.ty, i.ty) += H.ty * H.ty;
fit times of emission of emitters and tilt angles of strings with second order correction ...
static const double H
Planck constant [eV s].
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
JMatrixND & reset()
Set matrix to the null matrix.
fit times of emission of emitters and tilt angles of strings
JACOUSTICS::JModel::emission_type emission
const JPosition3D & getPosition() const
Get position.
size_t getIndex(int id, double JString::*p) const
Get index of fit parameter for given string.
JACOUSTICS::JModel::string_type string
fit times of emission of emitters and tilt angles of strings with second order correction and stretch...
Data structure for position in three dimensions.
do echo Generating $dir eval D
double getZ() const
Get z position.