ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | Private Attributes | Static Private Attributes | List of all members
TFCS2DFunctionTemplateInterpolationExpHistogram< Txvec, Tyvec, Tz, Trandom > Class Template Reference

#include <TFCS2DFunctionTemplateInterpolationExpHistogram.h>

Inheritance diagram for TFCS2DFunctionTemplateInterpolationExpHistogram< Txvec, Tyvec, Tz, Trandom >:
Collaboration diagram for TFCS2DFunctionTemplateInterpolationExpHistogram< Txvec, Tyvec, Tz, Trandom >:

Public Types

typedef TFCS1DFunction_size_t size_t
 
typedef float random_type
 
typedef Txvec xvec_type
 
typedef Tyvec yvec_type
 
typedef Tz z_value_type
 

Public Member Functions

 TFCS2DFunctionTemplateInterpolationExpHistogram (TH2 *hist=nullptr)
 
virtual void rnd_to_fct (float &valuex, float &valuey, float rnd, float rnd2) const
 Function gets random number rnd in the range [0,1) as argument and returns function value according to a histogram distribution. More...
 
std::size_t MemorySizeArray () const
 
std::size_t MemorySize () const
 Gives the total memory size, including the size of additional memory allocated inside the class. More...
 
virtual std::size_t MemorySize () const
 Gives the total memory size, including the size of additional memory allocated inside the class. More...
 
void set_nbins (size_t nbinsx, size_t nbinsy)
 set number of bins More...
 
size_t get_nbins () const
 return number of bins More...
 
void Initialize (const TH2 *hist)
 Initialize from root histogram. More...
 
virtual void rnd_to_fct (float &valuex, float &valuey, float rnd) const
 
virtual void rnd_to_fct (float &valuex, float &valuey, float rnd0, float rnd1) const =0
 Function gets random number rnd in the range [0,1) as argument and returns function value according to a histogram distribution. More...
 
virtual void rnd_to_fct (float value[], const float rnd[]) const
 Function gets array of random numbers rnd[] in the range [0,1) as arguments and returns function value in array value. More...
 
const Txvec & get_HistoBordersx () const
 
Txvec & get_HistoBordersx ()
 inline void get_XYZfromGlobal(int &ix, int &iy, int &iz, int global) const {hist;}; More...
 
const Tyvec & get_HistoBordersy () const
 
Tyvec & get_HistoBordersy ()
 
const TFCS1DFunction_HistogramContent< Tz, float > & get_HistoContents () const
 
TFCS1DFunction_HistogramContent< Tz, float > & get_HistoContents ()
 
virtual int ndim () const
 Return the number of dimensions for the function. More...
 
bool msgLvl (const MSG::Level lvl) const
 Check whether the logging system is active at the provided verbosity level. More...
 
MsgStream & msg () const
 Return a stream for sending messages directly (no decoration) More...
 
MsgStream & msg (const MSG::Level lvl) const
 Return a decorated starting stream for sending messages. More...
 
MSG::Level level () const
 Retrieve output level. More...
 
virtual void setLevel (MSG::Level lvl)
 Update outputlevel. More...
 

Static Public Member Functions

static double CheckAndIntegrate2DHistogram (const TH2 *hist, std::vector< double > &integral_vec, int &first, int &last)
 
static void unit_test ATLAS_NOT_THREAD_SAFE (TH2 *hist=nullptr, TFCS2DFunction *rtof=nullptr, const char *outfilename="TFCS2DFunction_unit_test.root", int nrnd=10000000)
 
static void unit_tests ATLAS_NOT_THREAD_SAFE (TH2 *hist=nullptr, const char *outfilename="TFCS2DFunction_unit_test.root", int nrnd=10000000)
 
static std::string startMsg (MSG::Level lvl, const std::string &file, int line)
 Make a message to decorate the start of logging. More...
 

Protected Attributes

Txvec m_HistoBordersx
 
Tyvec m_HistoBordersy
 
