ATLAS Offline Software
Loading...
Searching...
No Matches
MuonPhiHitSelector.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef MuonSegmentCleaner_MuonPhiHitSelector_H
6#define MuonSegmentCleaner_MuonPhiHitSelector_H
7
9#include "GaudiKernel/ServiceHandle.h"
10#include "GaudiKernel/ToolHandle.h"
15
16namespace Trk {
17class PrepRawData;
18class RIO_OnTrack;
19} // namespace Trk
20
22 public:
23 MuonPhiHitSelector(const std::string&, const std::string&, const IInterface*);
24 virtual ~MuonPhiHitSelector() = default;
25
26 StatusCode initialize() override;
27
32 std::vector<std::unique_ptr<const Trk::MeasurementBase>> select_rio(
33 const double pmom, const std::vector<const Trk::RIO_OnTrack*>& associatedHits,
34 const std::vector<const Trk::PrepRawData*>& unassociatedHits) const override;
35
36 private:
38 this,
39 "MuonIdHelperSvc",
40 "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
41 };
42
44 ToolHandle<Muon::IMuonCompetingClustersOnTrackCreator> m_competingRIOsOnTrackTool{
45 this,
46 "MuonCompetingClustersOnTrackCreator",
47 "Muon::MuonCompetingClustersOnTrackCreator/MuonCompetingClustersOnTrackCreator",
48 };
49
50 ToolHandle<Muon::IMuonClusterOnTrackCreator> m_clusterCreator{this, "MuonClusterOnTrackCreator",""};
51
52 ToolHandle<Muon::IMuonClusterOnTrackCreator> m_cscRotCreator{this, "CscRotCreator",""};
53
55 Gaudi::Property<bool> m_summary{this, "DoSummary", false};
57 Gaudi::Property<bool> m_cosmics{this, "DoCosmics", false};
59 Gaudi::Property<bool> m_makeClusters{this, "MakeClusters", false};
61 Gaudi::Property<bool> m_competingRios{this, "CompetingRios", false};
62
64 void fitRecPhi(const double pmom, const std::vector<Identifier>& phiId, const std::vector<double>& phiHitx,
65 const std::vector<double>& phiHity, const std::vector<double>& phiHitz,
66 const std::vector<double>& phiError, std::vector<int>& quality, const int nphi,
67 std::vector<double>& phiPull, std::vector<int>& phiMult, std::vector<int>& phiSelect, double& chi2,
68 double& r0, double& phi, std::vector<double>& errorM, int& nfit) const;
69
71 void fitPhiSL(const double pmom, const std::vector<Identifier>& id, const std::vector<double>& hitx,
72 const std::vector<double>& hity, const std::vector<double>& hitz, const std::vector<double>& error,
73 std::vector<int>& select, const int n, std::vector<double>& pull, int& imax, double& chi2, double& r0,
74 double& phi, std::vector<double>& errorM, bool fast) const;
75
100
101 void clusterPhi(const std::vector<Identifier>& id, const std::vector<double>& hitx, const std::vector<double>& hity,
102 const std::vector<double>& hitz, const std::vector<double>& error, const std::vector<double>& pull,
103 std::vector<int>& select, const int n, std::vector<double>& clusterX, std::vector<double>& clusterY,
104 std::vector<double>& clusterZ, std::vector<double>& clusterError,
105 std::vector<Identifier>& clusterId, std::vector<int>& clusterHits, std::vector<int>& clusterSelect,
106 std::vector<int>& clusterInt, int& ncl) const;
107};
108
109#endif // MuonSegmentCleaner_MuonPhiHitSelector_H
Scalar phi() const
phi method
int imax(int i, int j)
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
ToolHandle< Muon::IMuonCompetingClustersOnTrackCreator > m_competingRIOsOnTrackTool
Toolhandle to CompetingRIOsOnTrackTool creator.
Gaudi::Property< bool > m_makeClusters
flag that performs a clusterization and return clusters (default: false)
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_cscRotCreator
MuonPhiHitSelector(const std::string &, const std::string &, const IInterface *)
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_clusterCreator
Toolhandle to ClusterOnTrackTool creator.
void fitPhiSL(const double pmom, const std::vector< Identifier > &id, const std::vector< double > &hitx, const std::vector< double > &hity, const std::vector< double > &hitz, const std::vector< double > &error, std::vector< int > &select, const int n, std::vector< double > &pull, int &imax, double &chi2, double &r0, double &phi, std::vector< double > &errorM, bool fast) const
fit method straight line model
Gaudi::Property< bool > m_summary
flag to print out a summary of what comes in and what comes out
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Gaudi::Property< bool > m_competingRios
flag that build competing rios on track for amibguous trigger hits (default: false)
StatusCode initialize() override
void clusterPhi(const std::vector< Identifier > &id, const std::vector< double > &hitx, const std::vector< double > &hity, const std::vector< double > &hitz, const std::vector< double > &error, const std::vector< double > &pull, std::vector< int > &select, const int n, std::vector< double > &clusterX, std::vector< double > &clusterY, std::vector< double > &clusterZ, std::vector< double > &clusterError, std::vector< Identifier > &clusterId, std::vector< int > &clusterHits, std::vector< int > &clusterSelect, std::vector< int > &clusterInt, int &ncl) const
clusterization method
void fitRecPhi(const double pmom, const std::vector< Identifier > &phiId, const std::vector< double > &phiHitx, const std::vector< double > &phiHity, const std::vector< double > &phiHitz, const std::vector< double > &phiError, std::vector< int > &quality, const int nphi, std::vector< double > &phiPull, std::vector< int > &phiMult, std::vector< int > &phiSelect, double &chi2, double &r0, double &phi, std::vector< double > &errorM, int &nfit) const
fit method curved track model
Gaudi::Property< bool > m_cosmics
flag for use of cosmics, straight line model will be used, no interaction point constraint
virtual ~MuonPhiHitSelector()=default
std::vector< std::unique_ptr< const Trk::MeasurementBase > > select_rio(const double pmom, const std::vector< const Trk::RIO_OnTrack * > &associatedHits, const std::vector< const Trk::PrepRawData * > &unassociatedHits) const override
Selects and builds a cleaned vector of RIO fits the associatedHits and build new RIOs,...
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
double chi2(TH1 *h0, TH1 *h1)
Ensure that the ATLAS eigen extensions are properly loaded.