/afs/hep.man.ac.uk/u/markowen/ATLAS/SFrameProof/2011EPS/manTree/manTree/MMuon.h

00001 #ifndef _MANTREE_MMUON_H__
00002 #define _MANTREE_MMUON_H__
00003 
00004 #include "manTree/MTrack.h"
00005 
00006 #include <iosfwd>
00007 #include <string>
00008 
00009 #ifdef _ATHENA_CLASSES__
00010 // Forward declare the athena Muon classes
00011 namespace Analysis {
00012 class Muon;
00013 }
00014 class TrigMuonEF;
00015 #endif
00016 
00017 namespace manchester {
00018 
00019 class MInDetTrack;
00020 
00022 class MMuon : public MTrack {
00023 public:
00024     MMuon();
00025 
00027     MMuon(const MMuon& muon);
00028 
00030     MMuon(const MInDetTrack& trk);
00031 
00032 #ifdef _ATHENA_CLASSES__
00034     MMuon(const Analysis::Muon& muon, bool atlfast=false, bool debug=false);
00035     MMuon(const TrigMuonEF& muon);
00036 #endif
00037 
00039     virtual ~MMuon();
00040 
00042     inline Int_t PrimaryAuthor() const {return m_primaryAuthor;}
00043 
00045     inline Bool_t IsStaco() const {return m_allAuthors & 2;}
00046 
00048     inline Bool_t IsMuidSA() const {return m_allAuthors & 8;}
00049 
00051     Bool_t HasInDetTrack() const;
00052 
00054     Bool_t HasExtrapolatedTrack() const;
00055 
00057     const MTrack* MuonSpecTrack() const {return m_muonspecTrack;}
00058 
00060     const MInDetTrack* InDetTrack() const {return m_indetTrack;}
00061 
00063     const MTrack* ExtrapolatedTrack() const {return m_extrapTrack;}
00064 
00066     inline Bool_t BestMatch() const {return m_bestmatch;}
00067 
00068     inline Bool_t Combined() const {return m_combined;}
00069 
00070     inline Bool_t Loose() const {return m_loose;}
00071     inline Bool_t Medium() const {return m_medium;}
00072     inline Bool_t Tight() const {return m_tight;}
00073 
00075     Double_t MatchChi2() const {return m_chi2Match;}
00076 
00078     Int_t MatchNDoF() const {return m_dofMatch;}
00079 
00081     Double_t MatchChi2NDoF() const;
00082 
00084     Double_t Et01Cone() const {return m_etcone10;}
00085 
00087     Double_t Et02Cone() const {return m_etcone20;}
00088 
00090     Double_t Et03Cone() const {return m_etcone30;}
00091 
00093     Double_t Et04Cone() const {return m_etcone40;}
00094 
00096     Double_t Pt01Cone() const {return m_ptcone10;}
00097 
00099     Double_t Pt02Cone() const {return m_ptcone20;}
00100 
00102     Double_t Pt03Cone() const {return m_ptcone30;}
00103 
00105     Double_t Pt04Cone() const {return m_ptcone40;}
00106 
00108     Double_t ErrQoverP() const {return m_errqoverp;}
00109 
00111     Short_t NMdtHits() const {return m_nMdtHits;}
00112 
00114     Short_t NCscPhiHits() const {return m_nCscPhiHits;}
00115 
00117     Short_t NCscEtaHits() const {return m_nCscEtaHits;}
00118 
00120     Short_t NRpcPhiHits() const {return m_nRpcPhiHits;}
00121 
00123     Short_t NRpcEtaHits() const {return m_nRpcEtaHits;}
00124 
00126     Short_t NTgcPhiHits() const {return m_nTgcPhiHits;}
00127 
00129     Short_t NTgcEtaHits() const {return m_nTgcEtaHits;}
00130 
00132     Bool_t TopTriggerMatched() const;
00133 
00135     void SetTopTriggerMatched(bool matched);
00136 
00137     // Was this muon matched to trigger set in manTreeMaker version for 16.6.3.5.1
00138     std::vector<Bool_t> TriggerMatched() const;
00139 
00140     // Set the flag for trigger matching for triggers in triggernames in FillFromTopInputs
00141     void SetMultiTriggerMatched(std::vector<bool> triggermatched);
00142 
00144     Float_t METWpx() const {return m_met_weights[0];}
00145 
00147     Float_t METWpy() const {return m_met_weights[1];}
00148 
00150     Float_t METWet() const {return m_met_weights[2];}
00151 
00153     Short_t METTrkType() const {return m_met_trktype;}
00154     
00156     void SetMETWeights(const float wpx, const float wpy, const float wet);
00158     void SetMETWeights(const std::vector<double>& weights);
00160     void SetMETTrkType(const short type) {m_met_trktype=type;}
00161 
00162 
00163     virtual std::string Type() const;
00164 
00165     virtual std::ostream& PrintContent(std::ostream& o) const;
00166 
00167     MMuon& operator=(const MMuon& p);
00168 
00170     void SetIDTrkVtxParams(const float d0, const float theta, const float phi, const float z0);
00171 
00173     void SetIDTrkBSParams(const float d0, const float theta, const float phi, const float z0);
00174 
00175 protected:
00176     virtual void Reset();
00177 
00178 private:
00180     Int_t m_primaryAuthor;
00181 
00183     UInt_t m_allAuthors;
00184 
00186     MTrack* m_muonspecTrack;
00187 
00189     MInDetTrack* m_indetTrack;
00190 
00192     MTrack* m_extrapTrack;
00193 
00195     Double_t m_chi2Match;
00196 
00198     Int_t m_dofMatch;
00199 
00201     Bool_t m_bestmatch;
00202 
00203     Bool_t m_combined;
00204 
00205     Bool_t m_loose;
00206     Bool_t m_medium;
00207     Bool_t m_tight;
00208 
00210     Double_t m_etcone10; //<cone size = 0.1
00211     Double_t m_etcone20; //<cone size = 0.2
00212     Double_t m_etcone30; //<cone size = 0.3
00213     Double_t m_etcone40; //<cone size = 0.4
00214 
00216     Double_t m_ptcone10; //<cone size = 0.1
00217     Double_t m_ptcone20; //<cone size = 0.2
00218     Double_t m_ptcone30; //<cone size = 0.3
00219     Double_t m_ptcone40; //<cone size = 0.4
00220 
00222     Double_t m_errqoverp;
00223 
00225     Short_t m_nMdtHits;
00226     Short_t m_nCscPhiHits;
00227     Short_t m_nCscEtaHits;
00228     Short_t m_nTgcPhiHits;
00229     Short_t m_nTgcEtaHits;
00230     Short_t m_nRpcPhiHits;
00231     Short_t m_nRpcEtaHits;
00232 
00234     bool m_toptrigger_match;
00235 
00236     std::vector<bool> m_matchedtriggers;
00237 
00239     Float_t m_met_weights[3];
00241     Short_t m_met_trktype;
00242 
00243 #ifndef DOXYGEN_IGNORE
00244     ClassDef(MMuon, 13)
00245 #endif
00246 
00247 }; //class MMuon
00248 
00249 } //namespace manchester
00250 
00251 #endif

Generated on Thu Jun 30 11:40:04 2011 for manTreeSFrame by  doxygen 1.4.7