ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
RootVertexAndTracksWriter.hpp
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file RootVertexAndTracksWriter.hpp
1
// This file is part of the Acts project.
2
//
3
// Copyright (C) 2019 CERN for the benefit of the Acts project
4
//
5
// This Source Code Form is subject to the terms of the Mozilla Public
6
// License, v. 2.0. If a copy of the MPL was not distributed with this
7
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9
#pragma once
10
11
#include <mutex>
12
13
#include "
ACTFW/Framework/WriterT.hpp
"
14
#include "
ACTFW/TruthTracking/VertexAndTracks.hpp
"
15
16
class
TFile;
17
class
TTree;
18
19
namespace
FW {
20
29
class
RootVertexAndTracksWriter
final
30
:
public
WriterT
<std::vector<VertexAndTracks>> {
31
public
:
33
struct
Config
{
34
std::string
collection
;
35
std::string
filePath
;
36
std::string
fileMode
=
"RECREATE"
;
37
std::string
treeName
=
"event"
;
38
TFile*
rootFile
=
nullptr
;
39
};
40
45
RootVertexAndTracksWriter
(
const
Config
& cfg,
Acts::Logging::Level
lvl);
46
48
~RootVertexAndTracksWriter
() final override;
49
51
ProcessCode
endRun
() final override;
52
53
protected:
57
ProcessCode
writeT
(const
AlgorithmContext
&
context
,
58
const std::vector<
VertexAndTracks
>&
59
vertexAndTracksCollection) final override;
60
61
private:
62
Config
m_cfg
;
63
std::
mutex
m_writeMutex
;
64
TFile*
m_outputFile
{
nullptr
};
65
TTree*
m_outputTree
{
nullptr
};
66
int
m_eventNr
{0};
67
69
std::vector<double>
m_vx
;
70
std::vector<double>
m_vy
;
71
std::vector<double>
m_vz
;
72
74
std::vector<double>
m_d0
;
75
std::vector<double>
m_z0
;
76
std::vector<double>
m_phi
;
77
std::vector<double>
m_theta
;
78
std::vector<double>
m_qp
;
79
std::vector<double>
m_time
;
80
std::vector<int>
m_vtxID
;
81
83
std::vector<double>
m_cov11
;
84
std::vector<double>
m_cov12
;
85
std::vector<double>
m_cov13
;
86
std::vector<double>
m_cov14
;
87
std::vector<double>
m_cov15
;
88
std::vector<double>
m_cov16
;
89
90
std::vector<double>
m_cov21
;
91
std::vector<double>
m_cov22
;
92
std::vector<double>
m_cov23
;
93
std::vector<double>
m_cov24
;
94
std::vector<double>
m_cov25
;
95
std::vector<double>
m_cov26
;
96
97
std::vector<double>
m_cov31
;
98
std::vector<double>
m_cov32
;
99
std::vector<double>
m_cov33
;
100
std::vector<double>
m_cov34
;
101
std::vector<double>
m_cov35
;
102
std::vector<double>
m_cov36
;
103
104
std::vector<double>
m_cov41
;
105
std::vector<double>
m_cov42
;
106
std::vector<double>
m_cov43
;
107
std::vector<double>
m_cov44
;
108
std::vector<double>
m_cov45
;
109
std::vector<double>
m_cov46
;
110
111
std::vector<double>
m_cov51
;
112
std::vector<double>
m_cov52
;
113
std::vector<double>
m_cov53
;
114
std::vector<double>
m_cov54
;
115
std::vector<double>
m_cov55
;
116
std::vector<double>
m_cov56
;
117
118
std::vector<double>
m_cov61
;
119
std::vector<double>
m_cov62
;
120
std::vector<double>
m_cov63
;
121
std::vector<double>
m_cov64
;
122
std::vector<double>
m_cov65
;
123
std::vector<double>
m_cov66
;
124
126
std::vector<double>*
m_ptrVx
= &
m_vx
;
127
std::vector<double>*
m_ptrVy
= &
m_vy
;
128
std::vector<double>*
m_ptrVz
= &
m_vz
;
129
std::vector<double>*
m_ptrD0
= &
m_d0
;
130
std::vector<double>*
m_ptrZ0
= &
m_z0
;
131
std::vector<double>*
m_ptrPhi
= &
m_phi
;
132
std::vector<double>*
m_ptrTheta
= &
m_theta
;
133
std::vector<double>*
m_ptrQP
= &
m_qp
;
134
std::vector<double>*
m_ptrTime
= &
m_time
;
135
std::vector<int>*
m_ptrVtxID
= &
m_vtxID
;
136
137
std::vector<double>*
m_ptrCov11
= &
m_cov11
;
138
std::vector<double>*
m_ptrCov12
= &
m_cov12
;
139
std::vector<double>*
m_ptrCov13
= &
m_cov13
;
140
std::vector<double>*
m_ptrCov14
= &
m_cov14
;
141
std::vector<double>*
m_ptrCov15
= &
m_cov15
;
142
std::vector<double>*
m_ptrCov16
= &
m_cov16
;
143
144
std::vector<double>*
m_ptrCov21
= &
m_cov21
;
145
std::vector<double>*
m_ptrCov22
= &
m_cov22
;
146
std::vector<double>*
m_ptrCov23
= &
m_cov23
;
147
std::vector<double>*
m_ptrCov24
= &
m_cov24
;
148
std::vector<double>*
m_ptrCov25
= &
m_cov25
;
149
std::vector<double>*
m_ptrCov26
= &
m_cov26
;
150
151
std::vector<double>*
m_ptrCov31
= &
m_cov31
;
152
std::vector<double>*
m_ptrCov32
= &
m_cov32
;
153
std::vector<double>*
m_ptrCov33
= &
m_cov33
;
154
std::vector<double>*
m_ptrCov34
= &
m_cov34
;
155
std::vector<double>*
m_ptrCov35
= &
m_cov35
;
156
std::vector<double>*
m_ptrCov36
= &
m_cov36
;
157
158
std::vector<double>*
m_ptrCov41
= &
m_cov41
;
159
std::vector<double>*
m_ptrCov42
= &
m_cov42
;
160
std::vector<double>*
m_ptrCov43
= &
m_cov43
;
161
std::vector<double>*
m_ptrCov44
= &
m_cov44
;
162
std::vector<double>*
m_ptrCov45
= &
m_cov45
;
163
std::vector<double>*
m_ptrCov46
= &
m_cov46
;
164
165
std::vector<double>*
m_ptrCov51
= &
m_cov51
;
166
std::vector<double>*
m_ptrCov52
= &
m_cov52
;
167
std::vector<double>*
m_ptrCov53
= &
m_cov53
;
168
std::vector<double>*
m_ptrCov54
= &
m_cov54
;
169
std::vector<double>*
m_ptrCov55
= &
m_cov55
;
170
std::vector<double>*
m_ptrCov56
= &
m_cov56
;
171
172
std::vector<double>*
m_ptrCov61
= &
m_cov61
;
173
std::vector<double>*
m_ptrCov62
= &
m_cov62
;
174
std::vector<double>*
m_ptrCov63
= &
m_cov63
;
175
std::vector<double>*
m_ptrCov64
= &
m_cov64
;
176
std::vector<double>*
m_ptrCov65
= &
m_cov65
;
177
std::vector<double>*
m_ptrCov66
= &
m_cov66
;
178
180
void
ClearAll
();
181
};
182
183
}
// namespace FW
acts
blob
master
Examples
Io
Root
include
ACTFW
Io
Root
RootVertexAndTracksWriter.hpp
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:24
using
1.8.2 with
ECCE GitHub integration