Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
JetCalibUtils.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
5 
6 #include <cstdlib>
7 #include <iostream>
8 #include "TMath.h"
9 #include "TObjArray.h"
10 #include "TSystem.h"
11 
12 namespace JetCalibUtils {
13 
14  StrV Vectorize(const TString& str, const TString& sep)
15  {
16  StrV result;
17  TObjArray* tokens = str.Tokenize(sep);
18  TIter istr(tokens);
19  while (TObjString* os=(TObjString*)istr())
20  result.push_back(os->GetString());
21  delete tokens;
22  return result;
23  }
24 
25  VecD VectorizeD(const TString& str, const TString& sep)
26  {
27  std::vector<double> result;
28  std::unique_ptr<TObjArray> tokens(str.Tokenize(sep));
29  std::unique_ptr<TIter> istr(new TIter(tokens.get()));
30  while (TObjString* os = dynamic_cast<TObjString*>(istr->Next())) {
31  result.push_back(atof(os->GetString()));
32  }
33 
34  return result;
35  }
36 
37  template<class H>
38  std::unique_ptr<const H> GetHisto_impl(TFile& file, const TString& hname) {
39  std::unique_ptr<H> h(static_cast<H*>(file.Get(hname)));
40  if (h==nullptr) {
41  std::cout << "WARNING: Cannot access histogram " << hname.Data()
42  << " in file " << file.GetName() << std::endl;
43  }
44  else {
45  h->SetDirectory(nullptr); // make histogram memory-resident
46  }
47  return h;
48  }
49 
50  std::unique_ptr<const TH1> GetHisto(TFile& file, const TString& hname) {
51  return GetHisto_impl<TH1>(file, hname);
52  }
53 
54  std::unique_ptr<const TH2> GetHisto2(TFile& file, const TString& hname) {
55  return GetHisto_impl<TH2>(file, hname);
56  }
57 
58  std::unique_ptr<const TH3> GetHisto3(TFile& file, const TString& hname) {
59  return GetHisto_impl<TH3>(file, hname);
60  }
61 
62  TTree *setTree(TTree *tree) { return tree; }
63 
64 }
get_generator_info.result
result
Definition: get_generator_info.py:21
dqt_zlumi_pandas.hname
string hname
Definition: dqt_zlumi_pandas.py:279
JetCalibUtils::GetHisto2
std::unique_ptr< const TH2 > GetHisto2(TFile &file, const TString &hname)
Definition: JetCalibUtils.cxx:54
tree
TChain * tree
Definition: tile_monitor.h:30
beamspotman.tokens
tokens
Definition: beamspotman.py:1284
JetCalibUtils::Vectorize
StrV Vectorize(const TString &str, const TString &sep=" ")
Definition: JetCalibUtils.cxx:14
JetCalibUtils
Definition: JetCalibUtils.h:25
H
#define H(x, y, z)
Definition: MD5.cxx:114
JetCalibUtils::setTree
TTree * setTree(TTree *tree)
Definition: JetCalibUtils.cxx:62
extractSporadic.h
list h
Definition: extractSporadic.py:97
JetCalibUtils::GetHisto3
std::unique_ptr< const TH3 > GetHisto3(TFile &file, const TString &hname)
Definition: JetCalibUtils.cxx:58
file
TFile * file
Definition: tile_monitor.h:29
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
CxxUtils::atof
double atof(std::string_view str)
Converts a string into a double / float.
Definition: Control/CxxUtils/Root/StringUtils.cxx:91
grepfile.sep
sep
Definition: grepfile.py:38
JetCalibUtils.h
StrV
std::vector< TString > StrV
Definition: JetCalibUtils.h:22
h
str
Definition: BTagTrackIpAccessor.cxx:11
VecD
std::vector< double > VecD
Definition: JetCalibUtils.h:23
JetCalibUtils::VectorizeD
VecD VectorizeD(const TString &str, const TString &sep=" ")
Definition: JetCalibUtils.cxx:25
JetCalibUtils::GetHisto
std::unique_ptr< const TH1 > GetHisto(TFile &file, const TString &hname)
Definition: JetCalibUtils.cxx:50
JetCalibUtils::GetHisto_impl
std::unique_ptr< const H > GetHisto_impl(TFile &file, const TString &hname)
Definition: JetCalibUtils.cxx:38