From cfb205b05d3f2e9bbdf5319b2a95e30fc4e2fab1 Mon Sep 17 00:00:00 2001 From: Peter Hansen <phansen@nbi.dk> Date: Mon, 23 Jan 2017 20:54:20 +0100 Subject: [PATCH] remove cov defects (TRT_ConditionsServices-01-01-12) * Tagging TRT_ConditionsServices-01-01-12. * Coverity defects 105413,105414,105415,105416,105417,105418,12028,11498,11499 --- .../src/TRT_AlignDbSvc.cxx | 38 ++++++++++++------- .../src/TRT_HWMappingSvc.cxx | 38 +++++++++++++------ 2 files changed, 51 insertions(+), 25 deletions(-) diff --git a/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_AlignDbSvc.cxx b/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_AlignDbSvc.cxx index a1bbcd9ae47..b9f088a5c43 100755 --- a/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_AlignDbSvc.cxx +++ b/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_AlignDbSvc.cxx @@ -770,20 +770,20 @@ StatusCode TRT_AlignDbSvc::setAlignTransform(Identifier ident, Amg::Transform3D if(setAlignTransformL1(ident,trans).isFailure()){ msg(MSG::FATAL)<<"Failed to set align Transform L1" << endmsg; return StatusCode::FAILURE; - break; } + break; case 2: if(setAlignTransformL2(ident,trans).isFailure()){ msg(MSG::FATAL)<<"Failed to set align Transform L2" << endmsg; return StatusCode::FAILURE; - break; } + break; case 3: if(setAlignTransformL3(ident,trans).isFailure()){ - msg(MSG::FATAL)<<"Failed to set align Transform L2" << endmsg; + msg(MSG::FATAL)<<"Failed to set align Transform L3" << endmsg; return StatusCode::FAILURE; - break; } + break; } return StatusCode::SUCCESS; @@ -1618,6 +1618,8 @@ StatusCode TRT_AlignDbSvc::writeGlobalFolderFile( const std::string file) + + StatusCode TRT_AlignDbSvc::tweakGlobalFolder(Identifier ident, Amg::Transform3D trans ) { // find transform key, then set appropriate transform @@ -1625,8 +1627,9 @@ StatusCode TRT_AlignDbSvc::tweakGlobalFolder(Identifier ident, Amg::Transform3D CondAttrListCollection* atrlistcol2=0; bool result = false; std::string key="/TRT/AlignL1/TRT"; + msg(MSG::DEBUG) << " Identifier is valid: "<< ident.is_valid() << endmsg; int bec=m_trtid->barrel_ec(ident); - const unsigned int DBident=bec*1000; + const unsigned int DBident=1000+bec*100; // so far not a very fancy DB identifier, but seems elaborate enough for this simple structure if (StatusCode::SUCCESS==m_detStore->retrieve(atrlistcol1,key)) { @@ -1638,7 +1641,10 @@ StatusCode TRT_AlignDbSvc::tweakGlobalFolder(Identifier ident, Amg::Transform3D const coral::AttributeList& atrlist=citr->second; coral::AttributeList& atrlist2 = const_cast<coral::AttributeList&>(atrlist); - if(citr->first!=DBident) continue; + if(citr->first!=DBident){ + msg(MSG::DEBUG) << "tweakGlobalFolder fails due to identifier mismatch" << endmsg; + continue; + } else { msg(MSG::DEBUG) << "Tweak Old global DB -- channel: " << citr->first << " ,bec: " << atrlist2["bec"].data<int>() @@ -1659,19 +1665,23 @@ StatusCode TRT_AlignDbSvc::tweakGlobalFolder(Identifier ident, Amg::Transform3D HepGeom::Transform3D oldtransform(oldrotation, oldtranslation); // get the new transform - //HepGeom::Transform3D newtrans = Amg::EigenTransformToCLHEP(trans)*oldtrans; - Amg::Transform3D newtrans = trans*Amg::CLHEPTransformToEigen(oldtransform); + HepGeom::Transform3D newtrans = Amg::EigenTransformToCLHEP(trans)*oldtransform; + Amg::Transform3D newtransAMG = trans*Amg::CLHEPTransformToEigen(oldtransform); // Extract the values we need to write to DB - Amg::Vector3D shift=newtrans.translation(); - Amg::Vector3D eulerangles = newtrans.rotation().eulerAngles(2,0,2) ; - //CLHEP::HepRotation rot=newtrans.getRotation(); + Amg::Vector3D shift=newtransAMG.translation(); + CLHEP::HepRotation rot=newtrans.getRotation(); + Amg::Vector3D eulerangles; + eulerangles[0] = rot.getPhi(); + eulerangles[1] = rot.getTheta(); + eulerangles[2] = rot.getPsi(); + atrlist2["Tx"].data<float>() = shift.x(); atrlist2["Ty"].data<float>() = shift.y(); atrlist2["Tz"].data<float>() = shift.z(); - atrlist2["phi"].data<float>() = eulerangles[0]/CLHEP::mrad ; - atrlist2["theta"].data<float>() = eulerangles[1]/CLHEP::mrad ; - atrlist2["psi"].data<float>() = eulerangles[2]/CLHEP::mrad ; + atrlist2["phi"].data<float>() = eulerangles[0] ; + atrlist2["theta"].data<float>() = eulerangles[1] ; + atrlist2["psi"].data<float>() = eulerangles[2] ; result = true; msg(MSG::DEBUG) << "Tweak New global DB -- channel: " << citr->first diff --git a/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_HWMappingSvc.cxx b/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_HWMappingSvc.cxx index e1c208c91ca..c083e2590cd 100644 --- a/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_HWMappingSvc.cxx +++ b/InnerDetector/InDetConditions/TRT_ConditionsServices/src/TRT_HWMappingSvc.cxx @@ -40,6 +40,7 @@ TRT_HWMappingSvc::TRT_HWMappingSvc( const std::string& name, m_Barrel_HV_CoolChanNums(0), m_EndcapA_HV_CoolChanNums(0), m_EndcapC_HV_CoolChanNums(0), + m_TRT_ID_Helper(0), m_TRTStrawNeighbourSvc("TRT_StrawNeighbourSvc",name) { // Get properties from job options @@ -129,7 +130,7 @@ std::string TRT_HWMappingSvc::get_HV_CoolChanName( const Identifier ident ) { int padNum = get_HV_BarrelPadNum( ident ); int hashedPad = hashThisBarrelPad( phi_module, layer_or_wheel, padNum ); if ( m_Barrel_HV_CoolChanNames ) { - if ( hashedPad >= (int)m_Barrel_HV_CoolChanNames->size() ) { + if ( hashedPad >= (int)m_Barrel_HV_CoolChanNames->size() || hashedPad<0) { msg(MSG::WARNING) << "channel request for invalid barrel HV pad." << endmsg; return ""; } else chanName = m_Barrel_HV_CoolChanNames->at(hashedPad); @@ -140,7 +141,7 @@ std::string TRT_HWMappingSvc::get_HV_CoolChanName( const Identifier ident ) { int cellNum = get_HV_EndcapCellNum( ident ); int hashedCell = hashThisEndcapCell( phi_module, layer_or_wheel, fourPlaneNum, cellNum ); if ( m_EndcapA_HV_CoolChanNames ) { - if ( hashedCell >= (int)m_EndcapA_HV_CoolChanNames->size() ) { + if ( hashedCell >= (int)m_EndcapA_HV_CoolChanNames->size() || hashedCell<0 ) { msg(MSG::WARNING) << "channel request for invalid endcap A HV pad." << endmsg; return ""; } else chanName = m_EndcapA_HV_CoolChanNames->at(hashedCell); @@ -151,7 +152,7 @@ std::string TRT_HWMappingSvc::get_HV_CoolChanName( const Identifier ident ) { int cellNum = get_HV_EndcapCellNum( ident ); int hashedCell = hashThisEndcapCell( phi_module, layer_or_wheel, fourPlaneNum, cellNum ); if ( m_EndcapC_HV_CoolChanNames ) { - if ( hashedCell >= (int)m_EndcapC_HV_CoolChanNames->size() ) { + if ( hashedCell >= (int)m_EndcapC_HV_CoolChanNames->size() || hashedCell<0) { msg(MSG::WARNING) << "channel request for invalid endcap C HV pad." << endmsg; return ""; } else chanName = m_EndcapC_HV_CoolChanNames->at(hashedCell); @@ -183,7 +184,7 @@ int TRT_HWMappingSvc::get_HV_CoolChanNum( const Identifier ident ) { int padNum = get_HV_BarrelPadNum( ident ); int hashedPad = hashThisBarrelPad( phi_module, layer_or_wheel, padNum ); if ( m_Barrel_HV_CoolChanNums ) { - if ( hashedPad >= (int)m_Barrel_HV_CoolChanNums->size() ) { + if ( hashedPad >= (int)m_Barrel_HV_CoolChanNums->size() || hashedPad<0 ) { msg(MSG::WARNING) << "channel number request for invalid barrel HV pad." << endmsg; return -1; } else chanNum = m_Barrel_HV_CoolChanNums->at(hashedPad); @@ -194,7 +195,7 @@ int TRT_HWMappingSvc::get_HV_CoolChanNum( const Identifier ident ) { int cellNum = get_HV_EndcapCellNum( ident ); int hashedCell = hashThisEndcapCell( phi_module, layer_or_wheel, fourPlaneNum, cellNum ); if ( m_EndcapA_HV_CoolChanNums ) { - if ( hashedCell >= (int)m_EndcapA_HV_CoolChanNums->size() ) { + if ( hashedCell >= (int)m_EndcapA_HV_CoolChanNums->size() || hashedCell<0) { msg(MSG::WARNING) << "channel number request for invalid endcap A HV cell." << endmsg; return -1; } else chanNum = m_EndcapA_HV_CoolChanNums->at(hashedCell); @@ -205,7 +206,7 @@ int TRT_HWMappingSvc::get_HV_CoolChanNum( const Identifier ident ) { int cellNum = get_HV_EndcapCellNum( ident ); int hashedCell = hashThisEndcapCell( phi_module, layer_or_wheel, fourPlaneNum, cellNum ); if ( m_EndcapC_HV_CoolChanNums ) { - if ( hashedCell >= (int)m_EndcapC_HV_CoolChanNums->size() ) { + if ( hashedCell >= (int)m_EndcapC_HV_CoolChanNums->size() || hashedCell<0) { msg(MSG::WARNING) << "channel number request for invalid endcap C HV cell." << endmsg; return -1; } else chanNum = m_EndcapC_HV_CoolChanNums->at(hashedCell); @@ -453,7 +454,11 @@ StatusCode TRT_HWMappingSvc::build_BarrelHVLinePadMap() { // Add this channel into the map vector at the appropriate position // (hashed pad gives index in map vector) - m_Barrel_HV_CoolChanNames->at(hashedPad) = chanName; + if ( hashedPad >= (int)m_Barrel_HV_CoolChanNames->size() || hashedPad<0) { + msg(MSG::WARNING) << "channel request for invalid barrel HV pad." << endmsg; + }else{ + m_Barrel_HV_CoolChanNames->at(hashedPad) = chanName; + } } @@ -615,7 +620,11 @@ StatusCode TRT_HWMappingSvc::build_BarrelHVLinePadMap() { std::vector<int>::const_iterator padItr; for ( padItr = padVec->begin(); padItr != padVec->end(); ++padItr ) { int hashedPad = hashThisBarrelPad( sector, module, *padItr ); - m_Barrel_HV_CoolChanNames->at(hashedPad) = chanName.str(); + if ( hashedPad >= (int)m_Barrel_HV_CoolChanNames->size() || hashedPad<0) { + msg(MSG::WARNING) << "channel request for invalid barrel HV pad." << endmsg; + }else{ + m_Barrel_HV_CoolChanNames->at(hashedPad) = chanName.str(); + } } } } @@ -710,8 +719,12 @@ StatusCode TRT_HWMappingSvc::build_EndcapHVLinePadMaps() { // Add them to the maps for ( int cellNum = 0; cellNum < 3; ++cellNum ) { int hashedCell = hashThisEndcapCell( sector, wheel, layer, cellNum ); - m_EndcapA_HV_CoolChanNames->at(hashedCell) = lineNameA.str(); - m_EndcapC_HV_CoolChanNames->at(hashedCell) = lineNameC.str(); + if ( hashedCell >= (int)m_EndcapA_HV_CoolChanNames->size() || hashedCell<0) { + msg(MSG::WARNING) << "channel request for invalid endcap HV pad." << endmsg; + }else{ + m_EndcapA_HV_CoolChanNames->at(hashedCell) = lineNameA.str(); + m_EndcapC_HV_CoolChanNames->at(hashedCell) = lineNameC.str(); + } } } } @@ -719,8 +732,11 @@ StatusCode TRT_HWMappingSvc::build_EndcapHVLinePadMaps() { // Apply corrections to the map int hashedCellToFix = hashThisEndcapCell( 5, 12, 0, 2 ); + if ( hashedCellToFix >= (int)m_EndcapA_HV_CoolChanNames->size() || hashedCellToFix<0) { + msg(MSG::WARNING) << "channel request for invalid endcap HV pad." << endmsg; + }else{ m_EndcapA_HV_CoolChanNames->at(hashedCellToFix) = "HVA_S7S8_WB7_B_OutputVoltage"; - + } msg(MSG::INFO) << "Endcap HV-line/pad maps successfully built - ECA: " << m_EndcapA_HV_CoolChanNames->size() << " channels; ECC: " << m_EndcapC_HV_CoolChanNames->size() << " channels." << endmsg; -- GitLab