TFCS1DFunction_HistogramContent< Tz, float > m_HistoContents
 

Private Attributes

std::string m_nm
 Message source name. More...
 

Static Private Attributes

static boost::thread_specific_ptr< MsgStream > m_msg_tls ATLAS_THREAD_SAFE
 Do not persistify! More...
 

Detailed Description

template<typename Txvec, typename Tyvec, typename Tz, typename Trandom = float>
class TFCS2DFunctionTemplateInterpolationExpHistogram< Txvec, Tyvec, Tz, Trandom >

Definition at line 17 of file TFCS2DFunctionTemplateInterpolationExpHistogram.h.

Member Typedef Documentation

◆ random_type

typedef float TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::random_type
inherited

Definition at line 20 of file TFCS2DFunctionTemplateHistogram.h.

◆ size_t

typedef TFCS1DFunction_size_t TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::size_t
inherited

Definition at line 19 of file TFCS2DFunctionTemplateHistogram.h.

◆ xvec_type

typedef Txvec TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::xvec_type
inherited

Definition at line 21 of file TFCS2DFunctionTemplateHistogram.h.

◆ yvec_type

typedef Tyvec TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::yvec_type
inherited

Definition at line 22 of file TFCS2DFunctionTemplateHistogram.h.

◆ z_value_type

typedef Tz TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::z_value_type
inherited

Definition at line 23 of file TFCS2DFunctionTemplateHistogram.h.

Constructor & Destructor Documentation

◆ TFCS2DFunctionTemplateInterpolationExpHistogram()

template<typename Txvec , typename Tyvec , typename Tz , typename Trandom = float>
TFCS2DFunctionTemplateInterpolationExpHistogram< Txvec, Tyvec, Tz, Trandom >::TFCS2DFunctionTemplateInterpolationExpHistogram ( TH2 *  hist = nullptr)
inline

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE() [1/2]

static void unit_tests TFCS2DFunction::ATLAS_NOT_THREAD_SAFE ( TH2 *  hist = nullptr,
const char *  outfilename = "TFCS2DFunction_unit_test.root",
int  nrnd = 10000000 
)
staticinherited

◆ ATLAS_NOT_THREAD_SAFE() [2/2]

static void unit_test TFCS2DFunction::ATLAS_NOT_THREAD_SAFE ( TH2 *  hist = nullptr,
TFCS2DFunction rtof = nullptr,
const char *  outfilename = "TFCS2DFunction_unit_test.root",
int  nrnd = 10000000 
)
staticinherited

◆ CheckAndIntegrate2DHistogram()

double TFCS2DFunction::CheckAndIntegrate2DHistogram ( const TH2 *  hist,
std::vector< double > &  integral_vec,
int &  first,
int &  last 
)
staticinherited

Definition at line 26 of file TFCS2DFunction.cxx.

27  {
29  Int_t nbinsx = hist->GetNbinsX();
30  Int_t nbinsy = hist->GetNbinsY();
31  Int_t nbins = nbinsx * nbinsy;
32 
33  float integral = 0.0;
34  float hint = hist->Integral();
35  integral_vec.resize(nbins);
36 
37  for (int ix = 1; ix <= nbinsx; ix++) {
38  for (int iy = 1; iy <= nbinsy; iy++) {
39  int globalbin = (ix - 1) * nbinsy + iy - 1;
40  float binval = hist->GetBinContent(ix, iy);
41  if (binval < 0) {
42  // Can't work if a bin is negative, forcing bins to 0 in this case
43  double fraction = binval / hint;
44  if (TMath::Abs(fraction) > 1e-5) {
46  "Warning: bin content is negative in histogram "
47  << hist->GetName() << " : " << hist->GetTitle()
48  << " binval=" << binval << " " << fraction * 100
49  << "% of integral=" << hist->Integral()
50  << ". Forcing bin to 0.");
51  }
52  binval = 0;
53  }
54  integral += binval;
55  integral_vec[globalbin] = integral;
56  }
57  }
58 
59  for (first = 0; first < nbins; first++)
60  if (integral_vec[first] != 0)
61  break;
62  for (last = nbins - 1; last > 0; last--)
63  if (integral_vec[last] != integral)
64  break;
65  last++;
66 
67  if (integral <= 0) {
68  ATH_MSG_NOCLASS(logger, "Error: histogram "
69  << hist->GetName() << " : " << hist->GetTitle()
70  << " integral=" << integral << " is <=0");
71  }
72 
73  return integral;
74 }

