CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DTConfigTSPhi.cc
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
3 // Class: DTConfigSectColl
4 //
5 // Description: Configurable parameters and constants
6 // for Level1 Mu DT Trigger - TS Phi
7 //
8 //
9 // Author List:
10 // C. Battilana
11 //
12 //-----------------------------------------------------------------------
13 
14 //-----------------------
15 // This Class's Header --
16 //-----------------------
18 
19 //---------------
20 // C++ Headers --
21 //---------------
22 #include <iostream>
23 #include <cstring>
24 
25 //-------------------------------
26 // Collaborating Class Headers --
27 //-------------------------------
28 
30 
31 //----------------
32 // Constructors --
33 //----------------
35 
36  setDefaults(ps);
37  if (debug()) print();
38 }
39 
40 DTConfigTSPhi::DTConfigTSPhi(bool debugTS, unsigned short int tss_buffer[7][31], int ntss, unsigned short int tsm_buffer[9]) {
41 
42  if (ntss == 0) {
43  throw cms::Exception("DTTPG") << "DTConfigTSPhi::DTConfigTSPhi : ntss=" << ntss << std::endl
44  << "configuration from CCB strings not possible " << std::endl
45  << "if error occurs configuring from DB this is " << std::endl
46  << "likely to be a DTCCBConfigRcd issue" << std::endl;
47  }
48 
49  m_debug = debugTS;
50 
51  bool tstren[24];
52  bool tsscgs2, tsscgs1, tsscce1, tsshte1, tssnoe1, carrytss;
53  bool tsscce2, tsshte2, tssnoe2, tssccec, tsshtec, tssnoec;
54  unsigned short tssgs1, tssgs2, tssmsk1, tssmsk2;
55 
56  tsscgs2 = tsscgs1 = tsscce1 = tsshte1 = tssnoe1 = carrytss = 0;
57  tsscce2 = tsshte2 = tssnoe2 = tssccec = tsshtec = tssnoec = 0;
58  tssgs1 = tssgs2 = tssmsk1 = tssmsk2 = 0;
59 
60  memset(tstren,true,24*sizeof(bool));
61 
62  // TSS unpacking
63  for (int itss=0; itss<ntss; itss++) {
64  unsigned short int memory_tss[27];
65 
66  for(int ts=0;ts<27;ts++){
67  memory_tss[ts] = tss_buffer[itss][ts+4];
68  //std::cout << std::hex << memory_tss[ts] << " ";
69  }
70 
71  tstren[itss*4] = !(memory_tss[1]&0x08);
72  tstren[itss*4+1] = !(memory_tss[1]&0x80);
73  tstren[itss*4+2] = !(memory_tss[2]&0x08);
74  tstren[itss*4+3] = !(memory_tss[2]&0x80);
75 
76  if(!itss) {
77  tsscgs2 = !(memory_tss[0]&0x08);
78  tssgs2 = memory_tss[0]&0x04 ? 0 : 1;
79  tsscgs1 = !(memory_tss[0]&0x02);
80  tssgs1 = memory_tss[0]&0x01 ? 0 : 1;
81  tsscce1 = !(memory_tss[4]&0x04);
82  tsshte1 = !(memory_tss[4]&0x02);
83  tssnoe1 = !(memory_tss[4]&0x01);
84  tsscce2 = !(memory_tss[3]&0x40);
85  tsshte2 = !(memory_tss[3]&0x20);
86  tssnoe2 = !(memory_tss[3]&0x10);
87  tssccec = !(memory_tss[3]&0x04);
88  tsshtec = !(memory_tss[3]&0x02);
89  tssnoec = !(memory_tss[3]&0x01);
90  carrytss= !(memory_tss[4]&0x40);
91  tssmsk1 = memory_tss[4]&0x10 ? 132 : 312;
92  tssmsk2 = memory_tss[4]&0x20 ? 132 : 312;
93  }
94  }
95 
96  // TSM unpacking
97  unsigned short int memory_tsms[2], memory_tsmdu[2], memory_tsmdd[2];
98 
99  for(int ts=0;ts<2;ts++){
100  memory_tsms[ts] = tsm_buffer[ts+3];
101  memory_tsmdu[ts] = tsm_buffer[ts+5];
102  memory_tsmdd[ts] = tsm_buffer[ts+7];
103  //std::cout << std::hex << memory_tsms[ts] << " "
104  //<< memory_tsmdu[ts] << " " << memory_tsmdd[ts] << " " << std::endl;
105  }
106 
107  bool tsmcgs1 = true;
108  unsigned short tsmgs1 = memory_tsms[1]&0x02 ? 0 : 1;
109  bool tsmcgs2 = true;
110  unsigned short tsmgs2 = 1;
111  bool tsmcce1 = true;
112  bool tsmhte1 = true;
113  bool tsmnoe1 = true;
114  bool tsmcce2 = true;
115  bool tsmhte2 = true;
116  bool tsmnoe2 = true;
117  bool tsmccec = true;
118  bool tsmhtec = true;
119  bool tsmnoec = true;
120  bool carrytsms = !(memory_tsms[1]&0x01);
121  unsigned short tsmmsk1 = memory_tsms[1]&0x08 ? 321 : 312;
122  unsigned short tsmmsk2 = tsmmsk1;
123  bool tsmword[8];
124  tsmword[0] = !((memory_tsmdu[0]&0x80)&&(memory_tsmdd[0]&0x80));
125  tsmword[1] = !(memory_tsms[0]&0x01);
126  tsmword[2] = !(memory_tsms[0]&0x02);
127  tsmword[3] = !(memory_tsms[0]&0x04);
128  tsmword[4] = !(memory_tsms[0]&0x08);
129  tsmword[5] = !(memory_tsms[0]&0x10);
130  tsmword[6] = !(memory_tsms[0]&0x20);
131  tsmword[7] = !(memory_tsms[0]&0x40);
132  bool carrytsmd = !((memory_tsmdu[0]&0x10)&&(memory_tsmdd[0]&0x10));
133 
134  unsigned short tsmhsp = carrytss && carrytsms && carrytsmd;
135 
136  if (debug()) {
137  std::cout << "TSS :" << std::dec << std::endl << "tstren= " ;
138  for (int i=0; i<24 ;i++) std::cout << tstren[i] << " ";
139  std::cout << " tsscgs1=" << tsscgs1
140  << " tssgs1=" << tssgs1
141  << " tsscgs2=" << tsscgs2
142  << " tssgs2=" << tssgs2
143  << " tsscce1=" << tsscce1
144  << " tsshte1=" << tsshte1
145  << " tssnoe1=" << tssnoe1
146  << " tsscce2=" << tsscce2
147  << " tsshte2=" << tsshte2
148  << " tssnoe2=" << tssnoe2
149  << " tssccec=" << tssccec
150  << " tsshtec=" << tsshtec
151  << " tssnoec=" << tssnoec
152  << " carrytss=" << carrytss
153  << " tssmsk1=" << tssmsk1
154  << " tssmsk2=" << tssmsk2 << std::endl;
155 
156  std::cout << "TSM : "<< std::endl
157  << "tsmcgs1=" << tsmcgs1
158  << " tsmgs1=" << tsmgs1
159  << " tsmcgs2=" << tsmcgs2
160  << " tsmgs2=" << tsmgs2
161  << " tsmcce1=" << tsmcce1
162  << " tsmhte1=" << tsmhte1
163  << " tsmnoe1=" << tsmnoe1
164  << " tsmcce2=" << tsmcce2
165  << " tsmhte2=" << tsmhte2
166  << " tsmnoe2=" << tsmnoe2
167  << " tsmccec=" << tsmccec
168  << " tsmhtec=" << tsmhtec
169  << " tsmnoec=" << tsmnoec
170  << " tsmhsp=" << tsmhsp
171  << " carrytsms=" << carrytsms
172  << " carrytsmd=" << carrytsmd
173  << " tsmword=";
174  for (int i=0;i<8;i++) std::cout << tsmword[i] << " ";
175  std::cout << " tsmmsk1=" << tsmmsk1
176  << " tsmmsk2=" << tsmmsk2 << std::endl;
177  }
178 
179  setTssMasking(tssmsk1,1);
180  setTssMasking(tssmsk2,2);
181  setTssHtrigEna(tsshte1,1);
182  setTssHtrigEna(tsshte2,2);
183  setTssHtrigEnaCarry(tsshtec);
184  setTssInOutEna(tssnoe1,1);
185  setTssInOutEna(tssnoe2,2);
186  setTssInOutEnaCarry(tssnoec);
187  setTssCorrEna(tsscce1,1);
188  setTssCorrEna(tsscce2,2);
189  setTssCorrEnaCarry(tssccec);
190  setTssGhost1Flag(tssgs1);
191  setTssGhost2Flag(tssgs2);
192  setTssGhost1Corr(tsscgs1);
193  setTssGhost2Corr(tsscgs2);
194 
195  setTsmMasking(tsmmsk1,1);
196  setTsmMasking(tsmmsk2,2);
197  setTsmHtrigEna(tsmhte1,1);
198  setTsmHtrigEna(tsmhte2,2);
199  setTsmHtrigEnaCarry(tsmhtec);
200  setTsmInOutEna(tsmnoe1,1);
201  setTsmInOutEna(tsmnoe2,2);
202  setTsmInOutEnaCarry(tsmnoec);
203  setTsmCorrEna(tsmcce1,1);
204  setTsmCorrEna(tsmcce2,2);
205  setTsmCorrEnaCarry(tsmccec);
206  setTsmGhost1Flag(tsmgs1);
207  setTsmGhost2Flag(tsmgs2);
208  setTsmGhost1Corr(tsmcgs1);
209  setTsmGhost2Corr(tsmcgs2);
210  setTsmCarryFlag(tsmhsp);
211 
212  for (int i=0;i<24;i++) setUsedTraco(i,tstren[i]);
213  for (int i=0;i<8;i++) setTsmStatus(i,tsmword[i]);
214 
215 
216 }
217 
218 //--------------
219 // Destructor --
220 //--------------
222 
223 //--------------
224 // Operations --
225 //--------------
226 
227 void
229 
230  // Debug flag
231  m_debug = ps.getUntrackedParameter<bool>("Debug");
232 
233  // Order of quaity bits in TSS for sort1
234  int mymsk = ps.getParameter<int>("TSSMSK1");
235  if (checkMask(mymsk))
236  m_tssmsk[0] = mymsk;
237  else {
238  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSSMSK1 not in correct form: " << mymsk << std::endl;
239  }
240 
241  // Order of quaity bits in TSS for sort2
242  mymsk= ps.getParameter<int>("TSSMSK2");
243  if (checkMask(mymsk))
244  m_tssmsk[1] = mymsk;
245  else {
246  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSSMSK2 not in correct form: " << mymsk << std::endl;
247  }
248 
249  // Htrig checking in TSS for sort1
250  m_tsshte[0] = ps.getParameter<bool>("TSSHTE1");
251 
252  // Htrig checking in TSS for sort2
253  m_tsshte[1] = ps.getParameter<bool>("TSSHTE2");
254 
255  // Htrig checking in TSS for carry
256  m_tsshte[2] = ps.getParameter<bool>("TSSHTEC");
257 
258  // Inner SL checking in TSS for sort1
259  m_tssnoe[0] = ps.getParameter<bool>("TSSNOE1");
260 
261  // Inner SL checking in TSS for sort2
262  m_tssnoe[1] = ps.getParameter<bool>("TSSNOE2");
263 
264  // Inner SL checking in TSS for carry
265  m_tssnoe[2] = ps.getParameter<bool>("TSSNOEC");
266 
267  // Correlation checking in TSS for sort1
268  m_tsscce[0] = ps.getParameter<bool>("TSSCCE1");
269 
270  // Correlation checking in TSS for sort2
271  m_tsscce[1] = ps.getParameter<bool>("TSSCCE2");
272 
273  // Correlation checking in TSS for carry
274  m_tsscce[2] = ps.getParameter<bool>("TSSCCEC");
275 
276  // Ghost 1 supperssion option in TSS
277  int mygs = ps.getParameter<int>("TSSGS1");
278  if (mygs>=0 && mygs<3)
279  m_tssgs1 = mygs;
280  else {
281  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSSGS1 value is not correct: " << mygs << std::endl;
282  }
283 
284  // Ghost 2 supperssion option in TSS
285  mygs= ps.getParameter<int>("TSSGS2");
286  if (mygs>=0 && mygs<5)
287  m_tssgs2 = mygs;
288  else {
289  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSSGS2 value is not correct: " << mygs << std::endl;
290  }
291 
292  // Correlated ghost 1 supperssion option in TSS
293  m_tsscgs1 = ps.getParameter<bool>("TSSCGS1");
294 
295  // Correlated ghost 2 supperssion option in TSS
296  m_tsscgs2 = ps.getParameter<bool>("TSSCGS2");
297 
298  // Order of quaity bits in TSM for sort1
299  mymsk = ps.getParameter<int>("TSMMSK1");
300  if (checkMask(mymsk))
301  m_tsmmsk[0] = mymsk;
302  else {
303  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSMMSK1 not in correct form: " << mymsk << std::endl;
304  }
305 
306  // Order of quaity bits in TSM for sort2
307  mymsk= ps.getParameter<int>("TSMMSK2");
308  if (checkMask(mymsk))
309  m_tsmmsk[1] = mymsk;
310  else {
311  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSMMSK2 not in correct form: " << mymsk << std::endl;
312  }
313 
314  // Htrig checking in TSM for sort1
315  m_tsmhte[0] = ps.getParameter<bool>("TSMHTE1");
316 
317  // Htrig checking in TSM for sort2
318  m_tsmhte[1] = ps.getParameter<bool>("TSMHTE2");
319 
320  // Htrig checking in TSM for carry
321  m_tsmhte[2] = ps.getParameter<bool>("TSMHTEC");
322 
323  // Inner SL checking in TSM for sort1
324  m_tsmnoe[0] = ps.getParameter<bool>("TSMNOE1");
325 
326  // Inner SL checking in TSM for sort2
327  m_tsmnoe[1] = ps.getParameter<bool>("TSMNOE2");
328 
329  // Inner SL checking in TSM for carry
330  m_tsmnoe[2] = ps.getParameter<bool>("TSMNOEC");
331 
332  // Correlation checking in TSM for sort1
333  m_tsmcce[0] = ps.getParameter<bool>("TSMCCE1");
334 
335  // Correlation checking in TSM for sort2
336  m_tsmcce[1] = ps.getParameter<bool>("TSMCCE2");
337 
338  // Correlation checking in TSM for carry
339  m_tsmcce[2] = ps.getParameter<bool>("TSMCCEC");
340 
341  // Ghost 1 supperssion option in TSM
342  mygs = ps.getParameter<int>("TSMGS1");
343  if (mygs>=0 && mygs<3)
344  m_tsmgs1 = mygs;
345  else {
346  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSMGS1 value is not correct: " << mygs << std::endl;
347  }
348 
349  // Ghost 2 supperssion option in TSM
350  mygs= ps.getParameter<int>("TSMGS2");
351  if (mygs>=0 && mygs<5)
352  m_tsmgs2 = mygs;
353  else {
354  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSMGS2 value is not correct: " << mygs << std::endl;
355  }
356 
357  // Correlated ghost 1 supperssion option in TSM
358  m_tsmcgs1 = ps.getParameter<bool>("TSMCGS1");
359 
360  // Correlated ghost 2 supperssion option in TSM
361  m_tsmcgs2 = ps.getParameter<bool>("TSMCGS2");
362 
363  // Handling carry in case of pile-up
364  int myhsp = ps.getParameter<int>("TSMHSP");
365  if (myhsp>=0 && myhsp<3)
366  m_tsmhsp = myhsp;
367  else {
368  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSMHSP value is not correct: " << myhsp << std::endl;
369  }
370 
371  // Handling TSMS masking parameters
372  m_tsmword.one();
373  int word = ps.getParameter<int>("TSMWORD");
374  if (word<0 || word>255){
375  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setDefaults : TSMWORD value is not correct: " << word << std::endl;
376  }
377  for (int i=0;i<7;i++){
378  short int bit = word%2;
379  word /= 2;
380  if (bit==0) m_tsmword.unset(i);
381  }
382 
384  m_tstren.one();
385  for (int i=0;i<24;i++){
386  std::stringstream os;
387  os << "TSTREN" << i;
388  if (ps.getParameter<bool>(os.str())== 0)
389  m_tstren.unset(i);
390  }
391 
392 }
393 
394 int
395 DTConfigTSPhi::TSSinTSMD(int stat, int sect) { //CB it should set value when constructor is called (it should be done when we have station by station config)
396 
397  // Number of TSS for each TSMD (it changes from station to station) The DT stations are indicated in parenthesis
398  // in the DT column.
399  //
400  // MB nb.TSS nb.TTS per TSMD
401  // 1 3 2
402  // 2 4 2
403  // 3 5 3
404  // 4(1,2,3,5,6,7) 6 3
405  // 4(8,12) 6 3
406  // 4(9,11) 3 2
407  // 4(4L) 5 3
408  // 4(4R) 5 3
409  // 4(10L) 4 2
410  // 4(10R) 4 2
411 
412  if( stat==1 ||
413  stat==2 ||
414  ( stat==4 && (sect==9 || sect==11 ||
415  sect==10))) {
416  m_ntsstsmd = 2;
417  } else {
418  m_ntsstsmd = 3;
419  }
420 
421  return (int)m_ntsstsmd;
422 
423 }
424 
425 void
427 
428  std::cout << "******************************************************************************" << std::endl;
429  std::cout << "* DTTrigger configuration : TSPhi chips *" << std::endl;
430  std::cout << "******************************************************************************" << std::endl << std::endl;
431  std::cout << "Debug flag : " << debug() << std::endl;
432  std::cout << " TSS Parameters:" << std::endl;
433  std::cout << "TSSMSK 1/2:" << TssMasking(0) << " " << TssMasking(1) << std::endl;
434  std::cout << "TSSHTE 1/2/carry :" << TssHtrigEna(0) << " " << TssHtrigEna(1) << " " << TssHtrigEnaCarry() << std::endl;
435  std::cout << "TSSNOE 1/2/carry :" << TssInOutEna(0) << " " << TssInOutEna(1) << " " << TssInOutEnaCarry() << std::endl;
436  std::cout << "TSSCCE 1/2/carry :" << TssCorrEna(0) << " " << TssCorrEna(1) << " " << TssCorrEnaCarry() << std::endl;
437  std::cout << "TSSGS 1/2:" << TssGhost1Flag() << " " << TssGhost2Flag() << std::endl;
438  std::cout << "TSSCGS 1/2:" << TssGhost1Corr() << " " << TssGhost2Corr() << std::endl;
439  std::cout << " TSM Parameters:" << std::endl;
440  std::cout << "TSMMSK 1/2:" << TsmMasking(0) << " " << TsmMasking(1) << std::endl;
441  std::cout << "TSMHTE 1/2/carry :" << TsmHtrigEna(0) << " " << TsmHtrigEna(1) << " " << TsmHtrigEnaCarry() << std::endl;
442  std::cout << "TSMNOE 1/2/carry :" << TsmInOutEna(0) << " " << TsmInOutEna(1) << " " << TsmInOutEnaCarry() << std::endl;
443  std::cout << "TSMCCE 1/2/carry :" << TsmCorrEna(0) << " " << TsmCorrEna(1) << " " << TsmCorrEnaCarry() << std::endl;
444  std::cout << "TSMGS 1/2:" << TsmGhost1Flag() << " " << TsmGhost2Flag() << std::endl;
445  std::cout << "TSMCGS 1/2:" << TsmGhost1Corr() << " " << TsmGhost2Corr() << std::endl;
446  std::cout << "TSMHSP :" << TsmGetCarryFlag() << std::endl;
447  std::cout << "TSTREN[i] :";
448  for (int i=1;i<25;i++) std::cout << usedTraco(i) << " ";
449  std::cout << std::endl;
450  std::cout << "TSMWORD :";
451  TsmStatus().print();
452  std::cout << std::endl;
453 // int stat=4, sect=5;
454 // std::cout << "TSSTSMD(4,14 :" << TSSinTSMD(stat,sect) << std::endl;
455  std::cout << "******************************************************************************" << std::endl;
456 
457 }
458 
459 void
460 DTConfigTSPhi::setTssMasking(unsigned short tssmsk, int i) {
461  if (checkMask(tssmsk))
462  m_tssmsk[i-1] = tssmsk;
463  else {
464  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setTssMasking : TSSMSK" << i << " not in correct form: " << tssmsk << std::endl;
465  }
466 }
467 
468 void
469 DTConfigTSPhi::setTsmMasking(unsigned short tsmmsk, int i) {
470  if (checkMask(tsmmsk))
471  m_tsmmsk[i-1] = tsmmsk;
472  else {
473  throw cms::Exception("DTTPG") << "DTConfigTSPhi::setTsmMasking : TSMMSK" << i << " not in correct form: " << tsmmsk << std::endl;
474  }
475 }
476 
477 bool
478 DTConfigTSPhi::checkMask(unsigned short msk){
479 
480  bool hasone = false;
481  bool hastwo = false;
482  bool hasthree = false;
483  for(int i=0;i<3;i++){
484  int mynum = msk%10;
485  switch (mynum){
486  case 1:
487  hasone = true;
488  break;
489  case 2:
490  hastwo = true;
491  break;
492  case 3:
493  hasthree =true;
494  break;
495  }
496  msk /= 10;
497  }
498  if (hasone==true && hastwo==true && hasthree==true) return true;
499  return false;
500 
501 }
502 
503 
void setTssGhost2Corr(bool tsscgs2)
Correlated ghost 2 suppression option in TSS.
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
bool TsmInOutEna(int i) const
Enable Inner SL checking in TSM for sort1/2.
Definition: DTConfigTSPhi.h:96
bool TssInOutEnaCarry() const
Enable Inner SL checking in TSS for carry.
Definition: DTConfigTSPhi.h:78
void setTsmCorrEna(bool tsmcce, int i)
Enable Correlation checking in TSM for sort1/2.
bool TsmHtrigEna(int i) const
Enable Htrig checking in TSM for sort1/2.
Definition: DTConfigTSPhi.h:90
bool TsmGhost2Corr() const
Correlated ghost 2 suppression option in TSM.
bool m_tssnoe[3]
void setTsmInOutEnaCarry(bool tsmnoe)
Enable Inner SL checking in TSM for carry.
void setTssHtrigEna(bool tsshte, int i)
Enable Htrig checking in TSS for sort1/2.
unsigned short int m_tssgs1
unsigned short int m_tsmgs2
int TsmMasking(int i) const
Order of quality bits in TSM for sort1/2.
Definition: DTConfigTSPhi.h:87
void setTssGhost1Corr(bool tsscgs1)
Correlated ghost 1 suppression option in TSS.
void setTssMasking(unsigned short int tssmsk, int i)
Order of quality bits in TSS for sort1/2.
unsigned short int m_tsmhsp
void setTssGhost1Flag(unsigned short tssgs1)
Ghost 1 suppression option in TSS.
int TssMasking(int i) const
Order of quality bits in TSS for sort1/2.
Definition: DTConfigTSPhi.h:66
unsigned short int m_tsmmsk[2]
void setTsmCorrEnaCarry(bool tsmcce)
Enable Correlation checking in TSM for carry.
void setUsedTraco(int i, int val)
Enabled TRACOs in TS.
void setTsmInOutEna(bool tsmnoe, int i)
Enable Inner SL checking in TSM for sort1/2.
bool m_tsmcce[3]
bool m_tsmhte[3]
DTConfigTSPhi()
Constructor.
Definition: DTConfigTSPhi.h:54
void setTssGhost2Flag(unsigned short tssgs2)
Ghost 2 suppression option in TSS.
void one()
Definition: BitArray.h:223
~DTConfigTSPhi()
Destructor.
bool m_tsshte[3]
void setTsmGhost1Corr(bool tsmcgs1)
Correlated ghost 1 suppression option in TSM.
bool debug() const
Return the debug flag.
Definition: DTConfigTSPhi.h:63
bool TssCorrEnaCarry() const
Enable Correlation checking in TSS for carry.
Definition: DTConfigTSPhi.h:84
BitArray< 8 > m_tsmword
void setDefaults(const edm::ParameterSet &ps)
Load pset values into class variables.
void setTsmCarryFlag(unsigned short tsmhsp)
Handling of second track (carry) in case of pile-up, in TSM.
bool TsmHtrigEnaCarry() const
Enable Htrig checking in TSM for carry.
Definition: DTConfigTSPhi.h:93
int TsmGetCarryFlag() const
Handling of second track (carry) in case of pile-up, in TSM.
unsigned short int m_tsmgs1
void setTssHtrigEnaCarry(bool tsshte)
Enable Htrig checking in TSS for carry.
void setTsmGhost2Corr(bool tsmcgs2)
Correlated ghost 2 suppression option in TSM.
BitArray< 24 > m_tstren
void unset(const int i)
Definition: BitArray.h:231
int TsmGhost1Flag() const
Ghost 1 suppression option in TSM.
bool TssHtrigEnaCarry() const
Enable Htrig checking in TSS for carry.
Definition: DTConfigTSPhi.h:72
bool TssGhost1Corr() const
Correlated ghost 1 suppression option in TSS.
void print() const
Print the setup.
void setTssCorrEna(bool tsscce, int i)
Enable Correlation checking in TSS for sort1/2.
bool m_tsmnoe[3]
int TSSinTSMD(int stat, int sect)
Return the max nb. of TSSs in input to a single TSMD (called ONLY in back-up mode) ...
int TssGhost2Flag() const
Ghost 2 suppression option in TSS.
void setTsmGhost2Flag(unsigned short tsmgs2)
Ghost 2 suppression option in TSM.
void setTsmGhost1Flag(unsigned short tsmgs1)
Ghost 1 suppression option in TSM.
int TssGhost1Flag() const
Ghost 1 suppression option in TSS.
int TsmGhost2Flag() const
Ghost 2 suppression option in TSM.
bool TsmCorrEnaCarry() const
Enable Correlation checking in TSM for carry.
void setTsmHtrigEna(bool tsmhte, int i)
Enable Htrig checking in TSM for sort1/2.
bool TsmCorrEna(int i) const
Enable Correlation checking in TSM for sort1/2.
bool m_tsscce[3]
void setTsmStatus(int i, int val)
TSM status.
bool TssInOutEna(int i) const
Enable Inner SL checking in TSS for sort1/2.
Definition: DTConfigTSPhi.h:75
bool TsmInOutEnaCarry() const
Enable Inner SL checking in TSM for carry.
Definition: DTConfigTSPhi.h:99
bool checkMask(unsigned short)
Check mask correctness.
BitArray< 8 > TsmStatus() const
TSM status.
bool TssGhost2Corr() const
Correlated ghost 2 suppression option in TSS.
void setTssCorrEnaCarry(bool tsscce)
Enable Correlation checking in TSS for.
tuple cout
Definition: gather_cfg.py:41
std::ostream & print(std::ostream &o=std::cout) const
Definition: BitArray.h:345
void setTsmMasking(unsigned short int tsmmsk, int i)
Order of quality bits in TSM for sort1/2.
bool TsmGhost1Corr() const
Correlated ghost 1 suppression option in TSM.
void setTsmHtrigEnaCarry(bool tsmhte)
Enable Htrig checking in TSM for carry.
bool TssCorrEna(int i) const
Enable Correlation checking in TSS for sort1/2.
Definition: DTConfigTSPhi.h:81
unsigned short int m_tssmsk[2]
void setTssInOutEnaCarry(bool tssnoe)
Enable Inner SL checking in TSS for carry.
unsigned short int m_ntsstsmd
void setTssInOutEna(bool tssnoe, int i)
Enable Inner SL checking in TSS for sort1/2.
bool usedTraco(int i) const
Enabled TRACOs in TS.
bool TssHtrigEna(int i) const
Enable Htrig checking in TSS for sort1/2.
Definition: DTConfigTSPhi.h:69
unsigned short int m_tssgs2