CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
DTTFFEDReader Class Reference

#include <DTTFFEDReader.h>

Inheritance diagram for DTTFFEDReader:
edm::stream::EDProducer<>

Public Member Functions

 DTTFFEDReader (const edm::ParameterSet &pset)
 Constructor. More...
 
bool fillRawData (edm::Event &e, L1MuDTChambPhContainer::Phi_Container &phi_data, L1MuDTChambThContainer::The_Container &the_data, L1MuDTTrackContainer::TrackContainer &tra_data)
 Generate and fill FED raw data for a full event. More...
 
void produce (edm::Event &e, const edm::EventSetup &c) override
 Produce digis out of raw data. More...
 
 ~DTTFFEDReader () override
 Destructor. More...
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Member Functions

void analyse (edm::Event &e)
 
int bxNr (int channel)
 
int channel (int wheel, int sector, int bx)
 
void clear ()
 
edm::InputTag getDTTFInputTag ()
 
const L1MuDTTrackContainer::TrackContainerk_data ()
 
void match ()
 
const L1MuDTChambPhContainer::Phi_Containerp_data ()
 
void process (edm::Event &e)
 
int sector (int channel)
 
const L1MuDTChambThContainer::The_Containert_data ()
 
int wheel (int channel)
 

Private Attributes

edm::InputTag DTTFInputTag
 
L1MuDTTrackContainer::TrackContainer dtTracks
 
unsigned int efTrack [3][12][6][2]
 
unsigned int etTrack [3][12][6][2]
 
L1MuDTChambPhContainer::Phi_Container phiSegments
 
edm::EDGetTokenT< FEDRawDataCollectionRaw_token
 
L1MuDTChambThContainer::The_Container theSegments
 
bool verbose_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

L1 DT Track Finder Raw-to-Digi

J. Troconiz UAM Madrid E. Delmeire UAM Madrid

Definition at line 31 of file DTTFFEDReader.h.

Constructor & Destructor Documentation

◆ DTTFFEDReader()

DTTFFEDReader::DTTFFEDReader ( const edm::ParameterSet pset)

Constructor.

Definition at line 26 of file DTTFFEDReader.cc.

26  {
27  produces<L1MuDTChambPhContainer>();
28  produces<L1MuDTChambThContainer>();
29  produces<L1MuDTTrackContainer>("DATA");
30 
31  DTTFInputTag = pset.getParameter<edm::InputTag>("DTTF_FED_Source");
32 
33  verbose_ = pset.getUntrackedParameter<bool>("verbose", false);
34 
35  Raw_token = consumes<FEDRawDataCollection>(DTTFInputTag);
36 }

References muonDTDigis_cfi::pset.

◆ ~DTTFFEDReader()

DTTFFEDReader::~DTTFFEDReader ( )
override

Destructor.

Definition at line 38 of file DTTFFEDReader.cc.

38 {}

Member Function Documentation

◆ analyse()

void DTTFFEDReader::analyse ( edm::Event e)
private

Definition at line 77 of file DTTFFEDReader.cc.

77  {
78  clear();
79  process(e);
80  match();
81  return;
82 }

References clear(), MillePedeFileConverter_cfg::e, match(), and LaserDQM_cfg::process.

◆ bxNr()

int DTTFFEDReader::bxNr ( int  channel)
private

Definition at line 491 of file DTTFFEDReader.cc.

491  {
492  int myChannel = channel;
493 
494  if (myChannel > 127)
495  myChannel -= 2;
496 
497  if (myChannel < 0 || myChannel > 251) {
498  return -999;
499  }
500 
501  int myBx = 1 - (myChannel % 3);
502 
503  return myBx;
504 }

◆ channel()

int DTTFFEDReader::channel ( int  wheel,
int  sector,
int  bx 
)
private

Definition at line 465 of file DTTFFEDReader.cc.

