Jpp  19.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
JFIT::JRegressor< JPoint4E, JGandalf > Struct Template Reference

Regressor function object for JPoint4E fit using JGandalf minimiser. More...

#include <JShowerBrightPointRegressor.hh>

Inheritance diagram for JFIT::JRegressor< JPoint4E, JGandalf >:
JFIT::JAbstractRegressor< JPoint4E, JGandalf > JFIT::JGandalf< JPoint4E > JEEP::JMessage< T >

Public Types

typedef JTOOLS::JSplineFunction1S_t JFunction1D_t
 
typedef JTOOLS::JMAPLIST
< JTOOLS::JPolint2FunctionalMap,
JTOOLS::JPolint1FunctionalGridMap >
::maplist 
JPDFMapList_t
 
typedef JPHYSICS::JPDFTable
< JFunction1D_t, JPDFMapList_t
JPDF_t
 
typedef JGandalf< JPoint4Eminimiser_type
 
typedef JRegressor< JPoint4E,
JGandalf
regressor_type
 
typedef minimiser_type::result_type result_type
 
typedef JFIT_LOCAL::JTypedef_t
< JPoint4E >::parameter_type 
parameter_type
 Data type of fit parameter. More...
 

Public Member Functions

 JRegressor (const std::string &fileDescriptor, const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10)
 Parameterized constructor. More...
 
template<class JHit_t >
result_type operator() (const JPoint4E &vx, const JHit_t &hit) const
 Fit function. More...
 
JPDF_t::result_type getH0 (const double R_Hz, const double t1) const
 Get background hypothesis value for time differentiated PDF. More...
 
JPDF_t::result_type getH1 (const double D, const double ct, const double t, const double E) const
 Get signal hypothesis value for bright point emission PDF. More...
 
double getRmax () const
 Get maximal road width of PDF. More...
 
result_type operator() (const JPoint4E &value, T __begin, T __end)
 Global fit. More...
 
result_type operator() (const JFunction_t &fit, T __begin, T __end, Args...args)
 Multi-dimensional fit of multiple data sets. More...
 

Public Attributes

JPDF_t pdf [NUMBER_OF_PDFS]
 PDF. More...
 
std::vector< parameter_typeparameters
 fit parameters More...
 
int numberOfIterations
 number of iterations More...
 
double lambda
 control parameter More...
 
JPoint4E value
 value More...
 
JPoint4E error
 error More...
 
JMATH::JMatrixNS V
 Hesse matrix. More...
 
result_type result
 

Static Public Attributes

static JTimeRange T_ns
 Time window with respect to Cherenkov hypothesis [ns]. More...
 
static double Vmax_npe = std::numeric_limits<double>::max()
 Maximal integral of PDF [npe]. More...
 
static const int NUMBER_OF_PDFS = 2
 
static const JPDFType_t pdf_t [NUMBER_OF_PDFS]
 PDF types. More...
 
static int MAXIMUM_ITERATIONS
 maximal number of iterations More...
 
static double EPSILON
 maximal distance to minimum More...
 
static double LAMBDA_MIN
 minimal value control parameter More...
 
static double LAMBDA_MAX
 maximal value control parameter More...
 
static double LAMBDA_UP
 multiplication factor control parameter More...
 
static double LAMBDA_DOWN
 multiplication factor control parameter More...
 
static double PIVOT
 minimal value diagonal element of Hesse matrix More...
 
static int debug = 0
 debug level (default is off). More...
 

Detailed Description

template<>
struct JFIT::JRegressor< JPoint4E, JGandalf >

Regressor function object for JPoint4E fit using JGandalf minimiser.

Definition at line 44 of file JShowerBrightPointRegressor.hh.

Member Typedef Documentation

Definition at line 49 of file JShowerBrightPointRegressor.hh.

Definition at line 51 of file JShowerBrightPointRegressor.hh.

Definition at line 52 of file JShowerBrightPointRegressor.hh.

Definition at line 80 of file JRegressor.hh.

Definition at line 81 of file JRegressor.hh.

typedef minimiser_type::result_type JFIT::JAbstractRegressor< JPoint4E , JGandalf >::result_type
inherited

Definition at line 82 of file JRegressor.hh.

