|
ATLAS Offline Software
|
Go to the documentation of this file.
30 declareInterface<IMuonClusterOnTrackCreator>(
this);
31 declareInterface<IRIO_OnTrackCreator>(
this);
40 ATH_MSG_ERROR(
"The given detector layout does not contain any CSC chamber, "<<
41 "there must be something wrong in the configuration,"
42 <<
" since the CscClusterOnTrackCreator cannot be needed.");
43 return StatusCode::FAILURE;
52 return StatusCode::SUCCESS;
62 ATH_MSG_WARNING(
"RIO does not have associated detectorElement!, cannot produce ROT");
79 double positionAlongStrip = 0;
81 if (!
EL->surface(RIO.
identify()).globalToLocal(GP, GP, lp)) {
83 ATH_MSG_WARNING(
"Extrapolated GlobalPosition not on detector surface! Distance " << lpos.z());
95 loce = Trk::ErrorScalingCast<MuonEtaPhiRIO_OnTrackErrorScaling>(
123 ATH_MSG_WARNING(
"CscClusterOnTrackCreator::createRIO_OnTrack is called by the other muon tech");
131 ATH_MSG_WARNING(
"RIO does not have associated detectorElement!, cannot produce ROT");
155 double positionAlongStrip = 0;
157 if (!
EL->surface(RIO.
identify()).globalToLocal(GP, GP, lp)) {
159 ATH_MSG_WARNING(
"Extrapolated GlobalPosition not on detector surface! Distance " << lpos.z());
171 loce = Trk::ErrorScalingCast<MuonEtaPhiRIO_OnTrackErrorScaling>(
186 double tantheta =
d.x() /
d.z();
188 std::vector<ICscClusterFitter::Result>
results, results0;
192 if (
results.empty() || results0.empty()) {
203 <<
"cluStatus: " <<
res.clusterStatus <<
"fitStatus: " <<
res.fitStatus);
211 <<
" :: tanangle : " << tantheta);
218 double nominal_error =
res.dposition;
219 double errorCorrected =
224 newloce.setIdentity();
225 newloce *= errorCorrected * errorCorrected;
229 Trk::ErrorScalingCast<MuonEtaPhiRIO_OnTrackErrorScaling>(
231 ->getScaledCovariance(std::move(newloce),
Trk::distPhi);
virtual const Amg::Transform3D & transform() const override
Return local to global transform.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
virtual const Amg::Vector3D & globalPosition() const override
Returns global position.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
MuonPrepDataCollection< CscStripPrepData > CscStripPrepDataCollection
ToolHandle< ICscClusterFitter > m_clusterFitter
const Amg::Vector3D & position() const
Access method for the position.
Eigen::Matrix< double, 2, 1 > Vector2D
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
CscClusterOnTrackCreator(const std::string &, const std::string &, const IInterface *)
virtual ~CscClusterOnTrackCreator()
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
virtual MuonClusterOnTrack * correct(const Trk::PrepRawData &RIO, const Trk::TrackParameters &TP, const EventContext &) const override
Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and the predicted Trk::TrackParameter at ...
virtual const ToolHandle< ICscClusterUtilTool > & GetICscClusterUtilTool() const override
std::pair< double, ParamDefs > DefinedParameter
ToolHandle< ICscClusterUtilTool > m_clusterUtilTool
CscTimeStatus timeStatus() const
Returns the Csc time status flag.
Class representing the raw data of one CSC strip (for clusters look at Muon::CscPrepData).
Gaudi::Property< double > m_minimumError
Class representing clusters from the CSC.
::StatusCode StatusCode
StatusCode definition for legacy code.
Eigen::Affine3d Transform3D
CscClusterStatus status() const
Returns the Csc status (position measurement) flag.
std::pair< std::vector< unsigned int >, bool > res
virtual const Surface & surface() const =0
Return surface associated with this detector element.
double time() const
Returns the time.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
virtual const ToolHandle< ICscStripFitter > & GetICscStripFitter() const override
These functions are provided from the interface.
SG::ReadCondHandleKey< RIO_OnTrackErrorScaling > m_cscErrorScalingKey
MuonPrepDataContainerT< CscStripPrepData > CscStripPrepDataContainer
virtual const ToolHandle< ICscClusterFitter > & GetICscClusterFitter() const override
virtual const MuonGM::CscReadoutElement * detectorElement() const override final
Return the detector element corresponding to this PRD.
Identifier identify() const
return the identifier
@ CscStatusUnspoiled
Clean cluster with precision fit.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Gaudi::Property< double > m_errorScalerBeta
const Amg::Vector2D & localPosition() const
return the local position reference
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
const Amg::Vector3D & momentum() const
Access method for the momentum.
Class to represent the calibrated clusters created from CSC strips.
@ CscStatusSplitUnspoiled
Clean cluster with precision fit after split cluster.
#define ATH_MSG_WARNING(x)
Gaudi::Property< double > m_errorScaler
ToolHandle< ICscStripFitter > m_stripFitter
virtual StatusCode initialize() override
virtual MuonClusterOnTrack * createRIO_OnTrack(const Trk::PrepRawData &RIO, const Amg::Vector3D &GP) const override
Create new Muon::MuonClusterOnTrack from a Trk::PrepRawData and a predicted Trk::TrackParameter.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
Polygon globalToLocal(const Polygon &pol, float z, const Trk::PlaneSurface &surf)
Base class for Muon cluster RIO_OnTracks.
virtual const TrkDetElementBase * detectorElement() const =0
return the detector element corresponding to this PRD The pointer will be zero if the det el is not d...