diff --git a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h index 50984d9b38695577afbc5157cc3f9549722839ac..4ada05aae45601ddb5716a1a5e002a493ad2d659 100755 --- a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h +++ b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonDetailedTrackTruthMaker.h @@ -1,24 +1,22 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONDETAILEDTRACKTRUTHMAKER_H #define MUONDETAILEDTRACKTRUTHMAKER_H -#include <string> -#include <vector> - #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ToolHandle.h" + #include "StoreGate/WriteHandleKeyArray.h" #include "StoreGate/ReadHandleKeyArray.h" - #include "TrkToolInterfaces/IDetailedTrackTruthBuilder.h" - #include "TrkTrack/TrackCollection.h" #include "TrkTruthData/PRD_MultiTruthCollection.h" #include "TrkTruthData/DetailedTrackTruthCollection.h" +#include <string> + /** * This algorithm produces track truth data using Muon PRD truth collections. * Calls a DetailedTrackTruthBuilder tool that does the actual job. @@ -33,7 +31,6 @@ public: virtual StatusCode initialize(); virtual StatusCode execute(); - virtual StatusCode finalize(); private: // PRD truth maps in any order @@ -45,12 +42,11 @@ private: // DetailedTrackTruthCollection output SG::WriteHandleKeyArray<DetailedTrackTruthCollection> m_detailedTrackTruthNames{this,"DetailedTrackTruthNames",{""},"output collections"}; - // Tool Handle for truth tool - ToolHandle<Trk::IDetailedTrackTruthBuilder> m_truthTool; + ToolHandle<Trk::IDetailedTrackTruthBuilder> m_truthTool{this,"TruthTool","Trk::DetailedTrackTruthBuilder"}; - bool m_hasCSC; - bool m_hasSTgc; - bool m_hasMM; + Gaudi::Property<bool> m_hasCSC {this, "HasCSC", true}; + Gaudi::Property<bool> m_hasSTgc {this, "HasSTgc", true}; + Gaudi::Property<bool> m_hasMM {this, "HasMM", true}; }; diff --git a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h index c8677ec48de438db18775c872077325ce6a01909..2df3a9bd21fa96cdbaeaa87e5a7d35f2be06667e 100755 --- a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h +++ b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h @@ -1,18 +1,18 @@ /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONPATTERNCOMBINATIONDETAILEDTRACKTRUTHMAKER_H #define MUONPATTERNCOMBINATIONDETAILEDTRACKTRUTHMAKER_H -#include <string> -#include <vector> - #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ToolHandle.h" #include "MuonRecToolInterfaces/IDetailedMuonPatternTruthBuilder.h" +#include <string> +#include <vector> + /** * This algorithm produces track truth data using Muon PRD truth collections. * Calls a DetailedTrackTruthBuilder tool that does the actual job. @@ -27,24 +27,17 @@ public: virtual StatusCode initialize(); virtual StatusCode execute(); - virtual StatusCode finalize(); private: - // PRD truth maps in any order - std::vector<std::string> m_PRD_TruthNames; - - // Track input - std::string m_trackCollectionName; + Gaudi::Property<std::vector<std::string>> m_PRD_TruthNames{this,"PRD_TruthNames",{"CSC_TruthMap","RPC_TruthMap","TGC_TruthMap","MDT_TruthMap"},"PRD truth maps in any order"}; - // Muon pattern combination collection input - std::string m_collection; + Gaudi::Property<std::string> m_trackCollectionName{this,"TrackCollectionName","MooreTracks","Track input"}; - // DetailedTrackTruthCollection output - std::string m_detailedTrackTruthName; + Gaudi::Property<std::string> m_collection{this,"MuonPatternCombinationCollection","MuonHoughPatternCombinations","Muon pattern combination collection input"}; - // Tool Handle for truth tool - ToolHandle<Trk::IDetailedMuonPatternTruthBuilder> m_truthTool; + Gaudi::Property<std::string> m_detailedTrackTruthName{this,"DetailedTrackTruthNames","","DetailedTrackTruthCollection output"}; + ToolHandle<Trk::IDetailedMuonPatternTruthBuilder> m_truthTool{this,"TruthTool","Trk::DetailedMuonPatternTruthBuilder/DetailedMuonPatternTruthBuilder"}; }; #endif/*MUONPATTERNCOMBINATIONDETAILEDTRACKTRUTHMAKER_H*/ diff --git a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h index 3876339487e1cf164c3604053c9b5712724df275..c800bb4d8b067c40ce4e808198781b89a12e567a 100644 --- a/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h +++ b/MuonSpectrometer/MuonTruthAlgs/MuonTruthAlgs/MuonTrackTruthTool.h @@ -16,11 +16,13 @@ #include "MuonSimData/CscSimDataCollection.h" #include "TrackRecord/TrackRecordCollection.h" #include "TrkTrack/TrackCollection.h" +#include "TrkToolInterfaces/ITruthTrajectoryBuilder.h" #include <string> #include <vector> #include <map> #include <utility> +#include <set> class TruthTrajectory; @@ -35,7 +37,6 @@ namespace Muon { namespace Trk { class Track; class MeasurementBase; - class ITruthTrajectoryBuilder; } namespace Muon { @@ -138,21 +139,23 @@ namespace Muon { /// The number of such scatters is returned in the .second. const std::pair<const HepMC::GenParticle*, unsigned int> getInitialPair( const TruthTrajectory& traj, const int barcodeIn ) const; - const MuonGM::MuonDetectorManager* m_detMgr; + const MuonGM::MuonDetectorManager* m_detMgr; - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ToolHandle<Trk::ITruthTrajectoryBuilder> m_truthTrajectoryBuilder; + + ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this,"Printer","Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<Trk::ITruthTrajectoryBuilder> m_truthTrajectoryBuilder{this,"TruthTrajectoryBuilder","Muon::MuonDecayTruthTrajectoryBuilder/MuonDecayTruthTrajectoryBuilder"}; mutable TruthTree m_truthTree; mutable std::vector<TruthTrajectory*> m_truthTrajectoriesToBeDeleted; mutable std::map<int,int> m_barcodeMap; // map used to link barcode of TrackRecord particles/hits to 'final' state barcode - bool m_manipulateBarCode; - bool m_doSummary; - unsigned int m_minHits; - bool m_matchAllParticles; + + Gaudi::Property<bool> m_manipulateBarCode{this,"ManipulateBarCode",false}; + Gaudi::Property<bool> m_doSummary{this,"DoSummary",false}; + Gaudi::Property<bool> m_matchAllParticles{this,"MatchAllParticles",true}; + Gaudi::Property<unsigned int> m_minHits{this,"MinHits",4}; + Gaudi::Property<std::vector<int>> m_pdgsToBeConsidered{this,"ConsideredPDGs",{}}; - IntegerArrayProperty m_pdgsToBeConsidered; std::set<int> m_selectedPdgs; // set storing particle PDG's considered for matching }; diff --git a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx index 69e3e795536b96481113e84c2162d2c1f6243c0b..5fea6adda781d26e674832d40cbd1a2d1b5abc55 100755 --- a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx +++ b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.cxx @@ -3,54 +3,42 @@ */ #include "DetailedMuonPatternTruthBuilder.h" + #include "MuonPattern/MuonPattern.h" #include "MuonPattern/MuonPatternCollection.h" #include "MuonPattern/MuonPatternCombination.h" #include "MuonPattern/MuonPatternCombinationCollection.h" #include "MuonPattern/MuonPatternChamberIntersect.h" #include "MuonPattern/DetailedMuonPatternTruthCollection.h" - #include "TrkTruthData/DetailedTrackTruth.h" #include "TrkTruthData/DetailedSegmentTruth.h" #include "TrkTruthData/TruthTrajectory.h" - #include "AtlasHepMC/GenParticle.h" #include "AtlasHepMC/GenVertex.h" - #include "GeneratorObjects/HepMcParticleLink.h" #include "AthContainers/DataVector.h" - #include "TrkTrack/Track.h" #include "TrkRIO_OnTrack/RIO_OnTrack.h" #include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" #include "TrkMeasurementBase/MeasurementBase.h" #include "TrkPrepRawData/PrepRawData.h" - -// GROSS MASS INCLUDING ALL PACKAGES #include "MuonSimData/MuonSimData.h" #include "MuonSimData/MuonSimDataCollection.h" #include "MuonSimData/CscSimDataCollection.h" #include "MuonPrepRawData/MdtPrepData.h" #include "MuonPrepRawData/MMPrepData.h" #include "MuonPrepRawData/sTgcPrepData.h" - -// package include -// Trk includes #include "TrkParameters/TrackParameters.h" #include "TrkTrack/Track.h" #include "TrkFitterInterfaces/ITrackFitter.h" #include "TrkExInterfaces/IExtrapolator.h" #include "TrkSurfaces/PerigeeSurface.h" - #include "TrkDetElementBase/TrkDetElementBase.h" - #include "TrkPrepRawData/PrepRawData.h" #include "TrkMeasurementBase/MeasurementBase.h" #include "TrkRIO_OnTrack/RIO_OnTrack.h" #include "TrkPseudoMeasurementOnTrack/PseudoMeasurementOnTrack.h" - #include "TrackRecord/TrackRecordCollection.h" - #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h" #include "MuonRIO_OnTrack/MuonClusterOnTrack.h" #include "MuonRIO_OnTrack/MMClusterOnTrack.h" @@ -59,7 +47,6 @@ #include "MuonPrepRawData/sTgcPrepData.h" #include "MuonPrepRawData/MuonCluster.h" #include "MuonSegment/MuonSegment.h" -// HepMC #include "AtlasHepMC/GenParticle.h" #include "MuonRecHelperTools/MuonEDMPrinterTool.h" #include "MuonRecHelperTools/IMuonEDMHelperSvc.h" @@ -67,11 +54,8 @@ #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h" #include "MuonRecToolInterfaces/IMuonCompetingClustersOnTrackCreator.h" #include "MuonRecToolInterfaces/IMuonTrackToSegmentTool.h" - #include "MuonTrackMakerUtils/SortMeasurementsByPosition.h" -// END GROSS MASS INCLUDING - #include <map> #include <queue> #include <list> @@ -99,7 +83,6 @@ struct DetectorLayer { }; namespace { - //template<class Map> void printMap(const Map& m); template<class Map> void printMap(const Map& m) { std::cout<<"printMap(): ["; @@ -144,24 +127,17 @@ namespace { namespace Trk { //================================================================ -DetailedMuonPatternTruthBuilder::DetailedMuonPatternTruthBuilder(const std::string& type, const std::string& name, const IInterface* parent) - : AthAlgTool(type,name,parent) - , m_truthTrackBuilder("Trk::ElasticTruthTrajectoryBuilder") - , m_mdtCreator("Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator") - , m_muonClusterCreator("Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator") -{ +DetailedMuonPatternTruthBuilder::DetailedMuonPatternTruthBuilder(const std::string& type, const std::string& name, const IInterface* parent) : + AthAlgTool(type,name,parent) { declareInterface<IDetailedMuonPatternTruthBuilder>(this); - declareProperty("TruthTrajectoryTool", m_truthTrackBuilder); } //================================================================ StatusCode DetailedMuonPatternTruthBuilder::initialize() { - ATH_CHECK(m_truthTrackBuilder.retrieve()); ATH_CHECK(m_idHelperSvc.retrieve()); ATH_CHECK(m_mdtCreator.retrieve()); ATH_CHECK(m_muonClusterCreator.retrieve()); - return StatusCode::SUCCESS; } diff --git a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h index e9fd93c872cfbabd398498d4b4854a1c463a56c6..ed21b33141d71982c59ec873ab6ce087a4fc2bfe 100755 --- a/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h +++ b/MuonSpectrometer/MuonTruthAlgs/src/DetailedMuonPatternTruthBuilder.h @@ -5,54 +5,46 @@ #ifndef DETAILEDMUONPATTERNTRUTHBUILDER_H #define DETAILEDMUONPATTERNTRUTHBUILDER_H -// Gaudi +#include "MuonRecToolInterfaces/IDetailedMuonPatternTruthBuilder.h" #include "AthenaBaseComps/AthAlgTool.h" -#include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/ServiceHandle.h" +#include "GaudiKernel/ToolHandle.h" #include "AthLinks/ElementLink.h" #include "AtlasDetDescr/AtlasDetectorID.h" #include "TrkTruthData/PRD_MultiTruthCollection.h" #include "TrkEventUtils/InverseMultiMap.h" - -#include "MuonRecToolInterfaces/IDetailedMuonPatternTruthBuilder.h" #include "MuonPattern/MuonPatternCollection.h" #include "MuonPattern/MuonPatternCombination.h" #include "MuonPattern/MuonPatternCombinationCollection.h" #include "MuonPattern/DetailedMuonPatternTruthCollection.h" - #include "TrkToolInterfaces/ITruthTrajectoryBuilder.h" #include "TrkTruthData/DetailedTrackTruth.h" #include "TrkTruthData/DetailedSegmentTruth.h" #include "TrkTruthData/SubDetHitStatistics.h" - #include "TrkTruthData/DetailedTrackTruthCollection.h" #include "TrkTruthData/DetailedTrackTruth.h" #include "TrkTruthData/TruthTrajectory.h" - #include "TrkTrack/Track.h" #include "TrkRIO_OnTrack/RIO_OnTrack.h" #include "TrkCompetingRIOsOnTrack/CompetingRIOsOnTrack.h" #include "TrkMeasurementBase/MeasurementBase.h" #include "TrkPrepRawData/PrepRawData.h" - #include "MuonIdHelpers/IMuonIdHelperSvc.h" - -// Include any other potentially useful packages -// Trk includes #include "MuonSimData/MuonSimDataCollection.h" #include "MuonSimData/CscSimDataCollection.h" #include "TrackRecord/TrackRecord.h" #include "TrkSegment/SegmentCollection.h" #include "TrkParameters/TrackParameters.h" -#include <vector> #include "MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h" #include "MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h" +#include <string> +#include <vector> + namespace Trk { - class DetailedMuonPatternTruthBuilder: virtual public IDetailedMuonPatternTruthBuilder, - public AthAlgTool + class DetailedMuonPatternTruthBuilder: virtual public IDetailedMuonPatternTruthBuilder, public AthAlgTool { public: DetailedMuonPatternTruthBuilder(const std::string& type, const std::string& name, const IInterface* parent); @@ -77,10 +69,9 @@ namespace Trk { ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ToolHandle<Trk::ITruthTrajectoryBuilder> m_truthTrackBuilder; - ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtCreator; - ToolHandle<Muon::IMuonClusterOnTrackCreator> m_muonClusterCreator; - ToolHandle<Muon::IMuonClusterOnTrackCreator > p_IMuonClusterOnTrackCreatorCSCCluster ; + ToolHandle<Trk::ITruthTrajectoryBuilder> m_truthTrackBuilder{this,"TruthTrajectoryTool","Trk::ElasticTruthTrajectoryBuilder"}; + ToolHandle<Muon::IMdtDriftCircleOnTrackCreator> m_mdtCreator{this,"MdtDriftCircleCreator","Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"}; + ToolHandle<Muon::IMuonClusterOnTrackCreator> m_muonClusterCreator{this,"MuonClusterCreator","Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator"}; SubDetHitStatistics::SubDetType findSubDetType(Identifier id); diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx index cbd7fdf08f1153d739d8110b80c5333e2d17bd14..dc074373cb75df9b5cfad8392e094a185aa540ec 100755 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonDetailedTrackTruthMaker.cxx @@ -6,17 +6,14 @@ // A. Gaponenko, 2006 #include "MuonTruthAlgs/MuonDetailedTrackTruthMaker.h" + #include <iterator> +#include <vector> //================================================================ MuonDetailedTrackTruthMaker::MuonDetailedTrackTruthMaker(const std::string &name, ISvcLocator *pSvcLocator) : - AthAlgorithm(name,pSvcLocator), - m_truthTool("Trk::DetailedTrackTruthBuilder") -{ - declareProperty("TruthTool", m_truthTool); - declareProperty("HasCSC",m_hasCSC=true); - declareProperty("HasSTgc",m_hasSTgc=true); - declareProperty("HasMM",m_hasMM=true); + AthAlgorithm(name,pSvcLocator) +{ } // Initialize method @@ -52,13 +49,6 @@ StatusCode MuonDetailedTrackTruthMaker::initialize() return StatusCode::SUCCESS; } -// ----------------------------------------------------------------------------------------------------- -StatusCode MuonDetailedTrackTruthMaker::finalize() -{ - ATH_MSG_DEBUG( "MuonDetailedTrackTruthMaker::finalize()"); - return StatusCode::SUCCESS; -} - // ----------------------------------------------------------------------------------------------------- StatusCode MuonDetailedTrackTruthMaker::execute() { ATH_MSG_DEBUG( "MuonDetailedTrackTruthMaker::execute()"); diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx index ebd64af9a8525bf16acad7d0699f020f8b020e81..1d71c655f1574c8715f1b4c339b3f32de4690919 100755 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonPatternCombinationDetailedTrackTruthMaker.cxx @@ -1,65 +1,31 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ // Algorithm producing truth info for PrepRawData, keeping all MC particles contributed to a PRD. // A. Gaponenko, 2006 #include "MuonTruthAlgs/MuonPatternCombinationDetailedTrackTruthMaker.h" + #include "TrkTruthData/PRD_MultiTruthCollection.h" #include "TrkTruthData/DetailedTrackTruthCollection.h" #include "TrkTrack/TrackCollection.h" -#include <iterator> - #include "MuonPattern/DetailedMuonPatternTruthCollection.h" +#include <iterator> //================================================================ MuonPatternCombinationDetailedTrackTruthMaker::MuonPatternCombinationDetailedTrackTruthMaker(const std::string &name, ISvcLocator *pSvcLocator) : - AthAlgorithm(name,pSvcLocator), -// m_truthTool("Trk::DetailedTrackTruthBuilder") - m_truthTool("Trk::DetailedMuonPatternTruthBuilder/DetailedMuonPatternTruthBuilder") + AthAlgorithm(name,pSvcLocator) { - declareProperty("TruthTool", m_truthTool); - - // Inputs - declareProperty("TrackCollectionName", m_trackCollectionName = "MooreTracks"); - declareProperty("MuonPatternCombinationCollection", m_collection = "MuonHoughPatternCombinations"); - - declareProperty("PRD_TruthNames", m_PRD_TruthNames); - m_PRD_TruthNames.push_back("CSC_TruthMap"); - m_PRD_TruthNames.push_back("RPC_TruthMap"); - m_PRD_TruthNames.push_back("TGC_TruthMap"); - m_PRD_TruthNames.push_back("MDT_TruthMap"); - - - // Output - declareProperty("DetailedTrackTruthNames", m_detailedTrackTruthName); - m_detailedTrackTruthName = (m_trackCollectionName + "Truth"); + if (m_detailedTrackTruthName.empty()) m_detailedTrackTruthName = (m_trackCollectionName + "Truth"); } -// Initialize method // ----------------------------------------------------------------------------------------------------- StatusCode MuonPatternCombinationDetailedTrackTruthMaker::initialize() { ATH_MSG_DEBUG( "MuonPatternCombinationDetailedTrackTruthMaker::initialize()"); - - //---------------- - if ( m_truthTool.retrieve().isFailure() ) { - ATH_MSG_FATAL( "Failed to retrieve tool " << m_truthTool); - return StatusCode::FAILURE; - } else { - ATH_MSG_DEBUG("Retrieved tool " << m_truthTool ); - } - - //---------------- - return StatusCode::SUCCESS; -} - -// ----------------------------------------------------------------------------------------------------- -StatusCode MuonPatternCombinationDetailedTrackTruthMaker::finalize() -{ - ATH_MSG_DEBUG( "MuonPatternCombinationDetailedTrackTruthMaker::finalize()"); + ATH_CHECK(m_truthTool.retrieve()); return StatusCode::SUCCESS; } diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx index 1c494ba3e7cca79452fcccb46fdf016edfd519ef..7577aa796c2b49f1e7efb20ca265199f758776c2 100644 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.cxx @@ -15,11 +15,7 @@ namespace Muon { // Constructor with parameters: MuonSegmentTruthAssociationAlg::MuonSegmentTruthAssociationAlg(const std::string &name, ISvcLocator *pSvcLocator) : - AthAlgorithm(name,pSvcLocator), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_muonTrackTruthTool("Muon::MuonTrackTruthTool/MuonTrackTruthTool") - { - declareProperty("BarcodeOffset", m_barcodeOffset = 1000000 ,"barcode offset for matching truth particles"); + AthAlgorithm(name,pSvcLocator) { } // Initialize method: diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h index 3d8c36568bd40d34befbd17e0ae1d736c0d9e66c..d3d0a4979d7d836d085160bdce3cc2db59274a54 100644 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonSegmentTruthAssociationAlg.h @@ -35,15 +35,19 @@ public: private: ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - ToolHandle<Muon::IMuonTrackTruthTool> m_muonTrackTruthTool; - Gaudi::Property<SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> >m_muonTruthSegmentContainerName{this,"MuonTruthSegmentName","MuonTruthSegments","muon truth segment container name"}; - Gaudi::Property<SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> >m_muonSegmentCollectionName{this,"MuonSegmentLocation","MuonSegments","muon segment container name"}; + + ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this,"Printer","Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<Muon::IMuonTrackTruthTool> m_muonTrackTruthTool{this,"MuonTrackTruthTool","Muon::MuonTrackTruthTool/MuonTrackTruthTool"}; + + SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> m_muonTruthSegmentContainerName{this,"MuonTruthSegmentName","MuonTruthSegments","muon truth segment container name"}; + SG::WriteDecorHandleKey<xAOD::MuonSegmentContainer> m_muonSegmentCollectionName{this,"MuonSegmentLocation","MuonSegments","muon segment container name"}; + SG::ReadHandleKey<McEventCollection> m_mcEventColl{this,"McEventCollectionKey","TruthEvent","McEventCollection"}; SG::ReadHandleKeyArray<MuonSimDataCollection> m_muonSimData{this,"MuonSimDataNames",{ "MDT_SDO", "RPC_SDO", "TGC_SDO", "sTGC_SDO", "MM_SDO" },"Muon SDO maps"}; SG::ReadHandleKey<CscSimDataCollection> m_cscSimData{this,"CSC_SDO_Container","CSC_SDO","CSC SDO"}; SG::ReadHandleKey<TrackRecordCollection> m_trackRecord{this,"TrackRecord","MuonEntryLayerFilter","Track Record Collection"}; - int m_barcodeOffset; + + Gaudi::Property<int>m_barcodeOffset{this,"BarcodeOffset",1000000 ,"barcode offset for matching truth particles"}; }; } // namespace Muon diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx index fa7fafc64d4fbf46fc3ae60c688ea7015d5804aa..b256dcb13bb2ded4b988355698aad67bdda24cfe 100644 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTrackTruthTool.cxx @@ -4,46 +4,27 @@ #include "MuonTruthAlgs/MuonTrackTruthTool.h" -#include "TrkToolInterfaces/ITruthTrajectoryBuilder.h" #include "AtlasHepMC/GenEvent.h" #include "AtlasHepMC/GenParticle.h" #include "TrkTruthData/TruthTrajectory.h" - #include "MuonReadoutGeometry/MuonDetectorManager.h" - #include "MuonSimData/MuonSimData.h" #include "MuonRIO_OnTrack/MdtDriftCircleOnTrack.h" #include "MuonSegment/MuonSegment.h" - -#include <iostream> -#include <set> - -#include "MuonIdHelpers/MdtIdHelper.h" -#include "MuonIdHelpers/RpcIdHelper.h" -#include "MuonIdHelpers/CscIdHelper.h" -#include "MuonIdHelpers/TgcIdHelper.h" - #include "MuonCompetingRIOsOnTrack/CompetingMuonClustersOnTrack.h" #include "TrkMeasurementBase/MeasurementBase.h" #include "TrkPseudoMeasurementOnTrack/PseudoMeasurementOnTrack.h" #include "TrkTrack/Track.h" #include "TrkEventUtils/RoT_Extractor.h" +#include <iostream> + namespace Muon { - MuonTrackTruthTool::MuonTrackTruthTool(const std::string& ty,const std::string& na,const IInterface* pa) - : AthAlgTool(ty,na,pa), - m_detMgr(0), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_truthTrajectoryBuilder("Muon::MuonDecayTruthTrajectoryBuilder/MuonDecayTruthTrajectoryBuilder") - { + MuonTrackTruthTool::MuonTrackTruthTool(const std::string& ty,const std::string& na,const IInterface* pa) : + AthAlgTool(ty,na,pa), + m_detMgr(nullptr) { declareInterface<IMuonTrackTruthTool>(this); - - declareProperty("DoSummary", m_doSummary = false ); - declareProperty("ManipulateBarCode", m_manipulateBarCode = false ); - declareProperty("MinHits", m_minHits = 4 ); - declareProperty("MatchAllParticles", m_matchAllParticles = true ); - declareProperty("ConsideredPDGs", m_pdgsToBeConsidered ); } StatusCode MuonTrackTruthTool::initialize() @@ -258,8 +239,6 @@ namespace Muon { ATH_MSG_VERBOSE(" Erasing entry: barcode " << it->second.truthTrack->GetBarCode() << " manip " << manipulateBarCode(it->second.truthTrack->GetBarCode()) << " hits " << nhits); badBarcodes.push_back(it->first); - //m_truthTree.erase(it); - //it = m_truthTree.begin(); }else{ ++ngood; ATH_MSG_VERBOSE(" Keeping entry: barcode " << it->second.truthTrack->GetBarCode() diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx index 0819ef104cdac70818b16297ea0e127390e815e6..5fe49d5908c1a2ae995348cbdc240737ef1691f8 100644 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.cxx @@ -3,6 +3,7 @@ */ #include "MuonTruthDecorationAlg.h" + #include "xAODMuon/MuonSegment.h" #include "xAODMuon/MuonSegmentAuxContainer.h" #include "xAODTruth/TruthParticleContainer.h" @@ -24,30 +25,7 @@ namespace Muon { // Constructor with parameters: MuonTruthDecorationAlg::MuonTruthDecorationAlg(const std::string &name, ISvcLocator *pSvcLocator) : AthAlgorithm(name,pSvcLocator), - m_printer("Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"), - m_truthClassifier("MCTruthClassifier/MCTruthClassifier"), - m_extrapolator("Trk::Extrapolator/AtlasExtrapolator"), - m_muonMgr(0) - { - - // Get parameter values from jobOptions file - declareProperty("TruthParticleContainerName" , m_truthParticleContainerName = "TruthParticles"); - declareProperty("MuonTruthParticleContainerName", m_muonTruthParticleContainerName = "MuonTruthParticles"); - declareProperty("MuonTruthSegmentName" , m_muonTruthSegmentContainerName = "MuonTruthSegments" ); - declareProperty("TrackRecordCollectionNames" , m_trackRecordCollectionNames={"CaloEntryLayer","MuonEntryLayer","MuonExitLayer"}); - - //remove NSW by default for now, can always be changed in the configuration - declareProperty("PRD_TruthMaps",m_PRD_TruthNames={"CSC_TruthMap","RPC_TruthMap","TGC_TruthMap","MDT_TruthMap"}); - - declareProperty("CSCSDOs", m_CSC_SDO_TruthNames="CSC_SDO"); - //remove NSW by default for now, can always be changed in the configuration - declareProperty("SDOs", m_SDO_TruthNames={"RPC_SDO","TGC_SDO","MDT_SDO"}); - - declareProperty("MCTruthClassifier", m_truthClassifier); - declareProperty("MuonEDMPrinterTool", m_printer); - declareProperty("Extrapolator", m_extrapolator); - declareProperty("CreateTruthSegments", m_createTruthSegment = true ); - declareProperty("BarcodeOffset", m_barcodeOffset = 1000000 ); + m_muonMgr(nullptr) { } // Initialize method: diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h index 51d2306de9dd48290a3e8edd159f7cf5291bd59e..ef4044910cf648f5cf7336bcbc76b57eb72f8025 100755 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthDecorationAlg.h @@ -8,15 +8,11 @@ #include "AthenaBaseComps/AthAlgorithm.h" #include "GaudiKernel/ServiceHandle.h" #include "GaudiKernel/ToolHandle.h" -#include <string> -#include <map> -#include <vector> #include "MuonIdHelpers/IMuonIdHelperSvc.h" #include "MuonRecToolInterfaces/IMuonTrackTruthTool.h" #include "MuonRecHelperTools/MuonEDMPrinterTool.h" #include "TrkExInterfaces/IExtrapolator.h" - #include "TrackRecord/TrackRecordCollection.h" #include "xAODTruth/TruthParticle.h" #include "xAODTruth/TruthParticleContainer.h" @@ -25,11 +21,14 @@ #include "xAODMuon/MuonSegmentContainer.h" #include "GeneratorObjects/xAODTruthParticleLink.h" #include "MCTruthClassifier/IMCTruthClassifier.h" - #include "StoreGate/ReadHandleKey.h" #include "StoreGate/WriteHandleKey.h" #include "StoreGate/WriteHandleKeyArray.h" +#include <string> +#include <map> +#include <vector> + class MuonSimDataCollection; class CscSimDataCollection; @@ -58,20 +57,25 @@ private: void createSegments( const ElementLink< xAOD::TruthParticleContainer >& truthLink,SG::WriteHandle<xAOD::MuonSegmentContainer> segmentContainer, const MuonTruthDecorationAlg::ChamberIdMap& ids) const; - SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthParticleContainerName; - SG::WriteHandleKey<xAOD::TruthParticleContainer> m_muonTruthParticleContainerName; - SG::WriteHandleKey<xAOD::MuonSegmentContainer> m_muonTruthSegmentContainerName; - SG::ReadHandleKeyArray<TrackRecordCollection> m_trackRecordCollectionNames; - SG::ReadHandleKeyArray<PRD_MultiTruthCollection> m_PRD_TruthNames; - SG::ReadHandleKeyArray<MuonSimDataCollection> m_SDO_TruthNames; - SG::ReadHandleKey<CscSimDataCollection> m_CSC_SDO_TruthNames; + SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthParticleContainerName{this,"TruthParticleContainerName","TruthParticles"}; + SG::WriteHandleKey<xAOD::TruthParticleContainer> m_muonTruthParticleContainerName{this,"MuonTruthParticleContainerName","MuonTruthParticles"}; + SG::WriteHandleKey<xAOD::MuonSegmentContainer> m_muonTruthSegmentContainerName{this,"MuonTruthSegmentName","MuonTruthSegments"}; + + SG::ReadHandleKeyArray<TrackRecordCollection> m_trackRecordCollectionNames{this,"TrackRecordCollectionNames",{"CaloEntryLayer","MuonEntryLayer","MuonExitLayer"}}; + SG::ReadHandleKeyArray<PRD_MultiTruthCollection> m_PRD_TruthNames{this,"PRD_TruthMaps",{"CSC_TruthMap","RPC_TruthMap","TGC_TruthMap","MDT_TruthMap"},"remove NSW by default for now, can always be changed in the configuration"}; + SG::ReadHandleKeyArray<MuonSimDataCollection> m_SDO_TruthNames{this,"SDOs",{"RPC_SDO","TGC_SDO","MDT_SDO"},"remove NSW by default for now, can always be changed in the configuration"}; + SG::ReadHandleKey<CscSimDataCollection> m_CSC_SDO_TruthNames{this,"CSCSDOs","CSC_SDO"}; + ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}; - ToolHandle<Muon::MuonEDMPrinterTool> m_printer; - ToolHandle<IMCTruthClassifier> m_truthClassifier; - ToolHandle<Trk::IExtrapolator> m_extrapolator; + + ToolHandle<Muon::MuonEDMPrinterTool> m_printer{this,"MuonEDMPrinterTool","Muon::MuonEDMPrinterTool/MuonEDMPrinterTool"}; + ToolHandle<IMCTruthClassifier> m_truthClassifier{this,"MCTruthClassifier","MCTruthClassifier/MCTruthClassifier"}; + ToolHandle<Trk::IExtrapolator> m_extrapolator{this,"Extrapolator","Trk::Extrapolator/AtlasExtrapolator"}; + + Gaudi::Property<bool> m_createTruthSegment{this,"CreateTruthSegments",true}; + Gaudi::Property<int> m_barcodeOffset{this,"BarcodeOffset",1000000}; + const MuonGM::MuonDetectorManager* m_muonMgr; - bool m_createTruthSegment; - int m_barcodeOffset; }; } // namespace Muon diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx index 3946501952a397b19a9f8ed27d610ead65379461..cdc3303d7ac89a22e9d59b053a68b6c37045e51e 100644 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.cxx @@ -1,8 +1,7 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// MuonTruthAlgs includes #include "MuonTruthSummaryAlg.h" #include "TrkTrack/TrackCollection.h" @@ -10,20 +9,10 @@ #include "MuonSegment/MuonSegment.h" #include "xAODTracking/TrackParticleContainer.h" -MuonTruthSummaryAlg::MuonTruthSummaryAlg( const std::string& name, ISvcLocator* pSvcLocator ) - : - AthAlgorithm( name, pSvcLocator ), - m_truthSummaryTool("MuonTruthSummaryTool"){ - declareProperty("SegmentContainerName" , m_segmentContainerName = "MuonSegments"); - declareProperty("MSTracksContainerName" , m_msTracksContainerName = "MuonSpectrometerTracks"); - declareProperty("MSTrackletsContainerName" , m_msTrackletContainerName = "MSonlyTracklets"); - declareProperty("MuonTruthSummaryTool" , m_truthSummaryTool ); +MuonTruthSummaryAlg::MuonTruthSummaryAlg(const std::string& name, ISvcLocator* pSvcLocator) : + AthAlgorithm( name, pSvcLocator ) { } - -MuonTruthSummaryAlg::~MuonTruthSummaryAlg() {} - - StatusCode MuonTruthSummaryAlg::initialize() { ATH_MSG_INFO ("Initializing " << name() << "..."); if( m_truthSummaryTool.retrieve().isFailure()){ @@ -33,12 +22,6 @@ StatusCode MuonTruthSummaryAlg::initialize() { return StatusCode::SUCCESS; } -StatusCode MuonTruthSummaryAlg::finalize() { - ATH_MSG_INFO ("Finalizing " << name() << "..."); - - return StatusCode::SUCCESS; -} - StatusCode MuonTruthSummaryAlg::execute() { ATH_MSG_DEBUG ("Executing " << name() << "..."); @@ -59,14 +42,6 @@ StatusCode MuonTruthSummaryAlg::execute() { } } -// const xAOD::TrackParticleContainer* trackPs = 0; -// if (evtStore()->retrieve(trackPs, m_msTrackletContainerName).isSuccess()){ -// for (auto trkP : *trackPs) { -// m_truthSummaryTool->add(*trkP,4); -// } -// } - - //ATH_MSG_VERBOSE(m_truthSummaryTool->printSummary()); return StatusCode::SUCCESS; } diff --git a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h index e85c560f587cb961c2f8e1d3d6afc2850ff9b1c9..d5c8dc975443ea537e2562926fe5eee78e8b6671 100644 --- a/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h +++ b/MuonSpectrometer/MuonTruthAlgs/src/MuonTruthSummaryAlg.h @@ -1,30 +1,31 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef MUONTRUTHALGS_MUONTRUTHSUMMARYALGS_H #define MUONTRUTHALGS_MUONTRUTHSUMMARYALGS_H #include "AthenaBaseComps/AthAlgorithm.h" -#include <string> #include "GaudiKernel/ToolHandle.h" + #include "MuonRecToolInterfaces/IMuonTruthSummaryTool.h" +#include <string> -class MuonTruthSummaryAlg: public ::AthAlgorithm { +class MuonTruthSummaryAlg: public AthAlgorithm { public: MuonTruthSummaryAlg( const std::string& name, ISvcLocator* pSvcLocator ); - virtual ~MuonTruthSummaryAlg(); + virtual ~MuonTruthSummaryAlg()=default; - virtual StatusCode initialize(); - virtual StatusCode execute(); - virtual StatusCode finalize(); + virtual StatusCode initialize(); + virtual StatusCode execute(); private: - std::string m_segmentContainerName; - std::string m_msTracksContainerName; - std::string m_msTrackletContainerName; - ToolHandle<Muon::IMuonTruthSummaryTool> m_truthSummaryTool; + ToolHandle<Muon::IMuonTruthSummaryTool> m_truthSummaryTool{this,"MuonTruthSummaryTool","MuonTruthSummaryTool"}; + + Gaudi::Property<std::string> m_segmentContainerName{this,"SegmentContainerName","MuonSegments"}; + Gaudi::Property<std::string> m_msTracksContainerName{this,"MSTracksContainerName","MuonSpectrometerTracks"}; + Gaudi::Property<std::string> m_msTrackletContainerName{this,"MSTrackletsContainerName","MSonlyTracklets"}; }; #endif //> !MUONTRUTHALGS_MUONTRUTHSUMMARYALGS_H