◆ get_HistoBordersx() [1/2]

Txvec& TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_HistoBordersx
inlineinherited

inline void get_XYZfromGlobal(int &ix, int &iy, int &iz, int global) const {hist;};

Definition at line 231 of file TFCS2DFunctionTemplateHistogram.h.

231 { return m_HistoBordersx; };

◆ get_HistoBordersx() [2/2]

const Txvec& TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_HistoBordersx
inlineinherited

Definition at line 225 of file TFCS2DFunctionTemplateHistogram.h.

225 { return m_HistoBordersx; };

◆ get_HistoBordersy() [1/2]

Tyvec& TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_HistoBordersy
inlineinherited

Definition at line 232 of file TFCS2DFunctionTemplateHistogram.h.

232 { return m_HistoBordersy; };

◆ get_HistoBordersy() [2/2]

const Tyvec& TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_HistoBordersy
inlineinherited

Definition at line 226 of file TFCS2DFunctionTemplateHistogram.h.

226 { return m_HistoBordersy; };

◆ get_HistoContents() [1/2]

TFCS1DFunction_HistogramContent<Tz, float >& TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_HistoContents
inlineinherited

Definition at line 238 of file TFCS2DFunctionTemplateHistogram.h.

238  {
239  return m_HistoContents;
240  };

◆ get_HistoContents() [2/2]

const TFCS1DFunction_HistogramContent<Tz, float >& TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_HistoContents
inlineinherited

Definition at line 235 of file TFCS2DFunctionTemplateHistogram.h.

235  {
236  return m_HistoContents;
237  };

◆ get_nbins()

size_t TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_nbins
inlineinherited

return number of bins

Definition at line 46 of file TFCS2DFunctionTemplateHistogram.h.

46 { return m_HistoContents.get_nbins(); };

◆ Initialize()

void TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::Initialize ( const TH2 *  hist)
inlineinherited

Initialize from root histogram.

Depending on the precision of the x- and y-axis, bins are merged if numerical identical

Definition at line 52 of file TFCS2DFunctionTemplateHistogram.h.

