00001
00002
00003 #ifndef PMGTOOLS_PMGSHERPA22VJETSWEIGHTTOOL_H
00004 #define PMGTOOLS_PMGSHERPA22VJETSWEIGHTTOOL_H
00005
00006
00007 #include <array>
00008
00009
00010 #include "AsgTools/AsgTool.h"
00011
00012
00013 #include "PATInterfaces/IWeightTool.h"
00014
00024
00025 namespace PMGTools {
00026
00027 class PMGSherpa22VJetsWeightTool : public virtual IWeightTool,
00028 public asg::AsgTool {
00029
00030 public:
00031
00032 ASG_TOOL_CLASS( PMGSherpa22VJetsWeightTool, IWeightTool )
00033
00034
00035 PMGSherpa22VJetsWeightTool( const std::string& name =
00036 "PMGSherpa22VJetsWeightTool" );
00037
00040
00042 virtual StatusCode initialize() override final;
00043
00045
00048
00057 virtual double getWeight() const override;
00058
00060
00063
00065 double getSherpa22VJets_NJetCorrection( size_t ntag ) const;
00068 double
00069 getSherpa22VJets_NJetCorrection( const std::string &jetcontainer ) const;
00071 size_t getSherpa22VJets_NJet( const std::string &jetcontainer ) const;
00072
00074
00075 private:
00077 static const size_t NJET_CORRECTION_BINS = 9;
00079 std::array< double, NJET_CORRECTION_BINS > m_corrFactors;
00080
00083
00085 std::string m_truthJetContainer;
00087 std::string m_truthParticleContainer;
00088
00090
00091 };
00092
00093 }
00094
00095 #endif //> !PMGTOOLS_PMGSHERPA22VJETSWEIGHTTOOL_H