ATLAS Offline Software
Flex1DProfileHisto.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 
7 // //
8 // Header file for class Flex1DProfileHisto //
9 // //
10 // Description: 1D profile histo class. //
11 // //
12 // Author: Thomas H. Kittelmann (Thomas.Kittelmann@cern.ch) //
13 // Initial version: July 2009 //
14 // //
16 
17 #ifndef FLEX1DPROFILEHISTO_H
18 #define FLEX1DPROFILEHISTO_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 Flex1DProfileHisto * create(unsigned nbins, const double& xmin, const double& xmax,
34  const double& profparmin, const double& profparmax );
35  template <class TFloat>
36  static Flex1DProfileHisto * create(unsigned nbins, const TFloat* xbins,
37  const double& profparmin, const double& profparmax );
38  static void destroy(Flex1DProfileHisto *);
39 
40  double getXMin() const { return m_xmin; }
41  double getXMax() const { return m_xmax; }
42  const float * getVarBins() const { return m_varBins; }
43  float * getVarBins() { return m_varBins; }
44 
45  void fill(const double& x, const double& profiledpar);
46  void fill(const double& x, const double& profiledpar, const double& weight);
47  double getBinEntries(unsigned bin) const { return m_flexArray.getBinEntries(bin); }
48  double getBinContent(unsigned bin) const;
49  double getBinError(unsigned bin) const;
50  void getBinInfo(unsigned bin, double& entries, double& content, double& error ) const;
51  void setBinEntries(unsigned bin, const double& e );
52  void setBinContent(unsigned bin, const double& c );
53  void setBinError(unsigned bin, const double& e );
54  void setBinInfo(unsigned bin, const double& entries, const double& content, const double& error );
55  void reset();
56  unsigned getNBins() const { return m_nbinsPlus1-1; }
57  double getBinCenter(int bin) const;
58 
59  unsigned getEntries() const;
60  void setEntries(unsigned n);
61 
62  void setErrorOptionFromString(const char *option) { m_flexArray.setErrorOptionFromString(option); }
63  const char* getErrorOptionAsString() const { return m_flexArray.getErrorOptionAsString(); }
64 
65  double integral() const;
66 
67  double getSumW() const { return m_sumW; }
68  double getSumW2() const { return m_sumW2; }
69  double getSumWX() const { return m_sumWX; }
70  double getSumWX2() const { return m_sumWX2; }
71  double getSumWProfPar() const { return m_sumWProfiledPar; }
72  double getSumWProfPar2() const { return m_sumWProfiledPar2; }
73  double getProfParMin() const { return m_profParMin; }
74  double getProfParMax() const { return m_profParMax; }
75 
76  void setSums( const double& sumW,const double&sumW2,
77  const double& sumWX,const double& sumWX2,
78  const double& sumWProfPar,const double& sumWProfPar2 );
79  void copyContents(double* entries, double*contents, double*errors) const;
80 
81  unsigned valueToBin(const double& x) const;
82 
83 #ifdef LW_DEBUG_HEAVY_USERS
84  std::map<std::pair<void*,void*>,unsigned long> m_callmap;
85  void countCall(const std::pair<void*,void*>&addresses);
86  void produceReport(const char*histname);
87 #endif
88 
89 private:
90 
91  static unsigned allocSize(unsigned nbins);
92  Flex1DProfileHisto( unsigned nbins, const double& xmin, const double& xmax,
93  const double& profparmin, const double& profparmax );
94  template <class TFloat>
95  Flex1DProfileHisto( unsigned nbins, const TFloat* xbins,
96  const double& profparmin, const double& profparmax );
97 
101 
102  bool profParOutsideRange(const double& profpar) const {
103  return m_profParMin != m_profParMax
104  && (profpar <m_profParMin || profpar> m_profParMax);
105  }
106 
107  //Speedup:
108  double m_invDelta;
109 
110  //Statistics:
111  double m_sumW;
112  double m_sumW2;
113  double m_sumWX;
114  double m_sumWX2;
117  unsigned m_nEntries;
118 
119  //nbins:
120  unsigned m_nbinsPlus1;
121 
122  //Range:
123  double m_xmin;
124  double m_xmax;
125  float * m_varBins;
126  double m_profParMin;
127  double m_profParMax;
128  //float * m_varBins;//null if constant bin-width, otherwise m_nbinsPlus1 entries (first and last are xmin and xmax)
129 
130  //Array:
131  FlexProfileArray m_flexArray;//Must be the last!
132 };
133 
134 #include "Flex1DProfileHisto.icc"
135 
136 #endif
Flex1DProfileHisto::m_profParMin
double m_profParMin
Definition: Flex1DProfileHisto.h:126
Flex1DProfileHisto::getSumWProfPar2
double getSumWProfPar2() const
Definition: Flex1DProfileHisto.h:72
Flex1DProfileHisto::getNBins
unsigned getNBins() const
Definition: Flex1DProfileHisto.h:56
Flex1DProfileHisto::getSumW2
double getSumW2() const
Definition: Flex1DProfileHisto.h:68
Flex1DProfileHisto::reset
void reset()
Flex1DProfileHisto::m_nEntries
unsigned m_nEntries
Definition: Flex1DProfileHisto.h:117
Flex1DProfileHisto::valueToBin
unsigned valueToBin(const double &x) const
Flex1DProfileHisto::Flex1DProfileHisto
Flex1DProfileHisto(unsigned nbins, const TFloat *xbins, const double &profparmin, const double &profparmax)
Flex1DProfileHisto::create
static Flex1DProfileHisto * create(unsigned nbins, const double &xmin, const double &xmax, const double &profparmin, const double &profparmax)
Flex1DProfileHisto::m_sumWX
double m_sumWX
Definition: Flex1DProfileHisto.h:113
Flex1DProfileHisto::getSumWX
double getSumWX() const
Definition: Flex1DProfileHisto.h:69
LWHistBitUtils.h
bin
Definition: BinsDiffFromStripMedian.h:43
Flex1DProfileHisto::m_sumWX2
double m_sumWX2
Definition: Flex1DProfileHisto.h:114
Flex1DProfileHisto::Flex1DProfileHisto
Flex1DProfileHisto(const Flex1DProfileHisto &)
Flex1DProfileHisto::Flex1DProfileHisto
Flex1DProfileHisto(unsigned nbins, const double &xmin, const double &xmax, const double &profparmin, const double &profparmax)
Flex1DProfileHisto::setBinError
void setBinError(unsigned bin, const double &e)
Flex1DProfileHisto::allocSize
static unsigned allocSize(unsigned nbins)
x
#define x
Flex1DProfileHisto::setBinEntries
void setBinEntries(unsigned bin, const double &e)
Flex1DProfileHisto::operator=
Flex1DProfileHisto & operator=(const Flex1DProfileHisto &)
Flex1DProfileHisto::m_sumW
double m_sumW
Definition: Flex1DProfileHisto.h:111
Flex1DProfileHisto::integral
double integral() const
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
LWHistTraceUtils.h
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
Flex1DProfileHisto::m_sumWProfiledPar2
double m_sumWProfiledPar2
Definition: Flex1DProfileHisto.h:116
grepfile.content
string content
Definition: grepfile.py:56
Flex1DProfileHisto::getBinEntries
double getBinEntries(unsigned bin) const
Definition: Flex1DProfileHisto.h:47
Flex1DProfileHisto::getXMax
double getXMax() const
Definition: Flex1DProfileHisto.h:41
Flex1DProfileHisto::setBinContent
void setBinContent(unsigned bin, const double &c)
FlexProfileArray::setErrorOptionFromString
void setErrorOptionFromString(const char *option)
Flex1DProfileHisto::copyContents
void copyContents(double *entries, double *contents, double *errors) const
FlexProfileArray::getBinEntries
double getBinEntries(unsigned bin) const
Flex1DProfileHisto::getXMin
double getXMin() const
Definition: Flex1DProfileHisto.h:40
Flex1DProfileHisto::m_varBins
float * m_varBins
Definition: Flex1DProfileHisto.h:125
Flex1DProfileHisto::fill
void fill(const double &x, const double &profiledpar)
PixelAthClusterMonAlgCfg.histname
histname
Definition: PixelAthClusterMonAlgCfg.py:106
Flex1DProfileHisto::getSumW
double getSumW() const
Definition: Flex1DProfileHisto.h:67
Flex1DProfileHisto::m_xmax
double m_xmax
Definition: Flex1DProfileHisto.h:124
Flex1DProfileHisto::getErrorOptionAsString
const char * getErrorOptionAsString() const
Definition: Flex1DProfileHisto.h:63
xmin
double xmin
Definition: listroot.cxx:60
beamspotman.n
n
Definition: beamspotman.py:731
Flex1DProfileHisto::setSums
void setSums(const double &sumW, const double &sumW2, const double &sumWX, const double &sumWX2, const double &sumWProfPar, const double &sumWProfPar2)
Flex1DProfileHisto.icc
FlexProfileArray
Definition: FlexProfileArray.h:30
Flex1DProfileHisto::m_sumW2
double m_sumW2
Definition: Flex1DProfileHisto.h:112
Flex1DProfileHisto::getProfParMax
double getProfParMax() const
Definition: Flex1DProfileHisto.h:74
Flex1DProfileHisto::getVarBins
const float * getVarBins() const
Definition: Flex1DProfileHisto.h:42
Flex1DProfileHisto::m_nbinsPlus1
unsigned m_nbinsPlus1
Definition: Flex1DProfileHisto.h:120
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
Flex1DProfileHisto::fill
void fill(const double &x, const double &profiledpar, const double &weight)
mergePhysValFiles.errors
list errors
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:43
Flex1DProfileHisto::profParOutsideRange
bool profParOutsideRange(const double &profpar) const
Definition: Flex1DProfileHisto.h:102
Flex1DProfileHisto::getBinCenter
double getBinCenter(int bin) const
Flex1DProfileHisto::m_sumWProfiledPar
double m_sumWProfiledPar
Definition: Flex1DProfileHisto.h:115
Flex1DProfileHisto::destroy
static void destroy(Flex1DProfileHisto *)
Flex1DProfileHisto::m_invDelta
double m_invDelta
Definition: Flex1DProfileHisto.h:108
FlexProfileArray.h
Flex1DProfileHisto::setErrorOptionFromString
void setErrorOptionFromString(const char *option)
Definition: Flex1DProfileHisto.h:62
FlexProfileArray::getErrorOptionAsString
const char * getErrorOptionAsString() const
Flex1DProfileHisto::getBinError
double getBinError(unsigned bin) const
LArCellBinning.xbins
int xbins
Definition: LArCellBinning.py:163
Flex1DProfileHisto::getEntries
unsigned getEntries() const
Flex1DProfileHisto::getSumWProfPar
double getSumWProfPar() const
Definition: Flex1DProfileHisto.h:71
Flex1DProfileHisto::~Flex1DProfileHisto
~Flex1DProfileHisto()
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
Flex1DProfileHisto::getSumWX2
double getSumWX2() const
Definition: Flex1DProfileHisto.h:70
Flex1DProfileHisto::m_profParMax
double m_profParMax
Definition: Flex1DProfileHisto.h:127
Flex1DProfileHisto::setEntries
void setEntries(unsigned n)
Flex1DProfileHisto::m_xmin
double m_xmin
Definition: Flex1DProfileHisto.h:123
Flex1DProfileHisto::getBinInfo
void getBinInfo(unsigned bin, double &entries, double &content, double &error) const
xmax
double xmax
Definition: listroot.cxx:61
entries
double entries
Definition: listroot.cxx:49
Flex1DProfileHisto
Definition: Flex1DProfileHisto.h:30
LWBinUtils.h
Flex1DProfileHisto::getBinContent
double getBinContent(unsigned bin) const
Flex1DProfileHisto::setBinInfo
void setBinInfo(unsigned bin, const double &entries, const double &content, const double &error)
Flex1DProfileHisto::getVarBins
float * getVarBins()
Definition: Flex1DProfileHisto.h:43
Flex1DProfileHisto::m_flexArray
FlexProfileArray m_flexArray
Definition: Flex1DProfileHisto.h:131
error
Definition: IImpactPoint3dEstimator.h:70
Flex1DProfileHisto::getProfParMin
double getProfParMin() const
Definition: Flex1DProfileHisto.h:73
python.compressB64.c
def c
Definition: compressB64.py:93
Flex1DProfileHisto::create
static Flex1DProfileHisto * create(unsigned nbins, const TFloat *xbins, const double &profparmin, const double &profparmax)