465  {
466  // wheel : -3 -2 -1 +1 +2 +3 <=> PHTF's : N2, N1, N0, P0, P1, P2
467  // 0 <=> ETTF
468  // sector : 0 -> 11
469  // bx : -1 -> +1
470 
471  int myChannel = 255;
472 
473  if (abs(bx) > 1) {
474  return myChannel;
475  }
476  if (sector < 0 || sector > 11) {
477  return myChannel;
478  }
479  if (abs(wheel) > 3) {
480  return myChannel;
481  }
482 
483  myChannel = sector * 21 + wheel * 3 - bx + 10;
484 
485  if (myChannel > 125)
486  myChannel += 2;
487 
488  return myChannel;
489 }

References funct::abs(), l1GtPatternGenerator_cfi::bx, and makeMuonMisalignmentScenario::wheel.

◆ clear()

void DTTFFEDReader::clear ( void  )
private

Definition at line 446 of file DTTFFEDReader.cc.

446  {
447  phiSegments.clear();
448  theSegments.clear();
449  dtTracks.clear();
450 
451  for (int i = 0; i < 3; i++) {
452  for (int j = 0; j < 12; j++) {
453  for (int k = 0; k < 6; k++) {
454  for (int l = 0; l < 2; l++) {
455  etTrack[i][j][k][l] = 0;
456  efTrack[i][j][k][l] = 0;
457  }
458  }
459  }
460  }
461 
462  return;
463 }

References mps_fire::i, dqmiolumiharvest::j, dqmdumpme::k, and cmsLHEtoEOSManager::l.

◆ fillRawData()

bool DTTFFEDReader::fillRawData ( edm::Event e,
L1MuDTChambPhContainer::Phi_Container phi_data,
L1MuDTChambThContainer::The_Container the_data,
L1MuDTTrackContainer::TrackContainer tra_data 
)

Generate and fill FED raw data for a full event.

Definition at line 61 of file DTTFFEDReader.cc.

64  {
65  analyse(e);
66 
67  phi_data = p_data();
68  the_data = t_data();
69  tra_data = k_data();
70 
71  return true;
72 }

References MillePedeFileConverter_cfg::e.

◆ getDTTFInputTag()

edm::InputTag DTTFFEDReader::getDTTFInputTag ( )
inlineprivate

Definition at line 94 of file DTTFFEDReader.h.

94 { return DTTFInputTag; }

References DTTFInputTag.

◆ k_data()

const L1MuDTTrackContainer::TrackContainer & DTTFFEDReader::k_data ( )
private

Definition at line 444 of file DTTFFEDReader.cc.

444 { return dtTracks; }

◆ match()

void DTTFFEDReader::match ( )
private

Definition at line 423 of file DTTFFEDReader.cc.

423  {
424  for (L1MuDTTrackContainer::TrackIterator i = dtTracks.begin(); i != dtTracks.end(); i++) {
425  int bxTh = i->bx() + 1;
426  int sectorTh = i->scNum();
427  int wheelTh = i->whNum() + 3;
428  if (wheelTh > 3)
429  wheelTh -= 1;
430  int muonTh = i->TrkTag();
431 
432  i->setEtaPacked(etTrack[bxTh][sectorTh][wheelTh][muonTh]);
433  i->setFineHaloPacked(efTrack[bxTh][sectorTh][wheelTh][muonTh]);
434  }
435 
436  return;
437 }

References mps_fire::i.

◆ p_data()

const L1MuDTChambPhContainer::Phi_Container & DTTFFEDReader::p_data ( )
private

Definition at line 440 of file DTTFFEDReader.cc.

440 { return phiSegments; }

◆ process()

void DTTFFEDReader::process ( edm::Event e)
private

Definition at line 85 of file DTTFFEDReader.cc.