Data type of fit parameter.

Definition at line 95 of file JGandalf.hh.

Constructor & Destructor Documentation

JFIT::JRegressor< JPoint4E, JGandalf >::JRegressor ( const std::string &  fileDescriptor,
const double  TTS,
const int  numberOfPoints = 25,
const double  epsilon = 1.0e-10 
)
inline

Parameterized constructor.

The PDF file descriptor should contain the wild card character JPHYSICS::WILDCARD which will be replaced by the corresponding PDF types.

Parameters
fileDescriptorPDF file descriptor
TTSTTS [ns]
numberOfPointsnumber of points for Gauss-Hermite integration of TTS
epsilonprecision for Gauss-Hermite integration of TTS

Definition at line 66 of file JShowerBrightPointRegressor.hh.

70  {
71  using namespace std;
72  using namespace JPP;
73 
74  const JPDF_t::JSupervisor supervisor(new JPDF_t::JDefaultResult(JMATH::zero));
75 
76  for (int i = 0; i != NUMBER_OF_PDFS; ++i) {
77 
78  try {
79 
80  const string file_name = getFilename(fileDescriptor, pdf_t[i]);
81 
82  NOTICE("loading PDF from file " << file_name << "... " << flush);
83 
84  pdf[i].load(file_name.c_str());
85 
86  NOTICE("OK" << endl);
87 
88  pdf[i].setExceptionHandler(supervisor);
89  }
90  catch(const JException& error) {
91  FATAL(error.what() << endl);
92  }
93  }
94 
95  // Add PDFs
96  for (int i = 1; i < NUMBER_OF_PDFS; i += 2) {
97 
98  pdf[ i ].add(pdf[i-1]);
99 
100  JPDF_t buffer;
101 
102  pdf[i-1].swap(buffer);
103 
104  if (TTS > 0.0) {
105  pdf[i].blur(TTS, numberOfPoints, epsilon);
106  } else if (TTS < 0.0) {
107  ERROR("Illegal value of TTS [ns]: " << TTS << endl);
108  }
109  }
110  }
JPHYSICS::JPDFTable< JFunction1D_t, JPDFMapList_t > JPDF_t
void load(const char *file_name)
Load from input file.
void blur(const double TTS, const int numberOfPoints=25, const double epsilon=1.0e-10, const double quantile=0.99)
Blur PDF.
Definition: JPDFTable.hh:111
static const JZero zero
Function object to assign zero value.
Definition: JZero.hh:105
void add(const JMultiFunction_t &input)
Add function.
#define NOTICE(A)
Definition: JMessage.hh:64
#define ERROR(A)
Definition: JMessage.hh:66
static const JPDFType_t pdf_t[NUMBER_OF_PDFS]
PDF types.
#define FATAL(A)
Definition: JMessage.hh:67
void setExceptionHandler(const typename function_type::supervisor_type &supervisor)
Set the supervisor for handling of exceptions.
int numberOfPoints
Definition: JResultPDF.cc:22
std::string getFilename(const std::string &file_name)
Get file name part, i.e. part after last JEEP::PATHNAME_SEPARATOR if any.
Definition: JeepToolkit.hh:128
JPoint4E error
error
Definition: JGandalf.hh:347
const double epsilon
Definition: JQuadrature.cc:21

Member Function Documentation

template<class JHit_t >
result_type JFIT::JRegressor< JPoint4E, JGandalf >::operator() ( const JPoint4E vx,
const JHit_t &  hit 
) const
inline

Fit function.

This method is used to determine the chi2 and gradient of given hit with respect a bright point emitting isotropically

JHit_t refers to a data structure which should have the following member methods:

  • double getX(); // [m]
  • double getY(); // [m]
  • double getZ(); // [m]
  • double getDX(); // [u]
  • double getDY(); // [u]
  • double getDZ(); // [u]
  • double getT(); // [ns]
Parameters
vxshower vertex
hithit
Returns
chi2 and gradient

Definition at line 130 of file JShowerBrightPointRegressor.hh.

