00001 #ifndef TMBMet_H
00002 #define TMBMet_H
00003
00005
00006
00007
00008
00009
00010
00012
00013 #ifndef ROOT_TObject
00014 #include "TObject.h"
00015 #endif
00016 #include "met_util/BMetQualInfo.hpp"
00017 #include <vector>
00018
00023 class TMBMet : public TObject {
00024
00025 private:
00026
00027
00028 metid::BMetStruct _met;
00029
00030
00031 metid::BMetStruct _metnoeta;
00032
00033 Float_t _visMuX, _visMuY, _visMuPt;
00034
00035
00036 Float_t _Zvertex;
00037
00038
00039 metid::BMetStruct _metC;
00040
00041
00042 metid::BMetStruct _metD;
00043
00044 metid::BMetStruct _metA;
00045 metid::BMetStruct _metB;
00046
00048 std::vector<metid::BMetQualInfo> _metqualinfos;
00049
00050 public:
00051 TMBMet();
00052
00053 ~TMBMet();
00054
00056
00057 const metid::BMetStruct& getMET() const {return _met;}
00058 const metid::BMetStruct& getMETnoeta()const {return _metnoeta;}
00059 const metid::BMetStruct& getMETC() const {return _metC;}
00060 const metid::BMetStruct& getMETD() const {return _metD;}
00061 const metid::BMetStruct& getMETA() const {return _metA;}
00062 const metid::BMetStruct& getMETB() const {return _metB;}
00063
00064 float getZvertex() const {return _Zvertex;}
00066
00068
00069
00070 const metid::BMetQualInfo* getMetQualInfo(const std::string& algotype) const;
00071 const std::vector<metid::BMetQualInfo>* getMetQualInfo() const;
00073
00075
00076 void setMET (const metid::BMetStruct& aMetStruct) {_met = aMetStruct;}
00077 void setMETnoeta(const metid::BMetStruct& aMetStruct) {_metnoeta = aMetStruct;}
00078 void setMETC (const metid::BMetStruct& aMetStruct) {_metC = aMetStruct;}
00079 void setMETD (const metid::BMetStruct& aMetStruct) {_metD = aMetStruct;}
00080 void setMETA (const metid::BMetStruct& aMetStruct) {_metA = aMetStruct;}
00081 void setMETB (const metid::BMetStruct& aMetStruct) {_metB = aMetStruct;}
00082
00083 void setVertex(const float &aZvertex) {_Zvertex = aZvertex;}
00085
00087
00088 void print(std::ostream &os) const;
00089
00090 void print_vertex (std::ostream& os) const {os << "Z vertex : " << _Zvertex << std::endl;}
00091
00092 void print_MET (std::ostream& os) const {_met.Print (os,"MET : ");}
00093 void print_METnoeta(std::ostream& os) const {_metnoeta.Print(os,"METnoeta: ");}
00094 void print_METC (std::ostream& os) const {_metC.Print (os,"METC : ");}
00095 void print_METD (std::ostream& os) const {_metD.Print (os,"METD : ");}
00096 void print_META (std::ostream& os) const {_metA.Print (os,"META : ");}
00097 void print_METB (std::ostream& os) const {_metB.Print (os,"METB : ");}
00099
00100 void setMetQualInfo(const std::vector<metid::BMetQualInfo>& aVecMetQualInfo) {_metqualinfos = aVecMetQualInfo;}
00101
00102
00103 void print_MetQualInfo(std::ostream& os) const;
00104 void print_MetQualInfo(std::ostream& os, const std::string& algotype) const;
00105
00106
00107 friend std::ostream & operator<< (std::ostream &os, const TMBMet &obj);
00108
00109
00110 Float_t get_MET() const;
00111 Float_t getMET_noeta() const;
00112
00114
00115 Float_t getScalarET() const;
00116 Float_t getScalarET_noeta() const;
00118
00120
00121 void getMExy(Float_t &ETx, Float_t &ETy) const;
00122 void getMExy_noeta(Float_t &ETx_noeta, Float_t &ETy_noeta) const;
00124
00126
00127 void getMETC (float &SETC, float &METCx, float &METCy, float &METC) const;
00128 void getMETD (float &SETD, float &METDx, float &METDy, float &METD) const;
00129 void getVETC (float &SETC, float &VETCx, float &VETCy, float &METC) const;
00130 void getVETD (float &SETD, float &VETDx, float &VETDy, float &METD) const;
00132
00133 ClassDef(TMBMet, 4)
00134 };
00135
00136 #endif // TMBMet_H