CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
RntDumper Class Reference

#include <RntDumper.h>

Public Member Functions

std::unique_ptr< RNTupleModelCreateModel ()
 
TFile * file ()
 
void RegisterTree (TTree *t)
 
RNTupleWriterWritifyModel (std::unique_ptr< RNTupleModel > &model, std::string_view mname)
 

Static Public Member Functions

static RntDumperCreate (const char *fname)
 
static void FinalizeAll ()
 

Private Types

using RNTupleModel = ROOT::Experimental::RNTupleModel
 
using RNTupleWriter = ROOT::Experimental::RNTupleWriter
 

Private Member Functions

 RntDumper (const char *fname)
 
 ~RntDumper ()
 

Private Attributes

std::unique_ptr< TFile > m_file
 
std::vector< TTree * > m_trees
 
std::unordered_map< std::string, std::unique_ptr< RNTupleWriter > > m_writers
 

Static Private Attributes

static std::vector< RntDumper * > s_instances
 

Detailed Description

Definition at line 17 of file RntDumper.h.

Member Typedef Documentation

◆ RNTupleModel

using RntDumper::RNTupleModel = ROOT::Experimental::RNTupleModel
private

Definition at line 18 of file RntDumper.h.

◆ RNTupleWriter

using RntDumper::RNTupleWriter = ROOT::Experimental::RNTupleWriter
private

Definition at line 19 of file RntDumper.h.

Constructor & Destructor Documentation

◆ RntDumper()

RntDumper::RntDumper ( const char *  fname)
explicitprivate

Definition at line 18 of file RntDumper.cc.

References alignmentValidation::fname, and m_file.

Referenced by Create().

18  : m_file(TFile::Open(fname, "recreate")) {
19  if (!m_file || !m_file->IsOpen()) {
20  printf("RntDumper::RntDumper() failed creeating file '%s'.\n", fname);
21  throw std::runtime_error("Failed creating file");
22  }
23  printf("RntDumper::RntDumper() succesfully opened file '%s'.\n", fname);
24 }
std::unique_ptr< TFile > m_file
Definition: RntDumper.h:36
string fname
main script

◆ ~RntDumper()

RntDumper::~RntDumper ( )
private

Definition at line 26 of file RntDumper.cc.

References m_file, m_trees, m_writers, and cmsswSequenceInfo::tp.

26  {
27  printf("RntDumper::~RntDumper() destroying writers and closing file '%s'.\n", m_file->GetName());
28  // Finish up trees first, ntuple-writers seem to write everything reulting
29  // in two cycles of trees.
30  for (auto &tp : m_trees) {
31  tp->Write();
32  delete tp;
33  }
34  m_trees.clear();
35  m_writers.clear();
36  if (m_file) {
37  m_file->Close();
38  }
39 }
std::unique_ptr< TFile > m_file
Definition: RntDumper.h:36
std::unordered_map< std::string, std::unique_ptr< RNTupleWriter > > m_writers
Definition: RntDumper.h:37
std::vector< TTree * > m_trees
Definition: RntDumper.h:38

Member Function Documentation

◆ Create()

RntDumper * RntDumper::Create ( const char *  fname)
static

Definition at line 54 of file RntDumper.cc.

References ztail::d, alignmentValidation::fname, RntDumper(), and s_instances.

54  {
55  // Should check fnames ?
56  RntDumper *d = new RntDumper(fname);
57  s_instances.push_back(d);
58  return d;
59 }
RntDumper(const char *fname)
Definition: RntDumper.cc:18
static std::vector< RntDumper * > s_instances
Definition: RntDumper.h:40
d
Definition: ztail.py:151
string fname
main script

◆ CreateModel()

std::unique_ptr< REX::RNTupleModel > RntDumper::CreateModel ( )

Definition at line 41 of file RntDumper.cc.

41 { return RNTupleModel::Create(); }

◆ file()

TFile* RntDumper::file ( )
inline

Definition at line 30 of file RntDumper.h.

References m_file.

30 { return m_file.get(); }
std::unique_ptr< TFile > m_file
Definition: RntDumper.h:36

◆ FinalizeAll()

void RntDumper::FinalizeAll ( )
static

Definition at line 61 of file RntDumper.cc.

References ztail::d, and s_instances.

Referenced by main().

61  {
62  printf("RntDumper::FinalizeAll() shutting down %d instances.\n", (int)s_instances.size());
63  for (auto &d : s_instances)
64  delete d;
65 }
static std::vector< RntDumper * > s_instances
Definition: RntDumper.h:40
d
Definition: ztail.py:151

◆ RegisterTree()

void RntDumper::RegisterTree ( TTree *  t)

Definition at line 50 of file RntDumper.cc.

References m_trees, and submitPVValidationJobs::t.

50 { m_trees.push_back(t); }
std::vector< TTree * > m_trees
Definition: RntDumper.h:38

◆ WritifyModel()

REX::RNTupleWriter * RntDumper::WritifyModel ( std::unique_ptr< RNTupleModel > &  model,
std::string_view  mname 
)

Definition at line 43 of file RntDumper.cc.

References m_file, m_writers, isotrackApplyRegressor::model, eostools::move(), AlCaHLTBitMon_QueryRunRegistry::string, and w().

43  {
44  auto wup = RNTupleWriter::Append(std::move(model), mname, *m_file);
45  REX::RNTupleWriter *w = wup.get();
46  m_writers.insert({std::string(mname), std::move(wup)});
47  return w;
48 }
std::unique_ptr< TFile > m_file
Definition: RntDumper.h:36
std::unordered_map< std::string, std::unique_ptr< RNTupleWriter > > m_writers
Definition: RntDumper.h:37
T w() const
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

◆ m_file

std::unique_ptr<TFile> RntDumper::m_file
private

Definition at line 36 of file RntDumper.h.

Referenced by file(), RntDumper(), WritifyModel(), and ~RntDumper().

◆ m_trees

std::vector<TTree *> RntDumper::m_trees
private

Definition at line 38 of file RntDumper.h.

Referenced by RegisterTree(), and ~RntDumper().

◆ m_writers

std::unordered_map<std::string, std::unique_ptr<RNTupleWriter> > RntDumper::m_writers
private

Definition at line 37 of file RntDumper.h.

Referenced by WritifyModel(), and ~RntDumper().

◆ s_instances

std::vector< RntDumper * > RntDumper::s_instances
staticprivate

Definition at line 40 of file RntDumper.h.

Referenced by Create(), and FinalizeAll().