CMS 3D CMS Logo

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