Skip to content
Snippets Groups Projects

24.0-coverity-TrigT1RPClogic

Merged Shaun Roe requested to merge sroe/athena:24.0-coverity-TrigT1RPClogic into 24.0
1 file
+ 28
14
Compare changes
  • Side-by-side
  • Inline
/*
Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
*/
#include "TrigT1RPClogic/decodeSL.h"
namespace{
/*
* Note implicit sign extension: field with type unsigned short (16 bits, unsigned)
* is promoted in (unsigned short)field << posit to type int (32 bits, signed),
* then sign-extended to type unsigned long (64 bits, unsigned). If
* (unsigned short)field << posit is greater than 0x7FFFFFFF, the upper bits of the
* result will all be 1.
*/
unsigned short
code(unsigned long int slword, unsigned short int field, unsigned short int posit){
return ((slword&((unsigned short int) field<<posit))>>posit);
}
}
namespace TriggerRPC{
//****************************************************************************//
unsigned short int moreThan2(unsigned long int slword) {
//
// returns 1 if the rae more than 2 candidates in a sector
// returns 1 if there are more than 2 candidates in a sector
// returns 0 otherwise
//
unsigned short int field=0x1;
unsigned short int posit=0;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
//****************************************************************************//
unsigned short int ROI1(unsigned long int slword) {
@@ -23,7 +37,7 @@ unsigned short int ROI1(unsigned long int slword) {
//
unsigned short int field=0x1f;
unsigned short int posit=1;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
//****************************************************************************//
unsigned short int OVL1(unsigned long int slword) {
@@ -32,7 +46,7 @@ unsigned short int OVL1(unsigned long int slword) {
//
unsigned short int field=0x3;
unsigned short int posit=8;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
//****************************************************************************//
unsigned short int ROI2(unsigned long int slword) {
@@ -41,7 +55,7 @@ unsigned short int ROI2(unsigned long int slword) {
//
unsigned short int field=0x1f;
unsigned short int posit=10;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
//****************************************************************************//
unsigned short int OVL2(unsigned long int slword) {
@@ -50,7 +64,7 @@ unsigned short int OVL2(unsigned long int slword) {
//
unsigned short int field=0x3;
unsigned short int posit=17;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
//****************************************************************************//
unsigned short int PT1(unsigned long int slword) {
@@ -59,7 +73,7 @@ unsigned short int PT1(unsigned long int slword) {
//
unsigned short int field=0x7;
unsigned short int posit=19;
unsigned short int ptcode=((slword&((unsigned short int) field<<posit))>>posit);
unsigned short int ptcode = code(slword, field, posit);
if(!ptcode) {
return 0;
} else {
@@ -74,7 +88,7 @@ unsigned short int PT2(unsigned long int slword) {
//
unsigned short int field=0x7;
unsigned short int posit=22;
unsigned short int ptcode=((slword&((unsigned short int) field<<posit))>>posit);
unsigned short int ptcode = code(slword, field, posit);
if(!ptcode) {
return 0;
} else {
@@ -85,22 +99,22 @@ unsigned short int PT2(unsigned long int slword) {
//****************************************************************************//
unsigned short moreThan1_1(unsigned long int slword) {
//
// returns 1 if the are more than 1 candidates in ROI1
// returns 1 if there is more than 1 candidate in ROI1
// returns 0 otherwise
//
unsigned short int field=0x1;
unsigned short int posit=25;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
//****************************************************************************//
unsigned short moreThan1_2(unsigned long int slword) {
//
// returns 1 if the are more than 1 candidates in ROI2
// returns 1 if there is more than 1 candidate in ROI2
// returns 0 otherwise
//
unsigned short int field=0x1;
unsigned short int posit=26;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
//****************************************************************************//
unsigned short BunchXID(unsigned long int slword) {
@@ -109,7 +123,7 @@ unsigned short BunchXID(unsigned long int slword) {
//
unsigned short int field=0x7;
unsigned short int posit=27;
return ((slword&((unsigned short int) field<<posit))>>posit);
return code(slword, field, posit);
}
Loading