ATLAS Offline Software
IHistograms.h
Go to the documentation of this file.
1 /*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef EGAMMAVALIDATION_BASICHISTOGRAMS_H
6 #define EGAMMAVALIDATION_BASICHISTOGRAMS_H
7 
8 #include "xAODBase/IParticle.h"
9 
10 #include <map>
11 #include <string>
12 class ITHistSvc;
13 class StatusCode;
14 class TH1D;
15 
16 namespace egammaMonitoring {
17 
18  class IHistograms {
19 
20  public:
21 
23  IHistograms(std::string name,
24  std::string title,
25  std::string folder,
26  ITHistSvc * &rootHistSvc
27  ) :
28  m_name(std::move(std::move(name))),
29  m_title(std::move(std::move(title))),
30  m_folder(std::move(std::move(folder))),
31  m_rootHistSvc(rootHistSvc) {}
32 
33  virtual StatusCode initializePlots() = 0;
34 
35  virtual void fill(const xAOD::IParticle&) = 0;
36  virtual void fill(const xAOD::IParticle&, float mu) = 0;
37  virtual ~IHistograms(){};
38 
39  std::map<std::string, TH1D*> histoMap;
40 
41  protected:
42  std::string m_name;
43  std::string m_title;
44  std::string m_folder;
45  ITHistSvc* m_rootHistSvc = nullptr;
46 
47  };
48 
49 }
50 
51 
52 #endif //EGAMMAVALIDATION_BASICHISTOGRAM_H
egammaMonitoring::IHistograms
Definition: IHistograms.h:18
egammaMonitoring::IHistograms::fill
virtual void fill(const xAOD::IParticle &, float mu)=0
IParticle.h
TH1D
Definition: rootspy.cxx:342
egammaMonitoring::IHistograms::initializePlots
virtual StatusCode initializePlots()=0
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
egammaMonitoring::IHistograms::m_rootHistSvc
ITHistSvc * m_rootHistSvc
Definition: IHistograms.h:45
egammaMonitoring::IHistograms::m_folder
std::string m_folder
Definition: IHistograms.h:44
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
covarianceTool.title
title
Definition: covarianceTool.py:542
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
egammaMonitoring
Definition: ClusterHistograms.h:16
egammaMonitoring::IHistograms::IHistograms
IHistograms()
egammaMonitoring::IHistograms::~IHistograms
virtual ~IHistograms()
Definition: IHistograms.h:37
CaloCondBlobAlgs_fillNoiseFromASCII.folder
folder
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:56
egammaMonitoring::IHistograms::m_title
std::string m_title
Definition: IHistograms.h:43
CaloNoise_fillDB.mu
mu
Definition: CaloNoise_fillDB.py:53
egammaMonitoring::IHistograms::fill
virtual void fill(const xAOD::IParticle &)=0
egammaMonitoring::IHistograms::m_name
std::string m_name
Definition: IHistograms.h:42
egammaMonitoring::IHistograms::histoMap
std::map< std::string, TH1D * > histoMap
Definition: IHistograms.h:37
egammaMonitoring::IHistograms::IHistograms
IHistograms(std::string name, std::string title, std::string folder, ITHistSvc *&rootHistSvc)
Definition: IHistograms.h:23