Constructor.
148 :
151 {
154
156
157 for (size_t i = 0; i < ns; ++i) {
158
159 thread worker([this, storage]() {
160
162
163 regressor.parameters.resize(5);
164
170
173
174 for ( ; ; ) {
175
176 {
177 unique_lock<mutex> lock(
in);
178
180
182 return;
183 }
184
186
187
188
189 data.clear();
190
191 for (map_type::const_iterator p = evt->data.begin(); p != evt->data.end(); ++p) {
192 copy(p->second.begin(), p->second.end(), back_inserter(data));
193 }
194
195 value = evt->value;
196 }
197
198 const double chi2 = regressor(value,
data.begin(),
data.end());
199
200 {
201 unique_lock<mutex> lock(
out);
202
204 }
205 }
206 });
207
208 workers.emplace_back(std::move(worker));
209 }
210 }
static parameter_type pY()
static parameter_type pX()
static parameter_type pT()
Data structure for fit of straight line in positive z-direction.
static parameter_type pDY()
static parameter_type pDX()
void copy(const Head &from, JHead &to)
Copy header from from to to.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Template definition of a data regressor of given model.
virtual const pointer_type & next() override
Get next element.
virtual bool hasNext() override
Check availability of next element.
void put(const double x)
Put value.
std::vector< std::thread > workers
std::condition_variable cv
static JMATH::JQuantile_t Q