Forked from
atlas / athena
86618 commits behind the upstream repository.
-
EM segments that are not used in any other tracks are made into MS tracks: however, these tracks are often of quite poor quality, and cannot be extrapolated successfully. If they cannot be extrapolated, they are essentially never used to form muons, and anyway MuGirl should catch any tracks that MuidCo misses because of this. So we will now not make MuonCandidates from EM-only MS tracks that cannot be extrapolated. This will also have the helpful side effect of greatly reducing the number of warnings generated, such as those in ATLASRECTS-4464 and ATLASRECTS-5426.
EM segments that are not used in any other tracks are made into MS tracks: however, these tracks are often of quite poor quality, and cannot be extrapolated successfully. If they cannot be extrapolated, they are essentially never used to form muons, and anyway MuGirl should catch any tracks that MuidCo misses because of this. So we will now not make MuonCandidates from EM-only MS tracks that cannot be extrapolated. This will also have the helpful side effect of greatly reducing the number of warnings generated, such as those in ATLASRECTS-4464 and ATLASRECTS-5426.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
MuonCandidateTool.h 1.88 KiB
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
#ifndef MUONCOMBINEDBASETOOLS_MUONCANDIDATETOOL_H
#define MUONCOMBINEDBASETOOLS_MUONCANDIDATETOOL_H
#include "MuonCombinedToolInterfaces/IMuonCandidateTool.h"
#include "AthenaBaseComps/AthAlgTool.h"
#include "GaudiKernel/ToolHandle.h"
#include "xAODTracking/TrackParticleContainer.h"
#include "StoreGate/ReadCondHandleKey.h"
#include "BeamSpotConditionsData/BeamSpotData.h"
#include "TrkToolInterfaces/ITrackAmbiguityProcessorTool.h"
#include "MuidInterfaces/ICombinedMuonTrackBuilder.h"
#include "MuonRecHelperTools/MuonEDMPrinterTool.h"
#include "MuonRecToolInterfaces/IMuonTrackExtrapolationTool.h"
#include "MuonIdHelpers/IMuonIdHelperSvc.h"
namespace MuonCombined {
class MuonCandidateTool: public AthAlgTool, virtual public IMuonCandidateTool
{
public:
MuonCandidateTool(const std::string& type, const std::string& name, const IInterface* parent);
virtual ~MuonCandidateTool()=default;
virtual StatusCode initialize() override;
/**IMuonCandidateTool interface: build a MuonCandidateCollection from a TrackCollection of spectrometer tracks */
virtual
void create( const xAOD::TrackParticleContainer& tracks, MuonCandidateCollection& outputCollection, TrackCollection& outputTracks ) override;
private:
ToolHandle<Muon::MuonEDMPrinterTool> m_printer;
ToolHandle<Rec::ICombinedMuonTrackBuilder> m_trackBuilder;
ToolHandle<Muon::IMuonTrackExtrapolationTool> m_trackExtrapolationTool;
ToolHandle<Trk::ITrackAmbiguityProcessorTool> m_ambiguityProcessor;
ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" };
unsigned int m_extrapolationStrategy;
};
} // end of namespace
#endif