#ifndef TMBL2Muon_H #define TMBL2Muon_H ////////////////////////////////////////////////////////////////////////// // // // TMBL2Muon class // // // ////////////////////////////////////////////////////////////////////////// #ifndef INC_TPHYSOBJ #include "tmb_tree/TPhysObj.hpp" #endif #ifndef ROOT_TMath #include "TMath.h" #endif class TMBL2Muon : public TPhysObj { public: TMBL2Muon(); TMBL2Muon ( const TMBL2Muon & obj ); // copy constructor ~TMBL2Muon(); private: friend class TMBL2MuonMaker; float _pt; int _ieta; int _iphi; int _quality; public: inline float pT (void) const {return _pt;} inline int ieta (void) const {return _ieta;} inline int iphi (void) const {return _iphi;} Float_t eta (void) const {return (_ieta-79.5)/20.;} Float_t phi (void) const {return (_iphi+.5)/80.*TMath::Pi();} Float_t et (void) const {return _pt;} Float_t px() const {return _pt*cos(phi());} Float_t py() const {return _pt*sin(phi());} Float_t pz() const {return _pt/tan(2.*atan(exp(-eta())));} Float_t p() const {Float_t z=pz(); return _pt+z*z;} Float_t E() const {Float_t z=pz(); return _pt+z*z;} Float_t charge() const {return 0.;}; TLorentzVector lorentz_vector() const { TLorentzVector lv; lv.SetPtEtaPhiM(_pt, eta(), phi(), 0.); return lv; } inline int quality (void) const {return _quality;} ClassDef(TMBL2Muon, 2) //TMBTreeTrig class }; #endif