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 //------------------------------------
45 // Collaborating Class Declarations --
46 //------------------------------------
47 
52 
54 
55 
56 // ---------------------
57 // -- Class Interface --
58 // ---------------------
59 
60 
62 
63  public:
64 
66  L1MuGMTMerger(const L1MuGlobalMuonTrigger& gmt, int id);
67 
69  virtual ~L1MuGMTMerger();
70 
72  void run();
73 
75  void reset();
76 
78  void print() const;
79 
81  inline int id() const { return m_id; }
82 
84  inline const std::vector<L1MuGMTExtendedCand*>& Cands() const { return m_MuonCands; }
85 
86  private:
87 
88  void load();
89  void merge();
90 
91  void createMergedCand(int idx_dtcsc, int idx_rpc);
92  void createDTCSCCand(int idx_dtcsc);
93  void createRPCCand(int idx_rpc);
94 
95  int doSpecialMerge(unsigned MMconfig) const;
96  int doANDMerge(unsigned MMconfig) const;
97  int selectDTCSC(unsigned MMconfig, int by_rank, int by_pt, int by_combi) const;
98 
99  unsigned convertedEta(const L1MuRegionalCand* mu) const;
100  unsigned projectedPhi(const L1MuRegionalCand* mu) const;
101  unsigned sysign(const L1MuRegionalCand* mu) const;
102 
104  int merge_rank(const L1MuRegionalCand*) const;
105 
106  private:
107 
109  int m_id;
110 
111  std::vector<const L1MuRegionalCand*> dtcsc_mu;
112  std::vector<const L1MuRegionalCand*> rpc_mu;
113 
114  std::vector<L1MuGMTExtendedCand*> m_MuonCands; // up to eight
115 
116  std::vector<int> singleRank; //@ 8 bits
117 };
118 
119 #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:81
void createDTCSCCand(int idx_dtcsc)
virtual ~L1MuGMTMerger()
destructor
std::vector< const L1MuRegionalCand * > dtcsc_mu
const L1MuGlobalMuonTrigger & m_gmt
const int mu
Definition: Constants.h:22
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:84
L1MuGMTMerger(const L1MuGlobalMuonTrigger &gmt, int id)
constructor
std::vector< int > singleRank
int doSpecialMerge(unsigned MMconfig) const
void createRPCCand(int idx_rpc)