66// License, v. 2.0. If a copy of the MPL was not distributed with this
77// file, You can obtain one at https://mozilla.org/MPL/2.0/.
88
9+ #include " Acts/Plugins/Root/RootSpacePointIo.hpp"
10+
11+ #include " Acts/EventData/SourceLink.hpp"
912#include " Acts/EventData/SpacePointContainer2.hpp"
10- #include " Acts/Plugins/Root/RootSpacePoints2Accessor .hpp"
13+ #include " Acts/EventData/Types .hpp"
1114
1215#include < TChain.h>
1316#include < TTree.h>
@@ -16,84 +19,87 @@ namespace Acts {
1619
1720void RootSpacePointIo::connectForRead (
1821 TChain& tchain, const Experimental::SpacePointContainer2& spacePoints) {
19- tchain.SetBranchAddress (" index" , &m_index);
20-
21- tchain.SetBranchAddress (" x" , &m_x);
22- tchain.SetBranchAddress (" y" , &m_y);
23- tchain.SetBranchAddress (" z" , &m_z);
22+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::X)) {
23+ tchain.SetBranchAddress (" x" , &m_x);
24+ }
25+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::Y)) {
26+ tchain.SetBranchAddress (" y" , &m_y);
27+ }
28+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::Z)) {
29+ tchain.SetBranchAddress (" z" , &m_z);
30+ }
2431
25- if (spacePoints.hasExtraColumns (
26- Experimental::SpacePointKnownExtraColumn::Time)) {
32+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::Time)) {
2733 tchain.SetBranchAddress (" t" , &m_t );
2834 }
2935
30- if (spacePoints.hasExtraColumns (
31- Experimental::SpacePointKnownExtraColumn::R)) {
36+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::R)) {
3237 tchain.SetBranchAddress (" r" , &m_r);
3338 }
3439
35- if (spacePoints.hasExtraColumns (
36- Experimental::SpacePointKnownExtraColumn::VarianceZ)) {
40+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::VarianceZ)) {
3741 tchain.SetBranchAddress (" var_z" , &m_varZ);
3842 }
39- if (spacePoints.hasExtraColumns (
40- Experimental::SpacePointKnownExtraColumn::VarianceR)) {
43+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::VarianceR)) {
4144 tchain.SetBranchAddress (" var_r" , &m_varR);
4245 }
4346}
4447
4548void RootSpacePointIo::connectForWrite (
4649 TTree& ttree, const Experimental::SpacePointContainer2& spacePoints) {
47- ttree.Branch (" index" , &m_index);
48-
49- ttree.Branch (" x" , &m_x);
50- ttree.Branch (" y" , &m_y);
51- ttree.Branch (" z" , &m_z);
50+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::X)) {
51+ ttree.Branch (" x" , &m_x);
52+ }
53+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::Y)) {
54+ ttree.Branch (" y" , &m_y);
55+ }
56+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::Z)) {
57+ ttree.Branch (" z" , &m_z);
58+ }
5259
53- if (spacePoints.hasExtraColumns (
54- Experimental::SpacePointKnownExtraColumn::Time)) {
60+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::Time)) {
5561 ttree.Branch (" t" , &m_t );
5662 }
5763
58- if (spacePoints.hasExtraColumns (
59- Experimental::SpacePointKnownExtraColumn::R)) {
64+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::R)) {
6065 ttree.Branch (" r" , &m_r);
6166 }
6267
63- if (spacePoints.hasExtraColumns (
64- Experimental::SpacePointKnownExtraColumn::VarianceZ)) {
68+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::VarianceZ)) {
6569 ttree.Branch (" var_z" , &m_varZ);
6670 }
67- if (spacePoints.hasExtraColumns (
68- Experimental::SpacePointKnownExtraColumn::VarianceR)) {
71+ if (spacePoints.hasColumns (Experimental::SpacePointColumns::VarianceR)) {
6972 ttree.Branch (" var_r" , &m_varR);
7073 }
7174}
7275
7376void RootSpacePointIo::write (
7477 const Experimental::ConstSpacePointProxy2& spacePoint) {
75- m_index = spacePoint.index ();
76-
77- m_x = spacePoint.x ();
78- m_y = spacePoint.y ();
79- m_z = spacePoint.z ();
78+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::X)) {
79+ m_x = spacePoint.x ();
80+ }
81+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::Y)) {
82+ m_y = spacePoint.y ();
83+ }
84+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::Z)) {
85+ m_z = spacePoint.z ();
86+ }
8087
81- if (spacePoint.container ().hasExtraColumns (
82- Experimental::SpacePointKnownExtraColumn ::Time)) {
88+ if (spacePoint.container ().hasColumns (
89+ Experimental::SpacePointColumns ::Time)) {
8390 m_t = spacePoint.time ();
8491 }
8592
86- if (spacePoint.container ().hasExtraColumns (
87- Experimental::SpacePointKnownExtraColumn::R)) {
93+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::R)) {
8894 m_r = spacePoint.r ();
8995 }
9096
91- if (spacePoint.container ().hasExtraColumns (
92- Experimental::SpacePointKnownExtraColumn ::VarianceZ)) {
97+ if (spacePoint.container ().hasColumns (
98+ Experimental::SpacePointColumns ::VarianceZ)) {
9399 m_varZ = spacePoint.varianceZ ();
94100 }
95- if (spacePoint.container ().hasExtraColumns (
96- Experimental::SpacePointKnownExtraColumn ::VarianceR)) {
101+ if (spacePoint.container ().hasColumns (
102+ Experimental::SpacePointColumns ::VarianceR)) {
97103 m_varR = spacePoint.varianceR ();
98104 }
99105}
@@ -108,27 +114,38 @@ void RootSpacePointIo::write(
108114 }
109115}
110116
111- void RootSpacePointIo::read (Experimental::MutableSpacePointProxy2& spacePoint) {
112- spacePoint.x () = m_x;
113- spacePoint.y () = m_y;
114- spacePoint.z () = m_z;
117+ void RootSpacePointIo::read (Experimental::MutableSpacePointProxy2& spacePoint,
118+ SpacePointIndex2 index) {
119+ if (spacePoint.container ().hasColumns (
120+ Experimental::SpacePointColumns::SourceLinks)) {
121+ spacePoint.assignSourceLinks (std::array<SourceLink, 1 >{SourceLink (index)});
122+ }
123+
124+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::X)) {
125+ spacePoint.x () = m_x;
126+ }
127+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::Y)) {
128+ spacePoint.y () = m_y;
129+ }
130+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::Z)) {
131+ spacePoint.z () = m_z;
132+ }
115133
116- if (spacePoint.container ().hasExtraColumns (
117- Experimental::SpacePointKnownExtraColumn ::Time)) {
134+ if (spacePoint.container ().hasColumns (
135+ Experimental::SpacePointColumns ::Time)) {
118136 spacePoint.time () = m_t ;
119137 }
120138
121- if (spacePoint.container ().hasExtraColumns (
122- Experimental::SpacePointKnownExtraColumn::R)) {
139+ if (spacePoint.container ().hasColumns (Experimental::SpacePointColumns::R)) {
123140 spacePoint.r () = m_r;
124141 }
125142
126- if (spacePoint.container ().hasExtraColumns (
127- Experimental::SpacePointKnownExtraColumn ::VarianceZ)) {
143+ if (spacePoint.container ().hasColumns (
144+ Experimental::SpacePointColumns ::VarianceZ)) {
128145 spacePoint.varianceZ () = m_varZ;
129146 }
130- if (spacePoint.container ().hasExtraColumns (
131- Experimental::SpacePointKnownExtraColumn ::VarianceR)) {
147+ if (spacePoint.container ().hasColumns (
148+ Experimental::SpacePointColumns ::VarianceR)) {
132149 spacePoint.varianceR () = m_varR;
133150 }
134151}
@@ -141,9 +158,8 @@ void RootSpacePointIo::read(TChain& tchain,
141158 for (std::size_t i = 0 ; i < nEntries; ++i) {
142159 tchain.GetEntry (i);
143160
144- auto spacePoint = spacePoints.createSpacePoint (
145- std::array<SourceLink, 1 >{SourceLink (i)}, 0 , 0 , 0 );
146- read (spacePoint);
161+ auto spacePoint = spacePoints.createSpacePoint ();
162+ read (spacePoint, static_cast <SpacePointIndex2>(i));
147163 }
148164}
149165
0 commit comments