CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CSCPatternBank.cc
Go to the documentation of this file.
2 
4  //Keywire offset for ME1 and ME2
5  {-2, -1, 0, 1, 2},
6 
7  //Keywire offset for ME3 and ME4
8  {2, 1, 0, -1, -2}};
9 
11  // Accelerator pattern
12  // For beam-halo muons or displaced muons from long-lived particles
13  {{0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}},
14 
15  // Collision pattern A
16  {{1, 1, 1, 0, 0}, {0, 1, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 1, 0}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}},
17 
18  // Collision pattern B
19  {{1, 1, 1, 0, 0}, {0, 1, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 1, 0}, {0, 0, 1, 1, 1}, {0, 0, 1, 1, 1}}};
20 
22  // Accelerator pattern
23  {{0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}},
24 
25  // Collision pattern A
26  {{0, 1, 1, 0, 0}, {0, 1, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 1, 0}, {0, 0, 1, 1, 0}},
27 
28  // Collision pattern B
29  {{0, 1, 1, 0, 0}, {0, 1, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 0, 0}, {0, 0, 1, 1, 0}, {0, 0, 1, 1, 0}}};
30 
31 double CSCPatternBank::getLegacyPosition(int pattern) {
32  double PositionList[CSCConstants::NUM_CLCT_PATTERNS] = {
33  0.0, 0.0, -0.60, 0.60, -0.64, 0.64, -0.23, 0.23, -0.21, 0.21, 0.0}; // offset in the strip number for each pattern
34 
35  return PositionList[pattern];
36 }
37 
39  -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5};
40 
42  // pid=0: no pattern found
43  {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
44  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
45  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
46  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
47  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
48  {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0}},
49  // pid=1: layer-OR trigger
50  {
51  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
52  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
53  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
54  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
55  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
56  {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, 11},
57  },
58  // pid=2: left-bending (large)
59  {
60  // 0 1 2 3 4 5 6 7 8 9 A
61  /*L1*/ {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1},
62  /*L2*/ {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
63  /*L3*/ {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
64  /*L4*/ {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
65  /*L5*/ {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
66  /*L6*/ {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11},
67  },
68  // pid=3: right-bending (large)
69  {
70  {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
71  {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
72  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
73  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
74  {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
75  {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 11},
76  },
77  // pid=4: left-bending (medium)
78  {
79  {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
80  {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
81  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
82  {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
83  {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
84  {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 9},
85  },
86  // pid=5: right-bending (medium)
87  {
88  {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
89  {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
90  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
91  {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
92  {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
93  {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 9},
94  },
95  // pid=6: left-bending (medium)
96  {
97  {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
98  {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
99  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
100  {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
101  {0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
102  {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 7},
103  },
104  // pid=7: right-bending (medium)
105  {
106  {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0},
107  {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
108  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
109  {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
110  {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0},
111  {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 7},
112  },
113  // pid=8: left-bending (small)
114  {
115  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
116  {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
117  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
118  {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
119  {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
120  {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 5},
121  },
122  // pid=9: right-bending (small)
123  {
124  {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
125  {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0},
126  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
127  {0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
128  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
129  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 5},
130  },
131  // pid=A: straight-through
132  {{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
133  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
134  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
135  {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
136  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
137  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 3}}
138  // pid's=B-F are not yet defined
139 };
140 
142  // pid 0
143  {
144  {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1},
145  {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
146  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
147  {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
148  {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
149  {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11},
150  },
151  // pid 1
152  {
153  {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
154  {0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
155  {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
156  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
157  {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0},
158  {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 11},
159  },
160  // pid 2
161  {
162  {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0},
163  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
164  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
165  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
166  {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
167  {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 7},
168  },
169  // pid 3
170  {
171  {0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0},
172  {0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0},
173  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
174  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
175  {0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0},
176  {0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 7},
177  },
178  // pid 4
179  {{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
180  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
181  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
182  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
183  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
184  {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 3}}};
static const int alct_keywire_offset_[2][CSCConstants::ALCT_PATTERN_WIDTH]
std::vector< LCTPattern > LCTPatterns
static const LCTPatterns clct_pattern_run3_
static const int clct_pattern_offset_[CSCConstants::CLCT_PATTERN_WIDTH]
static const LCTPatterns alct_pattern_r1_
static const LCTPatterns clct_pattern_legacy_
static double getLegacyPosition(int pattern)
static const LCTPatterns alct_pattern_legacy_