132 ATH_MSG_ERROR(
"Failed loading IdTrackparticleContainer container");
133 return StatusCode::FAILURE;
141 return StatusCode::FAILURE;
144 std::vector<const xAOD::Vertex*> outVtxContainer;
148 std::vector<xAOD::Iso::IsolationType> cones(
m_cones.size());
150 for (
unsigned int i = 0;
i <
m_cones.size();
i++)
155 return xAOD::Iso::coneSize(i) > xAOD::Iso::coneSize(j);
159 for (
auto vertex : *vertexContainer) {
162 for (std::vector<std::string>::const_iterator flagItr =
m_passFlags.begin(); flagItr !=
m_passFlags.end();
165 if (flagAcc.isAvailable(*vertex) && flagAcc(*vertex) != 0) {
178 outVtxContainer.push_back(vertex);
182 TLorentzVector candidate;
184 std::set<const xAOD::TrackParticle*> exclusionset;
186 for (
auto part :
vertex->trackParticleLinks()) {
188 candidate += (*part)->p4();
194 exclusionset.insert(
partID);
196 exclusionset.insert(*
part);
204 V0VertexLinksAcc(
"V0VertexLinks");
205 auto V0VertLink = V0VertexLinksAcc(*vertex);
206 const xAOD::Vertex* V0Vert = V0VertLink.at(0).getDataPtr()->at(0);
208 candidate += (*part)->p4();
209 exclusionset.insert(*
part);
227 const string vtxType_name[3] = {
"SumPt",
"A0",
"Z0"};
238 for (
unsigned int i = 0;
i < cones.size();
i++) {
243 if(refVtx ==
nullptr){
250 m_trackIsoTool->trackIsolation(
result, candidate_slyTrack, cones, corrlist, refVtx, &exclusionset,
251 idTrackParticleContainer);
254 for (
unsigned int i = 0;
i < cones.size();
i++) {
257 variableName += vtxType_name[vertex_type];
260 isolation(*vertex) =
result.ptcones[
i];
263 for (
size_t i = 0;
i <
vertex->nTrackParticles();
i++) {
265 idTrackParticleContainer);
267 for (
unsigned int j = 0; j < cones.size(); j++) {
269 variableName += vtxType_name[vertex_type];
270 variableName +=
"_trk";
273 isolation(*vertex) =
result.ptcones[j];
282 return StatusCode::SUCCESS;