Access to acceptance tables stored in ROOT file. More...
#include <AcceptanceTableHelper.h>
Public Member Functions | |
AcceptanceTableHelper () | |
Default constructor. | |
float | GetAcceptance (float, float, float) |
Acceptance as a function of t, xi and phi. | |
void | Init (TFile &, const std::string) |
Get acceptance tables from root file. | |
~AcceptanceTableHelper () | |
Delete acceptance histograms. | |
Private Attributes | |
TH3F * | h_log10t_log10Xi_Phi |
Table for low t: acceptance as a function of log10(t), log10(Xi) and Phi. | |
TH3F * | h_t_log10Xi_Phi |
Table for high t: acceptance as a function of -t, log10(Xi) and Phi. |
Access to acceptance tables stored in ROOT file.
Helper class to get actual values from acceptance tables stored as TH3F. The class can provide acceptance values for a near-beam detector or a combination (e.g. 420+220).
A class instance is initialized from a root file with TH3F-type histograms of acceptance: for low t: acceptance as function of log10(-t), log10(xi) and phi; for high t: acceptance as function of -t, log10(xi) and phi.
The acceptance can be extracted from tables for given t,xi,phi with a dedicated method.
Author: Dmitry Zaborov
Definition at line 27 of file AcceptanceTableHelper.h.
AcceptanceTableHelper::AcceptanceTableHelper | ( | ) | [inline] |
Default constructor.
Definition at line 32 of file AcceptanceTableHelper.h.
: h_log10t_log10Xi_Phi(NULL),h_t_log10Xi_Phi(NULL) {;}
AcceptanceTableHelper::~AcceptanceTableHelper | ( | ) | [inline] |
Delete acceptance histograms.
Definition at line 35 of file AcceptanceTableHelper.h.
References h_log10t_log10Xi_Phi, and h_t_log10Xi_Phi.
{ if (h_log10t_log10Xi_Phi) delete h_log10t_log10Xi_Phi; if (h_t_log10Xi_Phi) delete h_t_log10Xi_Phi; }
float AcceptanceTableHelper::GetAcceptance | ( | float | t, |
float | xi, | ||
float | phi | ||
) |
Acceptance as a function of t, xi and phi.
Return acceptance for given t, xi, phi
Definition at line 50 of file AcceptanceTableHelper.cc.
References h_log10t_log10Xi_Phi, h_t_log10Xi_Phi, and NULL.
Referenced by ProtonTaggerFilter::filter().
{ float log10t = log10(-t); float log10Xi = log10(xi); float acc = 0; if ((h_log10t_log10Xi_Phi != NULL) // if table exists && (log10t < h_log10t_log10Xi_Phi->GetXaxis()->GetXmax())) // and t within table range { float log10tMin = h_log10t_log10Xi_Phi->GetXaxis()->GetXmin(); if (log10t < log10tMin) log10t = log10tMin; // very small t should go to the lowest t bin acc = h_log10t_log10Xi_Phi->GetBinContent(h_log10t_log10Xi_Phi->FindBin(log10t, log10Xi, phi)); } else if (h_t_log10Xi_Phi != NULL) { // if table exists for high t acc = h_t_log10Xi_Phi->GetBinContent(h_t_log10Xi_Phi->FindBin(-t, log10Xi, phi)); } return acc; }
void AcceptanceTableHelper::Init | ( | TFile & | f, |
const std::string | basename | ||
) |
Get acceptance tables from root file.
Read from root file <f> acceptance tables named <basename> and <basename>_hight
Definition at line 18 of file AcceptanceTableHelper.cc.
References gather_cfg::cout, h, h_log10t_log10Xi_Phi, h_t_log10Xi_Phi, and NULL.
Referenced by ProtonTaggerFilter::beginJob().
{ // ... read table for low t TH3F *h = (TH3F*)f.Get(basename.c_str()); if (h != NULL) { h_log10t_log10Xi_Phi = (TH3F*)h->Clone(); std::cout << "Read "; h_log10t_log10Xi_Phi->SetDirectory(0); // secure it from deleting if the file is eventually closed h_log10t_log10Xi_Phi->Print(); } else { std::cout << "Warning: could not get acceptance table " << basename << std::endl; } // ... read table for high t std::string name2 = basename+"_hight"; h = (TH3F*)f.Get(name2.c_str()); if (h != NULL) { h_t_log10Xi_Phi = (TH3F*)h->Clone(); h_t_log10Xi_Phi->SetDirectory(0); // secure it from deleting if the file is eventually closed std::cout << "Read "; h_t_log10Xi_Phi->Print(); } else { std::cout << "Warning: could not get acceptance table " << name2 << std::endl; } }
TH3F* AcceptanceTableHelper::h_log10t_log10Xi_Phi [private] |
Table for low t: acceptance as a function of log10(t), log10(Xi) and Phi.
Definition at line 49 of file AcceptanceTableHelper.h.
Referenced by GetAcceptance(), Init(), and ~AcceptanceTableHelper().
TH3F* AcceptanceTableHelper::h_t_log10Xi_Phi [private] |
Table for high t: acceptance as a function of -t, log10(Xi) and Phi.
Definition at line 52 of file AcceptanceTableHelper.h.
Referenced by GetAcceptance(), Init(), and ~AcceptanceTableHelper().