00001 #ifndef PhotonVertexSelection_IPhotonPointingTool_h 00002 #define PhotonVertexSelection_IPhotonPointingTool_h 00003 00004 // Framework includes 00005 #include "AsgTools/IAsgTool.h" 00006 00007 // EDM includes 00008 #include "xAODEgamma/PhotonContainer.h" 00009 #include "xAODEgamma/EgammaContainer.h" 00010 #include "xAODEventInfo/EventInfo.h" 00011 00012 namespace CP { 00013 00014 class IPhotonPointingTool : public virtual asg::IAsgTool { 00015 00017 ASG_TOOL_INTERFACE(CP::IPhotonPointingTool) 00018 00019 public: 00021 virtual StatusCode updatePointingAuxdata(const xAOD::EgammaContainer &egammas) const = 0; 00022 00024 virtual std::pair<float, float> getCaloPointing(const xAOD::Egamma *egamma) const = 0; 00025 00027 virtual std::pair<float, float> getConvPointing(const xAOD::Photon *photon) const = 0; 00028 00030 virtual float getCorrectedEta(const xAOD::CaloCluster &cluster, float PVz) const = 0; 00031 00033 virtual StatusCode correctPrimaryVertex(xAOD::Egamma &egamma, float PVz) const = 0; 00034 00036 virtual TLorentzVector getCorrectedLV(const xAOD::Egamma &egamma, float PVz) const = 0; 00037 00040 virtual float getCorrectedMass(const xAOD::EgammaContainer &egammas, float PVz) const = 0; 00041 00042 }; // class IPhotonPointingTool 00043 00044 } // namespace CP 00045 00046 00047 #endif // PhotonVertexSelection_IPhotonPointingTool_h