Jpp
18.6.0-rc.1
the software that should make you happy
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
software
JTools
JMultiSet.hh
Go to the documentation of this file.
1
#ifndef __JTOOLS__JMULTISET__
2
#define __JTOOLS__JMULTISET__
3
4
#include "
JTools/JAbstractMultiMap.hh
"
5
#include "
JTools/JSet.hh
"
6
7
8
/**
9
* \author mdejong
10
*/
11
12
namespace
JTOOLS {}
13
namespace
JPP {
using namespace
JTOOLS; }
14
15
namespace
JTOOLS {
16
17
18
/**
19
* Simple data structure for an abstract multidimensional map of equidistant elements.
20
*
21
* This class implements the JAbstractMultiMap interface.
22
*/
23
template
<
unsigned
int
N,
class
JAbscissa_t>
24
struct
JMultiSet
:
25
public
virtual
JAbstractMultiMap
<N, JAbscissa_t>,
26
public
JMultiSet
<N - 1, JAbscissa_t>
27
{
28
typedef
JAbscissa_t
abscissa_type
;
29
typedef
JMultiKey
<
N
- 1,
abscissa_type
>
key_type
;
30
31
using
JMultiSet<N - 1, JAbscissa_t>::operator
();
32
33
34
/**
35
* Default constructor.
36
*/
37
JMultiSet
() :
38
JMultiSet
<
N
- 1, JAbscissa_t>()
39
{}
40
41
42
/**
43
* Constructor.
44
*
45
* \param bounds bounds
46
*/
47
JMultiSet
(
const
JSet<abscissa_type>
&
bounds
) :
48
JMultiSet
<
N
- 1, JAbscissa_t>(bounds)
49
{
50
this->bounds =
bounds
;
51
}
52
53
54
/**
55
* Set bounds.
56
*
57
* \param index index of dimension
58
* \param bounds bounds
59
* \return true if correctly set; else false
60
*/
61
bool
set
(
unsigned
int
index,
const
JSet<abscissa_type>
&
bounds
)
62
{
63
if
(index ==
N
- 1) {
64
65
this->bounds =
bounds
;
66
67
}
else
if
(index <
N
- 1) {
68
69
return
static_cast<
JMultiSet
<
N
- 1,
abscissa_type
>
&>(*this).set(index, bounds);
70
}
71
72
return
false
;
73
}
74
75
76
/**
77
* Get abscissa values as a function of given key.
78
*
79
* \param key key
80
* \return abscissa values
81
*/
82
virtual
const
JSet<abscissa_type>
&
operator()
(
const
key_type
& key)
const override
83
{
84
return
bounds
;
85
}
86
87
protected
:
88
JSet<JAbscissa_t>
bounds
;
89
};
90
91
92
/**
93
* Terminator class of recursive class JMultiSet.
94
* This class provides for dummy implementations of interface methods.
95
*/
96
template
<
class
JAbscissa_t>
97
struct
JMultiSet
<0, JAbscissa_t>
98
{
99
protected
:
100
101
typedef
JAbscissa_t
abscissa_type
;
102
103
friend
class
JMultiSet
<1, JAbscissa_t>;
104
105
106
/**
107
* Default constructor.
108
*/
109
JMultiSet
()
110
{}
111
112
113
/**
114
* Constructor.
115
*
116
* \param bounds bounds
117
*/
118
JMultiSet
(
const
JSet<abscissa_type>
&
bounds
)
119
{}
120
121
122
/**
123
* This method does nothing.
124
*
125
* \param index index
126
* \param bounds bounds
127
* \return false
128
*/
129
bool
set
(
unsigned
int
index,
const
JSet<abscissa_type>
&
bounds
)
const
130
{
131
return
false
;
132
}
133
134
135
/**
136
* Dummy operator.
137
*/
138
void
operator()
()
const
139
{}
140
};
141
142
143
/**
144
* Helper method for JMultiSet.
145
*
146
* \param bounds bounds
147
* \return multidimensional set
148
*/
149
template
<
unsigned
int
N,
class
JAbscissa_t>
150
inline
JMultiSet<N, JAbscissa_t>
make_multiset
(
const
JSet<JAbscissa_t>
& bounds)
151
{
152
return
JMultiSet<N, JAbscissa_t>
(bounds);
153
}
154
}
155
156
#endif
JTOOLS::JMultiSet::abscissa_type
JAbscissa_t abscissa_type
Definition:
JMultiSet.hh:28
JTOOLS::JMultiSet::bounds
JSet< JAbscissa_t > bounds
Definition:
JMultiSet.hh:88
JTOOLS::JMultiSet< 0, JAbscissa_t >::set
bool set(unsigned int index, const JSet< abscissa_type > &bounds) const
This method does nothing.
Definition:
JMultiSet.hh:129
JTOOLS::JMultiSet< 0, JAbscissa_t >::operator()
void operator()() const
Dummy operator.
Definition:
JMultiSet.hh:138
JTOOLS::JMultiSet::key_type
JMultiKey< N-1, abscissa_type > key_type
Definition:
JMultiSet.hh:29
JTOOLS::JAbstractMultiMap
Abstract interface for abscissa values of a multidimensional map.
Definition:
JAbstractMultiMap.hh:24
JTOOLS::JMultiSet::set
bool set(unsigned int index, const JSet< abscissa_type > &bounds)
Set bounds.
Definition:
JMultiSet.hh:61
JTOOLS::JAbstractMultiMap::abscissa_type
JAbscissa_t abscissa_type
Definition:
JAbstractMultiMap.hh:27
JAbstractMultiMap.hh
JTOOLS::JMultiKey
Multidimensional key.
Definition:
JMultiKey.hh:34
JTOOLS::JMultiSet< 0, JAbscissa_t >::abscissa_type
JAbscissa_t abscissa_type
Definition:
JMultiSet.hh:101
JTOOLS::JMultiSet::operator()
virtual const JSet< abscissa_type > & operator()(const key_type &key) const override
Get abscissa values as a function of given key.
Definition:
JMultiSet.hh:82
JTOOLS::JMultiSet< 0, JAbscissa_t >::JMultiSet
JMultiSet()
Default constructor.
Definition:
JMultiSet.hh:109
JTOOLS::make_multiset
JMultiSet< N, JAbscissa_t > make_multiset(const JSet< JAbscissa_t > &bounds)
Helper method for JMultiSet.
Definition:
JMultiSet.hh:150
JSet.hh
JTOOLS::JMultiSet::JMultiSet
JMultiSet(const JSet< abscissa_type > &bounds)
Constructor.
Definition:
JMultiSet.hh:47
N
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition:
JMuonPostfit.sh:40
JTOOLS::JMultiSet
Simple data structure for an abstract multidimensional map of equidistant elements.
Definition:
JMultiSet.hh:24
JTOOLS::JMultiSet::JMultiSet
JMultiSet()
Default constructor.
Definition:
JMultiSet.hh:37
JTOOLS::JMultiSet< 0, JAbscissa_t >::JMultiSet
JMultiSet(const JSet< abscissa_type > &bounds)
Constructor.
Definition:
JMultiSet.hh:118
JTOOLS::JSet
Simple data structure for an abstract collection of non-equidistant abscissa values.
Definition:
JSet.hh:29
Generated by
1.8.5