00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef METINTERFACE_IMETREBUILDER_H
00013 #define METINTERFACE_IMETREBUILDER_H
00014
00015 #include "AsgTools/IAsgTool.h"
00016 #include "xAODBase/IParticleContainer.h"
00017 #include "xAODMissingET/MissingETContainer.h"
00018 #include "xAODMissingET/MissingETComponent.h"
00019 #include "xAODMissingET/MissingETComponentMap.h"
00020 #include "xAODJet/JetContainer.h"
00021
00022 class IMETRebuilder : virtual public asg::IAsgTool {
00023 ASG_TOOL_INTERFACE(IMETRebuilder)
00024
00025 public:
00026
00027 virtual StatusCode execute() = 0;
00028
00029 virtual StatusCode copyMET(const std::string& metKey,
00030 xAOD::MissingETContainer* metCont,
00031 const xAOD::MissingETComponentMap* metMap) = 0;
00032
00033 virtual StatusCode rebuildMET(const std::string& metKey,
00034 xAOD::MissingETContainer* metCont,
00035 const xAOD::IParticleContainer* collection,
00036 const xAOD::MissingETComponentMap* metMap,
00037 bool doTracks=true) = 0;
00038
00039 virtual StatusCode rebuildMET(xAOD::MissingET* met,
00040 const xAOD::IParticleContainer* collection,
00041 const xAOD::MissingETComponent* component,
00042 bool doTracks) = 0;
00043
00045
00046 virtual StatusCode rebuildJetMET(const std::string& jetKey,
00047 const std::string& softKey,
00048 xAOD::MissingETContainer* metCont,
00049 const xAOD::JetContainer* jets,
00050 const xAOD::MissingETComponentMap* metMap,
00051 bool doTracks=true) = 0;
00052
00053 virtual StatusCode rebuildJetMET(const std::string& jetKey,
00054 const std::string& softKey,
00055 xAOD::MissingETContainer* metCont,
00056 const xAOD::JetContainer* jets,
00057 const xAOD::MissingETComponentMap* metMap,
00058 bool doTracks,
00059 bool doJvfCut,
00060 bool pureTrkSoft,
00061 const std::string& softJetScale) = 0;
00062
00063 virtual StatusCode rebuildJetMET(const std::string& jetKey,
00064 const std::string& softKey,
00065 xAOD::MissingETContainer* metCont,
00066 const xAOD::JetContainer* jets,
00067 const xAOD::MissingETComponentMap* metMap,
00068 bool doTracks,
00069 bool doJvfCut,
00070 bool pureTrkSoft,
00071 const std::string& softJetScale,
00072 float& stvf) = 0;
00073
00074 virtual StatusCode rebuildJetMET(xAOD::MissingET* metJet,
00075 xAOD::MissingET* metSoft,
00076 const xAOD::JetContainer* jets,
00077 const xAOD::MissingETComponent* component,
00078 bool doTracks,
00079 bool doJvfCut,
00080 bool pureTrkSoft,
00081 const std::string& softJetScale,
00082 float& stvf,
00083 const xAOD::MissingETComponent* comp_softtrk) = 0;
00084
00086
00087 virtual StatusCode buildMETSum(const std::string& totalName,
00088 xAOD::MissingETContainer* metCont) = 0;
00089 };
00090
00091 #endif