BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnEfficiencyProbability.cxx
Go to the documentation of this file.
1
#include "
BmnEfficiencyProbability.h
"
2
3
BmnEfficiencyProbability::BmnEfficiencyProbability
(
TString
f)
4
:
fFile
(nullptr)
5
,
hHisto
(nullptr)
6
,
fDet
(
""
)
7
,
fStat
(-1)
8
,
fMod
(-1)
9
,
fZone
(
""
)
10
{
11
fFile
=
new
TFile
(f.Data(),
"read"
);
12
13
if
(!
fFile
->IsOpen() ||
fFile
->IsZombie())
14
return
;
15
}
16
17
Double_t
BmnEfficiencyProbability::GetProbability
()
18
{
19
TString
ele =
""
;
20
21
if
(
fDet
.Contains(
"GEM"
)) {
22
Int_t
idxZone =
fZone
.Contains(
"hot"
) ? 0 :
fZone
.Contains(
"big"
) ? 1 : -1;
23
if
(idxZone == -1) {
24
cout <<
"Zone is not defined!!! Exiting ..."
<< endl;
25
throw
;
26
}
else
27
ele =
TString::Format
(
"Detector# %s, Station# %d, Module# %d, Zone# %d"
,
fDet
.Data(),
fStat
,
fMod
, idxZone);
28
}
29
30
else
if
(
fDet
.Contains(
"SILICON"
))
31
ele =
TString::Format
(
"Detector# %s, Station# %d, Module# %d"
,
fDet
.Data(),
fStat
,
fMod
);
32
33
hHisto
= (
TH1F
*)
fFile
->Get(ele.
Data
());
34
35
if
(
TMath::Abs
(
hHisto
->Integral() - 1.) > FLT_EPSILON)
36
throw
;
37
38
Double_t
x = -1., y = -1., content = -1.;
39
40
do
{
41
x =
gRandom
->Rndm();
42
// y = hHisto->GetBinContent(hHisto->GetMaximumBin()) * gRandom->Rndm();
43
y = 1. *
gRandom
->Rndm();
44
45
// cout << x << " -- " << y << endl;
46
47
// Looking for a bin corresponding to x ...
48
Int_t
bin =
hHisto
->FindBin(x);
49
// cout << bin << endl;
50
content =
hHisto
->GetBinContent(bin);
51
// cout << content << endl;
52
}
while
(y > content);
53
54
// cout << "Eff# " << x << endl;
55
return
x;
56
}
BmnEfficiencyProbability.h
Int_t
int Int_t
Double_t
double Double_t
gRandom
R__EXTERN TRandom * gRandom
BmnEfficiencyProbability::fDet
TString fDet
Definition
BmnEfficiencyProbability.h:47
BmnEfficiencyProbability::fFile
TFile * fFile
Definition
BmnEfficiencyProbability.h:43
BmnEfficiencyProbability::fMod
Int_t fMod
Definition
BmnEfficiencyProbability.h:49
BmnEfficiencyProbability::BmnEfficiencyProbability
BmnEfficiencyProbability()
Definition
BmnEfficiencyProbability.h:21
BmnEfficiencyProbability::GetProbability
Double_t GetProbability()
Definition
BmnEfficiencyProbability.cxx:17
BmnEfficiencyProbability::hHisto
TH1F * hHisto
Definition
BmnEfficiencyProbability.h:44
BmnEfficiencyProbability::fStat
Int_t fStat
Definition
BmnEfficiencyProbability.h:48
BmnEfficiencyProbability::fZone
TString fZone
Definition
BmnEfficiencyProbability.h:50
TFile
TH1F
TString
TString::Data
const char * Data() const
TString::Format
static TString Format(const char *fmt,...)
TMath::Abs
Double_t Abs(Double_t d)
physics
efficiency
BmnEfficiencyProbability.cxx
Generated on
for BmnRoot by
1.17.0