00001
00002
00003 #ifndef JETMOMENTTOOLS_JETTRACKSUMMOMENTSTOOL_H
00004 #define JETMOMENTTOOLS_JETTRACKSUMMOMENTSTOOL_H
00005
00006
00017
00018
00019 #include "AsgTools/ToolHandle.h"
00020 #include "AsgTools/AsgTool.h"
00021 #include "JetInterface/IJetTrackSelector.h"
00022 #include "JetRec/JetModifierBase.h"
00023 #include "JetEDM/TrackVertexAssociation.h"
00024
00025 #include "xAODTracking/TrackParticle.h"
00026 #include "xAODTracking/TrackParticleContainer.h"
00027 #include "xAODTracking/Vertex.h"
00028 #include "xAODTracking/VertexContainer.h"
00029
00030 #include <vector>
00031 #include <string>
00032
00033
00034 class JetTrackSumMomentsTool : public JetModifierBase {
00035 ASG_TOOL_CLASS(JetTrackSumMomentsTool,IJetModifier)
00036
00037 public:
00038
00039
00040 JetTrackSumMomentsTool(const std::string& name);
00041
00042
00043 StatusCode initialize();
00044
00045
00046
00047 virtual int modifyJet(xAOD::Jet& jet) const;
00048
00049
00050 std::pair<float,float>
00051 getJetTrackSums(const xAOD::Vertex*,
00052 const std::vector<const xAOD::TrackParticle*>&,
00053 const jet::TrackVertexAssociation*) const;
00054
00055
00056 const xAOD::Vertex* findHSVertex(const xAOD::VertexContainer*&) const;
00057
00058 private:
00059
00060 std::string m_vertexContainer;
00061 std::string m_assocTracksName;
00062 std::string m_tva;
00063 bool m_requireTrackPV;
00064 ToolHandle<IJetTrackSelector> m_htsel;
00065
00066 };
00067
00068 #endif