CMS 3D CMS Logo

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