CMS 3D CMS Logo

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

#include <DTTSCand.h>

Public Member Functions

void clear ()
 Clear the trigger. More...
 
void clearBits ()
 Clear (set to 1) the quality bits (but first/second track bit) More...
 
void clearBitsBkmod ()
 Clear (set to 1) all the bits (back-up mode) More...
 
const DTConfigTSPhiconfig () const
 Configuration set. More...
 
unsigned dataword () const
 Return an uint16 with the content of the data word (for debugging) More...
 
 DTTSCand (DTTSS *, const DTTracoTrigData *, int, int)
 Constructor. More...
 
 DTTSCand ()
 Constructor. More...
 
 DTTSCand (const DTTSCand &tscand)
 Constructor. More...
 
int is0H () const
 Return if H outer. More...
 
int is0L () const
 Return if L outer. More...
 
int isCarry () const
 Return the carry bit. More...
 
int isCorr () const
 Return correlation bit. More...
 
int isFirst () const
 Return the first/second track bit. More...
 
int isH0 () const
 Return if H inner. More...
 
int isHHorHL () const
 Return if HH or HL. More...
 
int isHtrig () const
 Return HTRIG/LTRIG bit. More...
 
int isInner () const
 Return Inner/Outer bit. More...
 
int isL0 () const
 Return if L inner. More...
 
int isLH () const
 Return if LH. More...
 
int isLL () const
 Return if LL. More...
 
bool operator< (const DTTSCand &c) const
 Operator < used for sorting. More...
 
bool operator<= (const DTTSCand &c) const
 Operator <= used for sorting. More...
 
DTTSCandoperator= (const DTTSCand &tscand)
 Assignment operator. More...
 
void print () const
 Print the trigger. More...
 
void resetCarry ()
 Reset the carry bit. More...
 
void setBitsBkmod ()
 Set the bits for TSM back-up mode. More...
 
void setBitsTsm ()
 Set the quality bits for DTTSM analysis. More...
 
void setBitsTss ()
 Set the quality bits for DTTSS analysis. More...
 
void setSecondTrack ()
 Set the first track bit to second track (used for carry) More...
 
int TcPos () const
 Retrun the TRACO position inside the TSS. More...
 
int tracoNumber () const
 Return the TRACO number. More...
 
const DTTracoTrigDatatracoTr () const
 Return associated TRACO trigger. More...
 
DTTSStss () const
 Return the DTTSS. More...
 
int tssNumber () const
 Return the DTTSS number. More...
 
 ~DTTSCand ()
 Destructor. More...
 

Private Attributes

BitArray< 15 > _dataword
 
int _isCarry
 
int _tcPos
 
const DTTracoTrigData_tctrig
 
DTTSS_tss
 

Detailed Description

A Trigger Server Candidate

Author
C. Grandi, D. Bonacorsi, S. Marcellini

Definition at line 35 of file DTTSCand.h.

Constructor & Destructor Documentation

◆ DTTSCand() [1/3]

DTTSCand::DTTSCand ( DTTSS tss,
const DTTracoTrigData tctrig,
int  ifs,
int  pos 
)

Constructor.

Definition at line 36 of file DTTSCand.cc.

References _dataword, BitArray< N >::one(), and BitArray< N >::unset().

37  : _tss(tss), _tctrig(tctrig), _tcPos(pos), _isCarry(0) {
38  _dataword.one(); // reset dataword to 0x1ff
39 
40  // SM sector collector Set bit 14 instead of 8, for 1st/2nd track to allow
41  // extra space
42  // if(ifs==1)_dataword.unset(8); // set bit 8 (0=first, 1=second tracks)
43  if (ifs == 1)
44  _dataword.unset(14); // set bit 14 (0=first, 1=second tracks)
45 }
int _isCarry
Definition: DTTSCand.h:156
int _tcPos
Definition: DTTSCand.h:154
DTTSS * tss() const
Return the DTTSS.
Definition: DTTSCand.h:90
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
void one()
Definition: BitArray.h:217
DTTSS * _tss
Definition: DTTSCand.h:148
void unset(const int i)
Definition: BitArray.h:225
BitArray< 15 > _dataword
Definition: DTTSCand.h:150

