CLHEP 2.4.6.4
C++ Class Library for High Energy Physics
Loading...
Searching...
No Matches
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"
16namespace Genfun {
17
18 /**
19 * @author
20 * @ingroup genfun
21 */
23
25
26 public:
27
28 // Constructor. Builds all the
29 SphericalHarmonicFit(unsigned int LMAX);
30
31 // Copy constructor
33
34 // Destructor
36
37 // Dimensionality=2. They are; cosTheta (not theta) and phi
38 virtual unsigned int dimensionality() const override {return 2;}
39
40 // Retreive function value
41 virtual double operator ()(double argument) const override; // Gives an error.
42 virtual double operator ()(const Argument & a) const override; // 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:
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)
80
81 // Gets the coefficients the coefficients of the function which is
82 // Squared to obtain a probability distribution:
84
85 // Recompute coefficients from the parameters:
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
#define FUNCTION_OBJECT_DEF(classname)
Definition: AbsFunction.hh:143
const Parameter * getFractionAbsMOrHigher(unsigned int L, unsigned int M) const
const SphericalHarmonicCoefficientSet & coefficientsASq() const
const Parameter * getFractionMPositive(unsigned int L, unsigned int M) const
const Parameter * getPhaseMPlus(unsigned int L, unsigned int M) const
Parameter * getFractionAbsMOrHigher(unsigned int L, unsigned int M)
Parameter * getPhaseMMinus(unsigned int L, unsigned int M)
unsigned int numComponents() const
virtual double operator()(double argument) const override
const SphericalHarmonicCoefficientSet & coefficientsA() const
unsigned int lMax() const
SphericalHarmonicFit(unsigned int LMAX)
SphericalHarmonicFit(const SphericalHarmonicFit &right)
void recomputeCoefficients() const
Parameter * getPhaseMPlus(unsigned int L, unsigned int M)
virtual unsigned int dimensionality() const override
const Parameter * getFractionLOrHigher(unsigned int L) const
Parameter * getFractionMPositive(unsigned int L, unsigned int M)
Parameter * getPhaseLM0(unsigned int L)
Parameter * getFractionLOrHigher(unsigned int L)
const Parameter * getPhaseMMinus(unsigned int L, unsigned int M) const
const Parameter * getPhaseLM0(unsigned int L) const
Definition: Abs.hh:14