00001 #ifndef PhotonVertexSelection_IPhotonVertexSelectionTool_h
00002 #define PhotonVertexSelection_IPhotonVertexSelectionTool_h
00003
00004
00005 #include "AsgTools/IAsgTool.h"
00006
00007
00008 #include "xAODTracking/VertexFwd.h"
00009 #include "xAODEgamma/EgammaContainer.h"
00010 #include "xAODEgamma/PhotonContainer.h"
00011
00012
00013 #include <vector>
00014
00015
00016 namespace CP {
00017 class IPhotonPointingTool;
00018 }
00019
00020 namespace CP {
00021
00022 class IPhotonVertexSelectionTool : public virtual asg::IAsgTool {
00023
00025 ASG_TOOL_INTERFACE(CP::IPhotonVertexSelectionTool)
00026
00027 public:
00029 virtual StatusCode getVertex(const xAOD::EgammaContainer &egammas, const xAOD::Vertex* &vertex, bool ignoreConv = false) = 0;
00030
00033 virtual std::vector<std::pair<const xAOD::Vertex*, float> >& getVertex(const xAOD::EgammaContainer &egammas, bool ignoreConv = false) = 0;
00034
00039 virtual int getCase() const = 0;
00040
00042 virtual const xAOD::Vertex* getPrimaryVertexFromConv(const xAOD::PhotonContainer *photons) const = 0;
00043
00045 virtual const CP::IPhotonPointingTool* photonPointingTool() const = 0;
00046
00047 };
00048
00049 }
00050
00051
00052 #endif // PhotonVertexSelection_IPhotonVertexSelectionTool_h