CMS 3D CMS Logo

L1MuGMTMerger.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
21 //
22 //
23 // Author :
24 // H. Sakulin HEPHY Vienna
25 //
26 // Migrated to CMSSW:
27 // I. Mikulec
28 //
29 //--------------------------------------------------
30 #ifndef L1TriggerGlobalMuonTrigger_L1MuGMTMerger_h
31 #define L1TriggerGlobalMuonTrigger_L1MuGMTMerger_h
32 
33 //---------------
34 // C++ Headers --
35 //---------------
36 
37 #include <vector>
38 
39 //----------------------
40 // Base Class Headers --
41 //----------------------
42 
43 //------------------------------------
44 // Collaborating Class Declarations --
45 //------------------------------------
46 
51 
53 
54 // ---------------------
55 // -- Class Interface --
56 // ---------------------
57 
59 public:
61  L1MuGMTMerger(const L1MuGlobalMuonTrigger& gmt, int id);
62 
64  virtual ~L1MuGMTMerger();
65 
67  void run();
68 
70  void reset();
71 
73  void print() const;
74 
76  inline int id() const { return m_id; }
77 
79  inline const std::vector<L1MuGMTExtendedCand*>& Cands() const { return m_MuonCands; }
80 
81 private:
82  void load();
83  void merge();
84 
85  void createMergedCand(int idx_dtcsc, int idx_rpc);
86  void createDTCSCCand(int idx_dtcsc);
87  void createRPCCand(int idx_rpc);
88 
89  int doSpecialMerge(unsigned MMconfig) const;
90  int doANDMerge(unsigned MMconfig) const;
91  int selectDTCSC(unsigned MMconfig, int by_rank, int by_pt, int by_combi) const;
92 
93  unsigned convertedEta(const L1MuRegionalCand* mu) const;
94  unsigned projectedPhi(const L1MuRegionalCand* mu) const;
95  unsigned sysign(const L1MuRegionalCand* mu) const;
96 
98  int merge_rank(const L1MuRegionalCand*) const;
99 
100 private:
102  int m_id;
103 
104  std::vector<const L1MuRegionalCand*> dtcsc_mu;
105  std::vector<const L1MuRegionalCand*> rpc_mu;
106 
107  std::vector<L1MuGMTExtendedCand*> m_MuonCands; // up to eight
108 
109  std::vector<int> singleRank; //@ 8 bits
110 };
111 
112 #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:76
void createDTCSCCand(int idx_dtcsc)
virtual ~L1MuGMTMerger()
destructor
std::vector< const L1MuRegionalCand * > dtcsc_mu
const L1MuGlobalMuonTrigger & m_gmt
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:79
L1MuGMTMerger(const L1MuGlobalMuonTrigger &gmt, int id)
constructor
std::vector< int > singleRank
int doSpecialMerge(unsigned MMconfig) const
void createRPCCand(int idx_rpc)