ATLAS Offline Software
Flex2DProfileHisto.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 // //
8 // Header file for class Flex2DProfileHisto //
9 // //
10 // Description: 2D profile histo class. //
11 // //
12 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
13 // Initial version: July 2009 //
14 // //
16 
17 #ifndef FLEX2DPROFILEHISTO_H
18 #define FLEX2DPROFILEHISTO_H
19 
20 #include "FlexProfileArray.h"
21 #include "LWHistBitUtils.h"
22 #include "LWBinUtils.h"
23 
24 #ifdef LW_DEBUG_HEAVY_USERS
25 #include "LWHistTraceUtils.h"
26 #include <map>
27 #include <iostream>
28 #endif
29 
31 public:
32 
33  static Flex2DProfileHisto * create(unsigned nbinsx, const double& xmin, const double& xmax, const double* xbins,
34  unsigned nbinsy, const double& ymin, const double& ymax, const double* ybins,
35  const double& profparmin, const double& profparmax );
36  static void destroy(Flex2DProfileHisto *);
37 
38  double getXMin() const { return m_xmin; }
39  double getXMax() const { return m_xmax; }
40  double getYMin() const { return m_ymin; }
41  double getYMax() const { return m_ymax; }
42 
43  const float * getVarBinsX() const { return m_varBinsX; }
44  const float * getVarBinsY() const { return m_varBinsY; }
45 
46  void fill(const double& x, const double& y, const double& profiledpar);
47  void fill(const double& x, const double& y, const double& profiledpar, const double& weight);
48  double getBinEntries(unsigned binx,unsigned biny) const { return m_flexArray.getBinEntries(internal_bin(binx,biny)); }
49  double getBinContent(unsigned binx,unsigned biny) const { return m_flexArray.getBinContent(internal_bin(binx,biny)); }
50  double getBinError(unsigned binx,unsigned biny) const { return m_flexArray.getBinError(internal_bin(binx,biny)); }
51  void getBinInfo(unsigned binx,unsigned biny, double& entries, double& content, double& error ) const;
52  void setBinEntries(unsigned binx,unsigned biny, const double& e ) { m_flexArray.setBinEntries(internal_bin(binx,biny),e); }
53  void setBinContent(unsigned binx,unsigned biny, const double& c );
54  void setBinError(unsigned binx,unsigned biny, const double& e );
55  void setBinInfo(unsigned binx,unsigned biny, const double& entries, const double& content, const double& error );
56  void reset();
57  unsigned getNBinsX() const { return m_nbinsxPlus1-1; }
58  unsigned getNBinsY() const { return m_nbinsyPlus1-1; }
59  double getBinCenterX(int bin) const;
60  double getBinCenterY(int bin) const;
61 
62  unsigned getEntries() const;
63  void setEntries(unsigned n);
64 
65  void setErrorOptionFromString(const char *option) { m_flexArray.setErrorOptionFromString(option); }
66  const char* getErrorOptionAsString() const { return m_flexArray.getErrorOptionAsString(); }
67 
68  double integral() const;
69 
70  double getSumW() const { return m_sumW; }
71  double getSumW2() const { return m_sumW2; }
72  double getSumWX() const { return m_sumWX; }
73  double getSumWX2() const { return m_sumWX2; }
74  double getSumWY() const { return m_sumWY; }
75  double getSumWY2() const { return m_sumWY2; }
76  double getSumWXY() const { return m_sumWXY; }
77  double getSumWProfPar() const { return m_sumWProfiledPar; }
78  double getSumWProfPar2() const { return m_sumWProfiledPar2; }
79  double getProfParMin() const { return m_profParMin; }
80  double getProfParMax() const { return m_profParMax; }
81  void setSums( const double& sumW,const double&sumW2,
82  const double& sumWX,const double& sumWX2,
83  const double& sumWY, const double& sumWY2,const double& sumWXY,
84  const double& sumWProfPar,const double& sumWProfPar2 );
85  void copyContents(double* entries, double*contents, double*errors) const;
86 
87  unsigned valueToXBin(const double& x) const;
88  unsigned valueToYBin(const double& y) const;
89 
90 #ifdef LW_DEBUG_HEAVY_USERS
91  std::map<std::pair<void*,void*>,unsigned long> m_callmap;
92  void countCall(const std::pair<void*,void*>&addresses);
93  void produceReport(const char*histname);
94 #endif
95 
96 private:
97 
98  static unsigned allocSize(unsigned nbinsx,unsigned nbinsy);
99  Flex2DProfileHisto( unsigned nbinsx, const double& xmin, const double& xmax, const double* xbins,
100  unsigned nbinsy, const double& ymin, const double& ymax, const double* ybins,
101  const double& profparmin, const double& profparmax);
105 
106 
107  bool profParOutsideRange(const double& profpar) const {
108  return m_profParMin != m_profParMax
109  && (profpar <m_profParMin || profpar> m_profParMax);
110  }
111 
112  //Speedup:
113  double m_invDeltaX;
114  double m_invDeltaY;
115 
116  //Statistics:
117  double m_sumW;
118  double m_sumW2;
119  double m_sumWX;
120  double m_sumWX2;
121  double m_sumWY;
122  double m_sumWY2;
123  double m_sumWXY;
126  unsigned m_nEntries;
127 
128  //nbins:
129  const unsigned m_nbinsxPlus1;
130  const unsigned m_nbinsyPlus1;
131  const unsigned m_nbinsxPlus2;
132 
133  //Ranges:
134  double m_xmin;
135  double m_xmax;
136  double m_ymin;
137  double m_ymax;
138  double m_profParMin;
139  double m_profParMax;
140  float * m_varBinsX;//null if constant bin-width, otherwise m_nbinsxPlus1 entries (first and last are xmin and xmax)
141  float * m_varBinsY;//null if constant bin-width, otherwise m_nbinsyPlus1 entries (first and last are ymin and ymax)
142 
143  //Array:
144  FlexProfileArray m_flexArray;//Must be the last!
145 
146  //Helpers:
147  unsigned internal_bin(unsigned binx, unsigned biny) const
148  {
149  assert(binx<=m_nbinsxPlus1);
150  assert(biny<=m_nbinsyPlus1);
151  return LWBinUtils::internal_bin(binx,biny,m_nbinsxPlus2);
152  }
153 
154 };
155 
156 #include "Flex2DProfileHisto.icc"
157 
158 #endif
Flex2DProfileHisto::m_sumW
double m_sumW
Definition: Flex2DProfileHisto.h:117
Flex2DProfileHisto::getProfParMin
double getProfParMin() const
Definition: Flex2DProfileHisto.h:79
ymin
double ymin
Definition: listroot.cxx:63
Flex2DProfileHisto::getBinContent
double getBinContent(unsigned binx, unsigned biny) const
Definition: Flex2DProfileHisto.h:49
Flex2DProfileHisto::setBinEntries
void setBinEntries(unsigned binx, unsigned biny, const double &e)
Definition: Flex2DProfileHisto.h:52
Flex2DProfileHisto::m_flexArray
FlexProfileArray m_flexArray
Definition: Flex2DProfileHisto.h:144
Flex2DProfileHisto::m_sumWProfiledPar
double m_sumWProfiledPar
Definition: Flex2DProfileHisto.h:124
Flex2DProfileHisto::m_profParMax
double m_profParMax
Definition: Flex2DProfileHisto.h:139
Flex2DProfileHisto::copyContents
void copyContents(double *entries, double *contents, double *errors) const
Flex2DProfileHisto::getSumWY
double getSumWY() const
Definition: Flex2DProfileHisto.h:74
Flex2DProfileHisto::internal_bin
unsigned internal_bin(unsigned binx, unsigned biny) const
Definition: Flex2DProfileHisto.h:147
Flex2DProfileHisto::m_nbinsyPlus1
const unsigned m_nbinsyPlus1
Definition: Flex2DProfileHisto.h:130
Flex2DProfileHisto::valueToYBin
unsigned valueToYBin(const double &y) const
Flex2DProfileHisto::getSumW2
double getSumW2() const
Definition: Flex2DProfileHisto.h:71
Flex2DProfileHisto::m_nEntries
unsigned m_nEntries
Definition: Flex2DProfileHisto.h:126
Flex2DProfileHisto::getXMax
double getXMax() const
Definition: Flex2DProfileHisto.h:39
Flex2DProfileHisto::m_sumWX2
double m_sumWX2
Definition: Flex2DProfileHisto.h:120
LWHistBitUtils.h
PixelAthClusterMonAlgCfg.ybins
ybins
Definition: PixelAthClusterMonAlgCfg.py:163
Flex2DProfileHisto::getSumWX2
double getSumWX2() const
Definition: Flex2DProfileHisto.h:73
bin
Definition: BinsDiffFromStripMedian.h:43
Flex2DProfileHisto::m_varBinsX
float * m_varBinsX
Definition: Flex2DProfileHisto.h:140
Flex2DProfileHisto::m_sumWX
double m_sumWX
Definition: Flex2DProfileHisto.h:119
Flex2DProfileHisto::getErrorOptionAsString
const char * getErrorOptionAsString() const
Definition: Flex2DProfileHisto.h:66
Flex2DProfileHisto::m_sumW2
double m_sumW2
Definition: Flex2DProfileHisto.h:118
Flex2DProfileHisto::getSumWProfPar2
double getSumWProfPar2() const
Definition: Flex2DProfileHisto.h:78
Flex2DProfileHisto::m_sumWXY
double m_sumWXY
Definition: Flex2DProfileHisto.h:123
Flex2DProfileHisto::m_xmax
double m_xmax
Definition: Flex2DProfileHisto.h:135
x
#define x
Flex2DProfileHisto::getSumWProfPar
double getSumWProfPar() const
Definition: Flex2DProfileHisto.h:77
Flex2DProfileHisto::getXMin
double getXMin() const
Definition: Flex2DProfileHisto.h:38
Flex2DProfileHisto::getVarBinsX
const float * getVarBinsX() const
Definition: Flex2DProfileHisto.h:43
Flex2DProfileHisto::Flex2DProfileHisto
Flex2DProfileHisto(const Flex2DProfileHisto &)
Flex2DProfileHisto::getProfParMax
double getProfParMax() const
Definition: Flex2DProfileHisto.h:80
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
LWHistTraceUtils.h
grepfile.content
string content
Definition: grepfile.py:56
Flex2DProfileHisto::m_sumWY
double m_sumWY
Definition: Flex2DProfileHisto.h:121
Flex2DProfileHisto::m_ymin
double m_ymin
Definition: Flex2DProfileHisto.h:136
Flex2DProfileHisto::m_profParMin
double m_profParMin
Definition: Flex2DProfileHisto.h:138
FlexProfileArray::setErrorOptionFromString
void setErrorOptionFromString(const char *option)
FlexProfileArray::getBinEntries
double getBinEntries(unsigned bin) const
Flex2DProfileHisto::getSumWX
double getSumWX() const
Definition: Flex2DProfileHisto.h:72
Flex2DProfileHisto::allocSize
static unsigned allocSize(unsigned nbinsx, unsigned nbinsy)
PixelAthClusterMonAlgCfg.histname
histname
Definition: PixelAthClusterMonAlgCfg.py:106
Flex2DProfileHisto::m_sumWProfiledPar2
double m_sumWProfiledPar2
Definition: Flex2DProfileHisto.h:125
Flex2DProfileHisto::getNBinsY
unsigned getNBinsY() const
Definition: Flex2DProfileHisto.h:58
Flex2DProfileHisto::valueToXBin
unsigned valueToXBin(const double &x) const
Flex2DProfileHisto::m_nbinsxPlus1
const unsigned m_nbinsxPlus1
Definition: Flex2DProfileHisto.h:129
xmin
double xmin
Definition: listroot.cxx:60
Flex2DProfileHisto::setBinError
void setBinError(unsigned binx, unsigned biny, const double &e)
Flex2DProfileHisto::getSumWXY
double getSumWXY() const
Definition: Flex2DProfileHisto.h:76
Flex2DProfileHisto::integral
double integral() const
beamspotman.n
n
Definition: beamspotman.py:731
Flex2DProfileHisto
Definition: Flex2DProfileHisto.h:30
Flex2DProfileHisto::getBinEntries
double getBinEntries(unsigned binx, unsigned biny) const
Definition: Flex2DProfileHisto.h:48
Flex2DProfileHisto::m_invDeltaY
double m_invDeltaY
Definition: Flex2DProfileHisto.h:114
Flex2DProfileHisto::m_varBinsY
float * m_varBinsY
Definition: Flex2DProfileHisto.h:141
FlexProfileArray::setBinEntries
void setBinEntries(unsigned bin, const double &)
Flex2DProfileHisto::operator=
Flex2DProfileHisto & operator=(const Flex2DProfileHisto &)
FlexProfileArray
Definition: FlexProfileArray.h:30
Flex2DProfileHisto::getNBinsX
unsigned getNBinsX() const
Definition: Flex2DProfileHisto.h:57
Flex2DProfileHisto::~Flex2DProfileHisto
~Flex2DProfileHisto()
FlexProfileArray::getBinError
double getBinError(unsigned bin) const
Flex2DProfileHisto::m_invDeltaX
double m_invDeltaX
Definition: Flex2DProfileHisto.h:113
Flex2DProfileHisto::m_nbinsxPlus2
const unsigned m_nbinsxPlus2
Definition: Flex2DProfileHisto.h:131
contents
void contents(std::vector< std::string > &keys, TDirectory *td, const std::string &directory, const std::string &pattern, const std::string &path)
Definition: computils.cxx:319
Flex2DProfileHisto::reset
void reset()
Flex2DProfileHisto::fill
void fill(const double &x, const double &y, const double &profiledpar, const double &weight)
Flex2DProfileHisto::getSumWY2
double getSumWY2() const
Definition: Flex2DProfileHisto.h:75
Flex2DProfileHisto::getBinError
double getBinError(unsigned binx, unsigned biny) const
Definition: Flex2DProfileHisto.h:50
Flex2DProfileHisto::setBinContent
void setBinContent(unsigned binx, unsigned biny, const double &c)
mergePhysValFiles.errors
list errors
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:43
FlexProfileArray::getBinContent
double getBinContent(unsigned bin) const
Flex2DProfileHisto::setEntries
void setEntries(unsigned n)
Flex2DProfileHisto::getYMin
double getYMin() const
Definition: Flex2DProfileHisto.h:40
Flex2DProfileHisto.icc
Flex2DProfileHisto::getSumW
double getSumW() const
Definition: Flex2DProfileHisto.h:70
FlexProfileArray.h
Flex2DProfileHisto::profParOutsideRange
bool profParOutsideRange(const double &profpar) const
Definition: Flex2DProfileHisto.h:107
Flex2DProfileHisto::setSums
void setSums(const double &sumW, const double &sumW2, const double &sumWX, const double &sumWX2, const double &sumWY, const double &sumWY2, const double &sumWXY, const double &sumWProfPar, const double &sumWProfPar2)
FlexProfileArray::getErrorOptionAsString
const char * getErrorOptionAsString() const
LArCellBinning.xbins
int xbins
Definition: LArCellBinning.py:163
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
Flex2DProfileHisto::getBinInfo
void getBinInfo(unsigned binx, unsigned biny, double &entries, double &content, double &error) const
Flex2DProfileHisto::m_ymax
double m_ymax
Definition: Flex2DProfileHisto.h:137
Flex2DProfileHisto::Flex2DProfileHisto
Flex2DProfileHisto(unsigned nbinsx, const double &xmin, const double &xmax, const double *xbins, unsigned nbinsy, const double &ymin, const double &ymax, const double *ybins, const double &profparmin, const double &profparmax)
y
#define y
Flex2DProfileHisto::getEntries
unsigned getEntries() const
Flex2DProfileHisto::getBinCenterX
double getBinCenterX(int bin) const
Flex2DProfileHisto::getYMax
double getYMax() const
Definition: Flex2DProfileHisto.h:41
xmax
double xmax
Definition: listroot.cxx:61
entries
double entries
Definition: listroot.cxx:49
LWBinUtils.h
Flex2DProfileHisto::m_sumWY2
double m_sumWY2
Definition: Flex2DProfileHisto.h:122
Flex2DProfileHisto::setBinInfo
void setBinInfo(unsigned binx, unsigned biny, const double &entries, const double &content, const double &error)
Flex2DProfileHisto::getVarBinsY
const float * getVarBinsY() const
Definition: Flex2DProfileHisto.h:44
Flex2DProfileHisto::fill
void fill(const double &x, const double &y, const double &profiledpar)
Flex2DProfileHisto::getBinCenterY
double getBinCenterY(int bin) const
error
Definition: IImpactPoint3dEstimator.h:70
python.compressB64.c
def c
Definition: compressB64.py:93
Flex2DProfileHisto::m_xmin
double m_xmin
Definition: Flex2DProfileHisto.h:134
LWBinUtils::internal_bin
static unsigned internal_bin(unsigned binx, unsigned biny, unsigned nbinsxPlus2)
Definition: LWBinUtils.h:95
Flex2DProfileHisto::create
static Flex2DProfileHisto * create(unsigned nbinsx, const double &xmin, const double &xmax, const double *xbins, unsigned nbinsy, const double &ymin, const double &ymax, const double *ybins, const double &profparmin, const double &profparmax)
ymax
double ymax
Definition: listroot.cxx:64
Flex2DProfileHisto::setErrorOptionFromString
void setErrorOptionFromString(const char *option)
Definition: Flex2DProfileHisto.h:65
Flex2DProfileHisto::destroy
static void destroy(Flex2DProfileHisto *)