45 bool tsscgs2, tsscgs1, tsscce1, tsshte1, tssnoe1, carrytss;
46 bool tsscce2, tsshte2, tssnoe2, tssccec, tsshtec, tssnoec;
47 unsigned short tssgs1, tssgs2, tssmsk1, tssmsk2;
49 tsscgs2 = tsscgs1 = tsscce1 = tsshte1 = tssnoe1 = carrytss = 0;
50 tsscce2 = tsshte2 = tssnoe2 = tssccec = tsshtec = tssnoec = 0;
51 tssgs1 = tssgs2 = tssmsk1 = tssmsk2 = 0;
53 memset(tstren,
true,24*
sizeof(
bool));
56 for (
int itss=0; itss<ntss; itss++) {
57 unsigned short int memory_tss[27];
59 for(
int ts=0;ts<27;ts++){
60 memory_tss[ts] = tss_buffer[itss][ts+4];
64 tstren[itss*4] = !(memory_tss[1]&0x08);
65 tstren[itss*4+1] = !(memory_tss[1]&0x80);
66 tstren[itss*4+2] = !(memory_tss[2]&0x08);
67 tstren[itss*4+3] = !(memory_tss[2]&0x80);
70 tsscgs2 = !(memory_tss[0]&0x08);
71 tssgs2 = memory_tss[0]&0x04 ? 0 : 1;
72 tsscgs1 = !(memory_tss[0]&0x02);
73 tssgs1 = memory_tss[0]&0x01 ? 0 : 1;
74 tsscce1 = !(memory_tss[4]&0x04);
75 tsshte1 = !(memory_tss[4]&0x02);
76 tssnoe1 = !(memory_tss[4]&0x01);
77 tsscce2 = !(memory_tss[3]&0x40);
78 tsshte2 = !(memory_tss[3]&0x20);
79 tssnoe2 = !(memory_tss[3]&0x10);
80 tssccec = !(memory_tss[3]&0x04);
81 tsshtec = !(memory_tss[3]&0x02);
82 tssnoec = !(memory_tss[3]&0x01);
83 carrytss= !(memory_tss[4]&0x40);
84 tssmsk1 = memory_tss[4]&0x10 ? 132 : 312;
85 tssmsk2 = memory_tss[4]&0x20 ? 132 : 312;
90 unsigned short int memory_tsms[2], memory_tsmdu[2], memory_tsmdd[2];
92 for(
int ts=0;ts<2;ts++){
93 memory_tsms[ts] = tsm_buffer[ts+3];
94 memory_tsmdu[ts] = tsm_buffer[ts+5];
95 memory_tsmdd[ts] = tsm_buffer[ts+7];
100 unsigned short tsmgs1 = memory_tsms[1]&0x02 ? 0 : 1;
102 unsigned short tsmgs2 = 1;
112 bool carrytsms = !(memory_tsms[1]&0x01);
113 unsigned short tsmmsk1 = memory_tsms[1]&0x08 ? 321 : 312;
114 unsigned short tsmmsk2 = tsmmsk1;
116 tsmword[0] = !((memory_tsmdu[0]&0x80)&&(memory_tsmdd[0]&0x80));
117 tsmword[1] = !(memory_tsms[0]&0x01);
118 tsmword[2] = !(memory_tsms[0]&0x02);
119 tsmword[3] = !(memory_tsms[0]&0x04);
120 tsmword[4] = !(memory_tsms[0]&0x08);
121 tsmword[5] = !(memory_tsms[0]&0x10);
122 tsmword[6] = !(memory_tsms[0]&0x20);
123 tsmword[7] = !(memory_tsms[0]&0x40);
124 bool carrytsmd = !((memory_tsmdu[0]&0x10)&&(memory_tsmdd[0]&0x10));
126 unsigned short tsmhsp = carrytss && carrytsms && carrytsmd;
129 std::cout <<
"TSS :" << std::dec << std::endl <<
"tstren= " ;
132 <<
" tssgs1=" << tssgs1
133 <<
" tsscgs2=" << tsscgs2
134 <<
" tssgs2=" << tssgs2
135 <<
" tsscce1=" << tsscce1
136 <<
" tsshte1=" << tsshte1
137 <<
" tssnoe1=" << tssnoe1
138 <<
" tsscce2=" << tsscce2
139 <<
" tsshte2=" << tsshte2
140 <<
" tssnoe2=" << tssnoe2
141 <<
" tssccec=" << tssccec
142 <<
" tsshtec=" << tsshtec
143 <<
" tssnoec=" << tssnoec
144 <<
" carrytss=" << carrytss
145 <<
" tssmsk1=" << tssmsk1
146 <<
" tssmsk2=" << tssmsk2 << std::endl;
149 <<
"tsmcgs1=" << tsmcgs1
150 <<
" tsmgs1=" << tsmgs1
151 <<
" tsmcgs2=" << tsmcgs2
152 <<
" tsmgs2=" << tsmgs2
153 <<
" tsmcce1=" << tsmcce1
154 <<
" tsmhte1=" << tsmhte1
155 <<
" tsmnoe1=" << tsmnoe1
156 <<
" tsmcce2=" << tsmcce2
157 <<
" tsmhte2=" << tsmhte2
158 <<
" tsmnoe2=" << tsmnoe2
159 <<
" tsmccec=" << tsmccec
160 <<
" tsmhtec=" << tsmhtec
161 <<
" tsmnoec=" << tsmnoec
162 <<
" tsmhsp=" << tsmhsp
163 <<
" carrytsms=" << carrytsms
164 <<
" carrytsmd=" << carrytsmd
168 <<
" tsmmsk2=" << tsmmsk2 << std::endl;
230 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSSMSK1 not in correct form: " << mymsk << std::endl;
238 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSSMSK2 not in correct form: " << mymsk << std::endl;
270 if (mygs>=0 && mygs<3)
273 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSSGS1 value is not correct: " << mygs << std::endl;
278 if (mygs>=0 && mygs<5)
281 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSSGS2 value is not correct: " << mygs << std::endl;
295 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMMSK1 not in correct form: " << mymsk << std::endl;
303 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMMSK2 not in correct form: " << mymsk << std::endl;
335 if (mygs>=0 && mygs<3)
338 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMGS1 value is not correct: " << mygs << std::endl;
343 if (mygs>=0 && mygs<5)
346 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMGS2 value is not correct: " << mygs << std::endl;
357 if (myhsp>=0 && myhsp<3)
360 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMHSP value is not correct: " << myhsp << std::endl;
366 if (word<0 || word>255){
367 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMWORD value is not correct: " << word << std::endl;
369 for (
int i=0;
i<7;
i++){
370 short int bit = word%2;
377 for (
int i=0;
i<24;
i++){
378 std::stringstream os;
406 ( stat==4 && (sect==9 || sect==11 ||
420 std::cout <<
"******************************************************************************" << std::endl;
421 std::cout <<
"* DTTrigger configuration : TSPhi chips *" << std::endl;
422 std::cout <<
"******************************************************************************" << std::endl << std::endl;
424 std::cout <<
" TSS Parameters:" << std::endl;
431 std::cout <<
" TSM Parameters:" << std::endl;
447 std::cout <<
"******************************************************************************" << std::endl;
456 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMMSK2 not in correct form: " << tssmsk << std::endl;
465 throw cms::Exception(
"DTTPG") <<
"DTConfigTSPhi::setDefaults : TSMMSK2 not in correct form: " << tsmmsk << std::endl;
474 bool hasthree =
false;
475 for(
int i=0;
i<3;
i++){
490 if (hasone==
true && hastwo==
true && hasthree==
true)
return true;
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.
bool TssInOutEnaCarry() const
Enable Inner SL checking in TSS for carry.
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.
bool TsmGhost2Corr() const
Correlated ghost 2 suppression option in TSM.
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.
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.
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.
DTConfigTSPhi()
Constructor.
void setTssGhost2Flag(unsigned short tssgs2)
Ghost 2 suppression option in TSS.
~DTConfigTSPhi()
Destructor.
void setTsmGhost1Corr(bool tsmcgs1)
Correlated ghost 1 suppression option in TSM.
bool debug() const
Return the debug flag.
bool TssCorrEnaCarry() const
Enable Correlation checking in TSS for carry.
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.
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.
int TsmGhost1Flag() const
Ghost 1 suppression option in TSM.
bool TssHtrigEnaCarry() const
Enable Htrig checking in TSS for carry.
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.
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.
void setTsmStatus(int i, int val)
TSM status.
bool TssInOutEna(int i) const
Enable Inner SL checking in TSS for sort1/2.
bool TsmInOutEnaCarry() const
Enable Inner SL checking in TSM for carry.
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.
std::ostream & print(std::ostream &o=std::cout) const
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.
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.
unsigned short int m_tssgs2