85  {
86  // Container
87  vector<int> DTTFWordContainer;
88  vector<int>::iterator DTTFiterator;
89 
90  // Header constituents
91  int BOEevTy, DTTFId;
92 
93  // DTTF Payload constituents
94  int DTTFWord;
95  int DTTFChan, bitsID;
96  int addr1[2] = {3, 3};
97  int addr2[2] = {15, 15};
98  int addr3[2] = {15, 15};
99  int addr4[2] = {15, 15};
100 
101  // Trailer constituents
102  int evtLgth, CRC;
103 
104  //--> Header
105 
107  e.getByToken(Raw_token, data);
108  FEDRawData dttfdata = data->FEDData(0x030C);
109  if (dttfdata.size() == 0)
110  return;
111 
112  int *dataWord1 = new int;
113  int *dataWord2 = new int;
114  unsigned char *LineFED = dttfdata.data();
115  *dataWord2 = *((int *)LineFED);
116  LineFED += 4;
117  *dataWord1 = *((int *)LineFED);
118  int lines = 1; // already counting header
119 
120  BOEevTy = ((*dataWord1) & 0xFF000000) >> 24; // positions 57 ->64
121  DTTFId = ((*dataWord2) & 0x000FFF00) >> 8; // positions 9 ->20
122 
123  if ((BOEevTy != 0x50) || (DTTFId != 0x030C)) {
124  if (verbose_)
125  edm::LogWarning("dttf_unpacker") << "Not a DTTF header " << hex << *dataWord1;
126  delete dataWord1;
127  delete dataWord2;
128  return;
129  }
130 
131  int newCRC = 0xFFFF;
132  dt_crc::calcCRC(*dataWord1, *dataWord2, newCRC);
133 
134  //--> DTTF data
135 
136  LineFED += 4;
137  *dataWord2 = *((int *)LineFED);
138  LineFED += 4;
139  *dataWord1 = *((int *)LineFED);
140  int chkEOE = ((*dataWord1) & 0xFFF00000) >> 20;
141  lines++;
142 
143  while (chkEOE != 0xA00) {
144  dt_crc::calcCRC(*dataWord1, *dataWord2, newCRC);
145 
146  DTTFWord = *dataWord1;
147  DTTFWordContainer.push_back(DTTFWord);
148  DTTFWord = *dataWord2;
149  DTTFWordContainer.push_back(DTTFWord);
150 
151  LineFED += 4;
152  *dataWord2 = *((int *)LineFED);
153  LineFED += 4;
154  *dataWord1 = *((int *)LineFED);
155  chkEOE = ((*dataWord1) & 0xFFF00000) >> 20;
156  lines++;
157 
158  if (lines > 3026) {
159  if (verbose_)
160  edm::LogWarning("dttf_unpacker") << "Warning : number of DTTF lines > 3026 "; // 3026 = 1(header) +
161  // 3024(max # PHTF-ETTF
162  // 64 bits words) +
163  // 1(trailer)
164  delete dataWord1;
165  delete dataWord2;
166  return;
167  }
168 
169  } // end while-Data loop
170 
171  //--> Trailer
172 
173  evtLgth = ((*dataWord1) & 0x00FFFFFF); // positions 33 ->56
174  CRC = ((*dataWord2) & 0xFFFF0000) >> 16; // positions 17 ->32
175 
176  dt_crc::calcCRC(*dataWord1, (*dataWord2) & 0xFFFF, newCRC);
177 
178  if (newCRC != CRC) {
179  if (verbose_)
180  edm::LogWarning("dttf_unpacker") << "Calculated CRC " << hex << newCRC << " differs from CRC in trailer " << hex
181  << CRC;
182  delete dataWord1;
183  delete dataWord2;
184  return;
185  }
186 
187  if (lines != evtLgth) {
188  if (verbose_)
189  edm::LogWarning("dttf_unpacker") << "Number of words read != event length " << dec << lines << " " << evtLgth;
190  delete dataWord1;
191  delete dataWord2;
192  return;
193  }
194 
195  // --> analyse event
196 
197  for (DTTFiterator = DTTFWordContainer.begin(); DTTFiterator != DTTFWordContainer.end(); DTTFiterator++) {
198  DTTFChan = ((*DTTFiterator) & 0xFF000000) >> 24;
199  DTTFiterator++;
200  bitsID = ((*DTTFiterator) & 0xF0000000) >> 28;
201 
202  int bxID = bxNr(DTTFChan);
203  if (bxID == -999)
204  continue;
205  int wheelID = wheel(DTTFChan);
206  if (wheelID == -999)
207  continue;
208  int sectorID = sector(DTTFChan);
209  if (sectorID == -999)
210  continue;
211 
212  // Input
213  if (wheelID != 0 && bitsID <= 0x9) {
214  int wheelPh = (abs(wheelID) - 1) * wheelID / abs(wheelID);
215  int stationID = 0;
216  int ra = 0;
217  int ba = 0;
218  int tsqual = 0;
219  int ts2tag = 0;
220 
221  if ((bitsID >> 1) == 0) {
222  stationID = 1;
223  }
224  if ((bitsID >> 1) == 1) {
225  stationID = 2;
226  }
227  if ((bitsID >> 1) == 4) {
228  stationID = 3;
229  }
230  if ((bitsID >> 1) == 2) {
231  stationID = 4;
232  }
233 
234  if (stationID != 3) {
235  ts2tag = (bitsID)&0x1;
236  tsqual = (~(*DTTFiterator) & 0x07) - 1;
237  ba = (~(*DTTFiterator) & 0x1FF8) >> 3;
238  if (ba > 0x1FF)
239  ba -= 0x400;
240  ra = (~(*DTTFiterator) & 0x1FFE000) >> 13;
241  if (ra > 0x7FF)
242  ra -= 0x1000;
243  } else {
244  ts2tag = (bitsID)&0x1;
245  tsqual = (~(*DTTFiterator) & 0x07) - 1;
246  ra = (~(*DTTFiterator) & 0x7FF8) >> 3;
247  if (ra > 0x7FF)
248  ra -= 0x1000;
249  }
250 
251  if (tsqual != 7 && wheelID != -1) {
252  phiSegments.push_back(
253  L1MuDTChambPhDigi(bxID + ts2tag, wheelPh, sectorID, stationID, ra, ba, tsqual, ts2tag, 0));
254  }
255  }
256  // Input
257 
258  // Input
259  if (wheelID == 0 && bitsID <= 0x4) {
260  int wheelTh = bitsID - 2;
261 
262  int posALL, posBTI[7];
263 
264  if (wheelTh == -2 || wheelTh == -1 ||
265  (wheelTh == 0 &&
266  (sectorID == 0 || sectorID == 3 || sectorID == 4 || sectorID == 7 || sectorID == 8 || sectorID == 11))) {
267  posALL = ~(*DTTFiterator) & 0x7F;
268  posBTI[0] = ~(*DTTFiterator) & 0x01;
269  posBTI[1] = (~(*DTTFiterator) & 0x02) >> 1;
270  posBTI[2] = (~(*DTTFiterator) & 0x04) >> 2;
271  posBTI[3] = (~(*DTTFiterator) & 0x08) >> 3;
272  posBTI[4] = (~(*DTTFiterator) & 0x10) >> 4;
273  posBTI[5] = (~(*DTTFiterator) & 0x20) >> 5;
274  posBTI[6] = (~(*DTTFiterator) & 0x40) >> 6;
275 
276  if (posALL) {
277  theSegments.push_back(L1MuDTChambThDigi(bxID, wheelTh, sectorID, 1, posBTI));
278  }
279 
280  posALL = ~(*DTTFiterator) & 0x3F80;
281  posBTI[0] = (~(*DTTFiterator) & 0x0080) >> 7;
282  posBTI[1] = (~(*DTTFiterator) & 0x0100) >> 8;
283  posBTI[2] = (~(*DTTFiterator) & 0x0200) >> 9;
284  posBTI[3] = (~(*DTTFiterator) & 0x0400) >> 10;
285  posBTI[4] = (~(*DTTFiterator) & 0x0800) >> 11;
286  posBTI[5] = (~(*DTTFiterator) & 0x1000) >> 12;
287  posBTI[6] = (~(*DTTFiterator) & 0x2000) >> 13;
288 
289  if (posALL) {
290  theSegments.push_back(L1MuDTChambThDigi(bxID, wheelTh, sectorID, 2, posBTI));
291  }
292 
293  posALL = ~(*DTTFiterator) & 0x1FC000;
294  posBTI[0] = (~(*DTTFiterator) & 0x004000) >> 14;
295  posBTI[1] = (~(*DTTFiterator) & 0x008000) >> 15;
296  posBTI[2] = (~(*DTTFiterator) & 0x010000) >> 16;
297  posBTI[3] = (~(*DTTFiterator) & 0x020000) >> 17;
298  posBTI[4] = (~(*DTTFiterator) & 0x040000) >> 18;
299  posBTI[5] = (~(*DTTFiterator) & 0x080000) >> 19;
300  posBTI[6] = (~(*DTTFiterator) & 0x100000) >> 20;
301 
302  if (posALL) {
303  theSegments.push_back(L1MuDTChambThDigi(bxID, wheelTh, sectorID, 3, posBTI));
304  }
305  }
306 
307  else {
308  posALL = ~(*DTTFiterator) & 0x7F;
309  posBTI[6] = ~(*DTTFiterator) & 0x01;
310  posBTI[5] = (~(*DTTFiterator) & 0x02) >> 1;
311  posBTI[4] = (~(*DTTFiterator) & 0x04) >> 2;
312  posBTI[3] = (~(*DTTFiterator) & 0x08) >> 3;
313  posBTI[2] = (~(*DTTFiterator) & 0x10) >> 4;
314  posBTI[1] = (~(*DTTFiterator) & 0x20) >> 5;
315  posBTI[0] = (~(*DTTFiterator) & 0x40) >> 6;
316 
317  if (posALL) {
318  theSegments.push_back(L1MuDTChambThDigi(bxID, wheelTh, sectorID, 1, posBTI));
319  }
320 
321  posALL = ~(*DTTFiterator) & 0x3F80;
322  posBTI[6] = (~(*DTTFiterator) & 0x0080) >> 7;
323  posBTI[5] = (~(*DTTFiterator) & 0x0100) >> 8;
324  posBTI[4] = (~(*DTTFiterator) & 0x0200) >> 9;
325  posBTI[3] = (~(*DTTFiterator) & 0x0400) >> 10;
326  posBTI[2] = (~(*DTTFiterator) & 0x0800) >> 11;
327  posBTI[1] = (~(*DTTFiterator) & 0x1000) >> 12;
328  posBTI[0] = (~(*DTTFiterator) & 0x2000) >> 13;
329 
330  if (posALL) {
331  theSegments.push_back(L1MuDTChambThDigi(bxID, wheelTh, sectorID, 2, posBTI));
332  }
333 
334  posALL = ~(*DTTFiterator) & 0x1FC000;
335  posBTI[6] = (~(*DTTFiterator) & 0x004000) >> 14;
336  posBTI[5] = (~(*DTTFiterator) & 0x008000) >> 15;
337  posBTI[4] = (~(*DTTFiterator) & 0x010000) >> 16;
338  posBTI[3] = (~(*DTTFiterator) & 0x020000) >> 17;
339  posBTI[2] = (~(*DTTFiterator) & 0x040000) >> 18;
340  posBTI[1] = (~(*DTTFiterator) & 0x080000) >> 19;
341  posBTI[0] = (~(*DTTFiterator) & 0x100000) >> 20;
342 
343  if (posALL) {
344  theSegments.push_back(L1MuDTChambThDigi(bxID, wheelTh, sectorID, 3, posBTI));
345  }
346  }
347  }
348  // Input
349 
350  // Addresses
351  if (wheelID != 0 && bitsID >= 0xA && bitsID <= 0xB) {
352  int candID = bitsID - 0xA;
353 
354  addr4[candID] = ((*DTTFiterator) & 0x0F);
355  addr3[candID] = ((*DTTFiterator) & 0xF0) >> 4;
356  addr2[candID] = ((*DTTFiterator) & 0xF00) >> 8;
357  addr1[candID] = ((*DTTFiterator) & 0x3000) >> 12;
358  }
359  // Addresses
360 
361  // Output
362  if (wheelID != 0 && bitsID >= 0xC) {
363  int muonID = 0;
364  int pt = 0;
365  int ch = 0;
366  int phi = 0;
367  int qual = 0;
368 
369  muonID = (bitsID & 0x1);
370  qual = (~(*DTTFiterator) & 0x07);
371  phi = ((*DTTFiterator) & 0x7F8) >> 3;
372  ch = (~(*DTTFiterator) & 0x800) >> 11;
373  pt = (~(*DTTFiterator) & 0x1F000) >> 12;
374 
375  if (qual != 0) {
376  dtTracks.push_back(L1MuDTTrackCand(0,
377  phi,
378  0,
379  pt,
380  ch,
381  1,
382  0,
383  qual,
384  bxID,
385  wheelID,
386  sectorID,
387  muonID,
388  addr1[muonID],
389  addr2[muonID],
390  addr3[muonID],
391  addr4[muonID]));
392  }
393  }
394  // Output
395 
396  // Output
397  if (wheelID == 0 && bitsID >= 0x8) {
398  int wheelTh = bitsID & 0x7;
399 
400  int etaALL;
401 
402  etaALL = ~(*DTTFiterator) & 0x007F;
403  if (etaALL) {
404  etTrack[bxID + 1][sectorID][wheelTh][0] = (*DTTFiterator) & 0x003F;
405  efTrack[bxID + 1][sectorID][wheelTh][0] = (~(*DTTFiterator) & 0x0040) >> 6;
406  }
407 
408  etaALL = (~(*DTTFiterator) & 0x3F80) >> 7;
409  if (etaALL) {
410  etTrack[bxID + 1][sectorID][wheelTh][1] = ((*DTTFiterator) & 0x1F80) >> 7;
411  efTrack[bxID + 1][sectorID][wheelTh][1] = (~(*DTTFiterator) & 0x2000) >> 13;
412  }
413  }
414  // Output
415 
416  } // end for-loop container content
417 
418  delete dataWord1;
419  delete dataWord2;
420  return;
421 }

