Skip to content
Snippets Groups Projects
Forked from atlas / athena
86618 commits behind the upstream repository.
  • William Axel Leight's avatar
    c380cd46
    Reject poor quality EM-only tracks · c380cd46
    William Axel Leight authored and Adam Edward Barton's avatar Adam Edward Barton committed
    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.
    c380cd46
    History
    Reject poor quality EM-only tracks
    William Axel Leight authored and Adam Edward Barton's avatar Adam Edward Barton committed
    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