ATLAS Offline Software
MuonClusterOnTrack.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MuonClusterOnTrack.h
7 // Header file for class MuonClusterOnTrackOnTrack
9 // (c) ATLAS Detector software
11 // /** Class to implement Cluster On Track for Si */
13 // Version 1.0 06/07/2004 Ketevi A. Assamagan
14 // adapted from Veronique Boisvert
16 
17 #ifndef MUONRIOONTRACK_MUONCLUSTERONTRACK_H
18 #define MUONRIOONTRACK_MUONCLUSTERONTRACK_H
19 
20 // Base classes
26 #include "TrkSurfaces/Surface.h"
27 // needed classes
28 
30 
31 namespace Muon {
32 
35 
36  // /////////////////////////////////////////////////////////////////
37  // Public methods:
38  // /////////////////////////////////////////////////////////////////
39  public:
40 
43 
44 
47  Amg::MatrixX&& locerr,
48  const Identifier& id,
49  const double positionAlongStrip
50  );
51 
52 
55 
58 
60  virtual MuonClusterOnTrack* clone() const override = 0;
61 
63  virtual const MuonCluster* prepRawData() const override = 0;
64 
66  virtual const Amg::Vector3D& globalPosition() const override;
67 
68  virtual double positionAlongStrip() const {
69  return m_positionAlongStrip;
70  }
71 
73  virtual IdentifierHash collectionHash() const;
74 
76  virtual IdentifierHash idDE() const override;
77 
78  virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
79  {
81  }
82 
84  virtual MsgStream& dump( MsgStream& stream) const override;
85 
87  virtual std::ostream& dump( std::ostream& stream) const override;
88 
90  virtual const MuonGM::MuonClusterReadoutElement* detectorElement() const override = 0;
91 
92  protected:
95 
98 
99  private:
100  friend class ::MuonClusterOnTrackCnv_p1;
101 
103  virtual void setValues(const Trk::TrkDetElementBase*, const Trk::PrepRawData*) override = 0 ;
104 
105  };
106 
107  // /////////////////////////////////////////////////////////////////
108  // Inline methods:
109  // /////////////////////////////////////////////////////////////////
110 
112  if( this->prepRawData() ) return prepRawData()->collectionHash();
113  return IdentifierHash();
114  }
115 
117  return IdentifierHash();
118  }
119 
120 } // end of namespace
121 
122 #endif // MUONRIOONTRACK_MUONCLUSTERONTRACK_H
123 
Muon::MuonClusterOnTrack::~MuonClusterOnTrack
virtual ~MuonClusterOnTrack()
Destructor.
MuonCluster.h
Trk::LocalParameters
Definition: LocalParameters.h:98
Trk::RIO_OnTrackType::MuonCluster
@ MuonCluster
Definition: RIO_OnTrack.h:61
MuonClusterOnTrackCnv_p1
NO LONGER NEEDED, except for backwards compatibility.
Definition: MuonClusterOnTrackCnv_p1.h:28
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:29
Muon::MuonClusterOnTrack::clone
virtual MuonClusterOnTrack * clone() const override=0
Clone this ROT.
Muon::MuonClusterOnTrack::collectionHash
virtual IdentifierHash collectionHash() const
Returns the hashID of the PRD collection.
Definition: MuonClusterOnTrack.h:111
Muon::MuonClusterOnTrack::globalPosition
virtual const Amg::Vector3D & globalPosition() const override
Returns global position.
Definition: MuonClusterOnTrack.cxx:93
Surface.h
Muon::MuonClusterOnTrack::prepRawData
virtual const MuonCluster * prepRawData() const override=0
Returns the Trk::PrepRawData - is a MuonCluster in this scope.
Muon::MuonClusterOnTrack::m_globalPosition
CxxUtils::CachedUniquePtr< const Amg::Vector3D > m_globalPosition
cache global position, the global position has to be calculated in the inheriting classes
Definition: MuonClusterOnTrack.h:94
CxxUtils::CachedUniquePtrT
Cached pointer with atomic update.
Definition: CachedUniquePtr.h:54
Muon::MuonClusterOnTrack::dump
virtual MsgStream & dump(MsgStream &stream) const override
Dumps information about the PRD.
Definition: MuonClusterOnTrack.cxx:62
Muon::MuonCluster::collectionHash
virtual IdentifierHash collectionHash() const
Returns the IdentifierHash corresponding to the PRD collection in the PRD container.
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MuonCluster.h:104
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
Trk::TrkDetElementBase
Definition: TrkDetElementBase.h:52
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
Muon::MuonClusterOnTrack::rioType
virtual bool rioType(Trk::RIO_OnTrackType::Type type) const override final
Method checking the Rio On Track type.
Definition: MuonClusterOnTrack.h:78
Muon::MuonClusterOnTrack::idDE
virtual IdentifierHash idDE() const override
Returns an invalid hash.
Definition: MuonClusterOnTrack.h:116
AthenaPoolTestWrite.stream
string stream
Definition: AthenaPoolTestWrite.py:12
Trk::RIO_OnTrack::type
virtual bool type(MeasurementBaseType::Type type) const override final
Extended method checking the type.
Definition: RIO_OnTrack.h:110
Muon::MuonClusterOnTrack::MuonClusterOnTrack
MuonClusterOnTrack()
Pool constructor.
Definition: MuonClusterOnTrack.cxx:22
Muon::MuonClusterOnTrack::detectorElement
virtual const MuonGM::MuonClusterReadoutElement * detectorElement() const override=0
Returns the detector element, associated with the PRD of this class.
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
CachedUniquePtr.h
Cached unique_ptr with atomic update.
MuonClusterReadoutElement.h
Trk::PrepRawData
Definition: PrepRawData.h:62
RIO_OnTrack.h
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
LocalParameters.h
MuonGM::MuonClusterReadoutElement
Definition: MuonClusterReadoutElement.h:21
Muon::MuonClusterOnTrack::positionAlongStrip
virtual double positionAlongStrip() const
Definition: MuonClusterOnTrack.h:68
Muon::MuonCluster
Class representing clusters in the muon system.
Definition: MuonSpectrometer/MuonReconstruction/MuonRecEvent/MuonPrepRawData/MuonPrepRawData/MuonCluster.h:37
IdentifierHash
Definition: IdentifierHash.h:38
Muon::MuonClusterOnTrack::setValues
virtual void setValues(const Trk::TrkDetElementBase *, const Trk::PrepRawData *) override=0
Used by custom convertors.
Trk::RIO_OnTrackType::Type
Type
Definition: RIO_OnTrack.h:56
Muon::MuonClusterOnTrack
Base class for Muon cluster RIO_OnTracks.
Definition: MuonClusterOnTrack.h:34
Muon::MuonClusterOnTrack::m_positionAlongStrip
double m_positionAlongStrip
The position along the strip - used to calculate the GlobalPosition.
Definition: MuonClusterOnTrack.h:97
Muon::MuonClusterOnTrack::operator=
MuonClusterOnTrack & operator=(const MuonClusterOnTrack &)
Definition: MuonClusterOnTrack.cxx:52