131  {
132  using namespace JPP;
133 
134  JPosition3D D(hit.getPosition());
135  JDirection3D U(hit.getDirection());
136 
137  D.sub(vx.getPosition());
138 
139  double ct = U.getDot(D) / D.getLength();
140 
141  if (ct > +1.0) { ct = +1.0; }
142  if (ct < -1.0) { ct = -1.0; }
143 
144  const double t = vx.getT() + (D.getLength() * getIndexOfRefraction() * getInverseSpeedOfLight());
145 
146  const double dt = T_ns.constrain(hit.getT() - t);
147 
148  JPDF_t::result_type H0 = getH0(hit.getR(), dt); // getH0 = Get background hypothesis value
149  JPDF_t::result_type H1 = getH1(D.getLength(), ct, dt, vx.getE()); // getH1 = Get signal hypothesis value
150 
151  if (get_value(H1) >= Vmax_npe) {
152  H1 *= Vmax_npe / get_value(H1);
153  }
154 
155  H1 += H0; // now H1 is signal + background
156 
158 
159  result.chi2 = H1.getChi2() - H0.getChi2(); // Likelihood ratio
160 
161  /*
162  * Here it is evaluated: d(chi2)/d(ct) * d(ct)/d(x0,y0,z0,t0)
163  */
164  result.gradient = JPoint4E(JPoint4D(JVector3D(-getIndexOfRefraction() * D.getX() / D.getLength(), // d(ct)/d(x0)
165  -getIndexOfRefraction() * D.getY() / D.getLength(), // d(ct)/d(y0)
166  -getIndexOfRefraction() * D.getZ() / D.getLength()), // d(ct)/d(z0)
167  getSpeedOfLight()), // d(ct)/d(t0)
168  0); // d(ct)/d(E) //Set to 0 for now, not a parameter to fit
169 
170  result.gradient.mul(getInverseSpeedOfLight() * (H1.getDerivativeOfChi2() -
171  H0.getDerivativeOfChi2())); // x d(chi2)/d(ct1)
172 
173  return result;
174 
175  }
JPDF_t::result_type getH1(const double D, const double ct, const double t, const double E) const
Get signal hypothesis value for bright point emission PDF.
double getIndexOfRefraction()
Get average index of refraction of water corresponding to group velocity.
Data structure for vertex fit.
Definition: JPoint4D.hh:22
double getE() const
Get energy.
Definition: JPoint4E.hh:52
static double Vmax_npe
Maximal integral of PDF [npe].
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
JPDF_t::result_type getH0(const double R_Hz, const double t1) const
Get background hypothesis value for time differentiated PDF.
minimiser_type::result_type result_type
Definition: JRegressor.hh:82
Data structure for vertex fit.
Definition: JPoint4E.hh:22
const JPosition3D & getPosition() const
Get position.
Definition: JPosition3D.hh:130
const double getSpeedOfLight()
Get speed of light.
const double getInverseSpeedOfLight()
Get inverse speed of light.
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
Definition: JVertex3D.hh:147
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
JResultEvaluator< JResult_t >::result_type get_value(const JResult_t &value)
Helper method to recursively evaluate a to function value.
Definition: JResult.hh:998
JPDF_t::result_type JFIT::JRegressor< JPoint4E, JGandalf >::getH0 ( const double  R_Hz,
const double  t1 
) const
inline

Get background hypothesis value for time differentiated PDF.

Parameters
R_Hzrate [Hz]
t1time [ns]
Returns
hypothesis value

Definition at line 184 of file JShowerBrightPointRegressor.hh.

186  {
187  using namespace JPP;
188 
189  return JPDF_t::result_type(R_Hz * 1e-9, t1, T_ns);
190  }
static JTimeRange T_ns
Time window with respect to Cherenkov hypothesis [ns].
JPDF_t::result_type JFIT::JRegressor< JPoint4E, JGandalf >::getH1 ( const double  D,
const double  ct,
const double  t,
const double  E 
) const
inline

Get signal hypothesis value for bright point emission PDF.

Parameters
Dhit distance from shower vertex [m]
ctcosine of the HIT angle
tarrival time of the light
Eshower energy [GeV]
Returns
hypothesis value

Definition at line 201 of file JShowerBrightPointRegressor.hh.