52  {
53  Int_t nbinsx = hist->GetNbinsX();
54  Int_t nbinsy = hist->GetNbinsY();
55  std::vector<double> temp_HistoContents;
56  int first, last;
57  double integral =
58  CheckAndIntegrate2DHistogram(hist, temp_HistoContents, first, last);
59  printf("initializing 2D template...");
60  if (integral <= 0) {
61  set_nbins(0, 0);
62  } else {
63  set_nbins(nbinsx, nbinsy);
64 
65  // m_HistoBordersx.SetMinMax(hist->GetXaxis()->GetBinLowEdge(first+1),hist->GetXaxis()->GetBinUpEdge(last+1));
66  m_HistoBordersx.SetMinMax(hist->GetXaxis()->GetBinLowEdge(1),
67  hist->GetXaxis()->GetBinUpEdge(nbinsx));
68  m_HistoBordersy.SetMinMax(hist->GetYaxis()->GetBinLowEdge(1),
69  hist->GetYaxis()->GetBinUpEdge(nbinsy));
70  // Int_t ihist=0;
71  for (Int_t ibinx = 1; ibinx <= hist->GetNbinsX(); ++ibinx) {
72  m_HistoBordersx.SetBinLowEdge(
73  ibinx, hist->GetXaxis()->GetBinLowEdge(ibinx + 1));
74  // if(ihist>0)
75  // if(m_HistoBorders.GetBinLowEdge(ihist-1)==m_HistoBorders.GetBinLowEdge(ihist))
76  // { ATH_MSG_INFO( bin="<<ibin+1<<"
77  // x="<<hist->GetXaxis()->GetBinLowEdge(ibin+1)<<"
78  // fx="<<m_HistoBorders.GetBinLowEdge(ihist);
79  // --ihist;
80  // ATH_MSG_INFO(" bin="<<ibin <<"
81  // x="<<hist->GetXaxis()->GetBinLowEdge(ibin )<<"
82  // fx="<<m_HistoBorders.GetBinLowEdge(ihist));
83  // }
84  } // for
85  for (Int_t ibiny = 1; ibiny <= hist->GetNbinsY(); ++ibiny) {
86  m_HistoBordersy.SetBinLowEdge(
87  ibiny, hist->GetYaxis()->GetBinLowEdge(ibiny + 1));
88  // if(ihist>0)
89  // if(m_HistoBorders.GetBinLowEdge(ihist-1)==m_HistoBorders.GetBinLowEdge(ihist))
90  // { ATH_MSG_INFO("Skip bin="<<ibin+1<<"
91  // x="<<hist->GetXaxis()->GetBinLowEdge(ibin+1)<<"
92  // fx="<<m_HistoBorders.GetBinLowEdge(ihist));
93  // --ihist;
94  // ATH_MSG_INFO(" bin="<<ibin <<"
95  // x="<<hist->GetXaxis()->GetBinLowEdge(ibin )<<"
96  // fx="<<m_HistoBorders.GetBinLowEdge(ihist));
97  // }
98  } // for
99 
100  for (Int_t ibinx = 1; ibinx <= hist->GetNbinsX(); ++ibinx)
101  for (Int_t ibiny = 1; ibiny <= hist->GetNbinsY(); ++ibiny) {
102  int globalbin = (ibinx - 1) * hist->GetNbinsY() + ibiny - 1;
104  globalbin, temp_HistoContents[globalbin] / integral);
105  // if(ihist>0)
106  // if(m_HistoContents.get_fraction(ihist-1)==m_HistoContents.get_fraction(ihist))
107  // {
108  // ATH_MSG_INFO("Skip fbin="<<ihist<<"
109  // fx="<<m_HistoBorders.GetBinLowEdge(ihist)<<"
110  // frac="<<m_HistoContents.get_fraction(ihist));
111  // --ihist;
112  // ATH_MSG_INFO(" fbin="<<ihist<<"
113  // fx="<<m_HistoBorders.GetBinLowEdge(ihist)<<"
114  // frac="<<m_HistoContents.get_fraction(ihist));
115  // }
116 
117  // ATH_MSG_INFO("bin="<<ibin+1<<"
118  // fbin="<<ihist<<"/"<<m_HistoBorders.get_nbins()<<"
119  // x=["<<hist->GetXaxis()->GetBinLowEdge(ibin+1)<<","<<hist->GetXaxis()->GetBinUpEdge(ibin+1)<<"]
120  // fx="<<m_HistoBorders.GetBinLowEdge(ihist)<<"
121  // int="<<temp_HistoContents[ibin]/integral<<"
122  // frac="<<m_HistoContents.get_fraction(ihist));
123 
124  // ++ihist;
125  }
126  // if(ihist!=nbins) {
127  // set_nbins(ihist);
128  // m_HistoBorders.SetMinMax(hist->GetXaxis()->GetBinLowEdge(first+1),hist->GetXaxis()->GetBinUpEdge(last+1));
129  // }
130  } // for ibinx
131  } // for ibiny

◆ level()

MSG::Level ISF_FCS::MLogging::level ( ) const
inlineinherited

Retrieve output level.

Definition at line 201 of file MLogging.h.

201 { return msg().level(); }

◆ MemorySize() [1/2]

virtual std::size_t TFCSFunction::MemorySize ( ) const
inlinevirtualinherited

