CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
AcceptanceTableHelper Class Reference

Access to acceptance tables stored in ROOT file. More...

#include <AcceptanceTableHelper.h>

Public Member Functions

 AcceptanceTableHelper ()
 Default constructor. More...
 
float GetAcceptance (float, float, float)
 Acceptance as a function of t, xi and phi. More...
 
void Init (TFile &, const std::string)
 Get acceptance tables from root file. More...
 
 ~AcceptanceTableHelper ()
 Delete acceptance histograms. More...
 

Private Attributes

TH3F * h_log10t_log10Xi_Phi
 Table for low t: acceptance as a function of log10(t), log10(Xi) and Phi. More...
 
TH3F * h_t_log10Xi_Phi
 Table for high t: acceptance as a function of -t, log10(Xi) and Phi. More...
 

Detailed Description

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.

Constructor & Destructor Documentation

AcceptanceTableHelper::AcceptanceTableHelper ( )
inline

Default constructor.

Definition at line 32 of file AcceptanceTableHelper.h.

32 : h_log10t_log10Xi_Phi(nullptr),h_t_log10Xi_Phi(nullptr) {;}
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.
AcceptanceTableHelper::~AcceptanceTableHelper ( )
inline

Delete acceptance histograms.

Definition at line 35 of file AcceptanceTableHelper.h.

References GetAcceptance(), h_log10t_log10Xi_Phi, h_t_log10Xi_Phi, Init(), and AlCaHLTBitMon_QueryRunRegistry::string.

35  {
37  if (h_t_log10Xi_Phi) delete h_t_log10Xi_Phi;
38  }
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.

Member Function Documentation

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, and h_t_log10Xi_Phi.

Referenced by ProtonTaggerFilter::filter(), and ~AcceptanceTableHelper().

50  {
51 
52  float log10t = log10(-t);
53  float log10Xi = log10(xi);
54 
55  float acc = 0;
56 
57  if ((h_log10t_log10Xi_Phi != nullptr) // if table exists
58  && (log10t < h_log10t_log10Xi_Phi->GetXaxis()->GetXmax())) // and t within table range
59  {
60 
61  float log10tMin = h_log10t_log10Xi_Phi->GetXaxis()->GetXmin();
62  if (log10t < log10tMin) log10t = log10tMin; // very small t should go to the lowest t bin
63 
64  acc = h_log10t_log10Xi_Phi->GetBinContent(h_log10t_log10Xi_Phi->FindBin(log10t, log10Xi, phi));
65 
66  } else if (h_t_log10Xi_Phi != nullptr) { // if table exists for high t
67 
68  acc = h_t_log10Xi_Phi->GetBinContent(h_t_log10Xi_Phi->FindBin(-t, log10Xi, phi));
69  }
70 
71  return acc;
72 }
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.
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_log10t_log10Xi_Phi, h_t_log10Xi_Phi, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by ProtonTaggerFilter::beginJob(), and ~AcceptanceTableHelper().

19 {
20  // ... read table for low t
21  TH3F *h = (TH3F*)f.Get(basename.c_str());
22 
23  if (h != nullptr)
24  {
25  h_log10t_log10Xi_Phi = (TH3F*)h->Clone();
26  std::cout << "Read ";
27  h_log10t_log10Xi_Phi->SetDirectory(nullptr); // secure it from deleting if the file is eventually closed
28  h_log10t_log10Xi_Phi->Print();
29  } else {
30  std::cout << "Warning: could not get acceptance table " << basename << std::endl;
31  }
32 
33  // ... read table for high t
34  std::string name2 = basename+"_hight";
35  h = (TH3F*)f.Get(name2.c_str());
36 
37  if (h != nullptr)
38  {
39  h_t_log10Xi_Phi = (TH3F*)h->Clone();
40  h_t_log10Xi_Phi->SetDirectory(nullptr); // secure it from deleting if the file is eventually closed
41  std::cout << "Read ";
42  h_t_log10Xi_Phi->Print();
43  } else {
44  std::cout << "Warning: could not get acceptance table " << name2 << std::endl;
45  }
46 }
TH3F * h_log10t_log10Xi_Phi
Table for low t: acceptance as a function of log10(t), log10(Xi) and Phi.
double f[11][100]
TH3F * h_t_log10Xi_Phi
Table for high t: acceptance as a function of -t, log10(Xi) and Phi.

Member Data Documentation

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().