205  {
206  using namespace JPP;
207 
208  JPDF_t::result_type h1 = JMATH::zero;
209 
210  for (int i = 0; i != NUMBER_OF_PDFS; ++i) {
211 
212  if (!pdf[i].empty() && D <= pdf[i].getXmax()) {
213 
214  try {
215 
216  JPDF_t::result_type y1 = E * pdf[i](std::max(D, pdf[i].getXmin()), ct, t);
217 
218  // safety measures
219 
220  if (y1.f <= 0.0) {
221  y1.f = 0.0;
222  y1.fp = 0.0;
223  }
224 
225  if (y1.v <= 0.0) {
226  y1.v = 0.0;
227  }
228 
229  h1 += y1;
230 
231  }
232  catch(JLANG::JException& error) {
233  ERROR(error << std::endl);
234  }
235  }
236  }
237 
238  return h1;
239  }
General exception.
Definition: JException.hh:24
then usage $script< input file >[option[primary[working directory]]] nWhere option can be E
Definition: JMuonPostfit.sh:40
static const JZero zero
Function object to assign zero value.
Definition: JZero.hh:105
#define ERROR(A)
Definition: JMessage.hh:66
JPoint4E error
error
Definition: JGandalf.hh:347
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
double JFIT::JRegressor< JPoint4E, JGandalf >::getRmax ( ) const
inline

Get maximal road width of PDF.

Returns
road width [m]

Definition at line 246 of file JShowerBrightPointRegressor.hh.

247  {
248  using namespace JPP;
249 
250  double xmax = 0.0;
251 
252  for (int i = 0; i != NUMBER_OF_PDFS; ++i) {
253 
254  if (!pdf[i].empty() && pdf[i].getXmax() > xmax) {
255  xmax = pdf[i].getXmax();
256  }
257 
258  }
259 
260  return xmax;
261  }
const double xmax
Definition: JQuadrature.cc:24
result_type JFIT::JAbstractRegressor< JPoint4E , JGandalf >::operator() ( const JPoint4E value,
T  __begin,
T  __end 
)
inlineinherited

Global fit.

Parameters
valuestart value
__beginbegin of data set
__endend of data set
Returns
chi2

Definition at line 94 of file JRegressor.hh.

95  {
96  static_cast<minimiser_type&>(*this).value = value;
97 
98  return static_cast<minimiser_type&>(*this)(static_cast<regressor_type&>(*this), __begin, __end);
99  }
JModel_t value
value
Definition: JGandalf.hh:346
JRegressor< JPoint4E, JGandalf > regressor_type
Definition: JRegressor.hh:81
result_type JFIT::JGandalf< JPoint4E >::operator() ( const JFunction_t &  fit,
T  __begin,
T  __end,
Args...  args 
)
inlineinherited

Multi-dimensional fit of multiple data sets.

The fit function should return the chi2 as well as the partial derivatives for the current value of the model and a given data point.

Parameters
fitfit function
__beginbegin of data
__endend of data
argsoptional data
Returns
chi2 and gradient

Definition at line 160 of file JGandalf.hh.

