Skip to content

Commit 26b00ec

Browse files
committed
2 parents e40883e + ac11101 commit 26b00ec

File tree

1 file changed

+34
-1
lines changed

1 file changed

+34
-1
lines changed

CHANGELOG.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,40 @@ The filling functions can be called also with a specific backend policy and with
165165

166166
#### Data fitting
167167

168-
1. Adding support to simultaneous fit.
168+
1. Added support to multi-layered simultaneous fit of different models, over different datasets, deploying different parallelization strategies for each model. No categorization of the dataset is needed, but just to set up preliminarly the different component FCNs, that can be optimized in isolation or in the context of the simultaneous FCN. Simultaneous FCNs can be created via direct instantiation or using the convenience function `hydra::make_simultaneous_fcn(...)`, as shown in the following snippet.
169+
170+
```cpp
171+
...
172+
#include <hydra/LogLikelihoodFCN.h>
173+
...
174+
175+
int main(int argv, char** argc)
176+
{
177+
...
178+
//=====================================================================================
179+
// +----< fcn(model-x)
180+
// +----< simultaneous fcn 1 ----- |
181+
// | +----< fcn(model-y)
182+
// simultaneous fcn <----+
183+
// | +----< fcn(model-w)
184+
// +----< simultaneous fcn 2 ------|
185+
// | +----< fcn(model-z)
186+
// +----< fcn(model-v)
187+
//=====================================================================================
188+
auto fcnX = hydra::make_loglikehood_fcn(modelX, dataX);
189+
auto fcnY = hydra::make_loglikehood_fcn(modelY, dataY);
190+
auto fcnW = hydra::make_loglikehood_fcn(modelY, dataY);
191+
auto fcnZ = hydra::make_loglikehood_fcn(modelZ, dataZ);
192+
auto fcnV = hydra::make_loglikehood_fcn(modelv, datav);
193+
194+
auto sim_fcn1 = hydra::make_simultaneous_fcn(fcnx, fcny);
195+
auto sim_fcn2 = hydra::make_simultaneous_fcn(fcnw, fcnz);
196+
auto sim_fcn = hydra::make_simultaneous_fcn(sim_fcn1, sim_fcn2, fcnV);
197+
...
198+
}
199+
```
200+
Moreover, the generic interface allows to build up a simultaneous FCN object by composing usual FCNs and simultaneous FCNs. An example of such new method can be found in `examples/fit/simultaneous_fit.inl`.
201+
169202
2. Fitting of convoluted PDFs.
170203

171204
#### General

0 commit comments

Comments
 (0)