Gives the total memory size, including the size of additional memory allocated inside the class.

Reimplemented in TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, Trandom >, and TFCS1DFunctionTemplateHistogram< Txvec, Ty, Trandom >.

Definition at line 19 of file TFCSFunction.h.

19 { return sizeof(*this); };

◆ MemorySize() [2/2]

std::size_t TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::MemorySize
inlineinherited

Gives the total memory size, including the size of additional memory allocated inside the class.

Definition at line 36 of file TFCS2DFunctionTemplateHistogram.h.

36 { return sizeof(*this) + MemorySizeArray(); };

◆ MemorySizeArray()

std::size_t TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::MemorySizeArray
inlineinherited

Definition at line 31 of file TFCS2DFunctionTemplateHistogram.h.

31  {
32  return m_HistoBordersx.MemorySizeArray() +
33  m_HistoBordersy.MemorySizeArray() +
35  };

◆ msg() [1/2]

MsgStream & ISF_FCS::MLogging::msg ( ) const
inlineinherited

Return a stream for sending messages directly (no decoration)

Definition at line 231 of file MLogging.h.

231  {
232  MsgStream *ms = m_msg_tls.get();
233  if (!ms) {
234  ms = new MsgStream(Athena::getMessageSvc(), m_nm);
235  m_msg_tls.reset(ms);
236  }
237  return *ms;
238 }

◆ msg() [2/2]

MsgStream & ISF_FCS::MLogging::msg ( const MSG::Level  lvl) const
inlineinherited

Return a decorated starting stream for sending messages.

Definition at line 240 of file MLogging.h.

240  {
241  return msg() << lvl;
242 }

◆ msgLvl()

bool ISF_FCS::MLogging::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Check whether the logging system is active at the provided verbosity level.

Definition at line 222 of file MLogging.h.

222  {
223  if (msg().level() <= lvl) {
224  msg() << lvl;
225  return true;
226  } else {
227  return false;
228  }
229 }

◆ ndim()

virtual int TFCS2DFunction::ndim ( ) const
inlinevirtualinherited

Return the number of dimensions for the function.

Reimplemented from TFCSFunction.

Definition at line 20 of file TFCS2DFunction.h.

20 { return 2; };

◆ rnd_to_fct() [1/4]

virtual void TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::rnd_to_fct ( float &  valuex,
float &  valuey,
float  rnd 
) const
inlinevirtualinherited

Definition at line 176 of file TFCS2DFunctionTemplateHistogram.h.

176  {
177  if (m_HistoContents.get_nbins() == 0) {
178  valuex = 0.0;
179  valuey = 0.0;
180  }
181  Trandom residual_rnd;
182  size_t ibin = m_HistoContents.get_bin(rnd, residual_rnd);
183  int ibiny = ibin % m_HistoBordersy.get_nbins();
184  int ibinx = ibin / m_HistoBordersy.get_nbins();
185  valuex = m_HistoBordersx.position(ibinx, 0.5);
186  valuey = m_HistoBordersy.position(ibiny, residual_rnd);
187  // valuex = 2.0+ 0.3*rnd;
188  // valuey = 1200.0 + rnd*500.0;
189  }

◆ rnd_to_fct() [2/4]

template<typename Txvec , typename Tyvec , typename Tz , typename Trandom = float>
virtual void TFCS2DFunctionTemplateInterpolationExpHistogram< Txvec, Tyvec, Tz, Trandom >::rnd_to_fct ( float &  valuex,
float &  valuey,
float  rnd,
float  rnd2 
) const
inlinevirtual

Function gets random number rnd in the range [0,1) as argument and returns function value according to a histogram distribution.

An exponential interpolation is done within each bin

Reimplemented from TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >.

Definition at line 36 of file TFCS2DFunctionTemplateInterpolationExpHistogram.h.