161  {
162  using namespace std;
163  using namespace JPP;
164 
165  // note that all model values should be assigned to the start value of the model before use
166  // because the actual list of model parameters can vary from fit to fit
167  // (e.g. if model consists of a container).
168 
169  const size_t N = parameters.size();
170 
171  V.resize(N);
172  h.resize(N);
173  x.resize(N);
174 
175  previous.result.chi2 = numeric_limits<double>::max();
176 
177  current.result.chi2 = numeric_limits<double>::max();
178  current.result.gradient = value;
179  current.result.gradient = zero;
180 
181  error = value;
182  error = zero;
183 
184  lambda = LAMBDA_MIN;
185 
187 
188  DEBUG("step: " << numberOfIterations << endl);
189 
190  reset();
191 
192  update(fit, __begin, __end, args...);
193 
194  DEBUG("lambda: " << FIXED(12,5) << lambda << endl);
195  DEBUG("chi2: " << FIXED(12,5) << current.result.chi2 << endl);
196 
197  if (current.result.chi2 < previous.result.chi2) {
198 
199  if (numberOfIterations != 0) {
200 
201  if (fabs(previous.result.chi2 - current.result.chi2) < EPSILON*fabs(previous.result.chi2)) {
202 
203  // normal end
204 
205  const result_type result = current.result;
206 
207  lambda = LAMBDA_MIN;
208 
209  reset();
210 
211  update(fit, __begin, __end, args...);
212 
213  try {
214  V.invert();
215  }
216  catch (const exception& error) {
217  V.reset();
218  }
219 
220  for (size_t i = 0; i != N; ++i) {
221  get(error, parameters[i]) = sqrt(V(i,i));
222  }
223 
224  return result;
225  }
226 
227  if (lambda > LAMBDA_MIN) {
228  lambda /= LAMBDA_DOWN;
229  }
230  }
231 
232  // store current values
233 
234  previous.value = value;
235  previous.result = current.result;
236 
237  } else {
238 
239  value = previous.value; // restore value
240 
241  lambda *= LAMBDA_UP;
242 
243  if (lambda > LAMBDA_MAX) {
244  break;
245  }
246 
247  reset();
248 
249  update(fit, __begin, __end, args...);
250  }
251 
252  DEBUG("Hesse matrix:" << endl << V << endl);
253 
254  // force definite positiveness
255 
256  for (size_t i = 0; i != N; ++i) {
257 
258  if (V(i,i) < PIVOT) {
259  V(i,i) = PIVOT;
260  }
261 
262  h[i] = 1.0 / sqrt(V(i,i));
263  }
264 
265  // normalisation
266 
267  for (size_t row = 0; row != N; ++row) {
268  for (size_t col = 0; col != row; ++col) {
269  V(row,col) *= h[row] * h[col];
270  V(col,row) = V(row,col);
271  }
272  }
273 
274  for (size_t i = 0; i != N; ++i) {
275  V(i,i) = 1.0 + lambda;
276  }
277 
278  // solve A x = b
279 
280  for (size_t col = 0; col != N; ++col) {
281  x[col] = h[col] * get(current.result.gradient, parameters[col]);
282  }
283 
284  try {
285  V.solve(x);
286  }
287  catch (const exception& error) {
288 
289  ERROR("JGandalf: " << error.what() << endl << V << endl);
290 
291  break;
292  }
293 
294  // update value
295 
296  for (size_t row = 0; row != N; ++row) {
297 
298  DEBUG("u[" << noshowpos << setw(3) << row << "] = " << showpos << FIXED(15,5) << get(value, parameters[row]));
299 
300  get(value, parameters[row]) -= h[row] * x[row];
301 
302  DEBUG(" -> " << FIXED(15,5) << get(value, parameters[row]) << noshowpos << endl);
303  }
304 
305  model(value);
306  }
307 
308  // abnormal end
309 
310  const result_type result = previous.result;
311 
312  value = previous.value; // restore value
313 
314  lambda = LAMBDA_MIN;
315 
316  reset();
317 
318  update(fit, __begin, __end, args...);
319 
320  try {
321  V.invert();
322  }
323  catch (const exception& error) {
324  V.reset();
325  }
326 
327  for (size_t i = 0; i != N; ++i) {
328  get(error, parameters[i]) = sqrt(V(i,i));
329  }
330 
331  return result;
332  }
double lambda
control parameter
Definition: JGandalf.hh:345
static double EPSILON
maximal distance to minimum
Definition: JGandalf.hh:336
JMATH::JVectorND x
Definition: JGandalf.hh:488
JPoint4E value
value
Definition: JGandalf.hh:346
static double PIVOT
minimal value diagonal element of Hesse matrix
Definition: JGandalf.hh:341
JMATH::JMatrixNS V
Hesse matrix.
Definition: JGandalf.hh:348
static const JZero zero
Function object to assign zero value.
Definition: JZero.hh:105
JMatrixND & reset()
Set matrix to the null matrix.
Definition: JMatrixND.hh:459
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:446
std::vector< parameter_type > parameters
fit parameters
Definition: JGandalf.hh:343
void resize(const size_t size)
Resize matrix.
Definition: JMatrixND.hh:446
static double LAMBDA_MIN
minimal value control parameter
Definition: JGandalf.hh:337
static double LAMBDA_DOWN
multiplication factor control parameter
Definition: JGandalf.hh:340
void reset()
Reset current parameters.
Definition: JGandalf.hh:354
#define ERROR(A)
Definition: JMessage.hh:66
void update(const JFunction_t &fit, T __begin, T __end, Args...args)
Recursive method to update current parameters.
Definition: JGandalf.hh:374
struct JFIT::JGandalf::@10 current
static double LAMBDA_UP
multiplication factor control parameter
Definition: JGandalf.hh:339
void invert()
Invert matrix according LDU decomposition.
Definition: JMatrixNS.hh:75
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
void solve(JVectorND_t &u)
Get solution of equation A x = b.
Definition: JMatrixNS.hh:308
static int MAXIMUM_ITERATIONS
maximal number of iterations
Definition: JGandalf.hh:335
int numberOfIterations
number of iterations
Definition: JGandalf.hh:344
static double LAMBDA_MAX
maximal value control parameter
Definition: JGandalf.hh:338
JPoint4E error
error
Definition: JGandalf.hh:347
struct JFIT::JGandalf::@11 previous
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
std::vector< double > h
Definition: JGandalf.hh:487

