84 if (theVtx1 == theVtx2)
90 bool firstTwoAreSame =
92 std::set<const xAOD::TrackParticle*>(
96 std::set<const xAOD::TrackParticle*>(
98 if (firstTwoAreSame && lastTwoAreSame)
103 std::set<const xAOD::TrackParticle*> vtxset1;
104 std::set<const xAOD::TrackParticle*> vtxset2;
109 return vtxset1 == vtxset2;
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++) {
264 m_trackIsoTool->trackIsolation(
result, *vertex->trackParticle(i), cones, corrlist, refVtx, &exclusionset,
265 idTrackParticleContainer);
267 for (
unsigned int j = 0; j < cones.size(); j++) {
269 variableName += vtxType_name[vertex_type];
270 variableName +=
"_trk";
271 variableName += std::to_string(i + 1);
273 isolation(*vertex) =
result.ptcones[j];
282 return StatusCode::SUCCESS;
void setDefiningParameters(float d0, float z0, float phi0, float theta, float qOverP)
Set the defining parameters.