CMS 3D CMS Logo

Public Member Functions | Private Attributes

AcceptanceTableHelper Class Reference

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

#include <AcceptanceTableHelper.h>

List of all members.

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.

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.

AcceptanceTableHelper::~AcceptanceTableHelper ( ) [inline]

Delete acceptance histograms.

Definition at line 35 of file AcceptanceTableHelper.h.

References h_log10t_log10Xi_Phi, and h_t_log10Xi_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, 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, NULL, and AlCaHLTBitMon_QueryRunRegistry::string.

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;
  }
}

Member Data Documentation

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

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