◆ DTTSCand() [2/3]

DTTSCand::DTTSCand ( )

Constructor.

Definition at line 50 of file DTTSCand.cc.

50 {}

◆ DTTSCand() [3/3]

DTTSCand::DTTSCand ( const DTTSCand tscand)

Constructor.

Definition at line 47 of file DTTSCand.cc.

48  : _tss(tscand._tss), _tctrig(tscand._tctrig), _tcPos(tscand._tcPos), _isCarry(tscand._isCarry) {}
int _isCarry
Definition: DTTSCand.h:156
int _tcPos
Definition: DTTSCand.h:154
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
DTTSS * _tss
Definition: DTTSCand.h:148

◆ ~DTTSCand()

DTTSCand::~DTTSCand ( )

Destructor.

Definition at line 55 of file DTTSCand.cc.

55 {}

Member Function Documentation

◆ clear()

void DTTSCand::clear ( void  )
inline

Clear the trigger.

Definition at line 71 of file DTTSCand.cc.

References _dataword, _isCarry, _tctrig, and BitArray< N >::one().

71  {
72  _tctrig = nullptr;
73  _dataword.one();
74 
75  _isCarry = 0;
76 }
int _isCarry
Definition: DTTSCand.h:156
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
void one()
Definition: BitArray.h:217
BitArray< 15 > _dataword
Definition: DTTSCand.h:150

◆ clearBits()

void DTTSCand::clearBits ( )
inline

Clear (set to 1) the quality bits (but first/second track bit)

Definition at line 72 of file DTTSCand.h.

References _dataword, and BitArray< N >::assign().

Referenced by setBitsTsm(), and setBitsTss().

72 { _dataword.assign(5, 3, 0x7); }
void assign(const int p, const int n, const int val)
Definition: BitArray.h:233
BitArray< 15 > _dataword
Definition: DTTSCand.h:150

◆ clearBitsBkmod()

void DTTSCand::clearBitsBkmod ( )
inline

Clear (set to 1) all the bits (back-up mode)

Definition at line 75 of file DTTSCand.h.

References _dataword, and BitArray< N >::assign().

Referenced by setBitsBkmod().

75 { _dataword.assign(0, 7, 0xff); }
void assign(const int p, const int n, const int val)
Definition: BitArray.h:233
BitArray< 15 > _dataword
Definition: DTTSCand.h:150

◆ config()

const DTConfigTSPhi* DTTSCand::config ( void  ) const
inline

Configuration set.

Definition at line 81 of file DTTSCand.h.

References _tss, and DTTSS::config().

Referenced by setBitsTsm(), and setBitsTss().

81 { return _tss->config(); }
const DTConfigTSPhi * config() const
Configuration set.
Definition: DTTSS.h:69
DTTSS * _tss
Definition: DTTSCand.h:148

◆ dataword()

unsigned DTTSCand::dataword ( ) const
inline

Return an uint16 with the content of the data word (for debugging)

Definition at line 132 of file DTTSCand.h.

References _dataword, and BitArray< N >::dataWord().

Referenced by DTTSS::sortTSS1(), and DTTSS::sortTSS2().

132 { return _dataword.dataWord(0) & 0x1ff; }
BitArray< 15 > _dataword
Definition: DTTSCand.h:150
unsigned dataWord(const int i) const
Definition: BitArray.h:124

◆ is0H()

int DTTSCand::is0H ( ) const
inline

Return if H outer.

Definition at line 124 of file DTTSCand.h.

References _tctrig, DTTracoTrigData::pvCode(), and DTTracoTrigData::pvCorr().

