ROOT
master
Reference Guide
Loading...
Searching...
No Matches
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
template
<
class
M1,
class
M2>
20
class
ABSum
{
21
22
private
:
23
ABSum
() :
fA
(M1()),
fB
(M2()) {}
24
25
ABSum
&
operator=
(
const
ABSum
&) {
return
*
this
; }
26
27
template
<
class
MI1,
class
MI2>
28
ABSum
&
operator=
(
const
ABSum<MI1, MI2>
&)
29
{
30
return
*
this
;
31
}
32
33
public
:
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
}
44
45
const
M1 &
A
()
const
{
return
fA
; }
46
const
M2 &
B
()
const
{
return
fB
; }
47
48
private
:
49
M1
fA
;
50
M2
fB
;
51
};
52
53
// ABObj + ABObj
54
template
<
class
atype,
class
A,
class
btype,
class
B,
class
T>
55
inline
ABObj<typename AlgebraicSumType<atype, btype>::Type
,
ABSum<ABObj<atype, A, T>
,
ABObj<btype, B, T>
>, T>
56
operator+
(
const
ABObj<atype, A, T>
&
a
,
const
ABObj<btype, B, T>
&
b
)
57
{
58
59
return
ABObj<typename AlgebraicSumType<atype, btype>::Type
,
ABSum<ABObj<atype, A, T>
,
ABObj<btype, B, T>
>, T>(
60
ABSum<ABObj<atype, A, T>
,
ABObj<btype, B, T>
>(
a
,
b
));
61
}
62
63
// ABObj - ABObj
64
template
<
class
atype,
class
A,
class
btype,
class
B,
class
T>
65
inline
ABObj<typename AlgebraicSumType<atype, btype>::Type
,
ABSum<ABObj<atype, A, T>
,
ABObj<btype, B, T>
>, T>
66
operator-
(
const
ABObj<atype, A, T>
&
a
,
const
ABObj<btype, B, T>
&
b
)
67
{
68
69
return
ABObj<typename AlgebraicSumType<atype, btype>::Type
,
ABSum<ABObj<atype, A, T>
,
ABObj<btype, B, T>
>, T>(
70
ABSum<ABObj<atype, A, T>
,
ABObj<btype, B, T>
>(
a
,
ABObj<btype, B, T>
(
b
.Obj(), T(-1.) *
b
.f())));
71
}
72
73
}
// namespace Minuit2
74
75
}
// namespace ROOT
76
77
#endif
// ROOT_Minuit2_ABSum
ABObj.h
b
#define b(i)
Definition
RSha256.hxx:100
a
#define a(i)
Definition
RSha256.hxx:99
TRangeDynCast
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Definition
TCollection.h:358
ROOT::Detail::TRangeCast
Definition
TCollection.h:311
ROOT::Minuit2::ABSum
Definition
ABSum.h:20
ROOT::Minuit2::ABSum::A
const M1 & A() const
Definition
ABSum.h:45
ROOT::Minuit2::ABSum::fA
M1 fA
Definition
ABSum.h:49
ROOT::Minuit2::ABSum::ABSum
ABSum(const ABSum< MI1, MI2 > &sum)
Definition
ABSum.h:41
ROOT::Minuit2::ABSum::ABSum
ABSum()
Definition
ABSum.h:23
ROOT::Minuit2::ABSum::B
const M2 & B() const
Definition
ABSum.h:46
ROOT::Minuit2::ABSum::fB
M2 fB
Definition
ABSum.h:50
ROOT::Minuit2::ABSum::~ABSum
~ABSum()
Definition
ABSum.h:36
ROOT::Minuit2::ABSum::operator=
ABSum & operator=(const ABSum< MI1, MI2 > &)
Definition
ABSum.h:28
ROOT::Minuit2::ABSum::operator=
ABSum & operator=(const ABSum &)
Definition
ABSum.h:25
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::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:56
ROOT::Minuit2::operator-
ABObj< mt, M, T > operator-(const M &obj)
Definition
ABObj.h:149
ROOT
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition
EExecutionPolicy.hxx:4
sum
static uint64_t sum(uint64_t i)
Definition
Factory.cxx:2345
math
minuit2
inc
Minuit2
ABSum.h
ROOT master - Reference Guide Generated on Sun Feb 16 2025 14:31:47 (GVA Time) using Doxygen 1.10.0