|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef MuonSegmentCleaner_MuonPhiHitSelector_H
6 #define MuonSegmentCleaner_MuonPhiHitSelector_H
9 #include "GaudiKernel/ServiceHandle.h"
10 #include "GaudiKernel/ToolHandle.h"
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;
40 "Muon::MuonIdHelperSvc/MuonIdHelperSvc",
46 "MuonCompetingClustersOnTrackCreator",
47 "Muon::MuonCompetingClustersOnTrackCreator/MuonCompetingClustersOnTrackCreator",
50 ToolHandle<Muon::IMuonClusterOnTrackCreator>
m_clusterCreator{
this,
"MuonClusterOnTrackCreator",
""};
52 ToolHandle<Muon::IMuonClusterOnTrackCreator>
m_cscRotCreator{
this,
"CscRotCreator",
""};
55 Gaudi::Property<bool>
m_summary{
this,
"DoSummary",
false};
57 Gaudi::Property<bool>
m_cosmics{
this,
"DoCosmics",
false};
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;
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;
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;
109 #endif // MuonSegmentCleaner_MuonPhiHitSelector_H
Gaudi::Property< bool > m_competingRios
flag that build competing rios on track for amibguous trigger hits (default: false)
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
Scalar phi() const
phi method
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_cosmics
flag for use of cosmics, straight line model will be used, no interaction point constraint
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_cscRotCreator
StatusCode initialize() override
::StatusCode StatusCode
StatusCode definition for legacy code.
double chi2(TH1 *h0, TH1 *h1)
const double r0
electron radius{cm}
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_clusterCreator
Toolhandle to ClusterOnTrackTool creator.
ToolHandle< Muon::IMuonCompetingClustersOnTrackCreator > m_competingRIOsOnTrackTool
Toolhandle to CompetingRIOsOnTrackTool creator.
virtual ~MuonPhiHitSelector()=default
Ensure that the ATLAS eigen extensions are properly loaded.
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,...
MuonPhiHitSelector(const std::string &, const std::string &, const IInterface *)
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
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
Gaudi::Property< bool > m_summary
flag to print out a summary of what comes in and what comes out
void select(const xAOD::IParticle *particle, const float coneSize, const xAOD::CaloClusterContainer *clusters, std::vector< bool > &mask)
Gaudi::Property< bool > m_makeClusters
flag that performs a clusterization and return clusters (default: false)