References funct::abs(), dt_crc::calcCRC(), RawDataTask_cfi::CRC, FEDRawData::data(), std::data(), TauDecayModes::dec, MillePedeFileConverter_cfg::e, createfilelist::int, groupFilesInBlocks::lines, TopDecayID::muonID, DiDispStaMuonMonitor_cfi::pt, FEDRawData::size(), makeMuonMisalignmentScenario::wheel, and testProducerWithPsetDescEmpty_cfi::x1.

◆ produce()

void DTTFFEDReader::produce ( edm::Event e,
const edm::EventSetup c 
)
override

Produce digis out of raw data.

Definition at line 40 of file DTTFFEDReader.cc.

40  {
41  unique_ptr<L1MuDTChambPhContainer> phi_product(new L1MuDTChambPhContainer);
42  unique_ptr<L1MuDTChambThContainer> the_product(new L1MuDTChambThContainer);
43  unique_ptr<L1MuDTTrackContainer> tra_product(new L1MuDTTrackContainer);
44 
48 
49  if (!fillRawData(e, phi_data, the_data, tra_data))
50  return;
51 
52  phi_product->setContainer(phi_data);
53  the_product->setContainer(the_data);
54  tra_product->setContainer(tra_data);
55 
56  e.put(std::move(phi_product));
57  e.put(std::move(the_product));
58  e.put(std::move(tra_product), "DATA");
59 }

