00001
00002
00003 #ifndef DITAUMASSTOOLS_IMISSINGMASSTOOL_H
00004 #define DITAUMASSTOOLS_IMISSINGMASSTOOL_H
00005
00006
00007 #include "PATInterfaces/CorrectionCode.h"
00008 #include "AsgTools/IAsgTool.h"
00009
00010
00011 #include "TLorentzVector.h"
00012 #include "TVector2.h"
00013
00014
00015
00016 #include "xAODEventInfo/EventInfo.h"
00017 #include "xAODMissingET/MissingET.h"
00018 #include "xAODBase/IParticle.h"
00019
00020
00021 class MissingMassCalculator;
00022 class TLorentzVector;
00023 class TVector2;
00024
00025 class IMissingMassTool : public virtual asg::IAsgTool
00026
00027 {
00028
00029
00030 ASG_TOOL_INTERFACE(IMissingMassTool)
00031
00032 public:
00033
00035 virtual ~IMissingMassTool() {};
00036
00037
00038 virtual CP::CorrectionCode apply(const xAOD::EventInfo& ei,
00039 const xAOD::IParticle* part1,
00040 const xAOD::IParticle* part2,
00041 const xAOD::MissingET* met,
00042 const int & njets)=0;
00043
00044 virtual void calculate(const xAOD::EventInfo & ei,
00045 const TLorentzVector & vis_tau1,
00046 const TLorentzVector & vis_tau2,
00047 const int & tau1_decay_type,
00048 const int & tau2_decay_type,
00049 const xAOD::MissingET & met,
00050 const int & njets)=0;
00051
00052
00053 virtual MissingMassCalculator* get() = 0;
00054 virtual double GetFitStatus(const int & method)=0;
00055 virtual double GetFittedMass(const int & method)=0;
00056 virtual TLorentzVector GetResonanceVec(const int& method) = 0;
00057 virtual TVector2 GetFittedMetVec(const int& method) = 0;
00058 virtual TLorentzVector GetNeutrino4vec(const int& method, const int & index) = 0;
00059 virtual TLorentzVector GetTau4vec(const int& method, const int & index) = 0;
00060
00061 };
00062 #endif