Real experiment using PDF of signal and background.
More...
#include <JRealExperiment.hh>
|
| | JRealExperiment () |
| | Default constructor.
|
| |
| template<class H_t > |
| | JRealExperiment (const H_t &hd, const H_t &hs, const H_t &hb) |
| | Constructor.
|
| |
| void | add (const TObject *pd, const TObject *ps, const TObject *pb) |
| | Add objects with data and PDFs of signal and background.
|
| |
| void | add (const TH1 &hd, const TH1 &hs, const TH1 &hb) |
| | Add histograms with data and PDFs of signal and background.
|
| |
| void | add (const TH2 &hd, const TH2 &hs, const TH2 &hb) |
| | Add histograms with data and PDFs of signal and background.
|
| |
| void | add (const TH3 &hd, const TH3 &hs, const TH3 &hb) |
| | Add histograms with data and PDFs of signal and background.
|
| |
| void | add (const size_t n, const double s, const double b) |
| | Add data, signal and background.
|
| |
| void | put (const double s, const double b) |
| | Put signal and background to list of pre-computed N/S values.
|
| |
| void | put (const size_t n, const double s, const double b) |
| | Put signal and background to list of pre-computed N/S values.
|
| |
| double | getLikelihood (const double p) const |
| | Get likelihood for given signal strength.
|
| |
| double | getDerivative (const double p) const |
| | Get derivative of likelihood for given signal strength.
|
| |
| fit_type | operator() (const bool ns=false) const |
| | Fit signal strength.
|
| |
| double | getTestStatisticForUpperLimit (const double ps) const |
| | Get test statistic for given signal strength.
|
| |
| double | getSignal () const |
| | Get total signal strength.
|
| |
| void | setSignal (const double wS) |
| | Set signal strength.
|
| |
| void | addSignal (const double wS) |
| | Add signal strength.
|
| |
|
| static double | getSNR () |
| | Get minimal signa-to-noise ratio.
|
| |
| static void | setSNR (const double value) |
| | Set minimal signa-to-noise ratio.
|
| |
| static bool | check (const double s, const double b) |
| | Check validity of signal and background.
|
| |
| static bool | check (const TAxis *ha, const TAxis *hb) |
| | Check histogram bins.
|
| |
| static bool | check (const TH1 &ha, const TH1 &hb) |
| | Check histogram bins.
|
| |
| static bool | check (const TH2 &ha, const TH2 &hb) |
| | Check histogram bins.
|
| |
| static bool | check (const TH3 &ha, const TH3 &hb) |
| | Check histogram bins.
|
| |
|
| static constexpr double | EPSILON = 1.0e-3 |
| | precision determination of signal strength
|
| |
|
| template<class H_t > |
| bool | add (const TObject *pd, const TObject *ps, const TObject *pb) |
| | Add objects with data and PDFs of signal and background.
|
| |
|
| double | ws = 0.0 |
| | total signal strength
|
| |
|
| static double & | get_snr () |
| | Get minimal signa-to-noise ratio.
|
| |
Real experiment using PDF of signal and background.
Definition at line 29 of file JRealExperiment.hh.
◆ JRealExperiment() [1/2]
| JASTRONOMY::JRealExperiment::JRealExperiment |
( |
| ) |
|
|
inline |
◆ JRealExperiment() [2/2]
template<class H_t >
| JASTRONOMY::JRealExperiment::JRealExperiment |
( |
const H_t & | hd, |
|
|
const H_t & | hs, |
|
|
const H_t & | hb ) |
|
inline |
Constructor.
- Parameters
-
| hd | histogram with data |
| hs | histogram with PDF of signal |
| hb | histogram with PDF of background |
Definition at line 48 of file JRealExperiment.hh.
51 {
53 }
void add(const TObject *pd, const TObject *ps, const TObject *pb)
Add objects with data and PDFs of signal and background.
◆ add() [1/6]
Add objects with data and PDFs of signal and background.
- Parameters
-
| pd | pointer to object with data |
| ps | pointer to object with PDF of signal |
| pb | pointer to object with PDF of background |
Definition at line 63 of file JRealExperiment.hh.
66 {
67 if (
add<TH3>(pd, ps, pb)) {
return; }
68 if (
add<TH2>(pd, ps, pb)) {
return; }
69 if (
add<TH1>(pd, ps, pb)) {
return; }
70 }
◆ add() [2/6]
| void JASTRONOMY::JRealExperiment::add |
( |
const TH1 & | hd, |
|
|
const TH1 & | hs, |
|
|
const TH1 & | hb ) |
|
inline |
Add histograms with data and PDFs of signal and background.
- Parameters
-
| hd | histogram with data |
| hs | histogram with PDF of signal |
| hb | histogram with PDF of background |
Definition at line 80 of file JRealExperiment.hh.
83 {
84 for (Int_t ix = 1; ix <= hs.GetXaxis()->GetNbins(); ++ix) {
85 add(hd.GetBinContent(ix),
86 hs.GetBinContent(ix),
87 hb.GetBinContent(ix));
88 }
89 }
◆ add() [3/6]
| void JASTRONOMY::JRealExperiment::add |
( |
const TH2 & | hd, |
|
|
const TH2 & | hs, |
|
|
const TH2 & | hb ) |
|
inline |
Add histograms with data and PDFs of signal and background.
- Parameters
-
| hd | histogram with data |
| hs | histogram with PDF of signal |
| hb | histogram with PDF of background |
Definition at line 99 of file JRealExperiment.hh.
102 {
103 for (Int_t ix = 1; ix <= hs.GetXaxis()->GetNbins(); ++ix) {
104 for (Int_t iy = 1; iy <= hs.GetYaxis()->GetNbins(); ++iy) {
105 add(hd.GetBinContent(ix, iy),
106 hs.GetBinContent(ix, iy),
107 hb.GetBinContent(ix, iy));
108 }
109 }
110 }
◆ add() [4/6]
| void JASTRONOMY::JRealExperiment::add |
( |
const TH3 & | hd, |
|
|
const TH3 & | hs, |
|
|
const TH3 & | hb ) |
|
inline |
Add histograms with data and PDFs of signal and background.
- Parameters
-
| hd | histogram with data |
| hs | histogram with PDF of signal |
| hb | histogram with PDF of background |
Definition at line 120 of file JRealExperiment.hh.
123 {
124 for (Int_t ix = 1; ix <= hs.GetXaxis()->GetNbins(); ++ix) {
125 for (Int_t iy = 1; iy <= hs.GetYaxis()->GetNbins(); ++iy) {
126 for (Int_t iz = 1; iz <= hs.GetZaxis()->GetNbins(); ++iz) {
127 add(hd.GetBinContent(ix, iy, iz),
128 hs.GetBinContent(ix, iy, iz),
129 hb.GetBinContent(ix, iy, iz));
130 }
131 }
132 }
133 }
◆ add() [5/6]
| void JASTRONOMY::JRealExperiment::add |
( |
const size_t | n, |
|
|
const double | s, |
|
|
const double | b ) |
|
inline |
Add data, signal and background.
- Parameters
-
| n | data |
| s | signal |
| b | background |
Definition at line 143 of file JRealExperiment.hh.
146 {
149 }
150 }
void put(const double s, const double b)
Put signal and background to list of pre-computed N/S values.
static bool check(const double s, const double b)
Check validity of signal and background.
◆ add() [6/6]
Add objects with data and PDFs of signal and background.
- Parameters
-
| pd | pointer to object with data |
| ps | pointer to object with PDF of signal |
| pb | pointer to object with PDF of background |
- Returns
- true if added; else false
Definition at line 162 of file JRealExperiment.hh.
165 {
166 if (dynamic_cast<const H_t*>(pd) != NULL &&
167 dynamic_cast<const H_t*>(ps) != NULL &&
168 dynamic_cast<const H_t*>(pb) != NULL) {
169
170 const H_t& hd = dynamic_cast<const H_t&>(*pd);
171 const H_t& hs = dynamic_cast<const H_t&>(*ps);
172 const H_t& hb = dynamic_cast<const H_t&>(*pb);
173
175
177
178 return true;
179 }
180 }
181
182 return false;
183 }
◆ getSNR()
| static double JASTRONOMY::JExperiment::getSNR |
( |
| ) |
|
|
inlinestaticinherited |
Get minimal signa-to-noise ratio.
- Returns
- signa-to-noise ratio.
Definition at line 32 of file JExperiment.hh.
33 {
35 }
static double & get_snr()
Get minimal signa-to-noise ratio.
◆ setSNR()
| static void JASTRONOMY::JExperiment::setSNR |
( |
const double | value | ) |
|
|
inlinestaticinherited |
Set minimal signa-to-noise ratio.
- Parameters
-
| value | signa-to-noise ratio. |
Definition at line 43 of file JExperiment.hh.
◆ check() [1/5]
| static bool JASTRONOMY::JExperiment::check |
( |
const double | s, |
|
|
const double | b ) |
|
inlinestaticinherited |
Check validity of signal and background.
- Parameters
-
- Returns
- true if signal and backgroud are valid; else false
Definition at line 56 of file JExperiment.hh.
57 {
58 return (s > 0.0 && b > 0.0 && s/b >=
getSNR());
59 }
static double getSNR()
Get minimal signa-to-noise ratio.
◆ check() [2/5]
| static bool JASTRONOMY::JExperiment::check |
( |
const TAxis * | ha, |
|
|
const TAxis * | hb ) |
|
inlinestaticinherited |
Check histogram bins.
- Parameters
-
| ha | histogram axis |
| hb | histogram axis |
- Returns
- true if same binning; else false
Definition at line 69 of file JExperiment.hh.
70 {
71 return (ha->GetNbins() == hb->GetNbins() &&
72 ha->GetXmin() == hb->GetXmin() &&
73 ha->GetXmax() == hb->GetXmax());
74 }
◆ check() [3/5]
| static bool JASTRONOMY::JExperiment::check |
( |
const TH1 & | ha, |
|
|
const TH1 & | hb ) |
|
inlinestaticinherited |
Check histogram bins.
- Parameters
-
- Returns
- true if same binning; else false
Definition at line 83 of file JExperiment.hh.
84 {
85 return check(ha.GetXaxis(), hb.GetXaxis());
86 }
◆ check() [4/5]
| static bool JASTRONOMY::JExperiment::check |
( |
const TH2 & | ha, |
|
|
const TH2 & | hb ) |
|
inlinestaticinherited |
Check histogram bins.
- Parameters
-
- Returns
- true if same binning; else false
Definition at line 96 of file JExperiment.hh.
97 {
98 return (
check(ha.GetXaxis(), hb.GetXaxis()) &&
99 check(ha.GetYaxis(), hb.GetYaxis()));
100 }
◆ check() [5/5]
| static bool JASTRONOMY::JExperiment::check |
( |
const TH3 & | ha, |
|
|
const TH3 & | hb ) |
|
inlinestaticinherited |
Check histogram bins.
- Parameters
-
- Returns
- true if same binning; else false
Definition at line 110 of file JExperiment.hh.
111 {
112 return (
check(ha.GetXaxis(), hb.GetXaxis()) &&
113 check(ha.GetYaxis(), hb.GetYaxis()) &&
114 check(ha.GetZaxis(), hb.GetZaxis()));
115 }
◆ get_snr()
| static double & JASTRONOMY::JExperiment::get_snr |
( |
| ) |
|
|
inlinestaticprivateinherited |
Get minimal signa-to-noise ratio.
- Returns
- signa-to-noise ratio.
Definition at line 123 of file JExperiment.hh.
124 {
125 static double value = 0.0;
126
127 return value;
128 }
◆ put() [1/2]
| void JASTRONOMY::JAspera::put |
( |
const double | s, |
|
|
const double | b ) |
|
inlineinherited |
Put signal and background to list of pre-computed N/S values.
- Parameters
-
Definition at line 44 of file JAspera.hh.
46 {
47 push_back(b/s);
48
50 }
double ws
total signal strength
◆ put() [2/2]
| void JASTRONOMY::JAspera::put |
( |
const size_t | n, |
|
|
const double | s, |
|
|
const double | b ) |
|
inlineinherited |
Put signal and background to list of pre-computed N/S values.
- Parameters
-
| n | data |
| s | signal |
| b | background |
Definition at line 60 of file JAspera.hh.
63 {
64 for (
size_t i = 0; i !=
n; ++i) {
65 push_back(b/s);
66 }
67
69 }
◆ getLikelihood()
| double JASTRONOMY::JAspera::getLikelihood |
( |
const double | p | ) |
const |
|
inlineinherited |
Get likelihood for given signal strength.
- Parameters
-
- Returns
- likelihood
Definition at line 78 of file JAspera.hh.
◆ getDerivative()
| double JASTRONOMY::JAspera::getDerivative |
( |
const double | p | ) |
const |
|
inlineinherited |
Get derivative of likelihood for given signal strength.
- Parameters
-
- Returns
- derivative of likelihood
Definition at line 96 of file JAspera.hh.
◆ operator()()
| fit_type JASTRONOMY::JAspera::operator() |
( |
const bool | ns = false | ) |
const |
|
inlineinherited |
Fit signal strength.
- Parameters
-
| ns | allow for negative signal |
- Returns
- result
Definition at line 114 of file JAspera.hh.
115 {
117
118 if (this->empty()) {
119
120
121
122 return { 0.0, 0.0 };
123 }
124
125 double x1 = 0.0;
126 double x2 = 0.0;
127
129 double f2 = 0.0;
130
131 if (f1 == 0.0) {
132
133 return { 0.0, 0.0 };
134
135 } else if (f1 > 0.0) {
136
137 x1 = 0.0;
138 x2 = (double) this->size() /
ws;
139
141
142 } else if (ns) {
143
144 x2 = 0.0;
145 x1 = -(*this)[0];
146
148 if (-i > x1) {
149 x1 = -i;
150 }
151 }
152
154
155 f2 = f1;
157
158 } else {
159
160 return { 0.0, 0.0 };
161 }
162
163
164
166
167 const double xm = 0.5 * (x1 + x2);
169
170 const double s = sqrt(fm*fm - f1*f2);
171
172 if (s == 0.0) {
173 break;
174 }
175
176 const double xn = xm + (xm - x1) * fm/s;
178
179 if (fn == 0.0) {
181 }
182
183 if (signbit(fn) != signbit(fm)) {
184
185 x1 = xm;
186 f1 = fm;
187 x2 = xn;
188 f2 = fn;
189
190 } else {
191
192 if (signbit(fn)) {
193
194 x2 = xn;
195 f2 = fn;
196
197 } else {
198
199 x1 = xn;
200 f1 = fn;
201 }
202 }
203 }
204
205 const double x = 0.5 * (x1 + x2);
206
208 }
double getLikelihood(const double p) const
Get likelihood for given signal strength.
static constexpr double EPSILON
precision determination of signal strength
double getDerivative(const double p) const
Get derivative of likelihood for given signal strength.
◆ getTestStatisticForUpperLimit()
| double JASTRONOMY::JAspera::getTestStatisticForUpperLimit |
( |
const double | ps | ) |
const |
|
inlineinherited |
Get test statistic for given signal strength.
See formula 16 in this reference.
- Parameters
-
- Returns
- test statistic
Definition at line 218 of file JAspera.hh.
219 {
220 const fit_type
result = (*this)(
true);
221
224 else if (
result.signal <= ps)
226 else
227 return 0.0;
228 }
◆ getSignal()
| double JASTRONOMY::JAspera::getSignal |
( |
| ) |
const |
|
inlineinherited |
Get total signal strength.
- Returns
- signal strength
Definition at line 236 of file JAspera.hh.
◆ setSignal()
| void JASTRONOMY::JAspera::setSignal |
( |
const double | wS | ) |
|
|
inlineinherited |
Set signal strength.
- Parameters
-
Definition at line 247 of file JAspera.hh.
◆ addSignal()
| void JASTRONOMY::JAspera::addSignal |
( |
const double | wS | ) |
|
|
inlineinherited |
Add signal strength.
- Parameters
-
Definition at line 258 of file JAspera.hh.
◆ EPSILON
| double JASTRONOMY::JAspera::EPSILON = 1.0e-3 |
|
staticconstexprinherited |
precision determination of signal strength
Definition at line 26 of file JAspera.hh.
◆ ws
| double JASTRONOMY::JAspera::ws = 0.0 |
|
protectedinherited |
The documentation for this struct was generated from the following file: