Jpp
software
JSupport
JTreeRecorder.hh
Go to the documentation of this file.
1
#ifndef __JSUPPORT_JTREERECORDER__
2
#define __JSUPPORT_JTREERECORDER__
3
4
#include "
JLang/JObjectOutput.hh
"
5
#include "
JROOT/JTreeWriterObjectOutput.hh
"
6
#include "
JROOT/JRootFile.hh
"
7
8
/**
9
* \author mdejong
10
*/
11
12
namespace
JSUPPORT
{}
13
namespace
JPP
{
using namespace
JSUPPORT
; }
14
15
namespace
JSUPPORT
{
16
17
using
JLANG::JAccessibleObjectOutput
;
18
using
JROOT::JTreeWriterObjectOutput
;
19
using
JROOT::JRootOutputFile
;
20
21
22
/**
23
* ROOT TTree object output.
24
*
25
* This class implements the JLANG::JAccessibleObjectOutput interface.
26
*/
27
template
<
class
T>
28
class
JTreeRecorder
:
29
public
JTreeWriterObjectOutput
<T>,
30
public
JAccessibleObjectOutput
<T>,
31
public
JRootOutputFile
32
{
33
public
:
34
/**
35
* Default constructor.
36
*/
37
JTreeRecorder
()
38
{}
39
40
41
/**
42
* Constructor.
43
*
44
* \param file_name file name
45
*/
46
JTreeRecorder
(
const
char
* file_name)
47
{
48
open
(file_name);
49
}
50
51
52
/**
53
* Open file.
54
*
55
* \param file_name file name
56
*/
57
virtual
void
open
(
const
char
* file_name)
58
{
59
JRootOutputFile::open
(file_name);
60
61
if
(
is_open
()) {
62
this->
SetDirectory
(
getFile
());
63
}
64
}
65
66
67
/**
68
* Close file.
69
*/
70
virtual
void
close
()
71
{
72
// Write objects in memory.
73
74
if
(
is_open
()) {
75
getFile
()->Write();
76
}
77
78
// Detach TTree from TDirectory to avoid deletion of TTree.
79
80
this->
SetDirectory
(0);
81
82
// Close file.
83
84
if
(
is_open
()) {
85
getFile
()->Close();
86
}
87
88
reset
();
89
90
// Reset TTree.
91
92
this->
Reset
();
93
}
94
};
95
}
96
97
#endif
JROOT::JRootOutputFile::open
virtual void open(const char *file_name)
Open file.
Definition:
JRootFile.hh:177
JROOT::JRootOutputFile
ROOT output file.
Definition:
JRootFile.hh:147
JROOT::JTreeWriterObjectOutput::SetDirectory
void SetDirectory(TDirectory *dir)
Set directory.
Definition:
JTreeWriterObjectOutput.hh:70
JSUPPORT::JTreeRecorder::JTreeRecorder
JTreeRecorder()
Default constructor.
Definition:
JTreeRecorder.hh:37
JLANG::JAccessible::is_open
virtual bool is_open() const =0
Check is device is open.
JROOT::JRootFile::getFile
TFile * getFile() const
Get file.
Definition:
JRootFile.hh:65
JPP
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition:
JAAnetToolkit.hh:37
JTreeWriterObjectOutput.hh
JSUPPORT::JTreeRecorder
ROOT TTree object output.
Definition:
JTreeRecorder.hh:28
JROOT::JTreeWriterObjectOutput
JTreeWriter object output.
Definition:
JTreeWriterObjectOutput.hh:30
JROOT::JTreeWriterObjectOutput::Reset
void Reset()
Reset TTree.
Definition:
JTreeWriterObjectOutput.hh:108
JSUPPORT
Support classes and methods for experiment specific I/O.
Definition:
JDataWriter.cc:38
JLANG::JAccessibleObjectOutput
Interface for object output with named access.
Definition:
JObjectOutput.hh:132
JSUPPORT::JTreeRecorder::JTreeRecorder
JTreeRecorder(const char *file_name)
Constructor.
Definition:
JTreeRecorder.hh:46
JLANG::JStorage::reset
virtual void reset()
Reset pointer.
Definition:
JStorage.hh:42
JSUPPORT::JTreeRecorder::close
virtual void close()
Close file.
Definition:
JTreeRecorder.hh:70
JRootFile.hh
JObjectOutput.hh
JSUPPORT::JTreeRecorder::open
virtual void open(const char *file_name)
Open file.
Definition:
JTreeRecorder.hh:57
Generated by
1.8.16