FastSimulation
ForwardDetectors
plugins
AcceptanceTableHelper.cc
Go to the documentation of this file.
1
/****************************************************************************
2
* File AcceptanceTableHelper.cc
3
*
4
* Access to acceptance tables stored in root histograms
5
*
6
* Author: Dmitry Zaborov
7
*
8
* Version: $Id: AcceptanceTableHelper.cc,v 1.3 2007/12/31 10:02:46 elmer Exp $
9
***************************************************************************/
10
11
#include "
FastSimulation/ForwardDetectors/plugins/AcceptanceTableHelper.h
"
12
13
#include <iostream>
14
#include <cmath>
15
18
void
AcceptanceTableHelper::Init
(TFile&
f
,
const
std::string
basename) {
19
// ... read table for low t
20
TH3F*
h
= (TH3F*)
f
.Get(basename.c_str());
21
22
if
(
h
!=
nullptr
) {
23
h_log10t_log10Xi_Phi
= (TH3F*)
h
->Clone();
24
std::cout
<<
"Read "
;
25
h_log10t_log10Xi_Phi
->SetDirectory(
nullptr
);
// secure it from deleting if the file is eventually closed
26
h_log10t_log10Xi_Phi
->Print();
27
}
else
{
28
std::cout
<<
"Warning: could not get acceptance table "
<< basename << std::endl;
29
}
30
31
// ... read table for high t
32
std::string
name2
= basename +
"_hight"
;
33
h
= (TH3F*)
f
.Get(
name2
.c_str());
34
35
if
(
h
!=
nullptr
) {
36
h_t_log10Xi_Phi
= (TH3F*)
h
->Clone();
37
h_t_log10Xi_Phi
->SetDirectory(
nullptr
);
// secure it from deleting if the file is eventually closed
38
std::cout
<<
"Read "
;
39
h_t_log10Xi_Phi
->Print();
40
}
else
{
41
std::cout
<<
"Warning: could not get acceptance table "
<<
name2
<< std::endl;
42
}
43
}
44
47
float
AcceptanceTableHelper::GetAcceptance
(
float
t
,
float
xi
,
float
phi
) {
48
float
log10t = log10(-
t
);
49
float
log10Xi = log10(
xi
);
50
51
float
acc = 0;
52
53
if
((
h_log10t_log10Xi_Phi
!=
nullptr
)
// if table exists
54
&& (log10t < h_log10t_log10Xi_Phi->GetXaxis()->GetXmax()))
// and t within table range
55
{
56
float
log10tMin =
h_log10t_log10Xi_Phi
->GetXaxis()->GetXmin();
57
if
(log10t < log10tMin)
58
log10t = log10tMin;
// very small t should go to the lowest t bin
59
60
acc =
h_log10t_log10Xi_Phi
->GetBinContent(
h_log10t_log10Xi_Phi
->FindBin(log10t, log10Xi,
phi
));
61
62
}
else
if
(
h_t_log10Xi_Phi
!=
nullptr
) {
// if table exists for high t
63
64
acc =
h_t_log10Xi_Phi
->GetBinContent(
h_t_log10Xi_Phi
->FindBin(-
t
, log10Xi,
phi
));
65
}
66
67
return
acc;
68
}
AcceptanceTableHelper::h_log10t_log10Xi_Phi
TH3F * h_log10t_log10Xi_Phi
Table for low t: acceptance as a function of log10(t), log10(Xi) and Phi.
Definition:
AcceptanceTableHelper.h:48
f
double f[11][100]
Definition:
MuScleFitUtils.cc:78
gather_cfg.cout
cout
Definition:
gather_cfg.py:144
hybridSuperClusters_cfi.xi
xi
Definition:
hybridSuperClusters_cfi.py:10
AcceptanceTableHelper::Init
void Init(TFile &, const std::string)
Get acceptance tables from root file.
Definition:
AcceptanceTableHelper.cc:18
AcceptanceTableHelper::GetAcceptance
float GetAcceptance(float, float, float)
Acceptance as a function of t, xi and phi.
Definition:
AcceptanceTableHelper.cc:47
h
OrderedSet.t
t
Definition:
OrderedSet.py:90
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
PVValHelper::phi
Definition:
PVValidationHelpers.h:68
AcceptanceTableHelper::h_t_log10Xi_Phi
TH3F * h_t_log10Xi_Phi
Table for high t: acceptance as a function of -t, log10(Xi) and Phi.
Definition:
AcceptanceTableHelper.h:51
DDAxes::phi
AcceptanceTableHelper.h
hfnoseParametersInitialization_cfi.name2
name2
Definition:
hfnoseParametersInitialization_cfi.py:8
Generated for CMSSW Reference Manual by
1.8.16