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
L1MuGMTMerger::Cands
const std::vector< L1MuGMTExtendedCand * > & Cands() const
return std::vector with all muon candidates
Definition: L1MuGMTMerger.h:79
L1MuGMTMerger::createDTCSCCand
void createDTCSCCand(int idx_dtcsc)
Definition: L1MuGMTMerger.cc:220
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
L1MuGMTMerger::rpc_mu
std::vector< const L1MuRegionalCand * > rpc_mu
Definition: L1MuGMTMerger.h:105
L1MuGMTMerger::createMergedCand
void createMergedCand(int idx_dtcsc, int idx_rpc)
Definition: L1MuGMTMerger.cc:343
L1MuGMTMerger::m_MuonCands
std::vector< L1MuGMTExtendedCand * > m_MuonCands
Definition: L1MuGMTMerger.h:107
L1MuGMTMerger::load
void load()
Definition: L1MuGMTMerger.cc:129
L1MuRegionalCand.h
L1MuGMTMatrix.h
L1MuGlobalMuonTrigger
Definition: L1MuGlobalMuonTrigger.h:50
L1MuGMTMerger::selectDTCSC
int selectDTCSC(unsigned MMconfig, int by_rank, int by_pt, int by_combi) const
Definition: L1MuGMTMerger.cc:297
L1MuGMTMerger
Definition: L1MuGMTMerger.h:58
L1MuGMTMerger::doSpecialMerge
int doSpecialMerge(unsigned MMconfig) const
Definition: L1MuGMTMerger.cc:302
L1MuRegionalCand
Definition: L1MuRegionalCand.h:26
L1MuGMTMerger::singleRank
std::vector< int > singleRank
Definition: L1MuGMTMerger.h:109
L1MuGMTMerger::m_id
int m_id
Definition: L1MuGMTMerger.h:102
L1MuGMTConfig.h
L1MuGMTMerger::~L1MuGMTMerger
virtual ~L1MuGMTMerger()
destructor
Definition: L1MuGMTMerger.cc:78
L1MuGMTMerger::print
void print() const
print results after selection
Definition: L1MuGMTMerger.cc:114
L1MuGMTMerger::doANDMerge
int doANDMerge(unsigned MMconfig) const
Definition: L1MuGMTMerger.cc:304
L1MuGMTMerger::projectedPhi
unsigned projectedPhi(const L1MuRegionalCand *mu) const
Definition: L1MuGMTMerger.cc:311
L1MuGMTMerger::m_gmt
const L1MuGlobalMuonTrigger & m_gmt
Definition: L1MuGMTMerger.h:101
L1MuGMTMerger::run
void run()
run GMT Merger
Definition: L1MuGMTMerger.cc:87
L1MuGMTMerger::merge
void merge()
Definition: L1MuGMTMerger.cc:151
L1MuGMTMerger::merge_rank
int merge_rank(const L1MuRegionalCand *) const
Merge Rank Table.
Definition: L1MuGMTMerger.cc:506
L1MuGMTMerger::dtcsc_mu
std::vector< const L1MuRegionalCand * > dtcsc_mu
Definition: L1MuGMTMerger.h:104
L1MuGMTMerger::reset
void reset()
clear Merger
Definition: L1MuGMTMerger.cc:95
L1MuGMTMerger::L1MuGMTMerger
L1MuGMTMerger(const L1MuGlobalMuonTrigger &gmt, int id)
constructor
Definition: L1MuGMTMerger.cc:70
L1MuGMTMerger::createRPCCand
void createRPCCand(int idx_rpc)
Definition: L1MuGMTMerger.cc:260
L1MuGMTMerger::sysign
unsigned sysign(const L1MuRegionalCand *mu) const
Definition: L1MuGMTMerger.cc:334
L1MuGMTMerger::convertedEta
unsigned convertedEta(const L1MuRegionalCand *mu) const
Definition: L1MuGMTMerger.cc:306
L1MuGMTExtendedCand.h
L1MuGMTMerger::id
int id() const
return identifier
Definition: L1MuGMTMerger.h:76