00001 #ifndef _MANTREE_MEFMUROI_H__
00002 #define _MANTREE_MEFMUROI_H__
00003
00004 #include "TRefArray.h"
00005
00006 #include "manTree/MEFMuon.h"
00007 #include "manTree/ML2Muon.h"
00008 #include "manTree/ML2CombMuon.h"
00009 #include "manTree/MTriggerChain.h"
00010
00011 #ifdef _ATHENA_CLASSES__
00012
00013 class TrigMuonEFInfo;
00014 #endif
00015
00016 namespace manchester {
00017
00019 class MEFMuROI : public TObject {
00020 public:
00022 MEFMuROI();
00023
00024 #ifdef _ATHENA_CLASSES__
00026 MEFMuROI(const TrigMuonEFInfo& muinfo);
00027 #endif
00028
00030 virtual ~MEFMuROI();
00031
00033 unsigned int GetNMuons() const;
00034
00036 const MEFMuon* GetMuon(unsigned int i) const;
00037
00039 std::vector<const manchester::MEFMuon*> GetMuons() const;
00040
00042 const ML2Muon* GetL2Muon() const;
00043
00045 const ML2CombMuon* GetL2CombMuon() const;
00046
00048 void AddMuon(MEFMuon* mu);
00049
00051 void AssociateChain(MTriggerChain* chain);
00052
00054 void SetL2MuonSeed(ML2Muon* l2mu);
00055
00057 void SetL2CombMuonSeed(ML2CombMuon* l2mu);
00058
00060 Bool_t Active() const {return m_active;}
00061
00063 void SetActive(bool flag);
00064
00066 bool HasChain() const;
00067
00069 const MTriggerChain* GetChain() const;
00070
00071 Double_t EtaPrevLevel() const {return m_etaPrevLevel;}
00072 Double_t PhiPrevLevel() const {return m_phiPrevLevel;}
00073
00074 private:
00076 TRefArray m_muefobjs;
00077
00079 TRefArray m_chain;
00080
00082 TRefArray m_l2muon;
00083
00085 TRefArray m_l2combmuon;
00086
00087 Double_t m_etaPrevLevel;
00088 Double_t m_phiPrevLevel;
00089
00091 Bool_t m_active;
00092
00093 #ifndef DOXYGEN_IGNORE
00094 ClassDef(MEFMuROI, 5)
00095 #endif
00096
00097 };
00098
00099 }
00100
00101 #endif // _MANTREE_MEFMUROI_H__