ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/L1TriggerDPG/interface/L1AnalysisCSCTFDataFormat.h
Revision: 1.2
Committed: Fri Aug 20 07:18:59 2010 UTC (14 years, 8 months ago) by econte
Content type: text/plain
Branch: MAIN
CVS Tags: hi44X_02, L1CorrectionsStudy_13_09_11, CMSSW_4_2_3_patch2, L1TriggerAnalysis_3_6_1patch4
Changes since 1.1: +36 -0 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #ifndef __L1Analysis_L1AnalysisCSCTFDataFormat_H__
2 #define __L1Analysis_L1AnalysisCSCTFDataFormat_H__
3
4 //-------------------------------------------------------------------------------
5 // Created 08/03/2010 - E. Conte, A.-C. Le Bihan
6 //
7 //
8 // Original code : UserCode/L1TriggerDPG/L1NtupleProducer - Gian Piero Di Giovanni
9 //-------------------------------------------------------------------------------
10 #include "TMatrixD.h"
11 #include <vector>
12
13 namespace L1Analysis
14 {
15 struct L1AnalysisCSCTFDataFormat
16 {
17 L1AnalysisCSCTFDataFormat(){Reset();};
18 ~L1AnalysisCSCTFDataFormat(){};
19
20 static const int MAXCSCTFTR = 60;
21 static const int MAXCSCTFLCTSTR = 4;
22
23 void Reset()
24 {
25 trSize = 0;
26 trEndcap.clear();
27 trSector.clear();
28
29 trBx.clear();
30
31 // if set to 1 track has lct from the station
32 trME1ID.clear();
33 trME2ID.clear();
34 trME3ID.clear();
35 trME4ID.clear();
36 trMB1ID.clear();
37
38 trME1TBin.clear();
39 trME2TBin.clear();
40 trME3TBin.clear();
41 trME4TBin.clear();
42 trMB1TBin.clear();
43
44 trOutputLink.clear();
45
46 // some input of the PT LUTs
47 trCharge.clear();
48 trChargeValid.clear();
49 trForR.clear();
50 trPhi23.clear();
51 trPhi12.clear();
52 trPhiSign.clear();
53
54 // in bits...
55 trEtaBit.clear();
56 trPhiBit.clear();
57 trPtBit.clear();
58
59 // ... converted
60 trEta.clear();
61 trPhi.clear();
62 trPhi_02PI.clear();
63 trPt.clear();
64
65 // + useful information
66 trMode.clear();
67 trQuality.clear();
68
69 //----------------------------------------------------------------------
70 // LCT (STUBS FORMING THE TRACK)
71 //----------------------------------------------------------------------
72 trNumLCTs.clear();
73
74 trLctEndcap.Clear();
75 trLctSector.Clear();
76 trLctSubSector.Clear();
77 trLctBx.Clear();
78 trLctBx0.Clear();
79
80 trLctStation.Clear();
81 trLctRing.Clear();
82 trLctChamber.Clear();
83 trLctTriggerCSCID.Clear();
84 trLctFpga.Clear();
85
86 trLctlocalPhi.Clear();
87 trLctglobalPhi.Clear();
88 trLctglobalEta.Clear();
89
90 trLctstripNum.Clear();
91 trLctwireGroup.Clear();
92
93 trLctEndcap.Clear();
94 trLctSector.Clear();
95 trLctSubSector.Clear();
96 trLctBx.Clear();
97 trLctBx0.Clear();
98
99 trLctStation.Clear();
100 trLctRing.Clear();
101 trLctChamber.Clear();
102 trLctTriggerCSCID.Clear();
103 trLctFpga.Clear();
104
105 trLctlocalPhi.Clear();
106 trLctglobalPhi.Clear();
107 trLctglobalEta.Clear();
108
109 trLctstripNum.Clear();
110 trLctwireGroup.Clear();
111
112 //---------------------
113
114 trLctEndcap.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
115 trLctSector.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
116 trLctSubSector.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
117 trLctBx.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
118 trLctBx0.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
119
120 trLctStation.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
121 trLctRing.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
122 trLctChamber.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
123 trLctTriggerCSCID.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
124 trLctFpga.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
125
126 trLctlocalPhi.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
127 trLctglobalPhi.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
128 trLctglobalEta.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
129
130 trLctstripNum.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
131 trLctwireGroup.ResizeTo(MAXCSCTFTR,MAXCSCTFLCTSTR);
132
133 //----------------------------------------------------------------------
134 // ALL LCT
135 //----------------------------------------------------------------------
136 lctSize = 0;
137 lctEndcap.clear();
138 lctSector.clear();
139 lctSubSector.clear();
140 lctBx.clear();
141 lctBx0.clear();
142
143 lctStation.clear();
144 lctRing.clear();
145 lctChamber.clear();
146 lctTriggerCSCID.clear();
147 lctFpga.clear();
148
149 // note: the SPs return them in bits
150 lctlocalPhi.clear();
151 lctglobalPhi.clear();
152 lctglobalEta.clear();
153
154 lctstripNum.clear();
155 lctwireGroup.clear();
156
157 //---------------------------------------------------------------------------
158 // BASIC CSCTF information
159 //---------------------------------------------------------------------------
160 nsp = 0; // num of SPs active in the event
161 stSPslot.clear();
162 stL1A_BXN.clear();
163 stTrkCounter.clear();
164 stOrbCounter.clear();
165
166 dtSize=0;
167 dtCAL.clear();
168 dtFLAG.clear();
169 dtBXN.clear();
170 dtSector.clear();
171 dtSubSector.clear();
172 dtBX0.clear();
173 dtPhiBend.clear();
174 dtQuality.clear();
175 dtPhiPacked.clear();
176 }
177
178 //----------------------------------------------------------------------
179 // TRACKS
180 //----------------------------------------------------------------------
181 // csctf track candidates
182 int trSize;
183 std::vector<int> trEndcap;
184 std::vector<int> trSector;
185
186 std::vector<int> trBx;
187
188 // if set to 1 track has lct from the station
189 std::vector<int> trME1ID;
190 std::vector<int> trME2ID;
191 std::vector<int> trME3ID;
192 std::vector<int> trME4ID;
193 std::vector<int> trMB1ID;
194
195 std::vector<int> trME1TBin;
196 std::vector<int> trME2TBin;
197 std::vector<int> trME3TBin;
198 std::vector<int> trME4TBin;
199 std::vector<int> trMB1TBin;
200
201 std::vector<int> trOutputLink;
202
203 // some input of the PT LUTs
204 std::vector<int> trCharge;
205 std::vector<int> trChargeValid;
206 std::vector<int> trForR;
207 std::vector<int> trPhi23;
208 std::vector<int> trPhi12;
209 std::vector<int> trPhiSign;
210
211 // in bits...
212 std::vector<int> trEtaBit;
213 std::vector<int> trPhiBit;
214 std::vector<int> trPtBit;
215
216 // ... converted
217 std::vector<float> trEta;
218 std::vector<float> trPhi;
219 std::vector<float> trPhi_02PI;
220 std::vector<float> trPt;
221
222 // + useful information
223 std::vector<int> trMode;
224 std::vector<int> trQuality;
225
226 //----------------------------------------------------------------------
227 // LCT (STUBS FORMING THE TRACK)
228 //----------------------------------------------------------------------
229 std::vector<int> trNumLCTs; // it contains the number of LCT forming a track
230
231 TMatrixD trLctEndcap;
232 TMatrixD trLctSector;
233 TMatrixD trLctSubSector;
234 TMatrixD trLctBx;
235 TMatrixD trLctBx0;
236
237 TMatrixD trLctStation;
238 TMatrixD trLctRing;
239 TMatrixD trLctChamber;
240 TMatrixD trLctTriggerCSCID;
241 TMatrixD trLctFpga;
242
243 // note: the SPs return them in bits
244 TMatrixD trLctlocalPhi;
245 TMatrixD trLctglobalPhi;
246 TMatrixD trLctglobalEta;
247
248 TMatrixD trLctstripNum;
249 TMatrixD trLctwireGroup;
250
251 //----------------------------------------------------------------------
252 // ALL LCT
253 //----------------------------------------------------------------------
254 int lctSize;
255 std::vector<int> lctEndcap;
256 std::vector<int> lctSector;
257
258 std::vector<int> lctSubSector;
259 std::vector<int> lctBx;
260 std::vector<int> lctBx0;
261 std::vector<int> lctStation;
262 std::vector<int> lctRing;
263 std::vector<int> lctChamber;
264 std::vector<int> lctTriggerCSCID;
265 std::vector<int> lctFpga;
266
267 // note: the SPs return them in bits
268 std::vector<int> lctlocalPhi;
269 std::vector<int> lctglobalPhi;
270 std::vector<int> lctglobalEta;
271 std::vector<int> lctstripNum;
272 std::vector<int> lctwireGroup;
273
274 //---------------------------------------------------------------------------
275 // BASIC CSCTF information
276 //---------------------------------------------------------------------------
277 int nsp; // num of SPs active in the event
278 std::vector<int> stSPslot;
279 std::vector<int> stL1A_BXN;
280 std::vector<unsigned long int> stTrkCounter;
281 std::vector<unsigned long int> stOrbCounter;
282
283 //DT Stub Information
284 int dtSize;
285 std::vector<int> dtCAL;
286 std::vector<int> dtFLAG;
287 std::vector<int> dtBXN;
288 std::vector<int> dtSector;
289 std::vector<int> dtSubSector;
290 std::vector<int> dtBX0;
291 std::vector<int> dtPhiBend;
292 std::vector<int> dtQuality;
293 std::vector<int> dtPhiPacked;
294
295 };
296 }
297 #endif
298
299