References MillePedeFileConverter_cfg::e, and eostools::move().

◆ sector()

int DTTFFEDReader::sector ( int  channel)
private

Definition at line 506 of file DTTFFEDReader.cc.

506  {
507  int myChannel = channel;
508 
509  if (myChannel > 127)
510  myChannel -= 2;
511 
512  if (myChannel < 0 || myChannel > 251) {
513  return -999;
514  }
515 
516  return myChannel / 21;
517 }

Referenced by geometryXMLparser.DTAlignable::index().

◆ t_data()

const L1MuDTChambThContainer::The_Container & DTTFFEDReader::t_data ( )
private

Definition at line 442 of file DTTFFEDReader.cc.

442 { return theSegments; }

◆ wheel()

int DTTFFEDReader::wheel ( int  channel)
private

Definition at line 519 of file DTTFFEDReader.cc.

519  {
520  int myChannel = channel;
521 
522  if (myChannel > 127)
523  myChannel -= 2;
524 
525  if (myChannel < 0 || myChannel > 251) {
526  return -999;
527  }
528 
529  int myWheel = ((myChannel % 21) / 3) - 3;
530 
531  return myWheel;
532 }

Referenced by geometryXMLparser.DTAlignable::index().

Member Data Documentation

◆ DTTFInputTag

