Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v38r0 (2143aa4c)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
H1D.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 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 #pragma once
12 
13 #include "Generic1D.h"
14 #include <AIDA/IHistogram1D.h>
16 #include <GaudiKernel/DataObject.h>
17 #include <TH1D.h>
18 
19 #include <nlohmann/json.hpp>
20 
21 #include <mutex>
22 
23 namespace Gaudi {
24 
31  class GAUDI_API Histogram1D : public DataObject, public Gaudi::Generic1D<AIDA::IHistogram1D, TH1D> {
32  private:
33  void init( const std::string& title, bool initialize_axis = true );
34  void initSums();
35 
36  protected:
38  double m_sumwx = 0;
39 
40  public:
42  Histogram1D();
44  Histogram1D( TH1D* rep );
45 
47  void adoptRepresentation( TObject* rep ) override;
49  virtual bool setBinContents( int i, int entries, double height, double error, double centre );
50  // overwrite reset
51  bool reset() override;
52  // free function reset
53  friend void reset( Histogram1D& h ) { h.reset(); }
55  friend void to_json( nlohmann::json& j, Gaudi::Histogram1D const& h ) { j = *h.m_rep.get(); }
57  virtual bool setStatistics( int allEntries, double eqBinEntries, double mean, double rms );
59  bool fill( double x, double weight ) override;
61  bool setRms( double rms );
63  void copyFromAida( const AIDA::IHistogram1D& h );
65  const CLID& clID() const override { return classID(); }
66  static const CLID& classID() { return CLID_H1D; }
71  StreamBuffer& serialize( StreamBuffer& s );
72 
77  StreamBuffer& serialize( StreamBuffer& s ) const;
78 
79  private:
81 
82  }; // end class Histogram1D
83 } // end namespace Gaudi
std::string
STL class.
gaudirun.s
string s
Definition: gaudirun.py:346
jsonFromLHCbLog.json
json
Definition: jsonFromLHCbLog.py:86
StreamBuffer
Definition: StreamBuffer.h:52
Utils.h
Gaudi::Monitoring::reset
void reset(T &)
default (empty) implementation of reset method for types stored into an entity
Definition: MonitoringHub.h:75
ProduceConsume.j
j
Definition: ProduceConsume.py:101
AlgSequencer.h
h
Definition: AlgSequencer.py:31
Generic1D.h
Gaudi::Histogram1D::classID
static const CLID & classID()
Definition: H1D.h:66
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:18
GaudiAlg.HistoUtils.rms
rms
Definition: HistoUtils.py:907
Gaudi::Histogram1D
Definition: H1D.h:31
Gaudi
Header file for std:chrono::duration-based Counters.
Definition: __init__.py:1
Gaudi::Histogram1D::to_json
friend void to_json(nlohmann::json &j, Gaudi::Histogram1D const &h)
conversion to json via nlohmann library
Definition: H1D.h:55
DataObject.h
DataObject
Definition: DataObject.h:40
Gaudi::Histogram1D::m_fillSerialization
std::mutex m_fillSerialization
Definition: H1D.h:80
std::mutex
STL class.
Gaudi::Generic1D
Definition: Generic1D.h:46
Gaudi::Utils::Histos::fill
GAUDI_API void fill(AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
simple function to fill AIDA::IHistogram1D objects
Definition: Fill.cpp:45
GaudiAlg.HistoUtils.mean
mean
Definition: HistoUtils.py:903
Gaudi::Histogram1D::clID
const CLID & clID() const override
Retrieve reference to class defininition identifier.
Definition: H1D.h:65
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81
Gaudi::Histogram1D::reset
friend void reset(Histogram1D &h)
Definition: H1D.h:53