00001 // Dear emacs, this is -*- c++ -*- 00002 // $Id: L2CombinedMuon_v1.h 658542 2015-04-01 18:17:00Z ssnyder $ 00003 #ifndef XAODTRIGMUON_VERSIONS_L2COMBINEDMUON_V1_H 00004 #define XAODTRIGMUON_VERSIONS_L2COMBINEDMUON_V1_H 00005 00006 // System include(s): 00007 extern "C" { 00008 # include <stdint.h> 00009 } 00010 #include <iosfwd> 00011 00012 // EDM include(s): 00013 #include "AthLinks/ElementLink.h" 00014 00015 // xAOD include(s): 00016 #include "xAODBase/IParticle.h" 00017 #include "xAODTracking/TrackParticle.h" 00018 #include "xAODTracking/TrackParticleContainer.h" 00019 00020 // Local include(s): 00021 #include "xAODTrigMuon/L2StandAloneMuonContainer.h" 00022 00023 namespace xAOD { 00024 00033 class L2CombinedMuon_v1 : public IParticle { 00034 00035 public: 00037 L2CombinedMuon_v1(); 00038 00041 00043 virtual double pt() const; 00045 virtual double eta() const; 00047 virtual double phi() const; 00049 virtual double m() const; 00051 virtual double e() const; 00053 virtual double rapidity() const; 00054 00056 typedef TLorentzVector FourMom_t; 00057 00059 virtual const FourMom_t& p4() const; 00060 00062 virtual Type::ObjectType type() const; 00063 00065 00068 00070 void setPt( float pt ); 00072 void setEta( float eta ); 00074 void setPhi( float phi ); 00075 00077 00080 00082 float charge() const; 00084 void setCharge( float value ); 00085 00087 int strategy() const; 00089 void setStrategy( int value ); 00090 00092 int errorFlag() const; 00094 void setErrorFlag( int value ); 00095 00097 int matchFlag() const; 00099 void setMatchFlag( int value ); 00100 00102 float sigmaPt() const; 00104 void setSigmaPt( float value ); 00105 00107 const ElementLink< xAOD::TrackParticleContainer >& idTrackLink() const; 00109 void setIdTrackLink(const ElementLink< xAOD::TrackParticleContainer >& link); 00111 const xAOD::TrackParticle* idTrack() const; 00112 00114 const ElementLink< xAOD::L2StandAloneMuonContainer >& muSATrackLink() const; 00116 void setMuSATrackLink(const ElementLink< xAOD::L2StandAloneMuonContainer >& link); 00118 const xAOD::L2StandAloneMuon* muSATrack() const; 00119 00121 00122 private: 00124 mutable FourMom_t m_p4; 00126 mutable bool m_p4Cached; 00127 00128 }; // class L2CombinedMuon_v1 00129 00130 00132 std::ostream& operator<< ( std::ostream& out, 00133 const xAOD::L2CombinedMuon_v1& mu ); 00134 00135 } // namespace xAOD 00136 00137 #endif // XAODTRIGMUON_VERSIONS_L2COMBINEDMUON_V1_H