edm::InputTag DTTFFEDReader::DTTFInputTag
private

Definition at line 49 of file DTTFFEDReader.h.

Referenced by getDTTFInputTag().

◆ dtTracks

L1MuDTTrackContainer::TrackContainer DTTFFEDReader::dtTracks
private

Definition at line 79 of file DTTFFEDReader.h.

◆ efTrack

unsigned int DTTFFEDReader::efTrack[3][12][6][2]
private

Definition at line 83 of file DTTFFEDReader.h.

◆ etTrack

unsigned int DTTFFEDReader::etTrack[3][12][6][2]
private

Definition at line 81 of file DTTFFEDReader.h.

◆ phiSegments

L1MuDTChambPhContainer::Phi_Container DTTFFEDReader::phiSegments
private

Definition at line 75 of file DTTFFEDReader.h.

◆ Raw_token

edm::EDGetTokenT<FEDRawDataCollection> DTTFFEDReader::Raw_token
private

Definition at line 96 of file DTTFFEDReader.h.

◆ theSegments

L1MuDTChambThContainer::The_Container DTTFFEDReader::theSegments
private

Definition at line 77 of file DTTFFEDReader.h.

◆ verbose_

bool DTTFFEDReader::verbose_
private

Definition at line 51 of file DTTFFEDReader.h.

