5#ifndef DETAILEDMUONPATTERNTRUTHBUILDER_H
6#define DETAILEDMUONPATTERNTRUTHBUILDER_H
11#include "AthLinks/ElementLink.h"
14#include "GaudiKernel/ServiceHandle.h"
15#include "GaudiKernel/ToolHandle.h"
54 const std::vector<const PRD_MultiTruthCollection*>& prdTruth);
57 const std::vector<const PRD_MultiTruthCollection*>& prdTruth);
60 const std::vector<const PRD_MultiTruthCollection*>& prdTruth);
67 ToolHandle<Trk::ITruthTrajectoryBuilder>
m_truthTrackBuilder{
this,
"TruthTrajectoryTool",
"Trk::ElasticTruthTrajectoryBuilder"};
68 ToolHandle<Muon::IMdtDriftCircleOnTrackCreator>
m_mdtCreator{
this,
"MdtDriftCircleCreator",
69 "Muon::MdtDriftCircleOnTrackCreator/MdtDriftCircleOnTrackCreator"};
71 "Muon::MuonClusterOnTrackCreator/MuonClusterOnTrackCreator"};
80 const std::vector<const PRD_MultiTruthCollection*>& orderedPRD_Truth,
const PRD_InverseTruth& inverseTruth);
83 const std::vector<const PRD_MultiTruthCollection*>& orderedPRD_Truth,
87 std::set<Muon::MuonStationIndex::ChIndex> chIndices);
90 std::set<Muon::MuonStationIndex::ChIndex> chIndices);
93 const std::vector<const PRD_MultiTruthCollection*>& orderedPRD_Truth,
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
DataVector< Muon::MuonPatternCombination > MuonPatternCombinationCollection
This typedef represents a collection of MuonPatternCombination objects.
A struture to keep per-subdetector numbers of hits for truth matching.
ElementLink implementation for ROOT usage.
std::pair< HepMcParticleLink, MuonMCData > Deposit
The MuonPatternCombination class provides the means to store the output of the initial global pattern...
This is the common class for 3D segments used in the muon spectrometer.
virtual StatusCode initialize()
virtual void buildDetailedMuonPatternTruth(DetailedMuonPatternTruthCollection *output, const MuonPatternCombinationCollection &tracks, const std::vector< const PRD_MultiTruthCollection * > &prdTruth)
See description for IDetailedMuonPatternTruthBuilder::buildDetailedTrackTruth()
InverseMultiMap< PRD_MultiTruthCollection > PRD_InverseTruth
const MuonSimDataCollection * retrieveTruthCollection(const std::string &colName)
SubDetHitStatistics::SubDetType findSubDetType(Identifier id)
void addDetailedTrackTruth(std::vector< DetailedTrackTruth > *output, const Muon::MuonPatternCombination &pattern, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth)
Amg::Vector3D getPRDTruthPosition(const Muon::MuonSegment &segment, std::list< HepMC::ConstGenParticlePtr > genPartList, int truthPos, std::set< Muon::MuonStationIndex::ChIndex > chIndices)
void addTrack(DetailedMuonPatternTruthCollection *output, const ElementLink< DataVector< Muon::MuonPatternCombination > > &track, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth)
void buildDetailedTrackTruthFromSegments(std::vector< DetailedSegmentTruth > *output, const Muon::MuonSegment &segment, const std::vector< const PRD_MultiTruthCollection * > &prdTruth)
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_muonClusterCreator
SubDetHitStatistics countPRDsOnTruth(const TruthTrajectory &traj, const PRD_InverseTruth &inverseTruth, std::set< Muon::MuonStationIndex::ChIndex > chIndices)
ToolHandle< Trk::ITruthTrajectoryBuilder > m_truthTrackBuilder
void addDetailedTrackTruthFromSegment(std::vector< DetailedSegmentTruth > *output, const Muon::MuonSegment &segment, const std::vector< const PRD_MultiTruthCollection * > &orderedPRD_Truth, const PRD_InverseTruth &inverseTruth)
DetailedMuonPatternTruthBuilder(const std::string &type, const std::string &name, const IInterface *parent)
virtual void buildDetailedTrackTruth(std::vector< DetailedTrackTruth > *output, const Muon::MuonPatternCombination &pattern, const std::vector< const PRD_MultiTruthCollection * > &prdTruth)
ToolHandle< Muon::IMdtDriftCircleOnTrackCreator > m_mdtCreator
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
const MuonSimData::Deposit * getDeposit(const MuonSimDataCollection &simCol, const HepMC::ConstGenParticlePtr &genPart, const Identifier &id)
Provides interface for tool to return a "detailed" track truth map.
An InverseMultiMap object built from a generic map or multimap allows for quick lookup of original (m...
A TruthTrajectory is a chain of charged MC particles connected through the mother-daughter relationsh...
Eigen::Matrix< double, 3, 1 > Vector3D
const GenParticle * ConstGenParticlePtr
Ensure that the ATLAS eigen extensions are properly loaded.