00001 // JetClusterMomentsTool.h 00002 00003 #ifndef JETMOMENTTOOLS_JETCLUSTERMOMENTSTOOL_H 00004 #define JETMOMENTTOOLS_JETCLUSTERMOMENTSTOOL_H 00005 00018 00019 #include "JetRec/JetModifierBase.h" 00020 00021 #include "xAODCaloEvent/CaloCluster.h" 00022 00023 #include <string> 00024 00025 00026 class JetClusterMomentsTool : public JetModifierBase { 00027 ASG_TOOL_CLASS(JetClusterMomentsTool,IJetModifier) 00028 public: 00029 // Constructor from tool name 00030 JetClusterMomentsTool(const std::string& name); 00031 00032 // Inherited methods to modify a jet 00033 virtual int modifyJet(xAOD::Jet& jet) const; 00034 00035 private: 00036 // properties 00037 bool m_doClsPt ; 00038 bool m_doClsSecondLambda ; 00039 bool m_doClsCenterLambda ; 00040 bool m_doClsSecondR ; 00041 00042 // Find cluster with highest energy, or return NULL if unsuccessful 00043 const xAOD::CaloCluster * findLeadingCluster(xAOD::Jet& jet) const; 00044 // Retrieve a moment from cluster 00045 float getMoment(const xAOD::CaloCluster* cluster, const xAOD::CaloCluster::MomentType& momentType) const; 00046 }; 00047 00048 #endif 00049