37  {
38  size_t nbins = get_nbins();
39  if (nbins == 0) {
40  valuex = 0.0;
41  valuey = 0.0;
42  return;
43  }
44  Trandom residual_rnd;
45  size_t ibin = m_HistoContents.get_bin(rnd, residual_rnd);
46 
47  Trandom frac = m_HistoContents.get_fraction(ibin);
48 
49  size_t ibiny =
50  ibin % m_HistoBordersy
51  .get_nbins(); // printf("%d ", m_HistoBordersy.get_nbins() );
52  size_t ibinx = ibin / m_HistoBordersy.get_nbins();
53  // size_t nbinsx = m_HistoBordersx.get_nbins();
54  size_t nbinsy = m_HistoBordersy.get_nbins();
55 
56  Trandom dfrac = 0.0;
57  auto l = m_HistoBordersy.GetBinLength(ibiny);
58  Trandom dfracprev = 0.0;
59  Trandom ldfrac = 0.0;
60  auto lprev = l;
61  if (ibiny > 0) {
62  Trandom fracprev = m_HistoContents.get_fraction(ibin - 1);
63  dfrac = frac - fracprev;
64  if (ibiny > 1) {
65  dfracprev = fracprev - m_HistoContents.get_fraction(ibin - 2);
66  } else {
67  dfracprev = fracprev;
68  if (ibinx > 0)
69  dfracprev -= m_HistoContents.get_fraction(ibin - 2);
70  }
71  lprev = m_HistoBordersy.GetBinLength(ibiny - 1);
72  } else {
73  dfrac = frac;
74  if (ibinx > 0)
75  dfrac -= m_HistoContents.get_fraction(ibin - 1);
76  dfracprev = dfrac;
77  }
78 
79  if (dfrac > 0.0 && dfracprev > 0.0) {
80  ldfrac = log(dfrac / l) - log(dfracprev / lprev);
81  }
82 
83  Trandom dfracnext = 0.0;
84  Trandom ldfracnext = 0.0;
85  auto lnext = l;
86  if (ibiny < nbinsy - 1) {
87  dfracnext = m_HistoContents.get_fraction(ibin + 1) - frac;
88  lnext = m_HistoBordersy.GetBinLength(ibiny + 1);
89  } else {
90  dfracnext = dfrac;
91  }
92 
93  if (dfrac > 0.0 && dfracnext > 0.0) {
94  ldfracnext = log(dfracnext / lnext) - log(dfrac / l);
95  }
96 
97  Trandom beta = 0.0, betaprev = 0.0, betanext = 0.0;
98  betanext = ldfracnext / (lnext + l) / 0.5;
99  betaprev = ldfrac / (lprev + l) / 0.5;
100  beta = 0.5 * (betaprev + betanext);
101  // printf("betaprev=%13.5e betanext=%13.5e beta=%13.5e\n", betaprev,
102  // betanext, beta); printf("l=%13.5e lnext=%13.5e\n", l, lnext);
103  // printf("log=%13.5e lognext=%13.5e logprev=%13.5e\n", log(dfrac/l),
104  // log(dfracnext/lnext), log(dfracprev/lprev) ); printf("ldfrac=%13.5e
105  // ldfracnext=%13.5e\n", ldfrac, ldfracnext );
106 
107  valuey = m_HistoBordersy.position_exp(ibiny, beta, residual_rnd);
108  valuex = m_HistoBordersx.position(ibinx, rnd2);
109  }

◆ rnd_to_fct() [3/4]

virtual void TFCS2DFunction::rnd_to_fct
inherited

Function gets random number rnd in the range [0,1) as argument and returns function value according to a histogram distribution.

◆ rnd_to_fct() [4/4]

void TFCS2DFunction::rnd_to_fct ( float  value[],
const float  rnd[] 
) const
virtualinherited

Function gets array of random numbers rnd[] in the range [0,1) as arguments and returns function value in array value.

For a n-dimensional function, value and rnd should both have n elements.

Implements TFCSFunction.

Definition at line 20 of file TFCS2DFunction.cxx.

