CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
GenericFunctions
GenericFunctions
GenericFunctions/SphericalHarmonicFit.hh
Go to the documentation of this file.
1
// -*- C++ -*-
2
// $Id:
3
//---------------------SphericalHarmonicFit------------------------------------------//
4
// //
5
// Class SphericalHarmonicFit. This is a fitting function consisting of a super //
6
// position of N legendre polynomials. Cascading fractions and phases are //
7
// the input parameters. Function is normalized to one (on [-1,1]) //
8
// Joe Boudreau, Petar Maksimovic, January 2000 //
9
// //
10
//--------------------------------------------------------------------------//
11
#ifndef SphericalHarmonicFit_h
12
#define SphericalHarmonicFit_h
13
#include "
CLHEP/GenericFunctions/AbsFunction.hh
"
14
#include "
CLHEP/GenericFunctions/Parameter.hh
"
15
#include "
CLHEP/GenericFunctions/SphericalHarmonicCoefficientSet.hh
"
16
namespace
Genfun {
17
22
class
SphericalHarmonicFit :
public
AbsFunction {
23
24
FUNCTION_OBJECT_DEF
(
SphericalHarmonicFit
)
25
26
public:
27
28
// Constructor. Builds all the
29
SphericalHarmonicFit
(
unsigned
int
LMAX);
30
31
// Copy constructor
32
SphericalHarmonicFit
(const
SphericalHarmonicFit
&right);
33
34
// Destructor
35
virtual ~
SphericalHarmonicFit
();
36
37
// Dimensionality=2. They are; cosTheta (not theta) and phi
38
virtual
unsigned
int
dimensionality
()
const
{
return
2;}
39
40
// Retreive function value
41
virtual
double
operator ()
(
double
argument)
const
;
// Gives an error.
42
virtual
double
operator ()
(
const
Argument
&
a
)
const
;
// Must use this one
43
44
// Total number of parameters
45
unsigned
int
numComponents
()
const
;
46
47
// Max L ("angular momentum")
48
unsigned
int
lMax
()
const
;
49
50
// MINUIT-SAFE PARAMETERIZATION: Fractions vary on the range 0,1,
51
// Phases need not be bounded:
52
53
// The fraction of amplitude sq which is L OR HIGHER:
54
Parameter
*
getFractionLOrHigher
(
unsigned
int
L);
55
const
Parameter
*
getFractionLOrHigher
(
unsigned
int
L)
const
;
56
57
// The phase of coefficient L, M=0;
58
Parameter
*
getPhaseLM0
(
unsigned
int
L);
59
const
Parameter
*
getPhaseLM0
(
unsigned
int
L)
const
;
60
61
// The fraction of amplitude sq which is L which is +- M OR HIGHER
62
Parameter
*
getFractionAbsMOrHigher
(
unsigned
int
L,
unsigned
int
M);
63
const
Parameter
*
getFractionAbsMOrHigher
(
unsigned
int
L,
unsigned
int
M)
const
;
64
65
// The fraction of amplitude sq which is +- M, which is positive
66
Parameter
*
getFractionMPositive
(
unsigned
int
L,
unsigned
int
M);
67
const
Parameter
*
getFractionMPositive
(
unsigned
int
L,
unsigned
int
M)
const
;
68
69
// The phase of the positive M coefficient
70
Parameter
*
getPhaseMPlus
(
unsigned
int
L,
unsigned
int
M);
71
const
Parameter
*
getPhaseMPlus
(
unsigned
int
L,
unsigned
int
M)
const
;
72
73
// The phase of the negative M coefficient
74
Parameter
*
getPhaseMMinus
(
unsigned
int
L,
unsigned
int
M);
75
const
Parameter
*
getPhaseMMinus
(
unsigned
int
L,
unsigned
int
M)
const
;
76
77
// Gets the coefficients the coefficients of the function which is
78
// Squared to obtain a probability distribution (amplitude)
79
const
SphericalHarmonicCoefficientSet
&
coefficientsA
()
const
;
80
81
// Gets the coefficients the coefficients of the function which is
82
// Squared to obtain a probability distribution:
83
const
SphericalHarmonicCoefficientSet
&
coefficientsASq
()
const
;
84
85
// Recompute coefficients from the parameters:
86
void
recomputeCoefficients
()
const
;
87
88
private
:
89
90
// It is illegal to assign an adjustable constant
91
const
SphericalHarmonicFit
& operator=(
const
SphericalHarmonicFit
&right);
92
93
94
class
Clockwork;
95
Clockwork *c;
96
97
};
98
}
// namespace Genfun
99
100
101
102
#include "CLHEP/GenericFunctions/SphericalHarmonicFit.icc"
103
#endif
Generated on Sun Jun 17 2012 08:08:27 for CLHEP by
1.8.1.1