File indexing completed on 2023-03-17 10:50:43
0001 #ifndef MuonReco_CaloMuon_h
0002 #define MuonReco_CaloMuon_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 #include "DataFormats/MuonReco/interface/MuonEnergy.h"
0016 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0017 #include "DataFormats/TrackReco/interface/Track.h"
0018
0019 namespace reco {
0020
0021 class CaloMuon {
0022 public:
0023 CaloMuon();
0024 virtual ~CaloMuon() {}
0025
0026
0027 virtual TrackRef innerTrack() const { return innerTrack_; }
0028 virtual TrackRef track() const { return innerTrack(); }
0029
0030 virtual void setInnerTrack(const TrackRef& t) { innerTrack_ = t; }
0031 virtual void setTrack(const TrackRef& t) { setInnerTrack(t); }
0032
0033 bool isEnergyValid() const { return energyValid_; }
0034
0035 MuonEnergy calEnergy() const { return calEnergy_; }
0036
0037 void setCalEnergy(const MuonEnergy& calEnergy) {
0038 calEnergy_ = calEnergy;
0039 energyValid_ = true;
0040 }
0041
0042
0043
0044
0045 float caloCompatibility() const { return caloCompatibility_; }
0046 void setCaloCompatibility(float input) { caloCompatibility_ = input; }
0047 bool isCaloCompatibilityValid() const { return caloCompatibility_ >= 0; }
0048
0049
0050 int charge() const { return innerTrack_.get()->charge(); }
0051
0052 double theta() const { return innerTrack_.get()->theta(); }
0053
0054 double p() const { return innerTrack_.get()->p(); }
0055
0056 double pt() const { return innerTrack_.get()->pt(); }
0057
0058 double px() const { return innerTrack_.get()->px(); }
0059
0060 double py() const { return innerTrack_.get()->py(); }
0061
0062 double pz() const { return innerTrack_.get()->pz(); }
0063
0064 double phi() const { return innerTrack_.get()->phi(); }
0065
0066 double eta() const { return innerTrack_.get()->eta(); }
0067
0068 private:
0069
0070 TrackRef innerTrack_;
0071
0072 MuonEnergy calEnergy_;
0073 bool energyValid_;
0074
0075 float caloCompatibility_;
0076 };
0077
0078 }
0079
0080 #endif