ATLAS Offline Software
Loading...
Searching...
No Matches
CscClusterOnTrack.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5//
6// CscClusterOnTrack.h
7// Header file for class CscClusterOnTrackOnTrack
8//
9// (c) ATLAS Detector software
10//
11// /** Class to implement Cluster On Track for Si */
12//
13// Version 1.0 06/07/2004 Ketevi A. Assamagan
14// adapted from Veronique Boisvert
15//
16
17#ifndef MUONRIOONTRACK_CSCCLUSTERONTRACK_H
18#define MUONRIOONTRACK_CSCCLUSTERONTRACK_H
19
20// Base classes
25// needed classes
26
28#include "AthLinks/ElementLink.h"
29
31
32namespace MuonGM
33{
35}
36
37namespace Trk
38{
39 class ITrkEventCnvTool;
40}
41
42namespace Muon
43{
44
47{
48
49public:
51
55
56
68 const CscPrepData* RIO,
69 Trk::LocalParameters&& locpos,
70 Amg::MatrixX&& locerr,
71 double positionAlongStrip,
74 float time=9999.0
75 );
76
77 // Alternate constructor that doesn't dereference the RIO link.
80 Trk::LocalParameters&& locpos,
81 Amg::MatrixX&& locerr,
82 const Identifier& id,
83 const MuonGM::CscReadoutElement* detEL,
84 double positionAlongStrip,
87 float time=9999.0
88 );
89
92
94 virtual CscClusterOnTrack* clone() const override final;
95
97 virtual const CscPrepData* prepRawData() const override final;
99
101 virtual const MuonGM::CscReadoutElement* detectorElement() const override final;
102
105 virtual const Trk::Surface& associatedSurface() const override final;
106
109
112
114 float time() const;
115
117 virtual MsgStream& dump( MsgStream& stream) const override final;
118
120 virtual std::ostream& dump( std::ostream& stream) const override final;
121
122private:
126 virtual void setValues(const Trk::TrkDetElementBase*,
127 const Trk::PrepRawData*) override final;
128
131
134
137
140
141 float m_time;
142};
143
145// Inline methods:
147
148
150{
151 return new CscClusterOnTrack(*this);
152}
153
155{
156 if (m_rio.isValid()) return m_rio.cachedElement();
157 //std::cout<<"CscClusterOnTrack::WARNING invalid PRD"<<std::endl;
158 return 0;
159}
160
163{
164 return m_rio;
165}
166
168{
169 return m_detEl;
170}
171
173{
174 // FIXME! This will crash if detectorElement() returns 0! EJWM
175 return detectorElement()->surface(identify());
176}
177
179{
180 return m_status;
181}
182
184{
185 return m_timeStatus;
186}
187
188inline float CscClusterOnTrack::time() const
189{
190 return m_time;
191}
192
194 const Trk::PrepRawData* /*rio*/)
195 {
196 // TODO should check this works EJWM
197 //m_rio = dynamic_cast<const CscPrepData*>(rio);
198 //assert(0!=m_rio);
199 m_detEl = dynamic_cast<const MuonGM::CscReadoutElement*>(detEl);
200 assert(0!=m_detEl);
201 }
202}
203
204#endif // MUONRIOONTRACK_MUONCLUSTERONTRACK_H
ElementLink< Muon::CscPrepDataContainer > ElementLinkToIDC_CSC_Container
Class to implement Cluster On Track for Si.
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
virtual CscClusterOnTrack * clone() const override final
Clone this ROT.
ElementLinkToIDC_CSC_Container m_rio
PrepRawData object assoicated with this measurement.
CscClusterOnTrack & operator=(const CscClusterOnTrack &)
virtual void setValues(const Trk::TrkDetElementBase *, const Trk::PrepRawData *) override final
this method is only used by the custom convertors.
const ElementLinkToIDC_CSC_Container & prepRawDataLink() const
CscClusterOnTrack(const CscClusterOnTrack &)
const MuonGM::CscReadoutElement * m_detEl
The detector element, associated with this measurement.
virtual const MuonGM::CscReadoutElement * detectorElement() const override final
Returns the detector element, associated with the PRD of this class.
CscClusterStatus status() const
Returns Csc position measurement status flag.
CscTimeStatus timeStatus() const
Returns Csc time measurement status flag.
CscClusterStatus m_status
cluster position measurement status
virtual const Trk::Surface & associatedSurface() const override final
Returns the surface on which this measurement was taken.
float time() const
Return the time(ns)
CscTimeStatus m_timeStatus
cluster time measurement status
virtual const CscPrepData * prepRawData() const override final
Returns the CscPrepData - is a CscPrepData in this scope.
virtual ~CscClusterOnTrack()
Destructor.
Class representing clusters from the CSC.
Definition CscPrepData.h:39
virtual double positionAlongStrip() const
MuonClusterOnTrack()
Pool constructor.
Identifier identify() const
return the identifier -extends MeasurementBase
Abstract Base Class for tracking surfaces.
This is the base class for all tracking detector elements with read-out relevant information.
STL class.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Ensure that the Athena extensions are properly loaded.
Definition GeoMuonHits.h:27
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
CscClusterStatus
Enum to represent the cluster status - see the specific enum values for more details.
CscTimeStatus
Enum to represent the cluster time measurement status - see the specific enum values for more details...
@ CscTimeStatusUndefined
Time is not assessed indicating potential bug.
Ensure that the ATLAS eigen extensions are properly loaded.
-event-from-file
STL namespace.
#define private