45 const std::vector<double>& _AntennaTimes,
46 const std::vector<double>& _AntennaTimesError,
49 AntennaPositions = _AntennaPositions;
50 AntennaTimes = _AntennaTimes;
51 AntennaTimesError = _AntennaTimesError;
52 fgLocalCS = _fgLocalCS;
57 tau0 =
TMath::Mean(AntennaTimes.begin(), AntennaTimes.end());
58 int n = AntennaTimes.size();
59 for (
int i = 0; i < n; ++i) {
60 AntennaTimes[i] -= tau0;
72 std::vector<double> ExpectedTimes;
78 int n = AntennaPositions.size();
81 for (
int i = 0; i < n; ++i) {
83 double L = fabs((fabs(ShowerAxis*AntennaPositions[i])*ShowerAxis-AntennaPositions[i]).GetMag());
84 exp_time = (-ShowerAxis*AntennaPositions[i] + tan(x[0]) * L) / c;
86 ExpectedTimes.push_back(exp_time);
91 t0 =
TMath::Mean(ExpectedTimes.begin(),ExpectedTimes.end());
94 for (
int i = 0; i < n; ++i) {
95 chi +=
pow(AntennaTimes[i] - (ExpectedTimes[i] - t0), 2) /
pow(AntennaTimesError[i], 2);
void UseCylindricalCoordinates()
void Set(const std::vector< utl::Vector > &_AntennaPositions, const std::vector< double > &_AntennaTimes, const std::vector< double > &AntennaTimesErrors, const utl::CoordinateSystemPtr &_fgLocalCS)
double pow(const double x, const unsigned int i)
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
static const CSpherical kSpherical
void UseCartesicCoordinates()
double DoEval(const double *x) const
constexpr double kSpeedOfLight
double Mean(const std::vector< double > &v)