00001
00002
00003
00004
00005
00006
00007
00008
00009
00011
00012 #ifndef METINTERFACE_IMETMAKER_H
00013 #define METINTERFACE_IMETMAKER_H
00014
00015 #include "AsgTools/IAsgTool.h"
00016 #include "xAODBase/IParticleContainer.h"
00017 #include "xAODMissingET/MissingETContainer.h"
00018 #include "xAODMissingET/MissingETAssociationMap.h"
00019 #include "xAODJet/JetContainer.h"
00020
00021 class IMETMaker : virtual public asg::IAsgTool {
00022 ASG_TOOL_INTERFACE(IMETMaker)
00023
00024 public:
00025
00027
00029
00030
00031 virtual StatusCode rebuildMET(const std::string& metKey,
00032 xAOD::Type::ObjectType metType,
00033 xAOD::MissingETContainer* metCont,
00034 const xAOD::IParticleContainer* collection,
00035 const xAOD::MissingETAssociationMap* map,
00036 MissingETBase::UsageHandler::Policy objScale=MissingETBase::UsageHandler::PhysicsObject) = 0;
00037
00038 virtual StatusCode rebuildMET(xAOD::MissingET* met,
00039 const xAOD::IParticleContainer* collection,
00040 const xAOD::MissingETAssociationMap* map,
00041 MissingETBase::UsageHandler::Policy objScale=MissingETBase::UsageHandler::PhysicsObject) = 0;
00042
00043 virtual StatusCode rebuildMET(xAOD::MissingET* met,
00044 const xAOD::IParticleContainer* collection,
00045 const xAOD::MissingETAssociationMap* map,
00046 MissingETBase::UsageHandler::Policy p,
00047 bool removeOverlap,
00048 MissingETBase::UsageHandler::Policy objScale=MissingETBase::UsageHandler::PhysicsObject) = 0;
00049
00051
00053
00054
00055
00056 virtual StatusCode rebuildJetMET(const std::string& metJetKey,
00057 const std::string& metSoftKey,
00058 xAOD::MissingETContainer* metCont,
00059 const xAOD::JetContainer* jets,
00060 const xAOD::MissingETContainer* metCoreCont,
00061 const xAOD::MissingETAssociationMap* map,
00062 bool doJetJVT) = 0;
00063
00064 virtual StatusCode rebuildJetMET(const std::string& metJetKey,
00065 const std::string& softClusKey,
00066 const std::string& softTrkKey,
00067 xAOD::MissingETContainer* metCont,
00068 const xAOD::JetContainer* jets,
00069 const xAOD::MissingETContainer* metCoreCont,
00070 const xAOD::MissingETAssociationMap* map,
00071 bool doJetJVT) = 0;
00072
00073 virtual StatusCode rebuildJetMET(xAOD::MissingET* metJet,
00074 const xAOD::JetContainer* jets,
00075 const xAOD::MissingETAssociationMap* map,
00076 xAOD::MissingET* metSoftClus,
00077 const xAOD::MissingET* coreSoftClus,
00078 xAOD::MissingET* metSoftTrk,
00079 const xAOD::MissingET* coreSoftTrk,
00080 bool doJetJVT,
00081 bool tracksForHardJets=false,
00082 std::vector<const xAOD::IParticle*>* softConst=0) = 0;
00083
00084
00085 virtual StatusCode rebuildTrackMET(const std::string& metJetKey,
00086 const std::string& metSoftKey,
00087 xAOD::MissingETContainer* metCont,
00088 const xAOD::JetContainer* jets,
00089 const xAOD::MissingETContainer* metCoreCont,
00090 const xAOD::MissingETAssociationMap* map,
00091 bool doJetJVT) = 0;
00092
00093 virtual StatusCode rebuildTrackMET(xAOD::MissingET* metJet,
00094 const xAOD::JetContainer* jets,
00095 const xAOD::MissingETAssociationMap* map,
00096 xAOD::MissingET* metSoftTrk,
00097 const xAOD::MissingET* coreSoftTrk,
00098 bool doJetJVT) = 0;
00099
00101
00103
00104 virtual StatusCode markInvisible(const xAOD::IParticleContainer* collection,
00105 const xAOD::MissingETAssociationMap* map,
00106 xAOD::MissingETContainer* metCont) = 0;
00107
00108 virtual StatusCode buildMETSum(const std::string& totalName,
00109 xAOD::MissingETContainer* metCont,
00110 MissingETBase::Types::bitmask_t softTermsSource) = 0;
00111 };
00112
00113 #endif