The Gaudi Framework  master (57817a18)
Loading...
Searching...
No Matches
H3D.h
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2026 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 "Generic3D.h"
14#include <AIDA/IHistogram3D.h>
17#include <TH3D.h>
18
19#include <mutex>
20#include <nlohmann/json.hpp>
21
22namespace Gaudi {
23
30 class GAUDI_API Histogram3D : public DataObject, public Generic3D<AIDA::IHistogram3D, TH3D> {
31 public:
35 Histogram3D( TH3D* rep );
36
38 bool fill( double x, double y, double z, double weight ) override;
40 virtual bool setBinContents( int i, int j, int k, int entries, double height, double error, double centreX,
41 double centreY, double centreZ );
43 virtual bool setRms( double rmsX, double rmsY, double rmsZ );
44 // overwrite reset
45 bool reset() override;
46 // free function reset
47 friend void reset( Histogram3D& h ) { h.reset(); }
49 friend void to_json( nlohmann::json& j, Histogram3D const& h ) { j = *h.m_rep.get(); }
51 void* cast( const std::string& className ) const override;
53 void copyFromAida( const AIDA::IHistogram3D& h );
55 const CLID& clID() const override { return classID(); }
56 static const CLID& classID() { return CLID_H3D; }
57
58 protected:
59 // cache sumwx and sumwy when setting contents since I don't have bin mean
60 double m_sumwx = 0;
61 double m_sumwy = 0;
62 double m_sumwz = 0;
63
64 private:
66 };
67} // namespace Gaudi
unsigned int CLID
Class ID definition.
Definition ClassID.h:16
#define GAUDI_API
Definition Kernel.h:49
DataObject()
Standard Constructor.
double m_sumwy
Definition H3D.h:61
virtual bool setBinContents(int i, int j, int k, int entries, double height, double error, double centreX, double centreY, double centreZ)
Fast filling method for a given bin. It can be also the over/underflow bin.
Definition H3D.cpp:91
bool reset() override
Definition H3D.cpp:105
const CLID & clID() const override
Retrieve reference to class defininition identifier.
Definition H3D.h:55
virtual bool setRms(double rmsX, double rmsY, double rmsZ)
Sets the rms of the histogram.
Definition H3D.cpp:130
Histogram3D()
Standard Constructor.
Definition H3D.cpp:73
std::mutex m_fillSerialization
Definition H3D.h:65
friend void reset(Histogram3D &h)
Definition H3D.h:47
double m_sumwz
Definition H3D.h:62
friend void to_json(nlohmann::json &j, Histogram3D const &h)
conversion to json via nlohmann library
Definition H3D.h:49
double m_sumwx
Definition H3D.h:60
static const CLID & classID()
Definition H3D.h:56
bool fill(double x, double y, double z, double weight) override
Fill bin content.
Definition H3D.cpp:114
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
Definition __init__.py:1