Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ABProd.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_ABProd
11#define ROOT_Minuit2_ABProd
12
13#include "Minuit2/ABObj.h"
14
15namespace ROOT {
16
17namespace Minuit2 {
18
19template <class M1, class M2>
20class ABProd {
21
22private:
23 ABProd() : fA(M1()), fB(M2()) {}
24
25 ABProd &operator=(const ABProd &) { return *this; }
26
27 template <class MI1, class MI2>
29 {
30 return *this;
31 }
32
33public:
34 ABProd(const M1 &a, const M2 &b) : fA(a), fB(b) {}
35
37
38 ABProd(const ABProd &prod) : fA(prod.fA), fB(prod.fB) {}
39
40 template <class MI1, class MI2>
41 ABProd(const ABProd<MI1, MI2> &prod) : fA(M1(prod.A())), fB(M2(prod.B()))
42 {
43 }
44
45 const M1 &A() const { return fA; }
46 const M2 &B() const { return fB; }
47
48private:
49 M1 fA;
50 M2 fB;
51};
52
53// ABObj * ABObj
54template <class atype, class A, class btype, class B, class T>
57{
58
61}
62
63} // namespace Minuit2
64
65} // namespace ROOT
66
67#endif // ROOT_Minuit2_ABProd
#define b(i)
Definition RSha256.hxx:100
#define a(i)
Definition RSha256.hxx:99
ABProd & operator=(const ABProd &)
Definition ABProd.h:25
ABProd(const ABProd< MI1, MI2 > &prod)
Definition ABProd.h:41
ABProd(const ABProd &prod)
Definition ABProd.h:38
const M1 & A() const
Definition ABProd.h:45
const M2 & B() const
Definition ABProd.h:46
ABProd & operator=(const ABProd< MI1, MI2 > &)
Definition ABProd.h:28
ABProd(const M1 &a, const M2 &b)
Definition ABProd.h:34
ABObj< mt, M, T > operator*(T f, const M &obj)
Definition ABObj.h:135
This file contains a specialised ROOT message handler to test for diagnostic in unit tests.