67 {
68
69
70
71 SG::ThinningHandle<xAOD::TrackParticleContainer> tracks (
m_inDetSGKey, ctx);
72
73
75
76
78 if (evtStore()->retrieve(vtxC,
m_vertex_key).isFailure()) {
80 return StatusCode::FAILURE;
81 }
82
83
84 unsigned int nTracks = tracks->size();
85 if (nTracks==0) return StatusCode::SUCCESS;
86
87
89 size_t ntrkmax = 0;
90
91
92 for (auto vertex : *vtxC) {
94 continue;
95 }
96
98
99 SG::ConstAccessor<float> sumPt2Acc("sumPt2");
100
101
102 if (sumPt2Acc.isAvailable(*vertex)) {
103 float sumPT = sumPt2Acc(*vertex);
107 }
108 }
109 } else {
110 size_t ntp =
vertex->nTrackParticles();
111 if (ntp > ntrkmax) {
112 ntrkmax = ntp;
114 }
115 }
116 }
117
118
119 if (!primary_vertex) {
121 }
122
123
124 std::vector<bool>
mask(nTracks,
false);
126
127 for (auto tp : *tracks) {
128 if (tp) {
130
131 asg::AcceptData acceptData =
m_trkSelTool->accept(*tp, vert_trk);
132 int index = tp->index();
133 mask[
index] =
static_cast<bool>(acceptData);
134 }
135 }
136
137
138 unsigned int n_pass=0;
139 for (
unsigned int i=0;
i<nTracks; ++
i) {
140 if (mask[i]) ++n_pass;
141 }
143
144 tracks.keep (mask);
145
146 return StatusCode::SUCCESS;
147 }
SG::ThinningHandleKey< xAOD::TrackParticleContainer > m_inDetSGKey
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.