Belle II Software development
OfflineFitFunction.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8#include <ecl/digitization/algorithms.h>
9
10#pragma once
11
12namespace Belle2 {
17 namespace ECL {
18 // cppcheck-suppress constParameterCallback ; fit callbacks must keep the signature required by ROOT
19 double WaveFuncTwoComponent(double* x, double* par)
20 {
21 //Used for fitting with ROOT::FIT and drawing offline fit results
22 //p0 = trigger time
23 //p1 = baseline
24 //p2 = photon component amp
25 //p3 = hadron component amp
26 //p4-p13 =photon shape template parameters (fixed)
27 //p14-p23 = hadron or didoe shape template parameters (fixed)
28 //p24 = photon scale (fixed)
29 //p25 = hadron scale (fixed)
30
31 const double time = x[0] - par[0];
32 const double PhotonScale = par[24];
33 const double HadronScale = par[25];
34
35 double GammaComponent = 0;
36 double HadronComponent = 0;
37 double photonTemplate10[10];
38 double hadronTemplate10[10];
39 for (int k = 0; k < 10; k++) {
40 photonTemplate10[k] = par[4 + k];
41 hadronTemplate10[k] = par[10 + 4 + k];
42 }
43 GammaComponent = Belle2::ECL::ShaperDSPofflineFit(time, photonTemplate10, PhotonScale);
44 HadronComponent = Belle2::ECL::ShaperDSPofflineFit(time, hadronTemplate10, HadronScale);
45 return (par[2] * GammaComponent + par[3] * HadronComponent) + par[1];
46 }
47 }
49}
Abstract base class for different kinds of events.