15#ifndef IDTPM2_IPLOTBASE_H
16#define IDTPM2_IPLOTBASE_H
18#include "GaudiKernel/ToolHandle.h"
19#include "GaudiKernel/ServiceHandle.h"
41 IPlotBase(
const std::string&
name, ToolHandle<GenericMonitoringTool>* m=0 )
49 template<
typename Derived>
50 static std::unique_ptr<IPlotBase>
create(
const std::string&
name,
51 ToolHandle<GenericMonitoringTool>* m ) {
52 return std::make_unique<Derived>(
name, m );
78 std::string
realPath(
const std::string& tag=
"" );
86 void copyHist( TH1* hsrc, TH1* hdest,
bool copyoverflow=
true )
const;
106 if (
monTool()==0 )
throw std::runtime_error(
"IPlotBase: monTool not set");
107 return (*
monTool())->histogramService();
std::ostream & operator<<(std::ostream &s, const IDTPM2::IPlotBase &)
emacs: this is -* c++ -*-
emacs: this is -*- c++ -*-
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
void copyHist(TH1 *hsrc, TH1 *hdest, bool copyoverflow=true) const
resolution porocessing stuff these don't really even need to be class functions, they could be simply...
void getHist(const std::string &hname, TH1 *hsrc)
virtual void initialize()=0
Book the histograms.
void processResolution(const std::string &path, bool writeflag=false)
const std::string & m_name
ToolHandle< GenericMonitoringTool > * monTool()
mon tool
ToolHandle< GenericMonitoringTool > * m_monTool
std::string realPath(const std::string &tag="")
This is a horrific function, has to get ALL the histograms, just to be able to work out how to get th...
const ToolHandle< GenericMonitoringTool > * monTool() const
virtual void finalize()=0
Finalize resolution and bias histograms should be called from the calling montools stop() method.
const std::string & name() const
generic utilities, just in case
virtual ~IPlotBase()=default
virtual void execute(const TrackAnalysisStore &) const =0
this can be over ridden if need be
static std::unique_ptr< IPlotBase > create(const std::string &name, ToolHandle< GenericMonitoringTool > *m)
factory creation mathod
virtual ServiceHandle< ITHistSvc > & histSvc()
we may well need these at some point ...
void set_monTool(ToolHandle< GenericMonitoringTool > *m)
do we need / should we have this specific setter ??
IPlotBase(const std::string &name, ToolHandle< GenericMonitoringTool > *m=0)
built from dirName and anaTag
Search the ancestor history, looking for an ancestor that satifies the predicate ....