32 const std::vector< TriggerThreshold* >* theMuonConfig )
34 construct( roIWord, theRecRPCRoiTool, theRecTGCRoiTool, theMuonConfig );
42 construct( roIWord, theRecRPCRoiTool, theRecTGCRoiTool,
l1menu );
49 const std::vector< TriggerThreshold* >* theMuonConfig )
52 m_firstCandidateFlag =
false;
53 m_sectorOflFlag =
false;
60 unsigned int sectorAddress = this->getBitMaskValue( &m_roiWord,
SectorAddressMask );
61 unsigned int sectorRoIOvl = this->getBitMaskValue( &m_roiWord,
RoIOvlMask );
64 if ( this->getBitMaskValue( &m_roiWord,
FirsCandMask ) == 1 ) {
65 m_firstCandidateFlag =
true;
69 if ( this->getBitMaskValue( &m_roiWord,
SectOflMask ) == 1 ) {
70 m_sectorOflFlag =
true;
74 if ( this->getBitMaskValue( &m_roiWord,
PadOflMask ) == 1 ) {
79 m_thresholdNumber = this->getBitMaskValue( &m_roiWord,
ThresNumMask );
83 unsigned int temp_sysID = this->getBitMaskValue( §orAddress,
SysIDMask );
85 if( temp_sysID & 0
x2 ) m_sysID = 1;
86 else if( temp_sysID & 0
x1 ) m_sysID = 2;
88 m_subSysID = this->getBitMaskValue( §orAddress,
SubSysIDMask );
91 m_roiNumber = this->getBitMaskValue( §orRoIOvl,
BarrelRoIMask );
92 m_overlap = this->getBitMaskValue( §orRoIOvl,
BarrelOvlMask );
93 }
else if ( m_sysID == 2 ) {
95 m_roiNumber = this->getBitMaskValue( §orRoIOvl,
ForwardRoIMask );
97 }
else if ( m_sysID == 1 ) {
99 m_roiNumber = this->getBitMaskValue( §orRoIOvl,
EndcapRoIMask );
100 m_overlap = this->getBitMaskValue( §orRoIOvl,
EndcapOvlMask );
104 if( theRecRPCRoiTool ) {
107 if( theRecRPCRoiTool->
roiData( roIWord, roiData ).isSuccess() ){
108 m_eta = roiData.
eta();
109 m_phi = roiData.
phi();
113 if( theRecTGCRoiTool ) {
116 if( theRecTGCRoiTool->
roiData( roIWord, roiData ).isSuccess() ){
117 m_eta = roiData.
eta();
118 m_phi = roiData.
phi();
126 m_thresholdValue = 0;
128 if( thr->type() == L1DataDef::muonType() &&
129 thr->thresholdNumber() + 1 ==
static_cast< int >( m_thresholdNumber ) ) {
132 m_thresholdValue =
static_cast< unsigned int >( ttv->
ptcut() );
144 m_firstCandidateFlag =
false;
145 m_sectorOflFlag =
false;
146 m_padOflFlag =
false;
152 unsigned int sectorAddress = this->getBitMaskValue( &m_roiWord,
SectorAddressMask );
153 unsigned int sectorRoIOvl = this->getBitMaskValue( &m_roiWord,
RoIOvlMask );
156 if ( this->getBitMaskValue( &m_roiWord,
FirsCandMask ) == 1 ) {
157 m_firstCandidateFlag =
true;
161 if ( this->getBitMaskValue( &m_roiWord,
SectOflMask ) == 1 ) {
162 m_sectorOflFlag =
true;
166 if ( this->getBitMaskValue( &m_roiWord,
PadOflMask ) == 1 ) {
171 m_thresholdNumber = this->getBitMaskValue( &m_roiWord,
ThresNumMask );
175 unsigned int temp_sysID = this->getBitMaskValue( §orAddress,
SysIDMask );
177 if( temp_sysID & 0
x2 ) m_sysID = 1;
178 else if( temp_sysID & 0
x1 ) m_sysID = 2;
180 m_subSysID = this->getBitMaskValue( §orAddress,
SubSysIDMask );
181 if ( m_sysID == 0 ) {
183 m_roiNumber = this->getBitMaskValue( §orRoIOvl,
BarrelRoIMask );
184 m_overlap = this->getBitMaskValue( §orRoIOvl,
BarrelOvlMask );
185 }
else if ( m_sysID == 2 ) {
187 m_roiNumber = this->getBitMaskValue( §orRoIOvl,
ForwardRoIMask );
189 }
else if ( m_sysID == 1 ) {
191 m_roiNumber = this->getBitMaskValue( §orRoIOvl,
EndcapRoIMask );
192 m_overlap = this->getBitMaskValue( §orRoIOvl,
EndcapOvlMask );
197 if( theRecRoiTool ) {
200 if( theRecRoiTool->
roiData( roIWord, roiData ).isSuccess() ){
201 m_eta = roiData.
eta();
202 m_phi = roiData.
phi();
207 m_thresholdValue = 0;
208 for(
const shared_ptr<TrigConf::L1Threshold> &thr :
l1menu->thresholds(
"MU")) {
210 if( muonThr->mapping() + 1 == m_thresholdNumber ) {
211 m_thresholdValue = muonThr->
ptBarrel();
242 unsigned int maskcopy;
248 while ( ( maskcopy & 0x00000001 ) == 0 ) {
249 maskcopy = maskcopy >> 1;
261 string hemisphere =
"-";
263 if ( this->sysID() == 0 ) {system =
"B";}
264 if ( this->sysID() == 1 ) {system =
"F";}
265 if ( this->sysID() > 1 ) {system =
"E";}
267 if ( this->subsysID() == 1 ) {hemisphere =
"+";}
269 out <<
" Addr: " << hemisphere << system <<
" "
270 << setw( 2 ) << ios::dec << this-> sectorID()
271 <<
" Pt/RoI: " << this->getThresholdNumber()
272 <<
" " << setw( 2 ) << this->getRoINumber() << std::setfill(
' ' )
273 <<
" Ovl: " << this->getOverlap()
274 <<
" pad/secOF: " << setw( 2 ) << this->padOverflow()
275 << setw( 2 ) << this->sectorOverflow()
276 <<
" First: " << this->firstCandidate();