The Gaudi Framework  master (37c0b60a)
HistoStats.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIUTILS_HISTOSTATS_H
12 #define GAUDIUTILS_HISTOSTATS_H 1
13 // ============================================================================
14 // Include files
15 // ============================================================================
16 // STD & STL
17 // ============================================================================
18 #include <utility>
19 // ============================================================================
20 // Gaudi
21 // ============================================================================
22 #include <GaudiKernel/Kernel.h>
23 // ============================================================================
24 // forward declarations
25 // ============================================================================
26 namespace AIDA {
27  class IHistogram1D;
28  class IProfile1D;
29 } // namespace AIDA
30 // ============================================================================
31 namespace Gaudi {
32  namespace Utils {
33  // ========================================================================
41  public: // 1D Histograms
42  // ======================================================================
49  static double moment( const AIDA::IHistogram1D* histo, const unsigned int order, const double value = 0 );
50  // ======================================================================
57  static double momentErr( const AIDA::IHistogram1D* histo, const unsigned int order );
58  // ======================================================================
65  static double centralMoment( const AIDA::IHistogram1D* histo, const unsigned int order );
66  // ======================================================================
75  static double centralMomentErr( const AIDA::IHistogram1D* histo, const unsigned int order );
76  // ======================================================================
78  static double skewness( const AIDA::IHistogram1D* histo );
79  // ======================================================================
81  static double skewnessErr( const AIDA::IHistogram1D* histo );
82  // ======================================================================
84  static double kurtosis( const AIDA::IHistogram1D* histo );
85  // ======================================================================
87  static double kurtosisErr( const AIDA::IHistogram1D* histo );
88  // ======================================================================
90  static double mean( const AIDA::IHistogram1D* histo );
91  // ======================================================================
93  static double meanErr( const AIDA::IHistogram1D* histo );
94  // ======================================================================
96  static double rms( const AIDA::IHistogram1D* histo );
97  // ======================================================================
99  static double rmsErr( const AIDA::IHistogram1D* histo );
100  // ======================================================================
102  static double nEff( const AIDA::IHistogram1D* histo );
103  // ======================================================================
105  static double sumBinHeightErr( const AIDA::IHistogram1D* histo );
106  // ======================================================================
108  static double sumAllBinHeightErr( const AIDA::IHistogram1D* histo );
109  // ======================================================================
111  static double overflowEntriesFrac( const AIDA::IHistogram1D* histo );
113  static double underflowEntriesFrac( const AIDA::IHistogram1D* histo );
115  static double overflowEntriesFracErr( const AIDA::IHistogram1D* histo );
117  static double underflowEntriesFracErr( const AIDA::IHistogram1D* histo );
118  // ======================================================================
120  static double overflowIntegralFrac( const AIDA::IHistogram1D* histo );
122  static double underflowIntegralFrac( const AIDA::IHistogram1D* histo );
124  static double overflowIntegralFracErr( const AIDA::IHistogram1D* histo );
126  static double underflowIntegralFracErr( const AIDA::IHistogram1D* histo );
127  // ======================================================================
135  static long nEntries( const AIDA::IHistogram1D* histo, const int imax );
143  static long nEntries( const AIDA::IHistogram1D* histo,
144  const int imin, // minimal bin number (included)
145  const int imax ); // maximal bin number (not included)
146  // ======================================================================
154  static double nEntriesFrac( const AIDA::IHistogram1D* histo, const int imax );
162  static double nEntriesFrac( const AIDA::IHistogram1D* histo, const int imin, const int imax );
163  // ======================================================================
171  static double nEntriesFracErr( const AIDA::IHistogram1D* histo, const int imax );
179  static double nEntriesFracErr( const AIDA::IHistogram1D* histo, const int imin, const int imax );
180  // ======================================================================
181  public: // 1D Profile Histograms
182  // ======================================================================
189  static double moment( const AIDA::IProfile1D* histo, const unsigned int order, const double value = 0 );
190  // ======================================================================
197  static double momentErr( const AIDA::IProfile1D* histo, const unsigned int order );
198  // ======================================================================
205  static double centralMoment( const AIDA::IProfile1D* histo, const unsigned int order );
206  // ======================================================================
215  static double centralMomentErr( const AIDA::IProfile1D* histo, const unsigned int order );
216  // ======================================================================
218  static double skewness( const AIDA::IProfile1D* histo );
219  // ======================================================================
221  static double skewnessErr( const AIDA::IProfile1D* histo );
222  // ======================================================================
224  static double kurtosis( const AIDA::IProfile1D* histo );
225  // ======================================================================
227  static double kurtosisErr( const AIDA::IProfile1D* histo );
228  // ======================================================================
230  static double mean( const AIDA::IProfile1D* histo );
231  // ======================================================================
233  static double meanErr( const AIDA::IProfile1D* histo );
234  // ======================================================================
236  static double rms( const AIDA::IProfile1D* histo );
237  // ======================================================================
239  static double rmsErr( const AIDA::IProfile1D* histo );
240  // ======================================================================
242  static double sumBinHeightErr( const AIDA::IProfile1D* histo );
243  // ======================================================================
245  static double sumAllBinHeightErr( const AIDA::IProfile1D* histo );
246  // ======================================================================
248  static double nEff( const AIDA::IProfile1D* histo );
249  // ======================================================================
251  static double overflowEntriesFrac( const AIDA::IProfile1D* histo );
253  static double underflowEntriesFrac( const AIDA::IProfile1D* histo );
255  static double overflowEntriesFracErr( const AIDA::IProfile1D* histo );
257  static double underflowEntriesFracErr( const AIDA::IProfile1D* histo );
258  // ======================================================================
260  static double overflowIntegralFrac( const AIDA::IProfile1D* histo );
262  static double underflowIntegralFrac( const AIDA::IProfile1D* histo );
264  static double overflowIntegralFracErr( const AIDA::IProfile1D* histo );
266  static double underflowIntegralFracErr( const AIDA::IProfile1D* histo );
267  // ======================================================================
275  static long nEntries( const AIDA::IProfile1D* histo, const int imax );
283  static long nEntries( const AIDA::IProfile1D* histo,
284  const int imin, // minimal bin number (included)
285  const int imax ); // maximal bin number (not included)
286  // ======================================================================
294  static double nEntriesFrac( const AIDA::IProfile1D* histo, const int imax );
302  static double nEntriesFrac( const AIDA::IProfile1D* histo, const int imin, const int imax );
303  // ======================================================================
311  static double nEntriesFracErr( const AIDA::IProfile1D* histo, const int imax );
319  static double nEntriesFracErr( const AIDA::IProfile1D* histo, const int imin, const int imax );
320  // ======================================================================
321  };
322  // ========================================================================
323  } // namespace Utils
324  // ==========================================================================
325 } // end of namespace Gaudi
326 // ============================================================================
327 // The END
328 // ============================================================================
329 #endif // GAUDIUTILS_HISTOSTATS_H
Gaudi::Utils::HistoStats
Definition: HistoStats.h:40
AIDA
GaudiKernel.
Definition: Annotation.h:22
Gaudi
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Definition: __init__.py:1
Kernel.h
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81