CMS 3D CMS Logo

L1MuDTTrack.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
12 //
13 //--------------------------------------------------
14 #ifndef L1MUDT_TRACK_H
15 #define L1MUDT_TRACK_H
16 
17 //---------------
18 // C++ Headers --
19 //---------------
20 
21 #include <iosfwd>
22 #include <string>
23 #include <vector>
24 
25 //----------------------
26 // Base Class Headers --
27 //----------------------
28 
30 
31 //------------------------------------
32 // Collaborating Class Declarations --
33 //------------------------------------
34 
40 
41 // ---------------------
42 // -- Class Interface --
43 // ---------------------
44 
45 class L1MuDTTrack : public L1MuRegionalCand {
46 public:
48  L1MuDTTrack();
49 
52 
54  L1MuDTTrack(const L1MuDTTrack&);
55 
57  ~L1MuDTTrack() override;
58 
60  void reset() override;
61 
63  inline std::string name() const { return m_name; }
64 
66  inline unsigned int pt() const { return pt_packed(); }
67 
69  inline unsigned int phi() const { return phi_packed(); }
70 
72  inline unsigned int eta() const { return eta_packed(); }
73 
75  inline bool fineEtaBit() const { return isFineHalo(); }
76 
78  inline int charge() const { return chargeValue(); }
79 
81  inline TrackClass tc() const { return m_tc; }
82 
84  inline bool empty() const override { return m_empty; }
85 
87  inline const L1MuDTSecProcId& spid() const { return m_spid; }
88 
90  inline L1MuDTAddressArray address() const { return m_addArray; }
91 
93  inline int address(int stat) const { return m_addArray.station(stat); }
94 
96  inline int numberOfTSphi() const { return m_tsphiList.size(); }
97 
99  inline int numberOfTSeta() const { return m_tsetaList.size(); }
100 
102  const std::vector<L1MuDTTrackSegPhi>& getTSphi() const { return m_tsphiList; }
103 
105  const L1MuDTTrackSegPhi& getStartTSphi() const;
106 
108  const L1MuDTTrackSegPhi& getEndTSphi() const;
109 
111  const std::vector<L1MuDTTrackSegEta>& getTSeta() const { return m_tsetaList; }
112 
114  const L1MuDTTrackSegEta& getStartTSeta() const;
115 
117  const L1MuDTTrackSegEta& getEndTSeta() const;
118 
120  inline void enable() {
121  m_empty = false;
122  setType(0);
123  }
124 
126  inline void disable() { m_empty = true; }
127 
129  inline void setName(std::string name) { m_name = name; }
130 
132  inline void setTC(TrackClass tc) { m_tc = tc; }
133 
135  inline void setPhi(int phi) { setPhiPacked(phi); }
136 
138  void setEta(int eta);
139 
141  inline void setFineEtaBit() { setFineHalo(true); }
142 
144  inline void setPt(int pt) { setPtPacked(pt); }
145 
147  inline void setCharge(int charge) {
149  setChargeValid(true);
150  }
151 
153  inline void setQuality(unsigned int quality) { setQualityPacked(quality); }
154 
157 
159  void setTSphi(const std::vector<const L1MuDTTrackSegPhi*>& tsList);
160 
162  void setTSeta(const std::vector<const L1MuDTTrackSegEta*>& tsList);
163 
166 
168  bool operator==(const L1MuDTTrack&) const;
169 
171  bool operator!=(const L1MuDTTrack&) const;
172 
174  void print() const override;
175 
177  friend std::ostream& operator<<(std::ostream&, const L1MuDTTrack&);
178 
180  static bool rank(const L1MuDTTrack* first, const L1MuDTTrack* second) {
181  unsigned short int rank_f = 0; // rank of first
182  unsigned short int rank_s = 0; // rank of second
183  if (first)
184  rank_f = 10 * first->pt() + first->quality();
185  if (second)
186  rank_s = 10 * second->pt() + second->quality();
187  return rank_f > rank_s;
188  }
189 
190 private:
191  L1MuDTSecProcId m_spid; // which SP found the track
193  bool m_empty;
195 
197  std::vector<L1MuDTTrackSegPhi> m_tsphiList;
198  std::vector<L1MuDTTrackSegEta> m_tsetaList;
199 };
200 
201 #endif
unsigned short station(int stat) const
get address of a given station [1-4]
void setFineEtaBit()
set fine eta bit
Definition: L1MuDTTrack.h:141
void print() const override
print parameters of muon candidate
Definition: L1MuDTTrack.cc:247
std::vector< L1MuDTTrackSegEta > m_tsetaList
Definition: L1MuDTTrack.h:198
L1MuDTAddressArray m_addArray
Definition: L1MuDTTrack.h:196
~L1MuDTTrack() override
destructor
Definition: L1MuDTTrack.cc:93
std::string name() const
get name of object
Definition: L1MuDTTrack.h:63
void setPt(int pt)
set pt-code of muon candidate
Definition: L1MuDTTrack.h:144
unsigned int eta() const
get eta-code (6 bits)
Definition: L1MuDTTrack.h:72
unsigned pt_packed() const
return pt packed as in hardware
unsigned int pt() const
get pt-code (5 bits)
Definition: L1MuDTTrack.h:66
int numberOfTSeta() const
return number of eta track segments used to form the muon candidate
Definition: L1MuDTTrack.h:99
const L1MuDTTrackSegEta & getStartTSeta() const
return start eta track segment of muon candidate
Definition: L1MuDTTrack.cc:135
unsigned int quality() const
return quality
static bool rank(const L1MuDTTrack *first, const L1MuDTTrack *second)
define a rank for muon candidates
Definition: L1MuDTTrack.h:180
L1MuDTAddressArray address() const
get address-array for this muon candidate
Definition: L1MuDTTrack.h:90
void setTSeta(const std::vector< const L1MuDTTrackSegEta *> &tsList)
set eta track segments used to form the muon candidate
Definition: L1MuDTTrack.cc:158
int numberOfTSphi() const
return number of phi track segments used to form the muon candidate
Definition: L1MuDTTrack.h:96
const L1MuDTTrackSegPhi & getEndTSphi() const
return end phi track segment of muon candidate
Definition: L1MuDTTrack.cc:130
bool fineEtaBit() const
get fine eta bit
Definition: L1MuDTTrack.h:75
const L1MuDTTrackSegEta & getEndTSeta() const
return end eta track segment of muon candidate
Definition: L1MuDTTrack.cc:140
void setTC(TrackClass tc)
set track-class of muon candidate
Definition: L1MuDTTrack.h:132
friend std::ostream & operator<<(std::ostream &, const L1MuDTTrack &)
output stream operator
unsigned phi_packed() const
return phi packed as in hardware
void setChargeValue(int charge)
Set Charge Value: -1, 1.
void setAddresses(const L1MuDTAddressArray &addr)
set relative addresses of muon candidate
Definition: L1MuDTTrack.h:156
void enable()
enable muon candidate
Definition: L1MuDTTrack.h:120
std::string m_name
Definition: L1MuDTTrack.h:192
L1MuDTTrack & operator=(const L1MuDTTrack &)
assignment operator
Definition: L1MuDTTrack.cc:171
void setEta(int eta)
set eta-code of muon candidate
Definition: L1MuDTTrack.cc:114
U second(std::pair< T, U > const &p)
void reset() override
reset muon candidate
Definition: L1MuDTTrack.cc:102
unsigned int phi() const
get phi-code (8 bits)
Definition: L1MuDTTrack.h:69
void setTSphi(const std::vector< const L1MuDTTrackSegPhi *> &tsList)
set phi track segments used to form the muon candidate
Definition: L1MuDTTrack.cc:145
const std::vector< L1MuDTTrackSegPhi > & getTSphi() const
return all phi track segments of the muon candidate
Definition: L1MuDTTrack.h:102
const std::vector< L1MuDTTrackSegEta > & getTSeta() const
return all eta track segments of the muon candidate
Definition: L1MuDTTrack.h:111
void setQuality(unsigned int quality)
set quality of muon candidate
Definition: L1MuDTTrack.h:153
unsigned eta_packed() const
return eta packed as in hardware
void setType(unsigned type)
Set Type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC.
std::vector< L1MuDTTrackSegPhi > m_tsphiList
Definition: L1MuDTTrack.h:197
int chargeValue() const
get charge
void disable()
disable muon candidate
Definition: L1MuDTTrack.h:126
bool isFineHalo() const
is it fine (DT) / halo (CSC) ?
void setPtPacked(unsigned pt)
Set Pt: 0..31.
L1MuDTTrack()
default constructor
Definition: L1MuDTTrack.cc:48
bool operator!=(const L1MuDTTrack &) const
unequal operator
Definition: L1MuDTTrack.cc:218
int charge() const
get charge (1 bit)
Definition: L1MuDTTrack.h:78
void setPhiPacked(unsigned phi)
Set Phi: 0..143.
bool empty() const override
is it an empty muon candidate?
Definition: L1MuDTTrack.h:84
void setQualityPacked(unsigned qual)
Set Quality: 0..7.
const L1MuDTTrackSegPhi & getStartTSphi() const
return start phi track segment of muon candidate
Definition: L1MuDTTrack.cc:125
int address(int stat) const
get relative address of a given station
Definition: L1MuDTTrack.h:93
const L1MuDTSecProcId & spid() const
return Sector Processor in which the muon candidate was found
Definition: L1MuDTTrack.h:87
bool operator==(const L1MuDTTrack &) const
equal operator
Definition: L1MuDTTrack.cc:189
void setChargeValid(bool valid)
Set Charge Valid.
TrackClass tc() const
get track-class
Definition: L1MuDTTrack.h:81
void setFineHalo(bool fh)
Set Fine / Halo.
TrackClass m_tc
Definition: L1MuDTTrack.h:194
void setPhi(int phi)
set phi-code of muon candidate
Definition: L1MuDTTrack.h:135
void setName(std::string name)
set name of object
Definition: L1MuDTTrack.h:129
void setCharge(int charge)
set charge of muon candidate
Definition: L1MuDTTrack.h:147
L1MuDTSecProcId m_spid
Definition: L1MuDTTrack.h:191