CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LaserAlignmentT0ProducerDQM.cc
Go to the documentation of this file.
1 
3 
4 
5 
6 
7 
12 
13  theConfiguration = aConfiguration;
15 
16 }
17 
18 
19 
20 
21 
26 }
27 
28 
30  edm::Run const &, edm::EventSetup const &) {
31 
32  // upper and lower treshold for a profile considered showing a signal
33  theLowerAdcThreshold = theConfiguration.getParameter<unsigned int>( "LowerAdcThreshold" );
34  theUpperAdcThreshold = theConfiguration.getParameter<unsigned int>( "UpperAdcThreshold" );
35 
36  // the list of input digi products from the cfg
37  theDigiProducerList = theConfiguration.getParameter<std::vector<edm::ParameterSet> >( "DigiProducerList" );
38 
39  std::string folderName = theConfiguration.getParameter<std::string>( "FolderName" );
40  iBooker.setCurrentFolder(folderName);
41 
42  std::string nameAndTitle;
43  std::stringstream labelBuilder;
44 
45  const short nBeams = 8;
46  const short nDisks = 9;
47 
48  // for the alignment tubes modules:
49  // x: 16 modules (5*TEC-, 6*TIB, 6*TOB, 5*TEC+), all from -z to z
50  // y: 8 beams
51  nameAndTitle = "NumberOfSignals_AlignmentTubes";
52  nSignalsAT = iBooker.book2D( nameAndTitle, nameAndTitle, 22, 0, 22, nBeams, 0, nBeams );
53  // nSignalsAT->setAxisTitle( "z-pos", 1 );
54  // nSignalsAT->setAxisTitle( "beam", 2 );
55 
56  // create bin labels for the AT histograms (subdets mixed here)
57  for( unsigned int i = 1; i <= 5; ++i ) {
58  labelBuilder.clear(); labelBuilder.str( "" );
59  labelBuilder << "TEC- D" << 5-i; // TEC-
60  nSignalsAT->setBinLabel( i, labelBuilder.str(), 1 );
61  labelBuilder.clear(); labelBuilder.str( "" );
62  labelBuilder << "TEC+ D" << i-1; // TEC+
63  nSignalsAT->setBinLabel( 17+i, labelBuilder.str(), 1 );
64  }
65  for( unsigned int i = 0; i < 6; ++i ) {
66  labelBuilder.clear(); labelBuilder.str( "" );
67  labelBuilder << "TIB" << i; // TIB
68  nSignalsAT->setBinLabel( 6+i, labelBuilder.str(), 1 );
69  labelBuilder.clear(); labelBuilder.str( "" );
70  labelBuilder << "TOB" << i; // TOB
71  nSignalsAT->setBinLabel( 12+i, labelBuilder.str(), 1 );
72  }
73 
74 
75  // for the tec internal modules:
76  // x: disk1...disk9 (from inner to outer, so z changes direction!)
77  // y: 8 beams
78  nameAndTitle = "NumberOfSignals_TEC+R4";
79  nSignalsTECPlusR4 = iBooker.book2D( nameAndTitle, nameAndTitle, nDisks, 0, nDisks, nBeams, 0, nBeams );
80  // nSignalsTECPlusR4->setAxisTitle( "disk", 1 );
81  // nSignalsTECPlusR4->setAxisTitle( "beam", 2 );
82 
83  nameAndTitle = "NumberOfSignals_TEC+R6";
84  nSignalsTECPlusR6 = iBooker.book2D( nameAndTitle, nameAndTitle, nDisks, 0, nDisks, nBeams, 0, nBeams );
85  // nSignalsTECPlusR6->setAxisTitle( "disk", 1 );
86  // nSignalsTECPlusR6->setAxisTitle( "beam", 2 );
87 
88  nameAndTitle = "NumberOfSignals_TEC-R4";
89  nSignalsTECMinusR4 = iBooker.book2D( nameAndTitle, nameAndTitle, nDisks, 0, nDisks, nBeams, 0, nBeams );
90  // nSignalsTECMinusR4->setAxisTitle( "disk", 1 );
91  // nSignalsTECMinusR4->setAxisTitle( "beam", 2 );
92 
93  nameAndTitle = "NumberOfSignals_TEC-R6";
94  nSignalsTECMinusR6 = iBooker.book2D( nameAndTitle, nameAndTitle, nDisks, 0, nDisks, nBeams, 0, nBeams );
95  // nSignalsTECMinusR6->setAxisTitle( "disk", 1 );
96  // nSignalsTECMinusR6->setAxisTitle( "beam", 2 );
97 
98 
99 
100  // disk labels common for all TEC internal histograms
101  for( unsigned int disk = 0; disk < 9; ++disk ) {
102  labelBuilder.clear(); labelBuilder.str( "" );
103  labelBuilder << "DISK" << disk;
104  nSignalsTECPlusR4->setBinLabel( disk+1, labelBuilder.str(), 1 );
105  nSignalsTECPlusR6->setBinLabel( disk+1, labelBuilder.str(), 1 );
106  nSignalsTECMinusR4->setBinLabel( disk+1, labelBuilder.str(), 1 );
107  nSignalsTECMinusR6->setBinLabel( disk+1, labelBuilder.str(), 1 );
108  }
109 
110 
111  // beam labels common for all histograms
112  for( unsigned int beam = 0; beam < 8; ++beam ) {
113  labelBuilder.clear(); labelBuilder.str( "" );
114  labelBuilder << "BEAM" << beam;
115  nSignalsAT->setBinLabel( beam+1, labelBuilder.str(), 2 );
116  nSignalsTECPlusR4->setBinLabel( beam+1, labelBuilder.str(), 2 );
117  nSignalsTECPlusR6->setBinLabel( beam+1, labelBuilder.str(), 2 );
118  nSignalsTECMinusR4->setBinLabel( beam+1, labelBuilder.str(), 2 );
119  nSignalsTECMinusR6->setBinLabel( beam+1, labelBuilder.str(), 2 );
120  }
121 
122 }
123 
124 
125 
126 
127 
132 
133 
134  // loop all input products
135  for ( std::vector<edm::ParameterSet>::iterator aDigiProducer = theDigiProducerList.begin(); aDigiProducer != theDigiProducerList.end(); ++aDigiProducer ) {
136  const std::string digiProducer = aDigiProducer->getParameter<std::string>( "DigiProducer" );
137  const std::string digiLabel = aDigiProducer->getParameter<std::string>( "DigiLabel" );
138  const std::string digiType = aDigiProducer->getParameter<std::string>( "DigiType" );
139 
140  // now a distinction of cases: raw or processed digis?
141 
142  // first we go for raw digis => SiStripRawDigi
143  if( digiType == "Raw" ) {
144 
145  // retrieve the SiStripRawDigis collection
147  aEvent.getByLabel( digiProducer, digiLabel, rawDigis );
148 
149  // eval & fill histos from raw digis
150  FillFromRawDigis( *rawDigis );
151 
152  }
153 
154 
155  // next we assume "ZeroSuppressed" (non-raw) => SiStripDigi
156  else if( digiType == "Processed" ) {
157 
159  aEvent.getByLabel( digiProducer, digiLabel, processedDigis );
160 
161  // eval & fill histos from processed digis
162  FillFromProcessedDigis( *processedDigis );
163 
164  }
165 
166 
167 
168  // otherwise we have a problem
169  else {
170  throw cms::Exception( "LaserAlignmentT0ProducerDQM" ) << " ERROR ** Unknown DigiType: " << digiType << " specified in config." << std::endl;
171  }
172 
173 
174  } // loop all input products
175 
176 
177 
178 }
179 
184 
185  LASGlobalLoop moduleLoop;
186  int det, ring, beam, disk, pos;
187 
188 
189 
190 
191  // tec internal modules
192  det = 0; ring = 0; beam = 0; disk = 0;
193  do {
194 
195  bool isAboveThreshold = false;
196  bool isExceedThreshold = false;
197 
198  // retrieve the raw id of that module
199  const int detRawId = detectorId.GetTECEntry( det, ring, beam, disk );
200 
201  // search the digis for this raw id
202  edm::DetSetVector<SiStripRawDigi>::const_iterator detSetIter = aDetSetVector.find( detRawId );
203 
204  // raw DetSets may not be missing
205  if( detSetIter == aDetSetVector.end() ) {
206  throw cms::Exception( "[LaserAlignmentT0ProducerDQM::FillFromRawDigis]" ) << " ** ERROR: No raw DetSet found for det: " << detRawId << "." << std::endl;
207  }
208 
209  // access single modules' digis
210  edm::DetSet<SiStripRawDigi>::const_iterator digiRangeIterator = detSetIter->data.begin();
211 
212  for( ; digiRangeIterator != detSetIter->data.end(); ++digiRangeIterator ) {
213  const SiStripRawDigi& digi = *digiRangeIterator;
214 
215  // loop all digis and
216  // look for at least one strip above the threshold (-> assume a signal)
217  // look if no strip is above threshold (-> assume overdrive)
218  if( digi.adc() > theLowerAdcThreshold ) isAboveThreshold = true;
219  if( digi.adc() > theUpperAdcThreshold ) isExceedThreshold = true;
220 
221  }
222 
223  // if we have signal, fill the histos
224  if( isAboveThreshold && !isExceedThreshold ) {
225 
226  // determine the appropriate histogram & bin from the position variables
227  if( det == 0 ) { // TEC+
228  if( ring == 0 ) nSignalsTECPlusR4->Fill( disk, beam ); // R4
229  else nSignalsTECPlusR6->Fill( disk, beam ); // R6
230  }
231  else { // TEC-
232  if( ring == 0 ) nSignalsTECMinusR4->Fill( disk, beam ); // R4
233  else nSignalsTECMinusR6->Fill( disk, beam ); // R6
234  }
235 
236  }
237 
238 
239  } while( moduleLoop.TECLoop( det, ring, beam, disk ) );
240 
241 
242 
243 
244  // endcap modules (AT beams)
245  det = 0; beam = 0; disk = 0;
246  do {
247 
248  bool isAboveThreshold = false;
249  bool isExceedThreshold = false;
250 
251  // retrieve the raw id of that module
252  const int detRawId = detectorId.GetTEC2TECEntry( det, beam, disk );
253 
254  // search the digis for this raw id
255  edm::DetSetVector<SiStripRawDigi>::const_iterator detSetIter = aDetSetVector.find( detRawId );
256 
257  // raw DetSets may not be missing
258  if( detSetIter == aDetSetVector.end() ) {
259  throw cms::Exception( "[LaserAlignmentT0ProducerDQM::FillFromRawDigis]" ) << " ** ERROR: No raw DetSet found for det: " << detRawId << "." << std::endl;
260  }
261 
262  // access single modules' digis
263  edm::DetSet<SiStripRawDigi>::const_iterator digiRangeIterator = detSetIter->data.begin();
264 
265  for( ; digiRangeIterator != detSetIter->data.end(); ++digiRangeIterator ) {
266  const SiStripRawDigi& digi = *digiRangeIterator;
267 
268  // loop all digis and
269  // look for at least one strip above the threshold (-> assume a signal)
270  // look if no strip is above threshold (-> assume overdrive)
271  if( digi.adc() > theLowerAdcThreshold ) isAboveThreshold = true;
272  if( digi.adc() > theUpperAdcThreshold ) isExceedThreshold = true;
273 
274  }
275 
276  // if we have signal, fill the histos
277  if( isAboveThreshold && !isExceedThreshold ) {
278 
279  // there is only one histogram for all AT hits
280  // but the bin scheme is a little complicated:
281  // the TEC(AT) go in the first 5(-) and last 5(+) of 22 bins along x
282 
283  if( det == 1 ) nSignalsAT->Fill( 4 - disk, beam ); // TEC-
284  else nSignalsAT->Fill( 17 + disk, beam ); // TEC+
285 
286  }
287 
288 
289  } while( moduleLoop.TEC2TECLoop( det, beam, disk ) );
290 
291 
292 
293  // barrel modules (AT beams)
294  det = 2; beam = 0; pos = 0;
295  do {
296 
297  bool isAboveThreshold = false;
298  bool isExceedThreshold = false;
299 
300  // retrieve the raw id of that module
301  const int detRawId = detectorId.GetTIBTOBEntry( det, beam, pos );
302 
303  // search the digis for this raw id
304  edm::DetSetVector<SiStripRawDigi>::const_iterator detSetIter = aDetSetVector.find( detRawId );
305 
306  // raw DetSets may not be missing
307  if( detSetIter == aDetSetVector.end() ) {
308  throw cms::Exception( "[LaserAlignmentT0ProducerDQM::FillFromRawDigis]" ) << " ** ERROR: No raw DetSet found for det: " << detRawId << "." << std::endl;
309  }
310 
311  // access single modules' digis
312  edm::DetSet<SiStripRawDigi>::const_iterator digiRangeIterator = detSetIter->data.begin();
313 
314  for( ; digiRangeIterator != detSetIter->data.end(); ++digiRangeIterator ) {
315  const SiStripRawDigi& digi = *digiRangeIterator;
316 
317  // loop all digis and
318  // look for at least one strip above the threshold (-> assume a signal)
319  // look if no strip is above threshold (-> assume overdrive)
320  if( digi.adc() > theLowerAdcThreshold ) isAboveThreshold = true;
321  if( digi.adc() > theUpperAdcThreshold ) isExceedThreshold = true;
322 
323  }
324 
325  // if we have signal, fill the histos
326  if( isAboveThreshold && !isExceedThreshold ) {
327 
328  // there is only one histogram for all AT hits
329  // but the bin scheme is a little complicated:
330  // the TIB go into bins 6-11, TOB in 12-17
331 
332  if( det == 2 ) nSignalsAT->Fill( 5 + (5 - pos), beam ); // TIB
333  else nSignalsAT->Fill( 11 + (5 - pos), beam ); // TOB
334 
335  }
336 
337 
338  } while( moduleLoop.TIBTOBLoop( det, beam, pos ) );
339 
340 
341 
342 }
343 
344 
345 
346 
347 
352 
353  LASGlobalLoop moduleLoop;
354  int det, ring, beam, disk, pos;
355 
356  // tec internal modules
357  det = 0; ring = 0; beam = 0; disk = 0;
358  do {
359 
360  bool isAboveThreshold = false;
361  bool isExceedThreshold = false;
362 
363  // retrieve the raw id of that module
364  const int detRawId = detectorId.GetTECEntry( det, ring, beam, disk );
365 
366  // search the digis for this raw id
367  edm::DetSetVector<SiStripDigi>::const_iterator detSetIter = aDetSetVector.find( detRawId );
368 
369  // processed DetSets may be missing (=empty), just skip
370  if( detSetIter == aDetSetVector.end() ) continue;
371 
372  // access single modules' digis
373  edm::DetSet<SiStripDigi>::const_iterator digiRangeIterator = detSetIter->data.begin();
374 
375  for( ; digiRangeIterator != detSetIter->data.end(); ++digiRangeIterator ) {
376  const SiStripDigi& digi = *digiRangeIterator;
377 
378  // loop all digis and
379  // look for at least one strip above the threshold (-> assume a signal)
380  // look if no strip is above threshold (->assume overdrive)
381  if( digi.adc() > theLowerAdcThreshold ) isAboveThreshold = true;
382  if( digi.adc() > theUpperAdcThreshold ) isExceedThreshold = true;
383 
384  }
385 
386  // if we have signal, fill the histos
387  if( isAboveThreshold && !isExceedThreshold ) {
388 
389  // determine the appropriate histogram & bin from the position variables
390  if( det == 0 ) { // TEC+
391  if( ring == 0 ) nSignalsTECPlusR4->Fill( disk, beam ); // R4
392  else nSignalsTECPlusR6->Fill( disk, beam ); // R6
393  }
394  else { // TEC-
395  if( ring == 0 ) nSignalsTECMinusR4->Fill( disk, beam ); // R4
396  else nSignalsTECMinusR6->Fill( disk, beam ); // R6
397  }
398 
399  }
400 
401 
402  } while( moduleLoop.TECLoop( det, ring, beam, disk ) );
403 
404 
405 
406  // endcap modules (AT beams)
407  det = 0; beam = 0; disk = 0;
408  do {
409 
410  bool isAboveThreshold = false;
411  bool isExceedThreshold = false;
412 
413  // retrieve the raw id of that module
414  const int detRawId = detectorId.GetTEC2TECEntry( det, beam, disk );
415 
416  // search the digis for this raw id
417  edm::DetSetVector<SiStripDigi>::const_iterator detSetIter = aDetSetVector.find( detRawId );
418 
419  // processed DetSets may be missing (=empty), just skip
420  if( detSetIter == aDetSetVector.end() ) continue;
421 
422  // access single modules' digis
423  edm::DetSet<SiStripDigi>::const_iterator digiRangeIterator = detSetIter->data.begin();
424 
425  for( ; digiRangeIterator != detSetIter->data.end(); ++digiRangeIterator ) {
426  const SiStripDigi& digi = *digiRangeIterator;
427 
428  // loop all digis and
429  // look for at least one strip above the threshold (-> assume a signal)
430  // look if no strip is above threshold (-> assume overdrive)
431  if( digi.adc() > theLowerAdcThreshold ) isAboveThreshold = true;
432  if( digi.adc() > theUpperAdcThreshold ) isExceedThreshold = true;
433 
434  }
435 
436  // if we have signal, fill the histos
437  if( isAboveThreshold && !isExceedThreshold ) {
438 
439  // there is only one histogram for all AT hits
440  // but the bin scheme is a little complicated:
441  // the TEC(AT) go in the first 5(-) and last 5(+) of 22 bins along x
442 
443  if( det == 1 ) nSignalsAT->Fill( 4 - disk, beam ); // TEC-
444  else nSignalsAT->Fill( 17 + disk, beam ); // TEC+
445 
446  }
447 
448 
449  } while( moduleLoop.TEC2TECLoop( det, beam, disk ) );
450 
451 
452 
453  // barrel modules (AT beams)
454  det = 2; beam = 0; pos = 0;
455  do {
456 
457  bool isAboveThreshold = false;
458  bool isExceedThreshold = false;
459 
460  // retrieve the raw id of that module
461  const int detRawId = detectorId.GetTIBTOBEntry( det, beam, pos );
462 
463  // search the digis for this raw id
464  edm::DetSetVector<SiStripDigi>::const_iterator detSetIter = aDetSetVector.find( detRawId );
465 
466  // processed DetSets may be missing (=empty), just skip
467  if( detSetIter == aDetSetVector.end() ) continue;
468 
469  // access single modules' digis
470  edm::DetSet<SiStripDigi>::const_iterator digiRangeIterator = detSetIter->data.begin();
471 
472  for( ; digiRangeIterator != detSetIter->data.end(); ++digiRangeIterator ) {
473  const SiStripDigi& digi = *digiRangeIterator;
474 
475  // loop all digis and
476  // look for at least one strip above the threshold (-> assume a signal)
477  // look if no strip is above threshold (-> assume overdrive)
478  if( digi.adc() > theLowerAdcThreshold ) isAboveThreshold = true;
479  if( digi.adc() > theUpperAdcThreshold ) isExceedThreshold = true;
480 
481  }
482 
483  // if we have signal, fill the histos
484  if( isAboveThreshold && !isExceedThreshold ) {
485 
486  // there is only one histogram for all AT hits
487  // but the bin scheme is a little complicated:
488  // the TIB go into bins 6-11, TOB in 12-17
489 
490  if( det == 2 ) nSignalsAT->Fill( 5 + (5 - pos), beam ); // TIB
491  else nSignalsAT->Fill( 11 + (5 - pos), beam ); // TOB
492 
493  }
494 
495 
496  } while( moduleLoop.TIBTOBLoop( det, beam, pos ) );
497 
498 
499 }
500 
501 
502 
503 
504 
512 
513  // these are the detids of the TEC modules hit
514  // by the AT as well as the TEC beams
515  tecDoubleHitDetId.push_back( 470307208 );
516  tecDoubleHitDetId.push_back( 470323592 );
517  tecDoubleHitDetId.push_back( 470339976 );
518  tecDoubleHitDetId.push_back( 470356360 );
519  tecDoubleHitDetId.push_back( 470372744 );
520  tecDoubleHitDetId.push_back( 470307976 );
521  tecDoubleHitDetId.push_back( 470324360 );
522  tecDoubleHitDetId.push_back( 470340744 );
523  tecDoubleHitDetId.push_back( 470357128 );
524  tecDoubleHitDetId.push_back( 470373512 );
525  tecDoubleHitDetId.push_back( 470308488 );
526  tecDoubleHitDetId.push_back( 470324872 );
527  tecDoubleHitDetId.push_back( 470341256 );
528  tecDoubleHitDetId.push_back( 470357640 );
529  tecDoubleHitDetId.push_back( 470374024 );
530  tecDoubleHitDetId.push_back( 470045064 );
531  tecDoubleHitDetId.push_back( 470061448 );
532  tecDoubleHitDetId.push_back( 470077832 );
533  tecDoubleHitDetId.push_back( 470094216 );
534  tecDoubleHitDetId.push_back( 470110600 );
535  tecDoubleHitDetId.push_back( 470045832 );
536  tecDoubleHitDetId.push_back( 470062216 );
537  tecDoubleHitDetId.push_back( 470078600 );
538  tecDoubleHitDetId.push_back( 470094984 );
539  tecDoubleHitDetId.push_back( 470111368 );
540  tecDoubleHitDetId.push_back( 470046344 );
541  tecDoubleHitDetId.push_back( 470062728 );
542  tecDoubleHitDetId.push_back( 470079112 );
543  tecDoubleHitDetId.push_back( 470095496 );
544  tecDoubleHitDetId.push_back( 470111880 );
545 
546  // now all the modules (above included)
547 
548  // TEC+
549  detectorId.SetTECEntry( 0, 0, 0, 0, 470307208 );
550  detectorId.SetTECEntry( 0, 0, 0, 1, 470323592 );
551  detectorId.SetTECEntry( 0, 0, 0, 2, 470339976 );
552  detectorId.SetTECEntry( 0, 0, 0, 3, 470356360 );
553  detectorId.SetTECEntry( 0, 0, 0, 4, 470372744 );
554  detectorId.SetTECEntry( 0, 0, 0, 5, 470389128 );
555  detectorId.SetTECEntry( 0, 0, 0, 6, 470405512 );
556  detectorId.SetTECEntry( 0, 0, 0, 7, 470421896 );
557  detectorId.SetTECEntry( 0, 0, 0, 8, 470438280 );
558  detectorId.SetTECEntry( 0, 0, 1, 0, 470307464 );
559  detectorId.SetTECEntry( 0, 0, 1, 1, 470323848 );
560  detectorId.SetTECEntry( 0, 0, 1, 2, 470340232 );
561  detectorId.SetTECEntry( 0, 0, 1, 3, 470356616 );
562  detectorId.SetTECEntry( 0, 0, 1, 4, 470373000 );
563  detectorId.SetTECEntry( 0, 0, 1, 5, 470389384 );
564  detectorId.SetTECEntry( 0, 0, 1, 6, 470405768 );
565  detectorId.SetTECEntry( 0, 0, 1, 7, 470422152 );
566  detectorId.SetTECEntry( 0, 0, 1, 8, 470438536 );
567  detectorId.SetTECEntry( 0, 0, 2, 0, 470307720 );
568  detectorId.SetTECEntry( 0, 0, 2, 1, 470324104 );
569  detectorId.SetTECEntry( 0, 0, 2, 2, 470340488 );
570  detectorId.SetTECEntry( 0, 0, 2, 3, 470356872 );
571  detectorId.SetTECEntry( 0, 0, 2, 4, 470373256 );
572  detectorId.SetTECEntry( 0, 0, 2, 5, 470389640 );
573  detectorId.SetTECEntry( 0, 0, 2, 6, 470406024 );
574  detectorId.SetTECEntry( 0, 0, 2, 7, 470422408 );
575  detectorId.SetTECEntry( 0, 0, 2, 8, 470438792 );
576  detectorId.SetTECEntry( 0, 0, 3, 0, 470307976 );
577  detectorId.SetTECEntry( 0, 0, 3, 1, 470324360 );
578  detectorId.SetTECEntry( 0, 0, 3, 2, 470340744 );
579  detectorId.SetTECEntry( 0, 0, 3, 3, 470357128 );
580  detectorId.SetTECEntry( 0, 0, 3, 4, 470373512 );
581  detectorId.SetTECEntry( 0, 0, 3, 5, 470389896 );
582  detectorId.SetTECEntry( 0, 0, 3, 6, 470406280 );
583  detectorId.SetTECEntry( 0, 0, 3, 7, 470422664 );
584  detectorId.SetTECEntry( 0, 0, 3, 8, 470439048 );
585  detectorId.SetTECEntry( 0, 0, 4, 0, 470308232 );
586  detectorId.SetTECEntry( 0, 0, 4, 1, 470324616 );
587  detectorId.SetTECEntry( 0, 0, 4, 2, 470341000 );
588  detectorId.SetTECEntry( 0, 0, 4, 3, 470357384 );
589  detectorId.SetTECEntry( 0, 0, 4, 4, 470373768 );
590  detectorId.SetTECEntry( 0, 0, 4, 5, 470390152 );
591  detectorId.SetTECEntry( 0, 0, 4, 6, 470406536 );
592  detectorId.SetTECEntry( 0, 0, 4, 7, 470422920 );
593  detectorId.SetTECEntry( 0, 0, 4, 8, 470439304 );
594  detectorId.SetTECEntry( 0, 0, 5, 0, 470308488 );
595  detectorId.SetTECEntry( 0, 0, 5, 1, 470324872 );
596  detectorId.SetTECEntry( 0, 0, 5, 2, 470341256 );
597  detectorId.SetTECEntry( 0, 0, 5, 3, 470357640 );
598  detectorId.SetTECEntry( 0, 0, 5, 4, 470374024 );
599  detectorId.SetTECEntry( 0, 0, 5, 5, 470390408 );
600  detectorId.SetTECEntry( 0, 0, 5, 6, 470406792 );
601  detectorId.SetTECEntry( 0, 0, 5, 7, 470423176 );
602  detectorId.SetTECEntry( 0, 0, 5, 8, 470439560 );
603  detectorId.SetTECEntry( 0, 0, 6, 0, 470308744 );
604  detectorId.SetTECEntry( 0, 0, 6, 1, 470325128 );
605  detectorId.SetTECEntry( 0, 0, 6, 2, 470341512 );
606  detectorId.SetTECEntry( 0, 0, 6, 3, 470357896 );
607  detectorId.SetTECEntry( 0, 0, 6, 4, 470374280 );
608  detectorId.SetTECEntry( 0, 0, 6, 5, 470390664 );
609  detectorId.SetTECEntry( 0, 0, 6, 6, 470407048 );
610  detectorId.SetTECEntry( 0, 0, 6, 7, 470423432 );
611  detectorId.SetTECEntry( 0, 0, 6, 8, 470439816 );
612  detectorId.SetTECEntry( 0, 0, 7, 0, 470309000 );
613  detectorId.SetTECEntry( 0, 0, 7, 1, 470325384 );
614  detectorId.SetTECEntry( 0, 0, 7, 2, 470341768 );
615  detectorId.SetTECEntry( 0, 0, 7, 3, 470358152 );
616  detectorId.SetTECEntry( 0, 0, 7, 4, 470374536 );
617  detectorId.SetTECEntry( 0, 0, 7, 5, 470390920 );
618  detectorId.SetTECEntry( 0, 0, 7, 6, 470407304 );
619  detectorId.SetTECEntry( 0, 0, 7, 7, 470423688 );
620  detectorId.SetTECEntry( 0, 0, 7, 8, 470440072 );
621  detectorId.SetTECEntry( 0, 1, 0, 0, 470307272 );
622  detectorId.SetTECEntry( 0, 1, 0, 1, 470323656 );
623  detectorId.SetTECEntry( 0, 1, 0, 2, 470340040 );
624  detectorId.SetTECEntry( 0, 1, 0, 3, 470356424 );
625  detectorId.SetTECEntry( 0, 1, 0, 4, 470372808 );
626  detectorId.SetTECEntry( 0, 1, 0, 5, 470389192 );
627  detectorId.SetTECEntry( 0, 1, 0, 6, 470405576 );
628  detectorId.SetTECEntry( 0, 1, 0, 7, 470421960 );
629  detectorId.SetTECEntry( 0, 1, 0, 8, 470438344 );
630  detectorId.SetTECEntry( 0, 1, 1, 0, 470307528 );
631  detectorId.SetTECEntry( 0, 1, 1, 1, 470323912 );
632  detectorId.SetTECEntry( 0, 1, 1, 2, 470340296 );
633  detectorId.SetTECEntry( 0, 1, 1, 3, 470356680 );
634  detectorId.SetTECEntry( 0, 1, 1, 4, 470373064 );
635  detectorId.SetTECEntry( 0, 1, 1, 5, 470389448 );
636  detectorId.SetTECEntry( 0, 1, 1, 6, 470405832 );
637  detectorId.SetTECEntry( 0, 1, 1, 7, 470422216 );
638  detectorId.SetTECEntry( 0, 1, 1, 8, 470438600 );
639  detectorId.SetTECEntry( 0, 1, 2, 0, 470307784 );
640  detectorId.SetTECEntry( 0, 1, 2, 1, 470324168 );
641  detectorId.SetTECEntry( 0, 1, 2, 2, 470340552 );
642  detectorId.SetTECEntry( 0, 1, 2, 3, 470356936 );
643  detectorId.SetTECEntry( 0, 1, 2, 4, 470373320 );
644  detectorId.SetTECEntry( 0, 1, 2, 5, 470389704 );
645  detectorId.SetTECEntry( 0, 1, 2, 6, 470406088 );
646  detectorId.SetTECEntry( 0, 1, 2, 7, 470422472 );
647  detectorId.SetTECEntry( 0, 1, 2, 8, 470438856 );
648  detectorId.SetTECEntry( 0, 1, 3, 0, 470308040 );
649  detectorId.SetTECEntry( 0, 1, 3, 1, 470324424 );
650  detectorId.SetTECEntry( 0, 1, 3, 2, 470340808 );
651  detectorId.SetTECEntry( 0, 1, 3, 3, 470357192 );
652  detectorId.SetTECEntry( 0, 1, 3, 4, 470373576 );
653  detectorId.SetTECEntry( 0, 1, 3, 5, 470389960 );
654  detectorId.SetTECEntry( 0, 1, 3, 6, 470406344 );
655  detectorId.SetTECEntry( 0, 1, 3, 7, 470422728 );
656  detectorId.SetTECEntry( 0, 1, 3, 8, 470439112 );
657  detectorId.SetTECEntry( 0, 1, 4, 0, 470308296 );
658  detectorId.SetTECEntry( 0, 1, 4, 1, 470324680 );
659  detectorId.SetTECEntry( 0, 1, 4, 2, 470341064 );
660  detectorId.SetTECEntry( 0, 1, 4, 3, 470357448 );
661  detectorId.SetTECEntry( 0, 1, 4, 4, 470373832 );
662  detectorId.SetTECEntry( 0, 1, 4, 5, 470390216 );
663  detectorId.SetTECEntry( 0, 1, 4, 6, 470406600 );
664  detectorId.SetTECEntry( 0, 1, 4, 7, 470422984 );
665  detectorId.SetTECEntry( 0, 1, 4, 8, 470439368 );
666  detectorId.SetTECEntry( 0, 1, 5, 0, 470308552 );
667  detectorId.SetTECEntry( 0, 1, 5, 1, 470324936 );
668  detectorId.SetTECEntry( 0, 1, 5, 2, 470341320 );
669  detectorId.SetTECEntry( 0, 1, 5, 3, 470357704 );
670  detectorId.SetTECEntry( 0, 1, 5, 4, 470374088 );
671  detectorId.SetTECEntry( 0, 1, 5, 5, 470390472 );
672  detectorId.SetTECEntry( 0, 1, 5, 6, 470406856 );
673  detectorId.SetTECEntry( 0, 1, 5, 7, 470423240 );
674  detectorId.SetTECEntry( 0, 1, 5, 8, 470439624 );
675  detectorId.SetTECEntry( 0, 1, 6, 0, 470308808 );
676  detectorId.SetTECEntry( 0, 1, 6, 1, 470325192 );
677  detectorId.SetTECEntry( 0, 1, 6, 2, 470341576 );
678  detectorId.SetTECEntry( 0, 1, 6, 3, 470357960 );
679  detectorId.SetTECEntry( 0, 1, 6, 4, 470374344 );
680  detectorId.SetTECEntry( 0, 1, 6, 5, 470390728 );
681  detectorId.SetTECEntry( 0, 1, 6, 6, 470407112 );
682  detectorId.SetTECEntry( 0, 1, 6, 7, 470423496 );
683  detectorId.SetTECEntry( 0, 1, 6, 8, 470439880 );
684  detectorId.SetTECEntry( 0, 1, 7, 0, 470309064 );
685  detectorId.SetTECEntry( 0, 1, 7, 1, 470325448 );
686  detectorId.SetTECEntry( 0, 1, 7, 2, 470341832 );
687  detectorId.SetTECEntry( 0, 1, 7, 3, 470358216 );
688  detectorId.SetTECEntry( 0, 1, 7, 4, 470374600 );
689  detectorId.SetTECEntry( 0, 1, 7, 5, 470390984 );
690  detectorId.SetTECEntry( 0, 1, 7, 6, 470407368 );
691  detectorId.SetTECEntry( 0, 1, 7, 7, 470423752 );
692  detectorId.SetTECEntry( 0, 1, 7, 8, 470440136 );
693 
694  // TEC-
695  detectorId.SetTECEntry( 1, 0, 0, 0, 470045064 );
696  detectorId.SetTECEntry( 1, 0, 0, 1, 470061448 );
697  detectorId.SetTECEntry( 1, 0, 0, 2, 470077832 );
698  detectorId.SetTECEntry( 1, 0, 0, 3, 470094216 );
699  detectorId.SetTECEntry( 1, 0, 0, 4, 470110600 );
700  detectorId.SetTECEntry( 1, 0, 0, 5, 470126984 );
701  detectorId.SetTECEntry( 1, 0, 0, 6, 470143368 );
702  detectorId.SetTECEntry( 1, 0, 0, 7, 470159752 );
703  detectorId.SetTECEntry( 1, 0, 0, 8, 470176136 );
704  detectorId.SetTECEntry( 1, 0, 1, 0, 470045320 );
705  detectorId.SetTECEntry( 1, 0, 1, 1, 470061704 );
706  detectorId.SetTECEntry( 1, 0, 1, 2, 470078088 );
707  detectorId.SetTECEntry( 1, 0, 1, 3, 470094472 );
708  detectorId.SetTECEntry( 1, 0, 1, 4, 470110856 );
709  detectorId.SetTECEntry( 1, 0, 1, 5, 470127240 );
710  detectorId.SetTECEntry( 1, 0, 1, 6, 470143624 );
711  detectorId.SetTECEntry( 1, 0, 1, 7, 470160008 );
712  detectorId.SetTECEntry( 1, 0, 1, 8, 470176392 );
713  detectorId.SetTECEntry( 1, 0, 2, 0, 470045576 );
714  detectorId.SetTECEntry( 1, 0, 2, 1, 470061960 );
715  detectorId.SetTECEntry( 1, 0, 2, 2, 470078344 );
716  detectorId.SetTECEntry( 1, 0, 2, 3, 470094728 );
717  detectorId.SetTECEntry( 1, 0, 2, 4, 470111112 );
718  detectorId.SetTECEntry( 1, 0, 2, 5, 470127496 );
719  detectorId.SetTECEntry( 1, 0, 2, 6, 470143880 );
720  detectorId.SetTECEntry( 1, 0, 2, 7, 470160264 );
721  detectorId.SetTECEntry( 1, 0, 2, 8, 470176648 );
722  detectorId.SetTECEntry( 1, 0, 3, 0, 470045832 );
723  detectorId.SetTECEntry( 1, 0, 3, 1, 470062216 );
724  detectorId.SetTECEntry( 1, 0, 3, 2, 470078600 );
725  detectorId.SetTECEntry( 1, 0, 3, 3, 470094984 );
726  detectorId.SetTECEntry( 1, 0, 3, 4, 470111368 );
727  detectorId.SetTECEntry( 1, 0, 3, 5, 470127752 );
728  detectorId.SetTECEntry( 1, 0, 3, 6, 470144136 );
729  detectorId.SetTECEntry( 1, 0, 3, 7, 470160520 );
730  detectorId.SetTECEntry( 1, 0, 3, 8, 470176904 );
731  detectorId.SetTECEntry( 1, 0, 4, 0, 470046088 );
732  detectorId.SetTECEntry( 1, 0, 4, 1, 470062472 );
733  detectorId.SetTECEntry( 1, 0, 4, 2, 470078856 );
734  detectorId.SetTECEntry( 1, 0, 4, 3, 470095240 );
735  detectorId.SetTECEntry( 1, 0, 4, 4, 470111624 );
736  detectorId.SetTECEntry( 1, 0, 4, 5, 470128008 );
737  detectorId.SetTECEntry( 1, 0, 4, 6, 470144392 );
738  detectorId.SetTECEntry( 1, 0, 4, 7, 470160776 );
739  detectorId.SetTECEntry( 1, 0, 4, 8, 470177160 );
740  detectorId.SetTECEntry( 1, 0, 5, 0, 470046344 );
741  detectorId.SetTECEntry( 1, 0, 5, 1, 470062728 );
742  detectorId.SetTECEntry( 1, 0, 5, 2, 470079112 );
743  detectorId.SetTECEntry( 1, 0, 5, 3, 470095496 );
744  detectorId.SetTECEntry( 1, 0, 5, 4, 470111880 );
745  detectorId.SetTECEntry( 1, 0, 5, 5, 470128264 );
746  detectorId.SetTECEntry( 1, 0, 5, 6, 470144648 );
747  detectorId.SetTECEntry( 1, 0, 5, 7, 470161032 );
748  detectorId.SetTECEntry( 1, 0, 5, 8, 470177416 );
749  detectorId.SetTECEntry( 1, 0, 6, 0, 470046600 );
750  detectorId.SetTECEntry( 1, 0, 6, 1, 470062984 );
751  detectorId.SetTECEntry( 1, 0, 6, 2, 470079368 );
752  detectorId.SetTECEntry( 1, 0, 6, 3, 470095752 );
753  detectorId.SetTECEntry( 1, 0, 6, 4, 470112136 );
754  detectorId.SetTECEntry( 1, 0, 6, 5, 470128520 );
755  detectorId.SetTECEntry( 1, 0, 6, 6, 470144904 );
756  detectorId.SetTECEntry( 1, 0, 6, 7, 470161288 );
757  detectorId.SetTECEntry( 1, 0, 6, 8, 470177672 );
758  detectorId.SetTECEntry( 1, 0, 7, 0, 470046856 );
759  detectorId.SetTECEntry( 1, 0, 7, 1, 470063240 );
760  detectorId.SetTECEntry( 1, 0, 7, 2, 470079624 );
761  detectorId.SetTECEntry( 1, 0, 7, 3, 470096008 );
762  detectorId.SetTECEntry( 1, 0, 7, 4, 470112392 );
763  detectorId.SetTECEntry( 1, 0, 7, 5, 470128776 );
764  detectorId.SetTECEntry( 1, 0, 7, 6, 470145160 );
765  detectorId.SetTECEntry( 1, 0, 7, 7, 470161544 );
766  detectorId.SetTECEntry( 1, 0, 7, 8, 470177928 );
767  detectorId.SetTECEntry( 1, 1, 0, 0, 470045128 );
768  detectorId.SetTECEntry( 1, 1, 0, 1, 470061512 );
769  detectorId.SetTECEntry( 1, 1, 0, 2, 470077896 );
770  detectorId.SetTECEntry( 1, 1, 0, 3, 470094280 );
771  detectorId.SetTECEntry( 1, 1, 0, 4, 470110664 );
772  detectorId.SetTECEntry( 1, 1, 0, 5, 470127048 );
773  detectorId.SetTECEntry( 1, 1, 0, 6, 470143432 );
774  detectorId.SetTECEntry( 1, 1, 0, 7, 470159816 );
775  detectorId.SetTECEntry( 1, 1, 0, 8, 470176200 );
776  detectorId.SetTECEntry( 1, 1, 1, 0, 470045384 );
777  detectorId.SetTECEntry( 1, 1, 1, 1, 470061768 );
778  detectorId.SetTECEntry( 1, 1, 1, 2, 470078152 );
779  detectorId.SetTECEntry( 1, 1, 1, 3, 470094536 );
780  detectorId.SetTECEntry( 1, 1, 1, 4, 470110920 );
781  detectorId.SetTECEntry( 1, 1, 1, 5, 470127304 );
782  detectorId.SetTECEntry( 1, 1, 1, 6, 470143688 );
783  detectorId.SetTECEntry( 1, 1, 1, 7, 470160072 );
784  detectorId.SetTECEntry( 1, 1, 1, 8, 470176456 );
785  detectorId.SetTECEntry( 1, 1, 2, 0, 470045640 );
786  detectorId.SetTECEntry( 1, 1, 2, 1, 470062024 );
787  detectorId.SetTECEntry( 1, 1, 2, 2, 470078408 );
788  detectorId.SetTECEntry( 1, 1, 2, 3, 470094792 );
789  detectorId.SetTECEntry( 1, 1, 2, 4, 470111176 );
790  detectorId.SetTECEntry( 1, 1, 2, 5, 470127560 );
791  detectorId.SetTECEntry( 1, 1, 2, 6, 470143944 );
792  detectorId.SetTECEntry( 1, 1, 2, 7, 470160328 );
793  detectorId.SetTECEntry( 1, 1, 2, 8, 470176712 );
794  detectorId.SetTECEntry( 1, 1, 3, 0, 470045896 );
795  detectorId.SetTECEntry( 1, 1, 3, 1, 470062280 );
796  detectorId.SetTECEntry( 1, 1, 3, 2, 470078664 );
797  detectorId.SetTECEntry( 1, 1, 3, 3, 470095048 );
798  detectorId.SetTECEntry( 1, 1, 3, 4, 470111432 );
799  detectorId.SetTECEntry( 1, 1, 3, 5, 470127816 );
800  detectorId.SetTECEntry( 1, 1, 3, 6, 470144200 );
801  detectorId.SetTECEntry( 1, 1, 3, 7, 470160584 );
802  detectorId.SetTECEntry( 1, 1, 3, 8, 470176968 );
803  detectorId.SetTECEntry( 1, 1, 4, 0, 470046152 );
804  detectorId.SetTECEntry( 1, 1, 4, 1, 470062536 );
805  detectorId.SetTECEntry( 1, 1, 4, 2, 470078920 );
806  detectorId.SetTECEntry( 1, 1, 4, 3, 470095304 );
807  detectorId.SetTECEntry( 1, 1, 4, 4, 470111688 );
808  detectorId.SetTECEntry( 1, 1, 4, 5, 470128072 );
809  detectorId.SetTECEntry( 1, 1, 4, 6, 470144456 );
810  detectorId.SetTECEntry( 1, 1, 4, 7, 470160840 );
811  detectorId.SetTECEntry( 1, 1, 4, 8, 470177224 );
812  detectorId.SetTECEntry( 1, 1, 5, 0, 470046408 );
813  detectorId.SetTECEntry( 1, 1, 5, 1, 470062792 );
814  detectorId.SetTECEntry( 1, 1, 5, 2, 470079176 );
815  detectorId.SetTECEntry( 1, 1, 5, 3, 470095560 );
816  detectorId.SetTECEntry( 1, 1, 5, 4, 470111944 );
817  detectorId.SetTECEntry( 1, 1, 5, 5, 470128328 );
818  detectorId.SetTECEntry( 1, 1, 5, 6, 470144712 );
819  detectorId.SetTECEntry( 1, 1, 5, 7, 470161096 );
820  detectorId.SetTECEntry( 1, 1, 5, 8, 470177480 );
821  detectorId.SetTECEntry( 1, 1, 6, 0, 470046664 );
822  detectorId.SetTECEntry( 1, 1, 6, 1, 470063048 );
823  detectorId.SetTECEntry( 1, 1, 6, 2, 470079432 );
824  detectorId.SetTECEntry( 1, 1, 6, 3, 470095816 );
825  detectorId.SetTECEntry( 1, 1, 6, 4, 470112200 );
826  detectorId.SetTECEntry( 1, 1, 6, 5, 470128584 );
827  detectorId.SetTECEntry( 1, 1, 6, 6, 470144968 );
828  detectorId.SetTECEntry( 1, 1, 6, 7, 470161352 );
829  detectorId.SetTECEntry( 1, 1, 6, 8, 470177736 );
830  detectorId.SetTECEntry( 1, 1, 7, 0, 470046920 );
831  detectorId.SetTECEntry( 1, 1, 7, 1, 470063304 );
832  detectorId.SetTECEntry( 1, 1, 7, 2, 470079688 );
833  detectorId.SetTECEntry( 1, 1, 7, 3, 470096072 );
834  detectorId.SetTECEntry( 1, 1, 7, 4, 470112456 );
835  detectorId.SetTECEntry( 1, 1, 7, 5, 470128840 );
836  detectorId.SetTECEntry( 1, 1, 7, 6, 470145224 );
837  detectorId.SetTECEntry( 1, 1, 7, 7, 470161608 );
838  detectorId.SetTECEntry( 1, 1, 7, 8, 470177992 );
839 
840  // TIB
841  detectorId.SetTIBTOBEntry( 2, 0, 0, 369174604 );
842  detectorId.SetTIBTOBEntry( 2, 0, 1, 369174600 );
843  detectorId.SetTIBTOBEntry( 2, 0, 2, 369174596 );
844  detectorId.SetTIBTOBEntry( 2, 0, 3, 369170500 );
845  detectorId.SetTIBTOBEntry( 2, 0, 4, 369170504 );
846  detectorId.SetTIBTOBEntry( 2, 0, 5, 369170508 );
847  detectorId.SetTIBTOBEntry( 2, 1, 0, 369174732 );
848  detectorId.SetTIBTOBEntry( 2, 1, 1, 369174728 );
849  detectorId.SetTIBTOBEntry( 2, 1, 2, 369174724 );
850  detectorId.SetTIBTOBEntry( 2, 1, 3, 369170628 );
851  detectorId.SetTIBTOBEntry( 2, 1, 4, 369170632 );
852  detectorId.SetTIBTOBEntry( 2, 1, 5, 369170636 );
853  detectorId.SetTIBTOBEntry( 2, 2, 0, 369174812 );
854  detectorId.SetTIBTOBEntry( 2, 2, 1, 369174808 );
855  detectorId.SetTIBTOBEntry( 2, 2, 2, 369174804 );
856  detectorId.SetTIBTOBEntry( 2, 2, 3, 369170708 );
857  detectorId.SetTIBTOBEntry( 2, 2, 4, 369170712 );
858  detectorId.SetTIBTOBEntry( 2, 2, 5, 369170716 );
859  detectorId.SetTIBTOBEntry( 2, 3, 0, 369174940 );
860  detectorId.SetTIBTOBEntry( 2, 3, 1, 369174936 );
861  detectorId.SetTIBTOBEntry( 2, 3, 2, 369174932 );
862  detectorId.SetTIBTOBEntry( 2, 3, 3, 369170836 );
863  detectorId.SetTIBTOBEntry( 2, 3, 4, 369170840 );
864  detectorId.SetTIBTOBEntry( 2, 3, 5, 369170844 );
865  detectorId.SetTIBTOBEntry( 2, 4, 0, 369175068 );
866  detectorId.SetTIBTOBEntry( 2, 4, 1, 369175064 );
867  detectorId.SetTIBTOBEntry( 2, 4, 2, 369175060 );
868  detectorId.SetTIBTOBEntry( 2, 4, 3, 369170964 );
869  detectorId.SetTIBTOBEntry( 2, 4, 4, 369170968 );
870  detectorId.SetTIBTOBEntry( 2, 4, 5, 369170972 );
871  detectorId.SetTIBTOBEntry( 2, 5, 0, 369175164 );
872  detectorId.SetTIBTOBEntry( 2, 5, 1, 369175160 );
873  detectorId.SetTIBTOBEntry( 2, 5, 2, 369175156 );
874  detectorId.SetTIBTOBEntry( 2, 5, 3, 369171060 );
875  detectorId.SetTIBTOBEntry( 2, 5, 4, 369171064 );
876  detectorId.SetTIBTOBEntry( 2, 5, 5, 369171068 );
877  detectorId.SetTIBTOBEntry( 2, 6, 0, 369175292 );
878  detectorId.SetTIBTOBEntry( 2, 6, 1, 369175288 );
879  detectorId.SetTIBTOBEntry( 2, 6, 2, 369175284 );
880  detectorId.SetTIBTOBEntry( 2, 6, 3, 369171188 );
881  detectorId.SetTIBTOBEntry( 2, 6, 4, 369171192 );
882  detectorId.SetTIBTOBEntry( 2, 6, 5, 369171196 );
883  detectorId.SetTIBTOBEntry( 2, 7, 0, 369175372 );
884  detectorId.SetTIBTOBEntry( 2, 7, 1, 369175368 );
885  detectorId.SetTIBTOBEntry( 2, 7, 2, 369175364 );
886  detectorId.SetTIBTOBEntry( 2, 7, 3, 369171268 );
887  detectorId.SetTIBTOBEntry( 2, 7, 4, 369171272 );
888  detectorId.SetTIBTOBEntry( 2, 7, 5, 369171276 );
889 
890  // TOB
891  detectorId.SetTIBTOBEntry( 3, 0, 0, 436232314 );
892  detectorId.SetTIBTOBEntry( 3, 0, 1, 436232306 );
893  detectorId.SetTIBTOBEntry( 3, 0, 2, 436232298 );
894  detectorId.SetTIBTOBEntry( 3, 0, 3, 436228198 );
895  detectorId.SetTIBTOBEntry( 3, 0, 4, 436228206 );
896  detectorId.SetTIBTOBEntry( 3, 0, 5, 436228214 );
897  detectorId.SetTIBTOBEntry( 3, 1, 0, 436232506 );
898  detectorId.SetTIBTOBEntry( 3, 1, 1, 436232498 );
899  detectorId.SetTIBTOBEntry( 3, 1, 2, 436232490 );
900  detectorId.SetTIBTOBEntry( 3, 1, 3, 436228390 );
901  detectorId.SetTIBTOBEntry( 3, 1, 4, 436228398 );
902  detectorId.SetTIBTOBEntry( 3, 1, 5, 436228406 );
903  detectorId.SetTIBTOBEntry( 3, 2, 0, 436232634 );
904  detectorId.SetTIBTOBEntry( 3, 2, 1, 436232626 );
905  detectorId.SetTIBTOBEntry( 3, 2, 2, 436232618 );
906  detectorId.SetTIBTOBEntry( 3, 2, 3, 436228518 );
907  detectorId.SetTIBTOBEntry( 3, 2, 4, 436228526 );
908  detectorId.SetTIBTOBEntry( 3, 2, 5, 436228534 );
909  detectorId.SetTIBTOBEntry( 3, 3, 0, 436232826 );
910  detectorId.SetTIBTOBEntry( 3, 3, 1, 436232818 );
911  detectorId.SetTIBTOBEntry( 3, 3, 2, 436232810 );
912  detectorId.SetTIBTOBEntry( 3, 3, 3, 436228710 );
913  detectorId.SetTIBTOBEntry( 3, 3, 4, 436228718 );
914  detectorId.SetTIBTOBEntry( 3, 3, 5, 436228726 );
915  detectorId.SetTIBTOBEntry( 3, 4, 0, 436233018 );
916  detectorId.SetTIBTOBEntry( 3, 4, 1, 436233010 );
917  detectorId.SetTIBTOBEntry( 3, 4, 2, 436233002 );
918  detectorId.SetTIBTOBEntry( 3, 4, 3, 436228902 );
919  detectorId.SetTIBTOBEntry( 3, 4, 4, 436228910 );
920  detectorId.SetTIBTOBEntry( 3, 4, 5, 436228918 );
921  detectorId.SetTIBTOBEntry( 3, 5, 0, 436233146 );
922  detectorId.SetTIBTOBEntry( 3, 5, 1, 436233138 );
923  detectorId.SetTIBTOBEntry( 3, 5, 2, 436233130 );
924  detectorId.SetTIBTOBEntry( 3, 5, 3, 436229030 );
925  detectorId.SetTIBTOBEntry( 3, 5, 4, 436229038 );
926  detectorId.SetTIBTOBEntry( 3, 5, 5, 436229046 );
927  detectorId.SetTIBTOBEntry( 3, 6, 0, 436233338 );
928  detectorId.SetTIBTOBEntry( 3, 6, 1, 436233330 );
929  detectorId.SetTIBTOBEntry( 3, 6, 2, 436233322 );
930  detectorId.SetTIBTOBEntry( 3, 6, 3, 436229222 );
931  detectorId.SetTIBTOBEntry( 3, 6, 4, 436229230 );
932  detectorId.SetTIBTOBEntry( 3, 6, 5, 436229238 );
933  detectorId.SetTIBTOBEntry( 3, 7, 0, 436233466 );
934  detectorId.SetTIBTOBEntry( 3, 7, 1, 436233458 );
935  detectorId.SetTIBTOBEntry( 3, 7, 2, 436233450 );
936  detectorId.SetTIBTOBEntry( 3, 7, 3, 436229350 );
937  detectorId.SetTIBTOBEntry( 3, 7, 4, 436229358 );
938  detectorId.SetTIBTOBEntry( 3, 7, 5, 436229366 );
939 
940  // TEC+ AT
941  detectorId.SetTEC2TECEntry( 0, 0, 0, 470307208 );
942  detectorId.SetTEC2TECEntry( 0, 0, 1, 470323592 );
943  detectorId.SetTEC2TECEntry( 0, 0, 2, 470339976 );
944  detectorId.SetTEC2TECEntry( 0, 0, 3, 470356360 );
945  detectorId.SetTEC2TECEntry( 0, 0, 4, 470372744 );
946  detectorId.SetTEC2TECEntry( 0, 1, 0, 470307468 );
947  detectorId.SetTEC2TECEntry( 0, 1, 1, 470323852 );
948  detectorId.SetTEC2TECEntry( 0, 1, 2, 470340236 );
949  detectorId.SetTEC2TECEntry( 0, 1, 3, 470356620 );
950  detectorId.SetTEC2TECEntry( 0, 1, 4, 470373004 );
951  detectorId.SetTEC2TECEntry( 0, 2, 0, 470307716 );
952  detectorId.SetTEC2TECEntry( 0, 2, 1, 470324100 );
953  detectorId.SetTEC2TECEntry( 0, 2, 2, 470340484 );
954  detectorId.SetTEC2TECEntry( 0, 2, 3, 470356868 );
955  detectorId.SetTEC2TECEntry( 0, 2, 4, 470373252 );
956  detectorId.SetTEC2TECEntry( 0, 3, 0, 470307976 );
957  detectorId.SetTEC2TECEntry( 0, 3, 1, 470324360 );
958  detectorId.SetTEC2TECEntry( 0, 3, 2, 470340744 );
959  detectorId.SetTEC2TECEntry( 0, 3, 3, 470357128 );
960  detectorId.SetTEC2TECEntry( 0, 3, 4, 470373512 );
961  detectorId.SetTEC2TECEntry( 0, 4, 0, 470308236 );
962  detectorId.SetTEC2TECEntry( 0, 4, 1, 470324620 );
963  detectorId.SetTEC2TECEntry( 0, 4, 2, 470341004 );
964  detectorId.SetTEC2TECEntry( 0, 4, 3, 470357388 );
965  detectorId.SetTEC2TECEntry( 0, 4, 4, 470373772 );
966  detectorId.SetTEC2TECEntry( 0, 5, 0, 470308488 );
967  detectorId.SetTEC2TECEntry( 0, 5, 1, 470324872 );
968  detectorId.SetTEC2TECEntry( 0, 5, 2, 470341256 );
969  detectorId.SetTEC2TECEntry( 0, 5, 3, 470357640 );
970  detectorId.SetTEC2TECEntry( 0, 5, 4, 470374024 );
971  detectorId.SetTEC2TECEntry( 0, 6, 0, 470308748 );
972  detectorId.SetTEC2TECEntry( 0, 6, 1, 470325132 );
973  detectorId.SetTEC2TECEntry( 0, 6, 2, 470341516 );
974  detectorId.SetTEC2TECEntry( 0, 6, 3, 470357900 );
975  detectorId.SetTEC2TECEntry( 0, 6, 4, 470374284 );
976  detectorId.SetTEC2TECEntry( 0, 7, 0, 470308996 );
977  detectorId.SetTEC2TECEntry( 0, 7, 1, 470325380 );
978  detectorId.SetTEC2TECEntry( 0, 7, 2, 470341764 );
979  detectorId.SetTEC2TECEntry( 0, 7, 3, 470358148 );
980  detectorId.SetTEC2TECEntry( 0, 7, 4, 470374532 );
981 
982  // TEC- AT
983  detectorId.SetTEC2TECEntry( 1, 0, 0, 470045064 );
984  detectorId.SetTEC2TECEntry( 1, 0, 1, 470061448 );
985  detectorId.SetTEC2TECEntry( 1, 0, 2, 470077832 );
986  detectorId.SetTEC2TECEntry( 1, 0, 3, 470094216 );
987  detectorId.SetTEC2TECEntry( 1, 0, 4, 470110600 );
988  detectorId.SetTEC2TECEntry( 1, 1, 0, 470045316 );
989  detectorId.SetTEC2TECEntry( 1, 1, 1, 470061700 );
990  detectorId.SetTEC2TECEntry( 1, 1, 2, 470078084 );
991  detectorId.SetTEC2TECEntry( 1, 1, 3, 470094468 );
992  detectorId.SetTEC2TECEntry( 1, 1, 4, 470110852 );
993  detectorId.SetTEC2TECEntry( 1, 2, 0, 470045580 );
994  detectorId.SetTEC2TECEntry( 1, 2, 1, 470061964 );
995  detectorId.SetTEC2TECEntry( 1, 2, 2, 470078348 );
996  detectorId.SetTEC2TECEntry( 1, 2, 3, 470094732 );
997  detectorId.SetTEC2TECEntry( 1, 2, 4, 470111116 );
998  detectorId.SetTEC2TECEntry( 1, 3, 0, 470045832 );
999  detectorId.SetTEC2TECEntry( 1, 3, 1, 470062216 );
1000  detectorId.SetTEC2TECEntry( 1, 3, 2, 470078600 );
1001  detectorId.SetTEC2TECEntry( 1, 3, 3, 470094984 );
1002  detectorId.SetTEC2TECEntry( 1, 3, 4, 470111368 );
1003  detectorId.SetTEC2TECEntry( 1, 4, 0, 470046084 );
1004  detectorId.SetTEC2TECEntry( 1, 4, 1, 470062468 );
1005  detectorId.SetTEC2TECEntry( 1, 4, 2, 470078852 );
1006  detectorId.SetTEC2TECEntry( 1, 4, 3, 470095236 );
1007  detectorId.SetTEC2TECEntry( 1, 4, 4, 470111620 );
1008  detectorId.SetTEC2TECEntry( 1, 5, 0, 470046344 );
1009  detectorId.SetTEC2TECEntry( 1, 5, 1, 470062728 );
1010  detectorId.SetTEC2TECEntry( 1, 5, 2, 470079112 );
1011  detectorId.SetTEC2TECEntry( 1, 5, 3, 470095496 );
1012  detectorId.SetTEC2TECEntry( 1, 5, 4, 470111880 );
1013  detectorId.SetTEC2TECEntry( 1, 6, 0, 470046596 );
1014  detectorId.SetTEC2TECEntry( 1, 6, 1, 470062980 );
1015  detectorId.SetTEC2TECEntry( 1, 6, 2, 470079364 );
1016  detectorId.SetTEC2TECEntry( 1, 6, 3, 470095748 );
1017  detectorId.SetTEC2TECEntry( 1, 6, 4, 470112132 );
1018  detectorId.SetTEC2TECEntry( 1, 7, 0, 470046860 );
1019  detectorId.SetTEC2TECEntry( 1, 7, 1, 470063244 );
1020  detectorId.SetTEC2TECEntry( 1, 7, 2, 470079628 );
1021  detectorId.SetTEC2TECEntry( 1, 7, 3, 470096012 );
1022  detectorId.SetTEC2TECEntry( 1, 7, 4, 470112396 );
1023 
1024 }
1025 
1026 //define this as a plug-in
1028 
void SetTEC2TECEntry(int subdetector, int beam, int tecDisk, T)
const uint16_t & adc() const
T getParameter(std::string const &) const
int i
Definition: DBlmapReader.cc:9
iterator find(det_id_type id)
Definition: DetSetVector.h:294
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
virtual void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
void Fill(long long x)
void FillFromRawDigis(const edm::DetSetVector< SiStripRawDigi > &)
bool TEC2TECLoop(int &, int &, int &) const
T & GetTIBTOBEntry(int subdetector, int beam, int tibTobPosition)
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
void SetTIBTOBEntry(int subdetector, int beam, int tibTobPosition, T)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:420
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:365
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
T & GetTEC2TECEntry(int subdetector, int beam, int tecDisk)
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
T & GetTECEntry(int subdetector, int tecRing, int beam, int tecDisk)
Definition: LASGlobalData.h:91
std::vector< edm::ParameterSet > theDigiProducerList
bool TECLoop(int &, int &, int &, int &) const
void FillFromProcessedDigis(const edm::DetSetVector< SiStripDigi > &)
bool TIBTOBLoop(int &, int &, int &) const
LaserAlignmentT0ProducerDQM(const edm::ParameterSet &)
iterator begin()
Return an iterator to the first DetSet.
Definition: DetSetVector.h:350
collection_type::const_iterator const_iterator
Definition: DetSet.h:33
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:108
const uint16_t & adc() const
Definition: SiStripDigi.h:41
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...
void SetTECEntry(int subdetector, int tecRing, int beam, int tecDisk, T)
Definition: Run.h:43