00001
00002 #ifndef XAOD_PHOTONXAODHELPERS_H
00003 #define XAOD_PHOTONXAODHELPERS_H
00004 #include "xAODEgamma/PhotonFwd.h"
00005 #include "xAODTracking/VertexFwd.h"
00006 #include "xAODTracking/TrackParticleFwd.h"
00007 #include "xAODEgamma/EgammaEnums.h"
00008 #include "GeoPrimitives/GeoPrimitives.h"
00009
00010 #include <cstddef>
00011 #include <set>
00012 #include <vector>
00013
00014 namespace xAOD {
00015
00016 namespace EgammaHelpers{
00017
00019 bool isConvertedPhoton(const xAOD::Photon *ph);
00020
00022 xAOD::EgammaParameters::ConversionType conversionType(const xAOD::Photon *ph);
00023
00025 xAOD::EgammaParameters::ConversionType conversionType(const xAOD::Vertex *vx);
00026
00028 std::size_t numberOfSiTracks(const xAOD::Photon *eg);
00029
00031 std::size_t numberOfSiTracks(const xAOD::Vertex *vx);
00032
00034 std::size_t numberOfSiTracks(const xAOD::EgammaParameters::ConversionType convType);
00035
00037 float conversionRadius(const xAOD::Vertex* vx);
00038
00040 float conversionRadius(const xAOD::Photon* ph);
00041
00043 Amg::Vector3D momentumAtVertex(const xAOD::Photon*, bool debug = false);
00044
00046 Amg::Vector3D momentumAtVertex(const xAOD::Vertex&, bool debug = false);
00047
00048
00052
00054 const std::set<const xAOD::TrackParticle*> getTrackParticles(const xAOD::Photon* ph,
00055 bool useBremAssoc = true);
00056
00061 const std::vector<const xAOD::TrackParticle*> getTrackParticlesVec(const xAOD::Photon* ph,
00062 bool useBremAssoc = true);
00063
00064
00065 }
00066
00067 }
00068
00069 #endif // XAOD_PHOTONXAODHELPERS_H