Member Data Documentation

JTimeRange JFIT::JRegressor< JPoint4E, JGandalf >::T_ns
static

Time window with respect to Cherenkov hypothesis [ns].

Default values.

Definition at line 263 of file JShowerBrightPointRegressor.hh.

double JFIT::JRegressor< JPoint4E, JGandalf >::Vmax_npe = std::numeric_limits<double>::max()
static

Maximal integral of PDF [npe].

Definition at line 264 of file JShowerBrightPointRegressor.hh.

const int JFIT::JRegressor< JPoint4E, JGandalf >::NUMBER_OF_PDFS = 2
static

Definition at line 266 of file JShowerBrightPointRegressor.hh.

const JPDFType_t JFIT::JRegressor< JPoint4E, JGandalf >::pdf_t
static
Initial value:

PDF types.

Definition at line 268 of file JShowerBrightPointRegressor.hh.

PDF.

Definition at line 270 of file JShowerBrightPointRegressor.hh.

int JFIT::JGandalf< JPoint4E >::MAXIMUM_ITERATIONS
staticinherited

maximal number of iterations

maximal number of iterations.

Definition at line 335 of file JGandalf.hh.

double JFIT::JGandalf< JPoint4E >::EPSILON
staticinherited

maximal distance to minimum

maximal distance to minimum.

Definition at line 336 of file JGandalf.hh.

double JFIT::JGandalf< JPoint4E >::LAMBDA_MIN
staticinherited

minimal value control parameter

Definition at line 337 of file JGandalf.hh.

double JFIT::JGandalf< JPoint4E >::LAMBDA_MAX
staticinherited

maximal value control parameter

Definition at line 338 of file JGandalf.hh.

double JFIT::JGandalf< JPoint4E >::LAMBDA_UP
staticinherited

multiplication factor control parameter

Definition at line 339 of file JGandalf.hh.

double JFIT::JGandalf< JPoint4E >::LAMBDA_DOWN
staticinherited

multiplication factor control parameter

Definition at line 340 of file JGandalf.hh.

double JFIT::JGandalf< JPoint4E >::PIVOT
staticinherited

minimal value diagonal element of Hesse matrix

minimal value diagonal element of matrix

Definition at line 341 of file JGandalf.hh.

fit parameters

Definition at line 343 of file JGandalf.hh.

int JFIT::JGandalf< JPoint4E >::numberOfIterations
inherited

number of iterations

Definition at line 344 of file JGandalf.hh.

double JFIT::JGandalf< JPoint4E >::lambda
inherited

control parameter

Definition at line 345 of file JGandalf.hh.

JPoint4E JFIT::JGandalf< JPoint4E >::value
inherited

value

Definition at line 346 of file JGandalf.hh.

JPoint4E JFIT::JGandalf< JPoint4E >::error
inherited

error

Definition at line 347 of file JGandalf.hh.

Hesse matrix.

Definition at line 348 of file JGandalf.hh.

result_type JFIT::JGandalf< JPoint4E >::result
inherited

Definition at line 491 of file JGandalf.hh.

template<class T>
int JEEP::JMessage< T >::debug = 0
staticinherited

debug level (default is off).

Definition at line 45 of file JMessage.hh.


The documentation for this struct was generated from the following file: