The Gaudi Framework  v36r10 (fc05264c)
H3D.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 #ifndef GAUDICOMMONSVC_H3D_H
12 #define GAUDICOMMONSVC_H3D_H
13 
14 #include "Generic3D.h"
15 #include <AIDA/IHistogram3D.h>
16 #include <GaudiKernel/DataObject.h>
17 #include <TH3D.h>
18 
19 #include <nlohmann/json.hpp>
20 
21 namespace Gaudi {
22 
29  class GAUDI_API Histogram3D : public DataObject, public Generic3D<AIDA::IHistogram3D, TH3D> {
30  public:
32  Histogram3D();
34  Histogram3D( TH3D* rep );
35 
37  bool fill( double x, double y, double z, double weight ) override;
39  virtual bool setBinContents( int i, int j, int k, int entries, double height, double error, double centreX,
40  double centreY, double centreZ );
42  virtual bool setRms( double rmsX, double rmsY, double rmsZ );
43  // overwrite reset
44  bool reset() override;
46  nlohmann::json toJSON() const;
48  void* cast( const std::string& className ) const override;
50  void copyFromAida( const AIDA::IHistogram3D& h );
52  const CLID& clID() const override { return classID(); }
53  static const CLID& classID() { return CLID_H3D; }
54 
55  protected:
56  // cache sumwx and sumwy when setting contents since I don't have bin mean
57  double m_sumwx = 0;
58  double m_sumwy = 0;
59  double m_sumwz = 0;
60 
61  private:
63  };
64 } // namespace Gaudi
65 
66 #endif
std::string
STL class.
Gaudi::Histogram3D::classID
static const CLID & classID()
Definition: H3D.h:53
jsonFromLHCbLog.json
dictionary json
Definition: jsonFromLHCbLog.py:87
Gaudi::Histogram3D::clID
const CLID & clID() const override
Retrieve reference to class defininition identifier.
Definition: H3D.h:52
Gaudi::Histogram3D::m_fillSerialization
std::mutex m_fillSerialization
Definition: H3D.h:62
AlgSequencer.h
h
Definition: AlgSequencer.py:32
CLID
unsigned int CLID
Class ID definition.
Definition: ClassID.h:18
Gaudi::Histogram3D
Definition: H3D.h:29
Gaudi
Header file for std:chrono::duration-based Counters.
Definition: __init__.py:1
DataObject.h
DataObject
Definition: DataObject.h:40
Generic3D.h
std::mutex
STL class.
Gaudi::Generic3D
Definition: Generic3D.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
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81