ATLAS Offline Software
Loading...
Searching...
No Matches
InDetPlotBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETPHYSVALMONITORING_INDETPLOTBASE
6#define INDETPHYSVALMONITORING_INDETPLOTBASE
14#include "GaudiKernel/ServiceHandle.h"
15#include "InDetPhysValMonitoring/SingleHistogramDefinition.h" // to make available to children
17
18#include <string>
19
20#define IDPVM_BOOK(name) mBook(name, #name)
21
23class TEfficiency;
24
25
33class InDetPlotBase: public PlotBase, public AthMessaging {
34public:
36 InDetPlotBase(InDetPlotBase* pParent, const std::string& dirName);
37
39 SingleHistogramDefinition retrieveDefinition(const std::string& histoIdentifier,
40 const std::string& folder = "default",
41 const std::string& nameOverride="");
42
48 template <class Htype> void book (Htype* & pHisto,
49 const std::string& histoIdentifier,
50 const std::string & nameOverride="",
51 const std::string& folder = "default");
52
54 void book(TH1*& pHisto, const SingleHistogramDefinition& hd);
56 void book(TProfile*& pHisto, const SingleHistogramDefinition& hd);
58 void book(TProfile2D*& pHisto, const SingleHistogramDefinition& hd);
60 void book(TH2*& pHisto, const SingleHistogramDefinition& hd);
62 void book(TEfficiency*& pHisto, const SingleHistogramDefinition& hd);
63
64 // weight2 allows us to weight averaging in the profile
65 static void fillHisto(TProfile* pTprofile, const float bin, const float weight, const float weight2=1.0);
66 static void fillHisto(TProfile2D* pTprofile, const float xval, const float yval, const float weight, const float weight2=1.0);
67 //
68 static void fillHisto(TH1* pTh1, const float value);
69 static void fillHisto(TH1* pTh1, const float value, const float weight);
70 //
71 static void fillHisto(TH2* pTh2, const float xval, const float yval);
72 static void fillHisto(TH2* pTh2, const float xval, const float yval, const float weight);
73 //
74 static void fillHisto(TH3* pTh3, const float xval, const float yval, const float zval);
75 //
76 static void fillHisto(TEfficiency* pTeff, const float value, const bool accepted, float weight);
77 static void fillHisto(TEfficiency* eff2d, const float xvalue, const float yvalue, const bool accepted, const float weight);
78 //
79protected:
81 template <class T>
82 void
83 mBook(T& pHisto, const std::string& histoIdentifier) {
84 return book(pHisto, histoIdentifier.substr(2));
85 }
86
87private:
89};
90
91
92#include "InDetPlotBase.icc"
93
94
95#endif
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Interface class to get the histogram definition for a named histogram in a given directory.
static void fillHisto(TProfile *pTprofile, const float bin, const float weight, const float weight2=1.0)
ServiceHandle< IHistogramDefinitionSvc > m_histoDefSvc
void book(Htype *&pHisto, const std::string &histoIdentifier, const std::string &nameOverride="", const std::string &folder="default")
Helper method to book histograms using an identifier string.
void mBook(T &pHisto, const std::string &histoIdentifier)
book, for use by macro
InDetPlotBase(InDetPlotBase *pParent, const std::string &dirName)
Constructor taking parent node and directory name for plots.
SingleHistogramDefinition retrieveDefinition(const std::string &histoIdentifier, const std::string &folder="default", const std::string &nameOverride="")
Retrieve a single histogram definition, given the unique string identifier.
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
Almost-a-struct for holding the single histogram definition.