00001 #ifndef MuonReco_CaloMuon_h 00002 #define MuonReco_CaloMuon_h 00003 00016 #include "DataFormats/MuonReco/interface/MuonEnergy.h" 00017 #include "DataFormats/TrackReco/interface/TrackFwd.h" 00018 #include "DataFormats/TrackReco/interface/Track.h" 00019 00020 namespace reco { 00021 00022 class CaloMuon { 00023 public: 00024 CaloMuon(); 00025 00027 TrackRef track() const { return track_; } 00029 void setTrack( const TrackRef & t ) { track_ = t; } 00031 bool isEnergyValid() const { return energyValid_; } 00033 MuonEnergy calEnergy() const { return calEnergy_; } 00034 MuonEnergy getCalEnergy() const __attribute__((deprecated)); 00036 void setCalEnergy( const MuonEnergy& calEnergy ) { calEnergy_ = calEnergy; energyValid_ = true; } 00037 00041 float caloCompatibility() const { return caloCompatibility_; } 00042 float getCaloCompatibility() const __attribute__((deprecated)); 00043 void setCaloCompatibility(float input){ caloCompatibility_ = input; } 00044 bool isCaloCompatibilityValid() const { return caloCompatibility_>=0; } 00045 00047 int charge() const { return track_.get()->charge(); } 00049 double theta() const { return track_.get()->theta(); } 00051 double p() const { return track_.get()->p(); } 00053 double pt() const { return track_.get()->pt(); } 00055 double px() const { return track_.get()->px(); } 00057 double py() const { return track_.get()->py(); } 00059 double pz() const { return track_.get()->pz(); } 00061 double phi() const { return track_.get()->phi(); } 00063 double eta() const { return track_.get()->eta(); } 00064 00065 private: 00067 TrackRef track_; 00069 MuonEnergy calEnergy_; 00070 bool energyValid_; 00072 float caloCompatibility_; 00073 }; 00074 00075 } 00076 00077 00078 #endif