1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
//-------------------------------------------------
//
/** \class L1MuKBMCombinedStub
*
* Class that combines TwinMux Phi and eta segments to a common segment to be used
* by the Kalman MuonTrack Finder
*
*
* M.Bachtis (UCLA)
*/
//
//--------------------------------------------------
#ifndef L1MUKBM_COMBINED_STUB_H
#define L1MUKBM_COMBINED_STUB_H
//---------------
// C++ Headers --
//---------------
#include <iosfwd>
#include <vector>
//----------------------
// Base Class Headers --
//----------------------
//------------------------------------
// Collaborating Class Declarations --
//------------------------------------
#include "DataFormats/L1TMuon/interface/BMTF/L1MuBMTrackSegLoc.h"
#include "DataFormats/L1Trigger/interface/BXVector.h"
#include "DataFormats/Common/interface/Ref.h"
// ---------------------
// -- Class Interface --
// ---------------------
class L1MuKBMTCombinedStub;
typedef std::vector<L1MuKBMTCombinedStub> L1MuKBMTCombinedStubCollection;
typedef edm::Ref<L1MuKBMTCombinedStubCollection> L1MuKBMTCombinedStubRef;
typedef std::vector<edm::Ref<L1MuKBMTCombinedStubCollection> > L1MuKBMTCombinedStubRefVector;
class L1MuKBMTCombinedStub {
public:
/// default constructor
L1MuKBMTCombinedStub();
/// constructor
L1MuKBMTCombinedStub(int wheel,
int sector,
int station,
int phi,
int phiB,
bool tag,
int bx,
int quality,
int eta1 = 0,
int eta2 = 0,
int qeta1 = -1,
int qeta2 = -1);
/// copy constructor
L1MuKBMTCombinedStub(const L1MuKBMTCombinedStub&) = default;
//destructor
~L1MuKBMTCombinedStub();
/// return wheel
inline int whNum() const { return whNum_; }
/// return sector
inline int scNum() const { return scNum_; }
/// return station
inline int stNum() const { return stNum_; }
/// return phi
inline int phi() const { return phi_; }
/// return phib
inline int phiB() const { return phiB_; }
/// return quality code
inline int quality() const { return quality_; }
/// return tag (second TS tag)
inline int tag() const { return tag_; }
/// return bunch crossing
inline int bxNum() const { return bxNum_; }
/// return first eta
inline int eta1() const { return eta1_; }
/// return second eta
inline int eta2() const { return eta2_; }
/// return first eta quality
inline int qeta1() const { return qeta1_; }
/// return second eta quality
inline int qeta2() const { return qeta2_; }
/// assignment operator
L1MuKBMTCombinedStub& operator=(const L1MuKBMTCombinedStub&);
/// equal operator
bool operator==(const L1MuKBMTCombinedStub&) const;
/// unequal operator
bool operator!=(const L1MuKBMTCombinedStub&) const;
/// overload output stream operator for phi track segments
friend std::ostream& operator<<(std::ostream&, const L1MuKBMTCombinedStub&);
private:
int whNum_;
int scNum_;
int stNum_;
int phi_; // 12 bits
int phiB_; // 10 bits
bool tag_; // tag for second TS (of chamber)
int quality_; // 3 bits
int bxNum_; // bunch crossing identifier
int eta1_; //fine eta 1
int eta2_; //fine eta 2
int qeta1_; //fine eta quality 1
int qeta2_; //fine eta quality 2
};
#endif
|