00001
00002
00003
00004
00006 #ifndef FORWARDJVTTOOL_JVT_FORWARDJVTTOOL_H
00007 #define FORWARDJVTTOOL_JVT_FORWARDJVTTOOL_H 1
00008
00009
00010 #include <string>
00011
00012
00013
00014 #include "AsgTools/ToolHandle.h"
00015 #include "AsgTools/AsgTool.h"
00016
00017
00018 #include "xAODJet/JetContainer.h"
00019 #include "xAODMissingET/MissingETContainer.h"
00020 #include "xAODCaloEvent/CaloCluster.h"
00021 #include "JetInterface/IJetModifier.h"
00022 #include "AsgTools/IAsgTool.h"
00023
00024
00025
00026 class JetForwardJvtTool
00027 : public asg::AsgTool,
00028 virtual public IJetModifier{
00029 ASG_TOOL_CLASS(JetForwardJvtTool,IJetModifier)
00030
00031
00032
00033
00034
00035
00037 public:
00038
00039
00040
00042 JetForwardJvtTool(const std::string& name);
00043
00045 virtual ~JetForwardJvtTool();
00046
00047
00048 StatusCode initialize();
00049 StatusCode finalize();
00050
00051 virtual int modify(xAOD::JetContainer& jetCont) const;
00052
00053 float getFJVT(const xAOD::Jet *jet) const;
00054 bool forwardJet(const xAOD::Jet *jet) const;
00055 bool centralJet(const xAOD::Jet *jet) const;
00056 float getDrpt(const xAOD::Jet *jet) const;
00057 int getJetVertex(const xAOD::Jet *jet) const;
00058
00059 static StatusCode tagTruth(const xAOD::JetContainer *jets,const xAOD::JetContainer *truthJets);
00060 void calculateVertexMomenta(const xAOD::JetContainer *jets) const;
00061 float getCombinedWidth(const xAOD::Jet *jet) const;
00062
00063 private:
00064
00065 std::string m_orLabel;
00066 std::string m_outLabel;
00067 double m_etaThresh;
00068 double m_forwardMinPt;
00069 double m_forwardMaxPt;
00070 double m_centerMinPt;
00071 double m_centerMaxPt;
00072 double m_centerJvtThresh;
00073 std::string m_jvtMomentName;
00074 double m_centerDrptThresh;
00075 double m_maxStochPt;
00076 double m_jetScaleFactor;
00077 double m_fjvtThresh;
00078 bool m_tightOP;
00079 mutable std::vector<TVector2> m_pileupMomenta;
00080 mutable size_t m_pvind;
00081 SG::AuxElement::Decorator<char>* Dec_OR = NULL;
00082 SG::AuxElement::Decorator<char>* Dec_out = NULL;
00083 void getPV() const;
00084
00086 JetForwardJvtTool();
00087
00088 };
00089 #endif //> !FORWARDJVTTOOL_JVT_FORWARDJVTTOOL_H