VMC
Version 2.2
Toggle main menu visibility
Loading...
Searching...
No Matches
source
include
TMCRNTupleParallelWriter.h
Go to the documentation of this file.
1
#ifndef ROOT_TMCRNTupleParallelWriter
2
#define ROOT_TMCRNTupleParallelWriter
3
4
//------------------------------------------------
5
// The Geant4 Virtual Monte Carlo package
6
// Copyright (C) 2013 - 2018 Ivana Hrivnacova
7
// All rights reserved.
8
//
9
// For the licensing terms see geant4_vmc/LICENSE.
10
// Contact: root-vmc@cern.ch
11
//-------------------------------------------------
12
20
21
#include <RVersion.h>
22
23
#if (ROOT_VERSION_CODE >= ROOT_VERSION(6, 38, 0))
24
25
#include "
TMCVNtupleWriter.h
"
26
27
#include <ROOT/REntry.hxx>
28
#include <ROOT/RNTupleFillContext.hxx>
29
#include <ROOT/RNTuple.hxx>
30
#include <ROOT/RNTupleModel.hxx>
31
#include <ROOT/RNTupleParallelWriter.hxx>
32
#include <ROOT/RNTupleReader.hxx>
33
34
using
ROOT::RNTuple;
35
using
ROOT::RNTupleParallelWriter;
36
using
REntry
= ROOT::REntry;
37
using
RNTupleModel
= ROOT::RNTupleModel;
38
using
RNTupleFillContext
= ROOT::RNTupleFillContext;
39
using
RNTParaWriter
= ROOT::RNTupleParallelWriter;
40
41
class
TMCRNTupleParallelWriter
:
public
TMCVNtupleWriter
{
42
public
:
43
TMCRNTupleParallelWriter
(
const
char
*storageName, TFile* file, Bool_t workerMode);
44
TMCRNTupleParallelWriter
() =
delete
;
45
virtual
~TMCRNTupleParallelWriter
() =
default
;
46
47
template
<
typename
T>
48
void
Register
(
const
char
*name, T *&obj);
49
50
// Standard virtual interface for the rest of the lifecycle
51
virtual
void
CreateRNTuple
()
override
;
52
virtual
void
Fill
()
override
;
53
virtual
void
WriteAll
()
override
;
54
virtual
void
Close
()
override
;
55
56
private
:
57
// static data members
58
static
std::shared_ptr<RNTParaWriter>
fgParaWriter
;
59
60
// data members
61
std::unique_ptr<RNTuple>
fRNTuple
;
62
std::vector<std::pair<std::string, void *>>
fNameAddress
;
63
std::unique_ptr<REntry>
fEntry
;
64
std::unique_ptr<RNTupleModel>
fModel
;
65
std::shared_ptr<RNTupleFillContext>
fFillContext
;
66
};
67
68
template
<
typename
T>
69
void
TMCRNTupleParallelWriter::Register
(
const
char
*brname, T *&obj)
70
{
71
if
(
fModel
) {
72
fModel
->MakeField<T>(brname);
73
}
74
fNameAddress
.push_back(std::make_pair(std::string(brname), obj));
75
}
76
77
#endif
// ROOT_VERSION_CODE
78
79
#endif
// ROOT_TMCRNTupleParallelWriter
REntry
ROOT::REntry REntry
Definition
TMCRNTupleParallelWriter.h:36
RNTParaWriter
ROOT::RNTupleParallelWriter RNTParaWriter
Definition
TMCRNTupleParallelWriter.h:39
RNTupleModel
ROOT::RNTupleModel RNTupleModel
Definition
TMCRNTupleParallelWriter.h:37
RNTupleFillContext
ROOT::RNTupleFillContext RNTupleFillContext
Definition
TMCRNTupleParallelWriter.h:38
TMCVNtupleWriter.h
Definition of the TMCVNtupleWriter class.
TMCRNTupleParallelWriter::fFillContext
std::shared_ptr< RNTupleFillContext > fFillContext
Definition
TMCRNTupleParallelWriter.h:65
TMCRNTupleParallelWriter::fEntry
std::unique_ptr< REntry > fEntry
Definition
TMCRNTupleParallelWriter.h:63
TMCRNTupleParallelWriter::Register
void Register(const char *name, T *&obj)
Definition
TMCRNTupleParallelWriter.h:69
TMCRNTupleParallelWriter::TMCRNTupleParallelWriter
TMCRNTupleParallelWriter()=delete
TMCRNTupleParallelWriter::fRNTuple
std::unique_ptr< RNTuple > fRNTuple
Definition
TMCRNTupleParallelWriter.h:61
TMCRNTupleParallelWriter::~TMCRNTupleParallelWriter
virtual ~TMCRNTupleParallelWriter()=default
TMCRNTupleParallelWriter::fgParaWriter
static std::shared_ptr< RNTParaWriter > fgParaWriter
Definition
TMCRNTupleParallelWriter.h:58
TMCRNTupleParallelWriter::fNameAddress
std::vector< std::pair< std::string, void * > > fNameAddress
Definition
TMCRNTupleParallelWriter.h:62
TMCRNTupleParallelWriter::Close
virtual void Close() override
Definition
TMCRNTupleParallelWriter.cxx:78
TMCRNTupleParallelWriter::CreateRNTuple
virtual void CreateRNTuple() override
Definition
TMCRNTupleParallelWriter.cxx:44
TMCRNTupleParallelWriter::fModel
std::unique_ptr< RNTupleModel > fModel
Definition
TMCRNTupleParallelWriter.h:64
TMCRNTupleParallelWriter::Fill
virtual void Fill() override
Definition
TMCRNTupleParallelWriter.cxx:63
TMCRNTupleParallelWriter::WriteAll
virtual void WriteAll() override
Definition
TMCRNTupleParallelWriter.cxx:70
TMCRNTupleParallelWriter::TMCRNTupleParallelWriter
TMCRNTupleParallelWriter(const char *storageName, TFile *file, Bool_t workerMode)
Definition
TMCRNTupleParallelWriter.cxx:31
TMCVNtupleWriter::TMCVNtupleWriter
TMCVNtupleWriter(const char *storageName, TFile *file, Bool_t workerMode)
Definition
TMCVNtupleWriter.h:25
Generated on
for VMC by
1.17.0