ATLAS Offline Software
Loading...
Searching...
No Matches
IPhotonVertexSelectionTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef PhotonVertexSelection_IPhotonVertexSelectionTool_h
6#define PhotonVertexSelection_IPhotonVertexSelectionTool_h
7
8// Framework includes
9#include "AsgTools/IAsgTool.h"
10
11// EDM includes
15
16// std includes
17#include <vector>
18
19// Forward declarations
20namespace CP {
22}
23
24namespace CP {
25
27
30
31 public:
33 enum FailType {
34 Unkown = -99, // Init value
35 NoFail = 0, // Ok to run the MVA algorithm
36 NoVxCont = 1, // No vertex container
37 NoEventInfo = 2, // No EventInfo
38 FailPointing = 3, // Calo pointing failed
39 FailEgamVect = 4, // No diphoton event
40 NoGdCandidate = 5, // Pointing succeded but too distant from any other vertex
41 MatchedTrack = 6, // Conversion photon has a track attached to a primary/pileup vertex
42 };
43
45 Unknown = -1, // Init value
46 ConvTrack = 0, // conv track associated to vertex,
47 SiConvTrack = 1, // at least one conv track with Si hits,
48 NoSiTracks = 2, // no tracks with Si hits or conversions ignored
49 };
50
52 virtual StatusCode decorateInputs(const xAOD::EgammaContainer &egammas, FailType* failType = nullptr) const = 0;
53
55 virtual StatusCode getVertex(const xAOD::EgammaContainer &egammas, const xAOD::Vertex* &vertex, bool ignoreConv = false) const= 0;
56
59 virtual std::vector< std::pair<const xAOD::Vertex*, float> > getVertex(const xAOD::EgammaContainer &egammas, bool ignoreConv = false, bool noDecorate = false, yyVtxType* vtxCase = nullptr, FailType* failType = nullptr) const = 0;
60
65 virtual int getCase() const = 0;
66
68 virtual const xAOD::Vertex* getPrimaryVertexFromConv(const xAOD::PhotonContainer *photons) const = 0;
69
70 }; // class IPhotonVertexSelectionTool
71
72} // namespace CP
73
74
75#endif // PhotonVertexSelection_IPhotonVertexSelectionTool_h
#define ASG_TOOL_INTERFACE(CLASSNAME)
FailType
Declare the interface that the class provides.
virtual StatusCode decorateInputs(const xAOD::EgammaContainer &egammas, FailType *failType=nullptr) const =0
Given a list of photons, decorate vertex container with MVA variables.
virtual std::vector< std::pair< const xAOD::Vertex *, float > > getVertex(const xAOD::EgammaContainer &egammas, bool ignoreConv=false, bool noDecorate=false, yyVtxType *vtxCase=nullptr, FailType *failType=nullptr) const =0
Given a list of photons, return the MLPs of all vertices in the event sorted in descending order.
virtual int getCase() const =0
Return the last case treated: 0=conv track associated to vertex, 1=at least one conv track with Si hi...
virtual StatusCode getVertex(const xAOD::EgammaContainer &egammas, const xAOD::Vertex *&vertex, bool ignoreConv=false) const =0
Given a list of photons, return the most likely vertex based on MVA likelihood.
virtual const xAOD::Vertex * getPrimaryVertexFromConv(const xAOD::PhotonContainer *photons) const =0
Get possible vertex directly associated with photon conversions.
Base class for the dual-use tool interface classes.
Definition IAsgTool.h:41
Select isolated Photons, Electrons and Muons.
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
EgammaContainer_v1 EgammaContainer
Definition of the current "egamma container version".