124 { return !_tctrig->pvCorr() && _tctrig->pvCode() == 8; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ is0L()

int DTTSCand::is0L ( ) const
inline

Return if L outer.

Definition at line 129 of file DTTSCand.h.

References _tctrig, DTTracoTrigData::pvCode(), and DTTracoTrigData::pvCorr().

129 { return !_tctrig->pvCorr() && _tctrig->pvCode() < 8; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ isCarry()

int DTTSCand::isCarry ( ) const
inline

Return the carry bit.

Definition at line 110 of file DTTSCand.h.

References _isCarry.

Referenced by setBitsTsm(), setBitsTss(), and DTTSS::sortTSS2().

110 { return _isCarry; }
int _isCarry
Definition: DTTSCand.h:156

◆ isCorr()

int DTTSCand::isCorr ( ) const
inline

Return correlation bit.

Definition at line 107 of file DTTSCand.h.

References _tctrig, and DTTracoTrigData::pvCorr().

Referenced by print(), DTTSPhi::runTSPhi(), setBitsTsm(), setBitsTss(), DTTSM::sortTSM1(), DTTSM::sortTSM2(), DTTSS::sortTSS1(), and DTTSS::sortTSS2().

107 { return _tctrig->pvCorr(); }
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ isFirst()

int DTTSCand::isFirst ( ) const
inline

Return the first/second track bit.

Definition at line 99 of file DTTSCand.h.

References _dataword, and BitArray< N >::element().

Referenced by print(), DTTSS::sortTSS1(), and DTTSS::sortTSS2().

99 { return _dataword.element(14) == 0; }
BitArray< 15 > _dataword
Definition: DTTSCand.h:150
int element(const int pos) const
Definition: BitArray.h:206

◆ isH0()

int DTTSCand::isH0 ( ) const
inline

Return if H inner.

Definition at line 121 of file DTTSCand.h.

References _tctrig, DTTracoTrigData::pvCode(), and DTTracoTrigData::pvCorr().

121 { return !_tctrig->pvCorr() && _tctrig->pvCode() == 80; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ isHHorHL()

int DTTSCand::isHHorHL ( ) const
inline

Return if HH or HL.

Definition at line 113 of file DTTSCand.h.

References _tctrig, DTTracoTrigData::pvCode(), and DTTracoTrigData::pvCorr().

113 { return _tctrig->pvCorr() && _tctrig->pvCode() == 80; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ isHtrig()

int DTTSCand::isHtrig ( ) const
inline

Return HTRIG/LTRIG bit.

Definition at line 102 of file DTTSCand.h.

References _tctrig, and DTTracoTrigData::pvCode().

Referenced by print(), DTTSPhi::runTSPhi(), setBitsTsm(), and setBitsTss().

102 { return _tctrig->pvCode() == 8 || _tctrig->pvCode() == 80; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149

◆ isInner()

int DTTSCand::isInner ( ) const
inline

Return Inner/Outer bit.

Definition at line 104 of file DTTSCand.h.

References _tctrig, and DTTracoTrigData::pvCode().

Referenced by print(), DTTSPhi::runTSPhi(), setBitsTsm(), setBitsTss(), DTTSM::sortTSM1(), DTTSM::sortTSM2(), DTTSS::sortTSS1(), and DTTSS::sortTSS2().

104 { return _tctrig->pvCode() > 8; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149

◆ isL0()

int DTTSCand::isL0 ( ) const
inline

Return if L inner.

Definition at line 127 of file DTTSCand.h.

References _tctrig, DTTracoTrigData::pvCode(), and DTTracoTrigData::pvCorr().

127 { return !_tctrig->pvCorr() && _tctrig->pvCode() < 80 && _tctrig->pvCode() > 8; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ isLH()

int DTTSCand::isLH ( ) const
inline

Return if LH.

Definition at line 116 of file DTTSCand.h.

References _tctrig, DTTracoTrigData::pvCode(), and DTTracoTrigData::pvCorr().

116 { return _tctrig->pvCorr() && _tctrig->pvCode() == 8; }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ isLL()

int DTTSCand::isLL ( ) const
inline

Return if LL.

Definition at line 119 of file DTTSCand.h.

References _tctrig, DTTracoTrigData::pvCode(), and DTTracoTrigData::pvCorr().

119 { return _tctrig->pvCorr() && !(_tctrig->pvCode() == 8) && !(_tctrig->pvCode() == 80); }
int pvCode() const
Return the preview code.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int pvCorr() const
Return the preview correaltion bit.

◆ operator<()

bool DTTSCand::operator< ( const DTTSCand c) const
inline

Operator < used for sorting.

Definition at line 135 of file DTTSCand.h.

References _dataword, and DummyCfis::c.

135 { return _dataword < c._dataword; }
BitArray< 15 > _dataword
Definition: DTTSCand.h:150

◆ operator<=()

bool DTTSCand::operator<= ( const DTTSCand c) const
inline

Operator <= used for sorting.

Definition at line 138 of file DTTSCand.h.

References _dataword, and DummyCfis::c.

138 { return _dataword <= c._dataword; }
BitArray< 15 > _dataword
Definition: DTTSCand.h:150

◆ operator=()

DTTSCand & DTTSCand::operator= ( const DTTSCand tscand)

Assignment operator.

Definition at line 61 of file DTTSCand.cc.

References _isCarry, _tcPos, _tctrig, and _tss.

61  {
62  if (this != &tscand) {
63  _tss = tscand._tss;
64  _tctrig = tscand._tctrig;
65  _tcPos = tscand._tcPos;
66  _isCarry = tscand._isCarry;
67  }
68  return *this;
69 }
int _isCarry
Definition: DTTSCand.h:156
int _tcPos
Definition: DTTSCand.h:154
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
DTTSS * _tss
Definition: DTTSCand.h:148

◆ print()

void DTTSCand::print ( void  ) const

Print the trigger.

Definition at line 265 of file DTTSCand.cc.

References _dataword, gather_cfg::cout, isCorr(), isFirst(), isHtrig(), isInner(), BitArray< N >::print(), DTTracoTrigData::pvK(), and tracoTr().

265  {
266  std::cout << " First=" << isFirst();
267  std::cout << " HTRIG=" << isHtrig();
268  std::cout << " Inner=" << isInner();
269  std::cout << " Corr=" << isCorr();
270  std::cout << " Kpv=" << tracoTr()->pvK();
271  std::cout << " dataword=";
272  _dataword.print();
273  std::cout << std::endl;
274 }
std::ostream & print(std::ostream &o=std::cout) const
Definition: BitArray.h:340
int isInner() const
Return Inner/Outer bit.
Definition: DTTSCand.h:104
const DTTracoTrigData * tracoTr() const
Return associated TRACO trigger.
Definition: DTTSCand.h:84
int isHtrig() const
Return HTRIG/LTRIG bit.
Definition: DTTSCand.h:102
int isCorr() const
Return correlation bit.
Definition: DTTSCand.h:107
BitArray< 15 > _dataword
Definition: DTTSCand.h:150
int isFirst() const
Return the first/second track bit.
Definition: DTTSCand.h:99
int pvK() const
Return the preview K.

◆ resetCarry()

void DTTSCand::resetCarry ( )
inline

Reset the carry bit.

Definition at line 69 of file DTTSCand.h.

References _isCarry.

69 { _isCarry = 0; }
int _isCarry
Definition: DTTSCand.h:156

◆ setBitsBkmod()

void DTTSCand::setBitsBkmod ( )

Set the bits for TSM back-up mode.

Definition at line 150 of file DTTSCand.cc.

References _dataword, _tctrig, a0, testProducerWithPsetDescEmpty_cfi::a2, clearBitsBkmod(), DTTracoTrigData::qdec(), and BitArray< N >::unset().

Referenced by DTTSM::sortTSM1(), and DTTSM::sortTSM2().

150  {
151  // first/second track already set. Set other 4 bits (1 for null, 3 for a2, a1,
152  // a0)
153  clearBitsBkmod();
154  // std::cout << " clearbits in TSM bk mode " << _dataword.print() <<
155  // std::endl;
156 
157  int a2 = 6;
158  int a1 = 5;
159  int a0 = 4;
160  //
161  // std::cout << " _tctrig->qdec(): " << _tctrig->qdec() << std::endl;
162  if (_tctrig->qdec() == 6) {
163  _dataword.unset(a2);
164  _dataword.unset(a1);
165  _dataword.unset(a0);
166  } // 1-000
167  if (_tctrig->qdec() == 5) {
168  _dataword.unset(a2);
169  _dataword.unset(a1);
170  } // 1-001
171  if (_tctrig->qdec() == 4) {
172  _dataword.unset(a2);
173  _dataword.unset(a0);
174  } // 1-010
175  if (_tctrig->qdec() == 3) {
176  _dataword.unset(a1);
177  } // 1-101
178  if (_tctrig->qdec() == 2) {
179  _dataword.unset(a1);
180  _dataword.unset(a0);
181  } // 1-100
182 
183  if (_tctrig->qdec() == 0) {
184  _dataword.unset(a0);
185  } // 1-110
186 
187  // std::cout << " set Bits TSM back up " << _dataword.print() << std::endl;
188 }
void clearBitsBkmod()
Clear (set to 1) all the bits (back-up mode)
Definition: DTTSCand.h:75
int qdec() const
Return the trigger code in new format.
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
void unset(const int i)
Definition: BitArray.h:225
static constexpr float a0
BitArray< 15 > _dataword
Definition: DTTSCand.h:150

◆ setBitsTsm()

void DTTSCand::setBitsTsm ( )

Set the quality bits for DTTSM analysis.

Definition at line 190 of file DTTSCand.cc.

References _dataword, _tctrig, BitArray< N >::assign(), clearBits(), config(), gather_cfg::cout, BitArray< N >::element(), isCarry(), isCorr(), isHtrig(), isInner(), DTTracoTrigData::pvK(), DTConfigTSPhi::TsmCorrEna(), DTConfigTSPhi::TsmCorrEnaCarry(), DTConfigTSPhi::TsmHtrigEna(), DTConfigTSPhi::TsmHtrigEnaCarry(), DTConfigTSPhi::TsmInOutEna(), DTConfigTSPhi::TsmInOutEnaCarry(), DTConfigTSPhi::TsmMasking(), DTConfigTSPhi::TssMasking(), and BitArray< N >::unset().

190  {
191  // first/second track already set. Set other 3 bits
192  int itk = _dataword.element(14); // first tracks 0, second tracks 1
193 
194  clearBits();
195 
196  if (_tctrig->pvK() > 31 || _tctrig->pvK() < 0) { // Check K within 5 bits range
197  std::cout << "DTTSCand::setBitsTsm pvK outside valid range: " << _tctrig->pvK();
198  std::cout << " deltaPsiR set to 31" << std::endl;
199  } else {
200  // SM double TSM
201  // assign preview in dataword (common to any other assignment)
202  _dataword.assign(0, 5, _tctrig->pvK());
203  // _dataword.assign(0,5,0);
204  //
205 
206  int posH = -1;
207  int posI = -1;
208  int posC = -1;
209  switch (config()->TsmMasking(itk)) {
210  case 123: // H/L, In/Out, Corr/NotC
211  posH = 7;
212  posI = 6;
213  posC = 5;
214  break;
215  case 132: // H/L, Corr/NotC, In/Out
216  posH = 7;
217  posI = 5;
218  posC = 6;
219  break;
220  case 213: // In/Out, H/L, Corr/NotC
221  posH = 6;
222  posI = 7;
223  posC = 5;
224  break;
225  case 231: // In/Out, Corr/NotC, H/L
226  posH = 5;
227  posI = 7;
228  posC = 6;
229  break;
230  case 312: // Corr/NotC, H/L, In/Out
231  posH = 6;
232  posI = 5;
233  posC = 7;
234  break;
235  case 321: // Corr/NotC, In/Out, H/L
236  posH = 5;
237  posI = 6;
238  posC = 7;
239  break;
240  default:
241  std::cout << "DTTSCand::DTTSCand(): masking not correct: ";
242  std::cout << config()->TssMasking(itk);
243  std::cout << " All bits set to 1" << std::endl;
244 
245  // Masking:
246  bool enaH = config()->TsmHtrigEna(itk);
247  bool enaI = config()->TsmInOutEna(itk);
248  bool enaC = config()->TsmCorrEna(itk);
249  if (isCarry()) {
250  // Special setting for carry
251  enaH = config()->TsmHtrigEnaCarry();
252  enaI = config()->TsmInOutEnaCarry();
253  enaC = config()->TsmCorrEnaCarry();
254  }
255  // Bits set to 0 give higher priority:
256  if (isHtrig() && enaH && posH > 0)
257  _dataword.unset(posH);
258  if (isInner() && enaI && posI > 0)
259  _dataword.unset(posI);
260  if (isCorr() && enaC && posC > 0)
261  _dataword.unset(posC);
262  }
263  }
264 }
const DTConfigTSPhi * config() const
Configuration set.
Definition: DTTSCand.h:81
int TsmMasking(int i) const
Order of quality bits in TSM for sort1/2.
Definition: DTConfigTSPhi.h:84
bool TsmHtrigEna(int i) const
Enable Htrig checking in TSM for sort1/2.
Definition: DTConfigTSPhi.h:87
bool TsmInOutEnaCarry() const
Enable Inner SL checking in TSM for carry.
Definition: DTConfigTSPhi.h:96
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int isInner() const
Return Inner/Outer bit.
Definition: DTTSCand.h:104
bool TsmCorrEna(int i) const
Enable Correlation checking in TSM for sort1/2.
Definition: DTConfigTSPhi.h:99
int isHtrig() const
Return HTRIG/LTRIG bit.
Definition: DTTSCand.h:102
int isCorr() const
Return correlation bit.
Definition: DTTSCand.h:107
void unset(const int i)
Definition: BitArray.h:225
int isCarry() const
Return the carry bit.
Definition: DTTSCand.h:110
void clearBits()
Clear (set to 1) the quality bits (but first/second track bit)
Definition: DTTSCand.h:72
void assign(const int p, const int n, const int val)
Definition: BitArray.h:233
BitArray< 15 > _dataword
Definition: DTTSCand.h:150
int pvK() const
Return the preview K.
int TssMasking(int i) const
Order of quality bits in TSS for sort1/2.
Definition: DTConfigTSPhi.h:63
bool TsmHtrigEnaCarry() const
Enable Htrig checking in TSM for carry.
Definition: DTConfigTSPhi.h:90
bool TsmInOutEna(int i) const
Enable Inner SL checking in TSM for sort1/2.
Definition: DTConfigTSPhi.h:93
bool TsmCorrEnaCarry() const
Enable Correlation checking in TSM for carry.
int element(const int pos) const
Definition: BitArray.h:206

◆ setBitsTss()

void DTTSCand::setBitsTss ( )

Set the quality bits for DTTSS analysis.

Definition at line 78 of file DTTSCand.cc.

References _dataword, _tctrig, BitArray< N >::assign(), clearBits(), config(), gather_cfg::cout, BitArray< N >::element(), isCarry(), isCorr(), isHtrig(), isInner(), DTTracoTrigData::pvK(), DTConfigTSPhi::TssCorrEna(), DTConfigTSPhi::TssCorrEnaCarry(), DTConfigTSPhi::TssHtrigEna(), DTConfigTSPhi::TssHtrigEnaCarry(), DTConfigTSPhi::TssInOutEna(), DTConfigTSPhi::TssInOutEnaCarry(), DTConfigTSPhi::TssMasking(), and BitArray< N >::unset().

Referenced by DTTSM::sortTSM1(), DTTSM::sortTSM2(), DTTSS::sortTSS1(), and DTTSS::sortTSS2().

78  {
79  // first/second track already set. Set other 3 bits
80  int itk = _dataword.element(14); // first tracks 0, second tracks 1
81 
82  clearBits();
83  if (_tctrig->pvK() > 32 || _tctrig->pvK() < 0) { // Check K within 5 bits range
84  std::cout << "DTTSCand::setBitsTss() pvK outside valid range: " << _tctrig->pvK();
85  std::cout << " deltaPsiR set to 31" << std::endl;
86  } else {
87  // assign preview in dataword (common to any other assignment)
88  _dataword.assign(0, 5, _tctrig->pvK());
89  // _dataword.assign(0,5,0);
90 
91  int posH = -1;
92  int posI = -1;
93  int posC = -1;
94  switch (config()->TssMasking(itk)) {
95  case 123: // H/L, In/Out, Corr/NotC
96  posH = 7;
97  posI = 6;
98  posC = 5;
99  break;
100  case 132: // H/L, Corr/NotC, In/Out
101  posH = 7;
102  posI = 5;
103  posC = 6;
104  break;
105  case 213: // In/Out, H/L, Corr/NotC
106  posH = 6;
107  posI = 7;
108  posC = 5;
109  break;
110  case 231: // In/Out, Corr/NotC, H/L
111  posH = 5;
112  posI = 7;
113  posC = 6;
114  break;
115  case 312: // Corr/NotC, H/L, In/Out
116  posH = 6;
117  posI = 5;
118  posC = 7;
119  break;
120  case 321: // Corr/NotC, In/Out, H/L
121  posH = 5;
122  posI = 6;
123  posC = 7;
124  break;
125  default:
126  std::cout << "DTTSCand::DTTSCand(): masking not correct: ";
127  std::cout << config()->TssMasking(itk);
128  std::cout << " All bits set to 1" << std::endl;
129  }
130  // Masking:
131  bool enaH = config()->TssHtrigEna(itk);
132  bool enaI = config()->TssInOutEna(itk);
133  bool enaC = config()->TssCorrEna(itk);
134  if (isCarry()) {
135  // Special setting for carry
136  enaH = config()->TssHtrigEnaCarry();
137  enaI = config()->TssInOutEnaCarry();
138  enaC = config()->TssCorrEnaCarry();
139  }
140  // Bits set to 0 give higher priority:
141  if (isHtrig() && enaH && posH > 0)
142  _dataword.unset(posH);
143  if (isInner() && enaI && posI > 0)
144  _dataword.unset(posI);
145  if (isCorr() && enaC && posC > 0)
146  _dataword.unset(posC);
147  }
148 }
bool TssHtrigEna(int i) const
Enable Htrig checking in TSS for sort1/2.
Definition: DTConfigTSPhi.h:66
const DTConfigTSPhi * config() const
Configuration set.
Definition: DTTSCand.h:81
bool TssCorrEnaCarry() const
Enable Correlation checking in TSS for carry.
Definition: DTConfigTSPhi.h:81
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int isInner() const
Return Inner/Outer bit.
Definition: DTTSCand.h:104
int isHtrig() const
Return HTRIG/LTRIG bit.
Definition: DTTSCand.h:102
bool TssHtrigEnaCarry() const
Enable Htrig checking in TSS for carry.
Definition: DTConfigTSPhi.h:69
bool TssCorrEna(int i) const
Enable Correlation checking in TSS for sort1/2.
Definition: DTConfigTSPhi.h:78
int isCorr() const
Return correlation bit.
Definition: DTTSCand.h:107
void unset(const int i)
Definition: BitArray.h:225
int isCarry() const
Return the carry bit.
Definition: DTTSCand.h:110
bool TssInOutEnaCarry() const
Enable Inner SL checking in TSS for carry.
Definition: DTConfigTSPhi.h:75
bool TssInOutEna(int i) const
Enable Inner SL checking in TSS for sort1/2.
Definition: DTConfigTSPhi.h:72
void clearBits()
Clear (set to 1) the quality bits (but first/second track bit)
Definition: DTTSCand.h:72
void assign(const int p, const int n, const int val)
Definition: BitArray.h:233
BitArray< 15 > _dataword
Definition: DTTSCand.h:150
int pvK() const
Return the preview K.
int TssMasking(int i) const
Order of quality bits in TSS for sort1/2.
Definition: DTConfigTSPhi.h:63
int element(const int pos) const
Definition: BitArray.h:206

◆ setSecondTrack()

void DTTSCand::setSecondTrack ( )
inline

Set the first track bit to second track (used for carry)

Definition at line 63 of file DTTSCand.h.

References _dataword, _isCarry, and BitArray< N >::set().

Referenced by DTTSM::sortTSM1(), and DTTSS::sortTSS1().

63  {
64  _dataword.set(14);
65  _isCarry = 1;
66  }
int _isCarry
Definition: DTTSCand.h:156
BitArray< 15 > _dataword
Definition: DTTSCand.h:150
void set(const int i)
Definition: BitArray.h:224

◆ TcPos()

int DTTSCand::TcPos ( ) const
inline

Retrun the TRACO position inside the TSS.

Definition at line 87 of file DTTSCand.h.

References _tcPos.

Referenced by DTTSM::sortTSM1(), DTTSM::sortTSM2(), DTTSS::sortTSS1(), and DTTSS::sortTSS2().

87 { return _tcPos; }
int _tcPos
Definition: DTTSCand.h:154

◆ tracoNumber()

int DTTSCand::tracoNumber ( ) const
inline

Return the TRACO number.

Definition at line 96 of file DTTSCand.h.

References _tctrig, and DTTracoTrigData::tracoNumber().

96 { return _tctrig->tracoNumber(); }
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149
int tracoNumber() const
Return parent TRACO number.

◆ tracoTr()

const DTTracoTrigData* DTTSCand::tracoTr ( ) const
inline

Return associated TRACO trigger.

Definition at line 84 of file DTTSCand.h.

References _tctrig.

Referenced by DTTSS::getTracoT(), DTTSM::getTracoT(), print(), and DTTSPhi::runTSPhi().

84 { return _tctrig; }
const DTTracoTrigData * _tctrig
Definition: DTTSCand.h:149

◆ tss()

DTTSS* DTTSCand::tss ( ) const
inline

Return the DTTSS.

Definition at line 90 of file DTTSCand.h.

References _tss.

90 { return _tss; }
DTTSS * _tss
Definition: DTTSCand.h:148

◆ tssNumber()

int DTTSCand::tssNumber ( ) const
inline

Return the DTTSS number.

Definition at line 93 of file DTTSCand.h.

References _tss, and DTTSS::number().

Referenced by DTTSM::sortTSM1(), and DTTSM::sortTSM2().

93 { return _tss->number(); }
int number() const
Return identifier.
Definition: DTTSS.h:66
DTTSS * _tss
Definition: DTTSCand.h:148

Member Data Documentation

◆ _dataword

BitArray<15> DTTSCand::_dataword
private

◆ _isCarry

int DTTSCand::_isCarry
private

Definition at line 156 of file DTTSCand.h.

Referenced by clear(), isCarry(), operator=(), resetCarry(), and setSecondTrack().

◆ _tcPos

int DTTSCand::_tcPos
private

Definition at line 154 of file DTTSCand.h.

Referenced by operator=(), and TcPos().

◆ _tctrig

const DTTracoTrigData* DTTSCand::_tctrig
private

◆ _tss

DTTSS* DTTSCand::_tss
private

Definition at line 148 of file DTTSCand.h.

Referenced by config(), operator=(), tss(), and tssNumber().