ROOT
6.18/05
Reference Guide
math
minuit2
inc
Minuit2
ABSum.h
Go to the documentation of this file.
1
// @(#)root/minuit2:$Id$
2
// Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3
4
/**********************************************************************
5
* *
6
* Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7
* *
8
**********************************************************************/
9
10
#ifndef ROOT_Minuit2_ABSum
11
#define ROOT_Minuit2_ABSum
12
13
#include "
Minuit2/ABObj.h
"
14
15
namespace
ROOT
{
16
17
namespace
Minuit2 {
18
19
20
template
<
class
M1,
class
M2>
21
class
ABSum
{
22
23
private
:
24
25
ABSum
() :
fA
(M1()),
fB
(M2()) {}
26
27
ABSum
&
operator=
(
const
ABSum
&) {
return
*
this
;}
28
29
template
<
class
MI1,
class
MI2>
30
ABSum
&
operator=
(
const
ABSum<MI1,MI2>
&) {
return
*
this
;}
31
32
public
:
33
34
ABSum
(
const
M1&
a
,
const
M2&
b
):
fA
(
a
),
fB
(
b
) {}
35
36
~ABSum
() {}
37
38
ABSum
(
const
ABSum
&
sum
) :
fA
(
sum
.
fA
),
fB
(
sum
.
fB
) {}
39
40
template
<
class
MI1,
class
MI2>
41
ABSum
(
const
ABSum<MI1,MI2>
&
sum
) :
fA
(M1(
sum
.
A
() )),
fB
(M2(
sum
.
B
() )) {}
42
43
const
M1&
A
()
const
{
return
fA
;}
44
const
M2&
B
()
const
{
return
fB
;}
45
46
private
:
47
48
M1
fA
;
49
M2
fB
;
50
};
51
52
// ABObj + ABObj
53
template
<
class
atype,
class
A,
class
btype,
class
B,
class
T>
54
inline
ABObj<typename AlgebraicSumType<atype, btype>::Type
,
ABSum<ABObj<atype,A,T>
,
ABObj<btype,B,T>
>,
T
>
operator+
(
const
ABObj<atype,A,T>
&
a
,
const
ABObj<btype,B,T>
&
b
) {
55
56
return
ABObj<typename AlgebraicSumType<atype,btype>::Type
,
ABSum<ABObj<atype,A,T>
,
ABObj<btype,B,T>
>,
T
>(
ABSum<ABObj<atype,A,T>
,
ABObj<btype,B,T>
>(
a
,
b
));
57
}
58
59
// ABObj - ABObj
60
template
<
class
atype,
class
A,
class
btype,
class
B,
class
T>
61
inline
ABObj<typename AlgebraicSumType<atype, btype>::Type
,
ABSum<ABObj<atype,A,T>
,
ABObj<btype,B,T>
>,
T
>
operator-
(
const
ABObj<atype,A,T>
&
a
,
const
ABObj<btype,B,T>
&
b
) {
62
63
return
ABObj<typename AlgebraicSumType<atype,btype>::Type
,
ABSum<ABObj<atype,A,T>
,
ABObj<btype,B,T>
>,
T
>(
ABSum<ABObj<atype,A,T>
,
ABObj<btype,B,T>
>(
a
,
ABObj<btype,B,T>
(
b
.Obj(),
T
(-1.)*
b
.f())));
64
}
65
66
}
// namespace Minuit2
67
68
}
// namespace ROOT
69
70
#endif
// ROOT_Minuit2_ABSum
ABObj.h
b
#define b(i)
Definition:
RSha256.hxx:100
ROOT::Minuit2::ABObj
Definition:
ABObj.h:21
ROOT::Minuit2::ABSum
Definition:
ABSum.h:21
ROOT::Minuit2::ABSum::A
const M1 & A() const
Definition:
ABSum.h:43
ROOT::Minuit2::ABSum::fA
M1 fA
Definition:
ABSum.h:48
ROOT::Minuit2::ABSum::ABSum
ABSum(const ABSum< MI1, MI2 > &sum)
Definition:
ABSum.h:41
ROOT::Minuit2::ABSum::ABSum
ABSum()
Definition:
ABSum.h:25
ROOT::Minuit2::ABSum::B
const M2 & B() const
Definition:
ABSum.h:44
ROOT::Minuit2::ABSum::fB
M2 fB
Definition:
ABSum.h:49
ROOT::Minuit2::ABSum::~ABSum
~ABSum()
Definition:
ABSum.h:36
ROOT::Minuit2::ABSum::operator=
ABSum & operator=(const ABSum< MI1, MI2 > &)
Definition:
ABSum.h:30
ROOT::Minuit2::ABSum::operator=
ABSum & operator=(const ABSum &)
Definition:
ABSum.h:27
ROOT::Minuit2::ABSum::ABSum
ABSum(const M1 &a, const M2 &b)
Definition:
ABSum.h:34
ROOT::Minuit2::ABSum::ABSum
ABSum(const ABSum &sum)
Definition:
ABSum.h:38
ROOT::Math::Chebyshev::T
double T(double x)
Definition:
ChebyshevPol.h:34
ROOT::Minuit2::operator+
ABObj< typename AlgebraicSumType< atype, btype >::Type, ABSum< ABObj< atype, A, T >, ABObj< btype, B, T > >, T > operator+(const ABObj< atype, A, T > &a, const ABObj< btype, B, T > &b)
Definition:
ABSum.h:54
ROOT::Minuit2::operator-
ABObj< mt, M, T > operator-(const M &obj)
Definition:
ABObj.h:152
ROOT
Namespace for new ROOT classes and functions.
Definition:
StringConv.hxx:21
a
auto * a
Definition:
textangle.C:12
sum
static long int sum(long int i)
Definition:
Factory.cxx:2258