Get start values of string parameters.
500 {
503 using namespace JGEOMETRY;
504
506
509 else
511
513 I_t i;
514
516
517 V.resize(N);
519
522
523 for (T hit = __begin; hit != __end; ++hit) {
524
525 const JString&
string = geometry[hit->getString()];
527 const double Vi = velocity.getInverseVelocity(hit->getDistance(position), hit->getZ(), position.
getZ());
528
529 const double h1 = string.getHeight(hit->getFloor());
531 const double ds = sqrt(
p1.getLengthSquared() + h1*h1 + 2.0*
p1.getZ()*h1);
532 const double y = hit->getValue() - Vi*ds;
533 const double W = sqrt(hit->getWeight());
534
536 H.tx = W * Vi *
p1.getX() * h1 / ds;
537 H.ty = W * Vi *
p1.getY() * h1 / ds;
538
542
543 V(i.t1, i.t1) +=
H.t1 *
H.t1;
544
545 Y[i.t1] += W *
H.t1 *
y;
546
547 if (hit->getFloor() != 0) {
548
550
551 V(i.t1, i.tx) +=
H.t1 *
H.tx; V(i.t1, i.ty) +=
H.t1 *
H.ty;
552 V(i.tx, i.t1) +=
H.tx *
H.t1; V(i.ty, i.t1) +=
H.ty *
H.t1;
553
554 V(i.tx, i.tx) +=
H.tx *
H.tx; V(i.tx, i.ty) +=
H.tx *
H.ty;
555 V(i.ty, i.tx) +=
H.ty *
H.tx; V(i.ty, i.ty) +=
H.ty *
H.ty;
556
557 Y[i.tx] += W *
H.tx *
y;
558 Y[i.ty] += W *
H.ty *
y;
559 }
560 }
561 }
562
563
564
566
567 for (size_t row = 0; row != N; ++row) {
569 }
570
572 }
Data structure for position in three dimensions.
const JPosition3D & getPosition() const
Get position.
double getZ() const
Get z position.
Wrapper class around STL string class.
@ FIT_EMITTERS_AND_STRINGS_1st_ORDER_t
fit times of emission of emitters and tilt angles of strings
@ FIT_EMITTERS_ONLY_t
fit only times of emission of emitters
static const double H
Planck constant [eV s].
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Model for fit to acoustics data.
void setOption(const int option)
Set fit option.
size_t getN() const
Get number of fit parameters.
size_t getIndex(int id, double JString::*p) const
Get index of fit parameter for given string.