VMC
Version 2.2
Toggle main menu visibility
Loading...
Searching...
No Matches
source
include
TMCRNTupleWriter.h
Go to the documentation of this file.
1
#ifndef ROOT_TMCRNTupleWriter
2
#define ROOT_TMCRNTupleWriter
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/RNTuple.hxx>
29
#include <ROOT/RNTupleFillStatus.hxx>
30
#include <ROOT/RNTupleModel.hxx>
31
#include <ROOT/RNTupleWriter.hxx>
32
33
using
ROOT::RNTupleFillStatus;
34
using
REntry
= ROOT::REntry;
35
using
RNTupleModel
= ROOT::RNTupleModel;
36
using
RNTupleWriter
= ROOT::RNTupleWriter;
37
using
RNTupleFillContext
= ROOT::RNTupleFillContext;
38
39
class
TMCRNTupleWriter
:
public
TMCVNtupleWriter
{
40
public
:
41
TMCRNTupleWriter
(
const
char
*storageName, TFile* file, Bool_t workerMode);
42
TMCRNTupleWriter
() =
delete
;
43
virtual
~TMCRNTupleWriter
() =
default
;
44
45
template
<
typename
T>
46
void
Register
(
const
char
*name, T *&obj);
47
48
// Standard virtual interface for the rest of the lifecycle
49
virtual
void
CreateRNTuple
()
override
;
50
virtual
void
Fill
()
override
;
51
virtual
void
WriteAll
()
override
;
52
virtual
void
Close
()
override
{}
53
54
private
:
55
// data members
56
std::vector<std::pair<std::string, void *>>
fNameAddress
;
57
std::unique_ptr<REntry>
fEntry
;
58
std::unique_ptr<RNTupleModel>
fModel
;
59
std::unique_ptr<RNTupleWriter>
fWriter
;
60
std::shared_ptr<RNTupleFillContext>
fFillContext
;
61
};
62
63
template
<
typename
T>
64
void
TMCRNTupleWriter::Register
(
const
char
*brname, T *&obj)
65
{
66
if
(
fModel
) {
67
fModel
->MakeField<T>(brname);
68
}
69
fNameAddress
.push_back(std::make_pair(std::string(brname), obj));
70
}
71
72
#endif
// ROOT_VERSION_CODE
73
74
#endif
// ROOT_TMCRNTupleWriter
REntry
ROOT::REntry REntry
Definition
TMCRNTupleParallelWriter.h:36
RNTupleModel
ROOT::RNTupleModel RNTupleModel
Definition
TMCRNTupleParallelWriter.h:37
RNTupleFillContext
ROOT::RNTupleFillContext RNTupleFillContext
Definition
TMCRNTupleParallelWriter.h:38
RNTupleWriter
ROOT::RNTupleWriter RNTupleWriter
Definition
TMCRNTupleWriter.h:36
TMCVNtupleWriter.h
Definition of the TMCVNtupleWriter class.
TMCRNTupleWriter::Close
virtual void Close() override
Definition
TMCRNTupleWriter.h:52
TMCRNTupleWriter::fEntry
std::unique_ptr< REntry > fEntry
Definition
TMCRNTupleWriter.h:57
TMCRNTupleWriter::WriteAll
virtual void WriteAll() override
Definition
TMCRNTupleWriter.cxx:73
TMCRNTupleWriter::Fill
virtual void Fill() override
Definition
TMCRNTupleWriter.cxx:55
TMCRNTupleWriter::TMCRNTupleWriter
TMCRNTupleWriter()=delete
TMCRNTupleWriter::fFillContext
std::shared_ptr< RNTupleFillContext > fFillContext
Definition
TMCRNTupleWriter.h:60
TMCRNTupleWriter::TMCRNTupleWriter
TMCRNTupleWriter(const char *storageName, TFile *file, Bool_t workerMode)
Definition
TMCRNTupleWriter.cxx:29
TMCRNTupleWriter::fModel
std::unique_ptr< RNTupleModel > fModel
Definition
TMCRNTupleWriter.h:58
TMCRNTupleWriter::fWriter
std::unique_ptr< RNTupleWriter > fWriter
Definition
TMCRNTupleWriter.h:59
TMCRNTupleWriter::CreateRNTuple
virtual void CreateRNTuple() override
Definition
TMCRNTupleWriter.cxx:40
TMCRNTupleWriter::fNameAddress
std::vector< std::pair< std::string, void * > > fNameAddress
Definition
TMCRNTupleWriter.h:56
TMCRNTupleWriter::~TMCRNTupleWriter
virtual ~TMCRNTupleWriter()=default
TMCRNTupleWriter::Register
void Register(const char *name, T *&obj)
Definition
TMCRNTupleWriter.h:64
TMCVNtupleWriter::TMCVNtupleWriter
TMCVNtupleWriter(const char *storageName, TFile *file, Bool_t workerMode)
Definition
TMCVNtupleWriter.h:25
Generated on
for VMC by
1.17.0