CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1MuGMTMerger.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
21 //
22 // $Date: 2007/03/23 18:51:35 $
23 // $Revision: 1.2 $
24 //
25 // Author :
26 // H. Sakulin HEPHY Vienna
27 //
28 // Migrated to CMSSW:
29 // I. Mikulec
30 //
31 //--------------------------------------------------
32 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTMerger_h
33 #define L1TriggerGlobalMuonTrigger_L1MuGMTMerger_h
34 
35 //---------------
36 // C++ Headers --
37 //---------------
38 
39 #include <vector>
40 
41 //----------------------
42 // Base Class Headers --
43 //----------------------
44 
45 
46 //------------------------------------
47 // Collaborating Class Declarations --
48 //------------------------------------
49 
54 
56 
57 
58 // ---------------------
59 // -- Class Interface --
60 // ---------------------
61 
62 
64 
65  public:
66 
68  L1MuGMTMerger(const L1MuGlobalMuonTrigger& gmt, int id);
69 
71  virtual ~L1MuGMTMerger();
72 
74  void run();
75 
77  void reset();
78 
80  void print() const;
81 
83  inline int id() const { return m_id; }
84 
86  inline const std::vector<L1MuGMTExtendedCand*>& Cands() const { return m_MuonCands; }
87 
88  private:
89 
90  void load();
91  void merge();
92 
93  void createMergedCand(int idx_dtcsc, int idx_rpc);
94  void createDTCSCCand(int idx_dtcsc);
95  void createRPCCand(int idx_rpc);
96 
97  int doSpecialMerge(unsigned MMconfig) const;
98  int doANDMerge(unsigned MMconfig) const;
99  int selectDTCSC(unsigned MMconfig, int by_rank, int by_pt, int by_combi) const;
100 
101  unsigned convertedEta(const L1MuRegionalCand* mu) const;
102  unsigned projectedPhi(const L1MuRegionalCand* mu) const;
103  unsigned sysign(const L1MuRegionalCand* mu) const;
104 
106  int merge_rank(const L1MuRegionalCand*) const;
107 
108  private:
109 
111  int m_id;
112 
113  std::vector<const L1MuRegionalCand*> dtcsc_mu;
114  std::vector<const L1MuRegionalCand*> rpc_mu;
115 
116  std::vector<L1MuGMTExtendedCand*> m_MuonCands; // up to eight
117 
118  std::vector<int> singleRank; //@ 8 bits
119 };
120 
121 #endif
std::vector< L1MuGMTExtendedCand * > m_MuonCands
void createMergedCand(int idx_dtcsc, int idx_rpc)
int selectDTCSC(unsigned MMconfig, int by_rank, int by_pt, int by_combi) const
unsigned projectedPhi(const L1MuRegionalCand *mu) const
int id() const
return identifier
Definition: L1MuGMTMerger.h:83
void createDTCSCCand(int idx_dtcsc)
virtual ~L1MuGMTMerger()
destructor
std::vector< const L1MuRegionalCand * > dtcsc_mu
const L1MuGlobalMuonTrigger & m_gmt
const int mu
Definition: Constants.h:23
unsigned sysign(const L1MuRegionalCand *mu) const
void print() const
print results after selection
int doANDMerge(unsigned MMconfig) const
void reset()
clear Merger
unsigned convertedEta(const L1MuRegionalCand *mu) const
int merge_rank(const L1MuRegionalCand *) const
Merge Rank Table.
std::vector< const L1MuRegionalCand * > rpc_mu
void run()
run GMT Merger
const std::vector< L1MuGMTExtendedCand * > & Cands() const
return std::vector with all muon candidates
Definition: L1MuGMTMerger.h:86
L1MuGMTMerger(const L1MuGlobalMuonTrigger &gmt, int id)
constructor
std::vector< int > singleRank
int doSpecialMerge(unsigned MMconfig) const
void createRPCCand(int idx_rpc)