20  {
21  rnd_to_fct(value[0], value[1], rnd[0], rnd[1]);
22 }

◆ set_nbins()

void TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::set_nbins ( size_t  nbinsx,
size_t  nbinsy 
)
inlineinherited

set number of bins

Definition at line 39 of file TFCS2DFunctionTemplateHistogram.h.

39  {
40  m_HistoBordersx.set_nbins(nbinsx);
41  m_HistoBordersy.set_nbins(nbinsy);
42  m_HistoContents.set_nbins(nbinsx * nbinsy);
43  };

◆ setLevel()

void ISF_FCS::MLogging::setLevel ( MSG::Level  lvl)
virtualinherited

Update outputlevel.

Definition at line 105 of file MLogging.cxx.

105  {
106  lvl = (lvl >= MSG::NUM_LEVELS) ? MSG::ALWAYS
107  : (lvl < MSG::NIL) ? MSG::NIL
108  : lvl;
109  msg().setLevel(lvl);
110 }

◆ startMsg()

std::string ISF_FCS::MLogging::startMsg ( MSG::Level  lvl,
const std::string &  file,
int  line 
)
staticinherited

Make a message to decorate the start of logging.

Print a message for the start of logging.

Definition at line 116 of file MLogging.cxx.

116  {
117  int col1_len = 20;
118  int col2_len = 5;
119  int col3_len = 10;
120  auto last_slash = file.find_last_of('/');
121  int path_len = last_slash == std::string::npos ? 0 : last_slash;
122  int trim_point = path_len;
123  int total_len = file.length();
124  if (total_len - path_len > col1_len)
125  trim_point = total_len - col1_len;
126  std::string trimmed_name = file.substr(trim_point);
127  const char *LevelNames[MSG::NUM_LEVELS] = {
128  "NIL", "VERBOSE", "DEBUG", "INFO", "WARNING", "ERROR", "FATAL", "ALWAYS"};
129  std::string level = LevelNames[lvl];
130  std::string level_string = std::string("(") + level + ") ";
131  std::stringstream output;
132  output << std::setw(col1_len) << std::right << trimmed_name << ":"
133  << std::setw(col2_len) << std::left << line << std::setw(col3_len)
134  << std::right << level_string;
135  return output.str();
136 }

Member Data Documentation

◆ ATLAS_THREAD_SAFE

boost::thread_specific_ptr<MsgStream> m_msg_tls ISF_FCS::MLogging::ATLAS_THREAD_SAFE
inlinestaticprivateinherited

Do not persistify!

MsgStream instance (a std::cout like with print-out levels)

Definition at line 215 of file MLogging.h.

◆ m_HistoBordersx

Txvec TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::m_HistoBordersx
protectedinherited

Definition at line 243 of file TFCS2DFunctionTemplateHistogram.h.

◆ m_HistoBordersy

Tyvec TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::m_HistoBordersy
protectedinherited

Definition at line 244 of file TFCS2DFunctionTemplateHistogram.h.

◆ m_HistoContents

TFCS1DFunction_HistogramContent<Tz, float > TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::m_HistoContents
protectedinherited

Definition at line 245 of file TFCS2DFunctionTemplateHistogram.h.

◆ m_nm

std::string ISF_FCS::MLogging::m_nm
privateinherited

Message source name.

Definition at line 211 of file MLogging.h.


