Chi2ForSphericalWaveFit.h
Go to the documentation of this file.
1 
3 #ifndef _Chi2ForSphericalWaveFit_h_
4 #define _Chi2ForSphericalWaveFit_h_
5 
6 #include <iostream>
7 #include <fstream>
8 #include <vector>
9 #include <TVector3.h>
10 #include <TMath.h>
11 
12 #include <utl/Vector.h>
13 #include <utl/Point.h>
14 #include <utl/TimeStamp.h>
15 #include <utl/PhysicalConstants.h>
16 
17 #include <Math/IFunction.h>
18 
19 
20 
21 class Chi2ForSphericalWaveFit : public ROOT::Math::IBaseFunctionMultiDim
22 {
23 public:
26 
27  // Use cartesic coordinate system
29  // Use spherical coordinate system (default)
31 
32  // Set Antenna Times and Positions
33  void Set(const std::vector<utl::Vector> &_AntennaPositions, const std::vector<double> &_AntennaTimes, const std::vector<double> &_AntennaTimesError, const utl::CoordinateSystemPtr &_fgLocalCS);
34 
35 
36  // Mandatory functions of Clone, NDim ROOT::Math::IBaseFunctionMultiDim:
37  virtual ROOT::Math::IBaseFunctionMultiDim* Clone() const {Chi2ForSphericalWaveFit* foo = new Chi2ForSphericalWaveFit();
39  return foo;};
40  unsigned int NDim() const {int n=3;return n;};
41 
42  // Objective function
43  double DoEval(const double* x) const;
44 
45 private:
46  std::vector<utl::Vector> AntennaPositions;
47  std::vector<double> AntennaTimes;
48  std::vector<double> AntennaTimesError;
50 
51  bool Spherical;
52 };
53 
54 #endif
std::vector< double > AntennaTimes
std::vector< utl::Vector > AntennaPositions
double DoEval(const double *x) const
Objective function for the spherical wave fit.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
unsigned int NDim() const
utl::CoordinateSystemPtr fgLocalCS
void Set(const std::vector< utl::Vector > &_AntennaPositions, const std::vector< double > &_AntennaTimes, const std::vector< double > &_AntennaTimesError, const utl::CoordinateSystemPtr &_fgLocalCS)
std::vector< double > AntennaTimesError
virtual ROOT::Math::IBaseFunctionMultiDim * Clone() const

, generated on Tue Sep 26 2023.