27 auto it =
fgMap.find(bins.
ID());
28 if(it !=
fgMap.end()){
29 TH1D* ret = it->second.release();
32 ret->SetTitle(title.c_str());
55 std::pair<int, int> IDs (xbins.
ID(), ybins.
ID());
58 TH2D* ret = it->second.release();
61 ret->SetTitle(title.c_str());
78 TH1D* ret =
New(h->GetTitle(), h->GetXaxis());
86 TH2D* ret =
NewTH2D(h->GetTitle(), h->GetXaxis(), h->GetYaxis());
100 std::unique_ptr<TH1D>(
h));
117 std::unique_ptr<TH2D>(h));
129 std::cerr <<
"Warning! HistCache memory usage exceeds 500MB. "
130 <<
"That probably means histograms are being returned "
131 <<
"to the cache that weren't originally handed out by it. "
134 std::cerr <<
"Now clearing cache. This could take a long time..."
137 std::cerr <<
"Done clearing cache" << std::endl;
156 for(
auto& it:
fgMap) keys.insert(it.first);
159 <<
fgIn <<
" of them (" <<
fgOut-
fgIn <<
" still out, totalling "
161 << keys.size() <<
" different shapes." << std::endl
162 <<
"Holding " << fgMap.size()+
fgMap2D.size()
163 <<
" histograms for an estimated memory usage of "
TH2D * MakeTH2D(const char *name, const char *title, const Binning &binsx, const Binning &binsy)
static std::multimap< std::pair< int, int >, std::unique_ptr< TH2D > > fgMap2D
Represent the binning of a Spectrum's x-axis.
static TH1D * Copy(const TH1D *h)
BEGIN_PROLOG could also be cerr
static Binning FromTAxis(const TAxis *ax)
static long fgEstMemUsage
process_name opflashCryoW ana
static TH2D * NewTH2D(const std::string &title, const Binning &xbins, const Binning &ybins)
static void Delete(TH1D *&h)
static long fgMemHandedOut
TH1D * MakeTH1D(const char *name, const char *title, const Binning &bins)
static void CheckMemoryUse()
static TH1D * New(const std::string &title, const Binning &bins)
static std::multimap< int, std::unique_ptr< TH1D > > fgMap
std::string UniqueName()
Return a different string each time, for creating histograms.
BEGIN_PROLOG could also be cout