From a87985ee04f0f1e471a98273c53bfad4160d3e2f Mon Sep 17 00:00:00 2001 From: Soshi Tsuno <soshi.tsuno@cern.ch> Date: Sun, 18 Dec 2016 10:34:56 +0100 Subject: [PATCH] Bug fix ATLASRECTS-3778. And fix covarity checks. (PixelDigitization-02-03-23) * Bug fix ATLASRECTS-3778. * Fix covarity checks. * Tagging PixelDigitization-02-03-23. --- .../python/PixelDigitizationConfig.py | 1 - .../PixelDigitization/src/BichselSimTool.cxx | 55 +++++-------------- .../src/PixelBarrelBichselChargeTool.cxx | 45 ++++++++------- .../src/PixelCellDiscriminator.cxx | 10 +--- .../src/PixelDigitizationTool.cxx | 17 ++---- .../src/PixelNoisyCellGenerator.cxx | 18 ++---- .../src/SpecialPixelGenerator.cxx | 10 +--- .../src/SurfaceChargesTool.cxx | 16 +++--- 8 files changed, 60 insertions(+), 112 deletions(-) diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py index 47502a73776..718ae7e8347 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py +++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py @@ -232,7 +232,6 @@ def BasicPixelDigitizationTool(name="PixelDigitizationTool", **kwargs): # Start of special cosmics tuning: if jobproperties.Beam.beamType == "cosmics" : kwargs.setdefault("UseComTime", True) - kwargs.setdefault("PixelConditionsSummarySvc", "") if GeometryFlags.isSLHC(): LVL1Latency = [255, 255, 255, 255, 255, 16, 255] ToTMinCut = [0, 0, 0, 0, 0, 0, 0] diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx index 0d156fd84dd..709fb2f0a64 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx +++ b/InnerDetector/InDetDigitization/PixelDigitization/src/BichselSimTool.cxx @@ -53,31 +53,20 @@ BichselSimTool::~BichselSimTool() // Initialize //---------------------------------------------------------------------- StatusCode BichselSimTool::initialize() { - StatusCode sc = AthAlgTool::initialize(); - if (sc.isFailure()) { - ATH_MSG_FATAL("BichselSimTool::initialize() failed"); - return sc; - } - - - //** define your initialize below **// + CHECK(AthAlgTool::initialize()); // random svc - if ( m_rndmSvc.retrieve().isFailure() ) { - ATH_MSG_ERROR ( " Can't get RndmSvc " ); - return StatusCode::FAILURE; - } else { - ATH_MSG_DEBUG ( "Retrieved RndmSvc" ); - } + CHECK(m_rndmSvc.retrieve()); // get the random stream ATH_MSG_DEBUG ( "Getting random number engine : <" << m_rndmEngineName << ">" ); m_rndmEngine = m_rndmSvc->GetEngine(m_rndmEngineName); - if (m_rndmEngine==0) { - ATH_MSG_ERROR ( "Could not find RndmEngine : " << m_rndmEngineName ); + if (!m_rndmEngine) { + ATH_MSG_ERROR("Could not find RndmEngine : " << m_rndmEngineName); return StatusCode::FAILURE; - } else { - ATH_MSG_DEBUG ( " Found RndmEngine : " << m_rndmEngineName ); + } + else { + ATH_MSG_DEBUG("Found RndmEngine : " << m_rndmEngineName); } // clear data table @@ -104,8 +93,8 @@ StatusCode BichselSimTool::initialize() { if(!inputFile.is_open()){ ATH_MSG_FATAL("Fail to load file " << inputFileName.Data() << " !"); - sc = StatusCode::FAILURE; - continue; + ATH_MSG_FATAL("BichselSimTool::initialize() failed"); + return StatusCode::FAILURE; } // prepare data @@ -152,24 +141,15 @@ StatusCode BichselSimTool::initialize() { ATH_MSG_INFO("Finish Loading Data File"); - return sc; + return StatusCode::SUCCESS; } //---------------------------------------------------------------------- // finalize //---------------------------------------------------------------------- StatusCode BichselSimTool::finalize() { - StatusCode sc = AthAlgTool::finalize(); - if (sc.isFailure()) { - ATH_MSG_FATAL ( "BichselSimTool::finalize() failed"); - return sc ; - } - - //** define your finalize below **// - - ATH_MSG_DEBUG ( "BichselSimTool::finalize()"); - return sc ; + return StatusCode::SUCCESS; } //----------------------------------------------------------- @@ -478,8 +458,8 @@ double BichselSimTool::GetColE(std::pair<int,int> indices_BetaGammaLog10, double // BetaGammaLog10_2 then std::pair<int,int> indices_IntXLog10_x2 = FastSearch(iData.Array_BetaGammaLog10_IntXLog10[indices_BetaGammaLog10.second], IntXLog10); - if( (indices_IntXLog10_x2.first==-1) && (indices_IntXLog10_x2.second==-1) ) - return -1; + if (indices_IntXLog10_x2.first<0) { return -1; } + if (indices_IntXLog10_x2.second<0) { return -1; } double y21 = iData.Array_BetaGammaLog10_IntXLog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.first]; double y22 = iData.Array_BetaGammaLog10_IntXLog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.second]; double Est_x2 = ((y22 - IntXLog10)*iData.Array_BetaGammaLog10_ColELog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.first] + (IntXLog10 - y21)*iData.Array_BetaGammaLog10_ColELog10[indices_BetaGammaLog10.second][indices_IntXLog10_x2.second])/(y22-y21); @@ -508,13 +488,8 @@ double BichselSimTool::GetUpperBound(std::pair<int,int> indices_BetaGammaLog10, // indices_BetaGammaLog10 = FastSearch(iData.Array_BetaGammaLog10, BetaGammaLog10); // } - if( (indices_BetaGammaLog10.first==-1) && (indices_BetaGammaLog10.second==-1) ){ - // std::cout << "++++++++++++++" << std::endl; - // std::cout << BetaGammaLog10 << std::endl; - // std::cout << iData.Array_BetaGammaLog10[0] << " , " << iData.Array_BetaGammaLog10.back() << std::endl; - - return -1.; - } + if (indices_BetaGammaLog10.first<0) { return -1; } + if (indices_BetaGammaLog10.second<0) { return -1; } double BetaGammaLog10_1 = iData.Array_BetaGammaLog10[indices_BetaGammaLog10.first]; double BetaGammaLog10_2 = iData.Array_BetaGammaLog10[indices_BetaGammaLog10.second]; diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx index 94446f96226..ca6a7a31458 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx +++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelBarrelBichselChargeTool.cxx @@ -46,7 +46,24 @@ PixelBarrelBichselChargeTool::PixelBarrelBichselChargeTool(const std::string& ty m_doPU(true), m_BichselSimTool("BichselSimTool"), m_OutputFileName("EnergyDeposition.root"), - m_doHITPlots(false) + m_doHITPlots(false), + f_output(0), + h_Length(0), + h_hitTime(0), + h_EnergyDepositionBichsel(0), + h_EnergyDepositionNominal(0), + h_EnergyDepositionDeltaRay(0), + h_EnergyDepositionDeltaRay_Bichsel(0), + h_EnergyDepositionDeltaRay_Nominal(0), + h_isRealBichsel_DeltaRay(0), + h_isRealBichsel_Primary(0), + h_largestEnergyDeposition(0), + h_twolargestEnergyDeposition(0), + h_timer_execute(0), + h_timer_BichselSim(0), + h_timer_DigiLayer(0), + h_timer_diffuse(0), + h_hitCategory(0) { declareProperty("numberOfSteps",m_numberOfSteps,"Geant4:number of steps for PixelBarrel"); declareProperty("numberOfCharges",m_numberOfCharges,"Geant4:number of charges for PixelBarrel"); @@ -72,24 +89,15 @@ PixelBarrelBichselChargeTool::~PixelBarrelBichselChargeTool() // Initialize //---------------------------------------------------------------------- StatusCode PixelBarrelBichselChargeTool::initialize() { - StatusCode sc = SubChargesTool::initialize(); - if (sc.isFailure()) { - ATH_MSG_FATAL ( "PixelBarrelBichselChargeTool::initialize() failed"); - return sc ; - } + CHECK(SubChargesTool::initialize()); ATH_MSG_INFO("You are using PixelBarrelBichselChargeTool, not PixelBarrelChargeTool"); - if(m_doBichsel){ + if (m_doBichsel) { ATH_MSG_INFO("Bichsel Digitization is turned ON in PixelBarrelBichselChargeTool!"); - - sc = m_BichselSimTool.retrieve(); - if(sc.isFailure()){ - ATH_MSG_FATAL("Fail to retrieve BichselSimTool in PixelBarrelBichselChargeTool!"); - return sc; - } + CHECK(m_BichselSimTool.retrieve()); } - else{ + else { ATH_MSG_INFO("Bichsel Digitization is turned OFF in PixelBarrelBichselChargeTool!"); } @@ -172,25 +180,20 @@ StatusCode PixelBarrelBichselChargeTool::initialize() { } ATH_MSG_DEBUG ( "PixelBarrelBichselChargeTool::initialize()"); - return sc ; + return StatusCode::SUCCESS; } //---------------------------------------------------------------------- // finalize //---------------------------------------------------------------------- StatusCode PixelBarrelBichselChargeTool::finalize() { - StatusCode sc = AthAlgTool::finalize(); - if (sc.isFailure()) { - ATH_MSG_FATAL ( "PixelBarrelBichselChargeTool::finalize() failed"); - return sc ; - } if(m_doHITPlots){ f_output->Write(); } ATH_MSG_DEBUG ( "PixelBarrelBichselChargeTool::finalize()"); - return sc ; + return StatusCode::SUCCESS; } //---------------------------------------------------------------------- diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx index 154da889c96..6b6fef7182b 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx +++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelCellDiscriminator.cxx @@ -75,20 +75,14 @@ StatusCode PixelCellDiscriminator::initialize() { // finalize //---------------------------------------------------------------------- StatusCode PixelCellDiscriminator::finalize() { - StatusCode sc = AthAlgTool::finalize(); - if (sc.isFailure()) { - ATH_MSG_FATAL ( "PixelCellDiscriminator::finalize() failed"); - return sc ; - } - ATH_MSG_DEBUG ( "PixelCellDiscriminator::finalize()"); - return sc ; + return StatusCode::SUCCESS; } // process the collection of charged diodes void PixelCellDiscriminator::process(SiChargedDiodeCollection &collection) const { bool ComputeTW = false; - const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign*>(&(collection.element()->design())); + const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign*>(&(collection.element()->design())); if (p_design->getReadoutTechnology()==PixelModuleDesign::FEI3) { ComputeTW = true; } diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx index 6d60c3d92fe..f7fda5a013d 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelDigitizationTool.cxx @@ -403,11 +403,8 @@ bool PixelDigitizationTool::digitizeElement(SiChargedDiodeCollection* chargedDio // create the identifier for the collection: ATH_MSG_DEBUG ( "create ID for the hit collection" ); - const PixelID* PID = dynamic_cast<const PixelID*>(m_detID); - if (PID==0) { - ATH_MSG_ERROR ( "expected a PixelID but failed..." ); - return false; - } + const PixelID* PID = static_cast<const PixelID*>(m_detID); + const TimedHitPtr<SiHit>& firstHit = *i; int Barrel = firstHit->getBarrelEndcap(); Identifier id = PID->wafer_id(Barrel,firstHit->getLayerDisk(),firstHit->getPhiModule(),firstHit->getEtaModule()); @@ -692,10 +689,6 @@ StatusCode PixelDigitizationTool::initTools() { } if (m_diodesProcsTool[itool].name()=="SpecialPixelGenerator") { m_specialPixelGenerator = dynamic_cast<SpecialPixelGenerator*>(m_diodesProcsTool[itool].operator->()); - if (m_specialPixelGenerator) { - m_specialPixelGenerator->setnPixTot(m_detID->pixel_hash_max()); - m_specialPixelGenerator->setnModTot(m_detID->wafer_hash_max()); - } } } @@ -775,7 +768,7 @@ PixelDigitizationTool::createRDO(SiChargedDiodeCollection *collection) // Determine the Pixel Region (IBL, BL, L1, L2, EC, DBM, ITk 5th layer), to be used for latency, ToT cut and duplication: // - const PixelID* pixelId = dynamic_cast<const PixelID *>(collection->element()->getIdHelper()); + const PixelID* pixelId = static_cast<const PixelID *>(collection->element()->getIdHelper()); int barrel_ec = pixelId->barrel_ec(collection->element()->identify()); int layerIndex = pixelId->layer_disk(collection->element()->identify()); @@ -783,7 +776,7 @@ PixelDigitizationTool::createRDO(SiChargedDiodeCollection *collection) if (abs(barrel_ec)==2) { layerIndex=4; } // disks if (abs(barrel_ec)==4) { layerIndex=5; } // DBM - const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign*>(&(collection->element())->design()); + const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign*>(&(collection->element())->design()); std::vector<Pixel1RawData*> p_rdo_small_fei4; int maxFEI4SmallHit = 2; int nSmallHitsFEI4 = 0; @@ -854,7 +847,7 @@ PixelDigitizationTool::createRDO(SiChargedDiodeCollection *collection) // - ToT for that reference value if (p_design->getReadoutTechnology()==PixelModuleDesign::FEI4) { - const PixelID* pixelId = dynamic_cast<const PixelID *>(collection->element()->getIdHelper()); + const PixelID* pixelId = static_cast<const PixelID *>(collection->element()->getIdHelper()); if (pixelId->is_dbm(collection->element()->identify())) { nToT = 8*((*i_chargedDiode).second.charge() - 1200. )/(8000. - 1200.); } diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx index 5900fa6efbd..124f51da28e 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx +++ b/InnerDetector/InDetDigitization/PixelDigitization/src/PixelNoisyCellGenerator.cxx @@ -98,21 +98,13 @@ StatusCode PixelNoisyCellGenerator::initialize() { ATH_MSG_DEBUG ( "PixelNoisyCellGenerator::initialize()"); return StatusCode::SUCCESS; - - } //---------------------------------------------------------------------- // finalize //---------------------------------------------------------------------- StatusCode PixelNoisyCellGenerator::finalize() { - StatusCode sc = AthAlgTool::finalize(); - if (sc.isFailure()) { - ATH_MSG_FATAL ( "PixelNoisyCellGenerator::finalize() failed"); - return sc ; - } - ATH_MSG_DEBUG ( "PixelNoisyCellGenerator::finalize()"); - return sc ; + return StatusCode::SUCCESS; } // process the collection of diode collection @@ -154,8 +146,7 @@ void PixelNoisyCellGenerator::addNoisyPixels(SiChargedDiodeCollection &collectio // // get pixel module design and check it // - const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign*>(&(collection.design())); - if (!p_design) return; + const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign*>(&(collection.design())); // // compute number of noisy cells @@ -210,7 +201,7 @@ void PixelNoisyCellGenerator::addNoisyPixels(SiChargedDiodeCollection &collectio ATH_MSG_DEBUG ( "**********************"); const InDetDD::SiDetectorElement* element = m_pixMgr->getDetectorElement(moduleHash); - const InDetDD::PixelModuleDesign* p_design = dynamic_cast<const InDetDD::PixelModuleDesign*>(&element->design()); + const InDetDD::PixelModuleDesign* p_design = static_cast<const InDetDD::PixelModuleDesign*>(&element->design()); unsigned int FE_Type = 0; if ( p_design->getReadoutTechnology()!=PixelModuleDesign::FEI3 ) FE_Type = 1; // FE_Type = 1 for FEI4. ITK ? @@ -258,8 +249,7 @@ void PixelNoisyCellGenerator::addRandomNoise(SiChargedDiodeCollection &collectio // // get pixel module design and check it // - const PixelModuleDesign *p_design = dynamic_cast<const PixelModuleDesign *>(&(collection.design())); - if (!p_design) return; + const PixelModuleDesign *p_design = static_cast<const PixelModuleDesign *>(&(collection.design())); // // compute number of noisy cells diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx index 0816288223c..79dc4055a73 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx +++ b/InnerDetector/InDetDigitization/PixelDigitization/src/SpecialPixelGenerator.cxx @@ -108,13 +108,7 @@ StatusCode SpecialPixelGenerator::initialize() { // finalize //---------------------------------------------------------------------- StatusCode SpecialPixelGenerator::finalize() { - StatusCode sc = AthAlgTool::finalize(); - if (sc.isFailure()) { - ATH_MSG_FATAL ( "SpecialPixelGenerator::finalize() failed" ); - return sc ; - } - ATH_MSG_DEBUG ( "SpecialPixelGenerator::finalize()" ); - return sc ; + return StatusCode::SUCCESS; } void SpecialPixelGenerator::updatePixelMap(){ @@ -232,7 +226,7 @@ int SpecialPixelGenerator::fillSpecialPixels( double prob, unsigned int status, // } const InDetDD::SiDetectorElement* element = m_pixMgr->getDetectorElement(idHash); - const InDetDD::PixelModuleDesign* p_design = dynamic_cast<const InDetDD::PixelModuleDesign*>(&element->design()); + const InDetDD::PixelModuleDesign* p_design = static_cast<const InDetDD::PixelModuleDesign*>(&element->design()); int nChips = p_design->numberOfCircuits(); int nCols = p_design->columnsPerCircuit(); diff --git a/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx b/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx index 170a011a853..a32f6b3da46 100644 --- a/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx +++ b/InnerDetector/InDetDigitization/PixelDigitization/src/SurfaceChargesTool.cxx @@ -42,14 +42,14 @@ SurfaceChargesTool::SurfaceChargesTool(const std::string& type, const std::strin m_IblPlanarChargeTool("IblPlanarChargeTool"), m_Ibl3DChargeTool("Ibl3DChargeTool"), m_IBLParameterSvc("IBLParameterSvc",name) - { - declareInterface< SurfaceChargesTool >( this ); - declareProperty("PixelBarrelChargeTool", m_PixelBarrelChargeTool, "PixelBarrelChargeTool"); - declareProperty("PixelECChargeTool", m_PixelECChargeTool, "PixelECChargeTool"); - declareProperty("IblPlanarChargeTool", m_IblPlanarChargeTool, "IblPlanarChargeTool"); - declareProperty("Ibl3DChargeTool", m_Ibl3DChargeTool, "Ibl3DChargeTool"); - declareProperty("DBMChargeTool", m_DBMChargeTool, "DBMChargeTool"); - declareProperty("doITk", m_doITk, "Phase-II upgrade ITk flag"); +{ + declareInterface< SurfaceChargesTool >( this ); + declareProperty("PixelBarrelChargeTool", m_PixelBarrelChargeTool, "PixelBarrelChargeTool"); + declareProperty("PixelECChargeTool", m_PixelECChargeTool, "PixelECChargeTool"); + declareProperty("IblPlanarChargeTool", m_IblPlanarChargeTool, "IblPlanarChargeTool"); + declareProperty("Ibl3DChargeTool", m_Ibl3DChargeTool, "Ibl3DChargeTool"); + declareProperty("DBMChargeTool", m_DBMChargeTool, "DBMChargeTool"); + declareProperty("doITk", m_doITk, "Phase-II upgrade ITk flag"); } class DetCondCFloat; -- GitLab