mps_fire.i
i
Definition: mps_fire.py:355
DTTFFEDReader::theSegments
L1MuDTChambThContainer::The_Container theSegments
Definition: DTTFFEDReader.h:77
DTTFFEDReader::dtTracks
L1MuDTTrackContainer::TrackContainer dtTracks
Definition: DTTFFEDReader.h:79
DTTFFEDReader::sector
int sector(int channel)
Definition: DTTFFEDReader.cc:506
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
DTTFFEDReader::fillRawData
bool fillRawData(edm::Event &e, L1MuDTChambPhContainer::Phi_Container &phi_data, L1MuDTChambThContainer::The_Container &the_data, L1MuDTTrackContainer::TrackContainer &tra_data)
Generate and fill FED raw data for a full event.
Definition: DTTFFEDReader.cc:61
DTTFFEDReader::match
void match()
Definition: DTTFFEDReader.cc:423
edm::Handle
Definition: AssociativeIterator.h:50
L1MuDTChambPhContainer
Definition: L1MuDTChambPhContainer.h:33
FEDRawData::data
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
Definition: FEDRawData.cc:24
DTTFFEDReader::Raw_token
edm::EDGetTokenT< FEDRawDataCollection > Raw_token
Definition: DTTFFEDReader.h:96
FEDRawData
Definition: FEDRawData.h:19
L1MuDTTrackCand
Definition: L1MuDTTrackCand.h:33
DTTFFEDReader::process
void process(edm::Event &e)
Definition: DTTFFEDReader.cc:85
TopDecayID::muonID
static const int muonID
Definition: TopGenEvent.h:19
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
DTTFFEDReader::analyse
void analyse(edm::Event &e)
Definition: DTTFFEDReader.cc:77
DTTFFEDReader::bxNr
int bxNr(int channel)
Definition: DTTFFEDReader.cc:491
dqmdumpme.k
k
Definition: dqmdumpme.py:60
DTTFFEDReader::k_data
const L1MuDTTrackContainer::TrackContainer & k_data()
Definition: DTTFFEDReader.cc:444
DTTFFEDReader::t_data
const L1MuDTChambThContainer::The_Container & t_data()
Definition: DTTFFEDReader.cc:442
DTTFFEDReader::efTrack
unsigned int efTrack[3][12][6][2]
Definition: DTTFFEDReader.h:83
edm::LogWarning
Definition: MessageLogger.h:141
DTTFFEDReader::phiSegments
L1MuDTChambPhContainer::Phi_Container phiSegments
Definition: DTTFFEDReader.h:75
DTTFFEDReader::DTTFInputTag
edm::InputTag DTTFInputTag
Definition: DTTFFEDReader.h:49
DTTFFEDReader::wheel
int wheel(int channel)
Definition: DTTFFEDReader.cc:519
groupFilesInBlocks.lines
lines
Definition: groupFilesInBlocks.py:95
DTTFFEDReader::p_data
const L1MuDTChambPhContainer::Phi_Container & p_data()
Definition: DTTFFEDReader.cc:440
createfilelist.int
int
Definition: createfilelist.py:10
L1MuDTTrackContainer::TrackIterator
TrackContainer::iterator TrackIterator
Definition: L1MuDTTrackContainer.h:37
RawDataTask_cfi.CRC
CRC
Definition: RawDataTask_cfi.py:59
L1MuDTChambThContainer::The_Container
std::vector< L1MuDTChambThDigi > The_Container
Definition: L1MuDTChambThContainer.h:35
FEDRawData::size
size_t size() const
Lenght of the data buffer in bytes.
Definition: FEDRawData.h:45
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:193
DTTFFEDReader::channel
int channel(int wheel, int sector, int bx)
Definition: DTTFFEDReader.cc:465
DTTFFEDReader::clear
void clear()
Definition: DTTFFEDReader.cc:446
DDAxes::phi
DTTFFEDReader::etTrack
unsigned int etTrack[3][12][6][2]
Definition: DTTFFEDReader.h:81
eostools.move
def move(src, dest)
Definition: eostools.py:511
dt_crc::calcCRC
void calcCRC(long, int &)
Definition: DTCRC.cc:3
L1MuDTChambThDigi
Definition: L1MuDTChambThDigi.h:33
L1MuDTChambPhContainer::Phi_Container
std::vector< L1MuDTChambPhDigi > Phi_Container
Definition: L1MuDTChambPhContainer.h:35
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
L1MuDTTrackContainer::TrackContainer
std::vector< L1MuDTTrackCand > TrackContainer
Definition: L1MuDTTrackContainer.h:35
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
L1MuDTTrackContainer
Definition: L1MuDTTrackContainer.h:33
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
DTTFFEDReader::verbose_
bool verbose_
Definition: DTTFFEDReader.h:51
L1MuDTChambThContainer
Definition: L1MuDTChambThContainer.h:33
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
edm::InputTag
Definition: InputTag.h:15
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
L1MuDTChambPhDigi
Definition: L1MuDTChambPhDigi.h:31
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37