diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h b/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h index 7d51e51e655a390170e2f5646730ff11962d8339..28ea55ce42d7720f519124fb2c720f77ce88cf68 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/MDT_Digitization/MdtDigitizationTool.h @@ -226,7 +226,7 @@ class MdtDigitizationTool : public PileUpToolBase { std::vector<Identifier> m_IdentifiersToMask; //pile-up - TimedHitCollection<MDTSimHit>* m_thpcMDT{}; // the hits + std::unique_ptr<TimedHitCollection<MDTSimHit>> m_thpcMDT{}; // the hits //pileup truth veto Gaudi::Property<bool> m_includePileUpTruth{this, "IncludePileUpTruth", true, "Include pile-up truth info"}; diff --git a/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx b/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx index 0630af53b2ce83340a9ab86773eb281f0c03eee6..33734d10b210bbedebbbb08d7607197a4171662a 100644 --- a/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx +++ b/MuonSpectrometer/MuonDigitization/MDT_Digitization/src/MdtDigitizationTool.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ //////////////////////////////////////////////////////////////////////////////// @@ -57,9 +57,9 @@ //Calibration Service #include "MdtCalibData/MdtFullCalibData.h" #include "MdtCalibData/MdtTubeCalibContainer.h" - -static constexpr double s_inv_c_light(1./Gaudi::Units::c_light); - +namespace{ + static constexpr double s_inv_c_light(1./Gaudi::Units::c_light); +} MdtDigitizationTool::MdtDigitizationTool(const std::string& type,const std::string& name,const IInterface* pIID) : PileUpToolBase(type, name, pIID) { @@ -168,7 +168,7 @@ StatusCode MdtDigitizationTool::initialize() { } //Retrieve the Conditions service - if (m_UseDeadChamberSvc==true) { + if (m_UseDeadChamberSvc) { ATH_CHECK(m_readKey.initialize()); } else { @@ -184,7 +184,7 @@ StatusCode MdtDigitizationTool::prepareEvent(const EventContext& /*ctx*/, unsign ATH_MSG_DEBUG("MdtDigitizationTool::prepareEvent() called for " << nInputEvents << " input events" ); m_MDTHitCollList.clear(); - m_thpcMDT = new TimedHitCollection<MDTSimHit>() ; + m_thpcMDT = std::make_unique<TimedHitCollection<MDTSimHit>>() ; return StatusCode::SUCCESS; } @@ -236,10 +236,7 @@ StatusCode MdtDigitizationTool::getNextEvent(const EventContext& ctx) { ATH_MSG_DEBUG ( "MdtDigitizationTool::getNextEvent()" ); - - // initialize pointer - m_thpcMDT = 0; - + // get the container(s) typedef PileUpMergeSvc::TimedList<MDTSimHitCollection>::type TimedHitCollList; @@ -252,7 +249,7 @@ StatusCode MdtDigitizationTool::getNextEvent(const EventContext& ctx) } // create a new hits collection - m_thpcMDT = new TimedHitCollection<MDTSimHit>{1}; + m_thpcMDT = std::make_unique<TimedHitCollection<MDTSimHit>>(1); m_thpcMDT->insert(0, hitCollection.cptr()); ATH_MSG_DEBUG("MDTSimHitCollection found with " << hitCollection->size() << " hits"); @@ -266,7 +263,7 @@ StatusCode MdtDigitizationTool::getNextEvent(const EventContext& ctx) ATH_MSG_ERROR ( "Could not fill TimedHitCollList" ); return StatusCode::FAILURE; } - if (hitCollList.size()==0) { + if (hitCollList.empty()) { ATH_MSG_ERROR ( "TimedHitCollList has size 0" ); return StatusCode::FAILURE; } @@ -275,7 +272,7 @@ StatusCode MdtDigitizationTool::getNextEvent(const EventContext& ctx) } // create a new hits collection - m_thpcMDT = new TimedHitCollection<MDTSimHit>() ; + m_thpcMDT = std::make_unique<TimedHitCollection<MDTSimHit>>() ; //now merge all collections into one TimedHitCollList::iterator iColl(hitCollList.begin()); @@ -344,7 +341,7 @@ StatusCode MdtDigitizationTool::processAllSubEvents(const EventContext& ctx) { ATH_MSG_DEBUG("Recorded MuonSimDataCollection called " << sdoContainer.name() << " in store " << sdoContainer.store()); StatusCode status = StatusCode::SUCCESS; - if (0 == m_thpcMDT ) { + if (!m_thpcMDT ) { status = getNextEvent(ctx); if (StatusCode::FAILURE == status) { ATH_MSG_INFO ( "There are no MDT hits in this event" ); @@ -405,10 +402,8 @@ StatusCode MdtDigitizationTool::doDigitization(const EventContext& ctx, MdtDigit m_hits.clear(); // reset the pointer if it is not null - if (m_thpcMDT) { - delete m_thpcMDT; - m_thpcMDT=0; - } + m_thpcMDT.reset(); + return StatusCode::SUCCESS; } @@ -477,8 +472,8 @@ bool MdtDigitizationTool::handleMDTSimhit(const TimedHitPtr<MDTSimHit>& phit, CL double actualMaxSag = 0.; //double localSag = 0.; double driftTime = 0.; - double projectiveSag = hit.driftRadius() - fabs(driftRadius); - if (m_useDeformations ) projectiveSag = newSimhit.driftRadius() - fabs(driftRadius); + double projectiveSag = hit.driftRadius() - std::abs(driftRadius); + if (m_useDeformations ) projectiveSag = newSimhit.driftRadius() - std::abs(driftRadius); ATH_MSG_DEBUG( " Geometrical WIRESAGINFO "<< stationName << " " << stationEta << " " << stationPhi << " " << multilayer << " " << layer << " " << tube <<" " @@ -491,7 +486,7 @@ bool MdtDigitizationTool::handleMDTSimhit(const TimedHitPtr<MDTSimHit>& phit, CL driftRadius *= trackingSign; //+Implementation for RT_Relation_DB_Tool - MdtDigiToolInput digiInput(fabs(driftRadius),distRO,0.,0.,0.,0.); + MdtDigiToolInput digiInput(std::abs(driftRadius),distRO,0.,0.,0.,0.); double qcharge=1.; double qgamma=-9999.; @@ -501,20 +496,20 @@ bool MdtDigitizationTool::handleMDTSimhit(const TimedHitPtr<MDTSimHit>& phit, CL qgamma=particleGamma(hit, phit.eventId()); qcharge=chargeCalculator(hit, phit.eventId()); - MdtDigiToolInput digiInput1(fabs(driftRadius),distRO,0.,0.,qcharge,qgamma); + MdtDigiToolInput digiInput1(std::abs(driftRadius),distRO,0.,0.,qcharge,qgamma); digiInput = digiInput1; if (m_digiTool.name() == "RT_Relation_DB_DigiTool") { - MdtDigiToolInput digiInput2(fabs(driftRadius),distRO,0.,0.,qcharge,qgamma,DigitId); + MdtDigiToolInput digiInput2(std::abs(driftRadius),distRO,0.,0.,qcharge,qgamma,DigitId); digiInput = digiInput2; } } else { - MdtDigiToolInput digiInput1(fabs(driftRadius),distRO,0.,0.,0.,0.); + MdtDigiToolInput digiInput1(std::abs(driftRadius),distRO,0.,0.,0.,0.); digiInput = digiInput1; if (m_digiTool.name() == "RT_Relation_DB_DigiTool") { - MdtDigiToolInput digiInput2(fabs(driftRadius),distRO,0.,0.,0.,0.,DigitId); + MdtDigiToolInput digiInput2(std::abs(driftRadius),distRO,0.,0.,0.,0.,DigitId); digiInput = digiInput2; } } @@ -539,11 +534,11 @@ bool MdtDigitizationTool::handleMDTSimhit(const TimedHitPtr<MDTSimHit>& phit, CL // Line below: old code //double param[4] = {-0.3025,0.58303,0.012177,0.0065818}; //New code - double param[6] = {-4.47741E-3, 1.75541E-2, -1.32913E-2, 2.57938E-3, -4.55015E-5, -1.70821E-7}; + static constexpr double param[6] = {-4.47741E-3, 1.75541E-2, -1.32913E-2, 2.57938E-3, -4.55015E-5, -1.70821E-7}; // get delta T, change in drift time for reference sag (default=100 microns) and scale by projective sag double deltaT = 0; - double dR = fabs(driftRadius); + double dR = std::abs(driftRadius); for (int i = 0; i < 6; ++i) { deltaT += param[i]*pow(dR,i); } @@ -553,9 +548,9 @@ bool MdtDigitizationTool::handleMDTSimhit(const TimedHitPtr<MDTSimHit>& phit, CL //Calculate angle at which track cross plane of sag. //Note that this assumes the track is coming from the center of the detector. - double gX = fabs(gpos.x()); - double gY = fabs(gpos.y()); - double gZ = fabs(gpos.z()); + double gX = std::abs(gpos.x()); + double gY = std::abs(gpos.y()); + double gZ = std::abs(gpos.z()); double cosTheta = gZ/sqrt(gZ*gZ + gY*gY + gX*gX); //This calculates the sag seen by a track; if a particle passes parallel to the sag, @@ -748,12 +743,12 @@ bool MdtDigitizationTool::checkMDTSimHit(const MDTSimHit& hit) const { bool ok(true); - if( fabs(hit.driftRadius()) > tubeR ) { + if( std::abs(hit.driftRadius()) > tubeR ) { ok = false; ATH_MSG_DEBUG( "MDTSimHit has invalid radius: " << hit.driftRadius() << " tubeRadius " << tubeR ); } - if( fabs(hit.localPosition().z()) > 0.5*tubeL ) { + if( std::abs(hit.localPosition().z()) > 0.5*tubeL ) { ok = false; ATH_MSG_DEBUG( "MDTSimHit has invalid position along tube: " << hit.localPosition().z() << " tubeLength " << tubeL ); }