The documentation for this class was generated from the following file:
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
ISF_FCS::MLogging
Cut down AthMessaging.
Definition: MLogging.h:176
checkFileSG.line
line
Definition: checkFileSG.py:75
integral
double integral(TH1 *h)
Definition: computils.cxx:57
plotBeamSpotVxVal.globalbin
globalbin
Definition: plotBeamSpotVxVal.py:247
ISF_FCS::MLogging::level
MSG::Level level() const
Retrieve output level.
Definition: MLogging.h:201
plotmaker.hist
hist
Definition: plotmaker.py:148
TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::m_HistoBordersy
Tyvec m_HistoBordersy
Definition: TFCS2DFunctionTemplateHistogram.h:244
TFCS1DFunction_HistogramContent::MemorySizeArray
std::size_t MemorySizeArray() const
Definition: TFCS1DFunctionTemplateHelpers.h:166
TFCS1DFunction_HistogramContent::set_nbins
void set_nbins(size_t nbins)
set number of bins.
Definition: TFCS1DFunctionTemplateHelpers.h:198
athena.value
value
Definition: athena.py:124
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
TFCS1DFunction_HistogramContent::get_nbins
size_t get_nbins() const
return number of bins.
Definition: TFCS1DFunctionTemplateHelpers.h:203
python.SystemOfUnits.ms
int ms
Definition: SystemOfUnits.py:132
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
TFCS1DFunction_HistogramContent::set_fraction
void set_fraction(size_t pos, Trandom value)
Set the content of bin pos to a given value, where value is in the range [0,1].
Definition: TFCS1DFunctionTemplateHelpers.h:171
TFCS2DFunction::CheckAndIntegrate2DHistogram
static double CheckAndIntegrate2DHistogram(const TH2 *hist, std::vector< double > &integral_vec, int &first, int &last)
Definition: TFCS2DFunction.cxx:26
TFCS2DFunction::rnd_to_fct
virtual void rnd_to_fct(float &valuex, float &valuey, float rnd0, float rnd1) const =0
TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::m_HistoBordersx
Txvec m_HistoBordersx
Definition: TFCS2DFunctionTemplateHistogram.h:240
ISF_FCS::MLogging::msg
MsgStream & msg() const
Return a stream for sending messages directly (no decoration)
Definition: MLogging.h:231
TrigConf::MSGTC::ALWAYS
@ ALWAYS
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:29
checkxAOD.frac
frac
Definition: Tools/PyUtils/bin/checkxAOD.py:257
TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::set_nbins
void set_nbins(size_t nbinsx, size_t nbinsy)
set number of bins
Definition: TFCS2DFunctionTemplateHistogram.h:39
ISF_FCS::MLogging::m_nm
std::string m_nm
Message source name.
Definition: MLogging.h:211
file
TFile * file
Definition: tile_monitor.h:29
TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::m_HistoContents
TFCS1DFunction_HistogramContent< Tz, float > m_HistoContents
Definition: TFCS2DFunctionTemplateHistogram.h:245
TFCS1DFunction_HistogramContent::get_bin
size_t get_bin(Trandom drnd, Trandom &residual_rnd) const
Get the matching bin for a given random value in the range [0,1).
Definition: TFCS1DFunctionTemplateHelpers.h:208
merge.output
output
Definition: merge.py:17
TFCS1DFunction_HistogramContent::get_fraction
Trandom get_fraction(size_t pos) const
Get the cumulative content at bin pos as fraction in the range [0,1].
Definition: TFCS1DFunctionTemplateHelpers.h:178
TrigConf::MSGTC::NUM_LEVELS
@ NUM_LEVELS
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:30
ATH_MSG_NOCLASS
#define ATH_MSG_NOCLASS(logger_name, x)
Definition: MLogging.h:52
TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::MemorySizeArray
std::size_t MemorySizeArray() const
Definition: TFCS2DFunctionTemplateHistogram.h:31
DeMoScan.first
bool first
Definition: DeMoScan.py:536
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
TFCS2DFunctionTemplateHistogram
Definition: TFCS2DFunctionTemplateHistogram.h:17
TFCS2DFunctionTemplateHistogram< Txvec, Tyvec, Tz, float >::get_nbins
size_t get_nbins() const
return number of bins
Definition: TFCS2DFunctionTemplateHistogram.h:46
TrigConf::MSGTC::NIL
@ NIL
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:22
MuonParameters::beta
@ beta
Definition: MuonParamDefs.h:144
python.iconfTool.gui.pad.logger
logger
Definition: pad.py:14