ATLAS Offline Software
Loading...
Searching...
No Matches
PrepRawData.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6// PrepRawData.h, (c) ATLAS Detector software
8
9#ifndef TRKPREPRAWDATA_PREPRAWDATA_H
10#define TRKPREPRAWDATA_PREPRAWDATA_H
11
12#include "Identifier/Identifier.h"
13//
15
16// Eigen ATLAS helpers
20//
21#include <atomic>
22#include <iostream>
23#include <memory>
24#include <vector>
25
26class MsgStream;
28
29namespace Muon {
31}
32
33namespace Trk {
34
35/* The various kind of PrepRawData
36 * to avoid dynamic_cast via using the type method
37 */
54
55class TrkDetElementBase;
56
60
61class PrepRawData : public Trk::ObjectCounter<Trk::PrepRawData>
62{
64 // Public methods:
66public:
69 PrepRawData(const PrepRawData&) = default;
70 PrepRawData(PrepRawData&&) noexcept = default;
71 PrepRawData& operator=(const PrepRawData&) = default;
72 PrepRawData& operator=(PrepRawData&&) noexcept = default;
73 virtual ~PrepRawData() = default;
74
85 const Amg::Vector2D& locpos,
87 const Amg::MatrixX& locerr);
88
92 const Amg::Vector2D& locpos,
94 Amg::MatrixX&& locerr);
95
106 const Amg::Vector2D& locpos,
107 const Amg::MatrixX& locerr);
108
110 const Amg::Vector2D& locpos,
111 Amg::MatrixX&& locerr);
112
115
118
121
126
131
133 virtual bool type(PrepRawDataType type) const {
134 return prdType() == type;
135 }
136
138 virtual PrepRawDataType prdType() const = 0;
139
141 virtual MsgStream& dump(MsgStream& stream) const;
145 virtual std::ostream& dump(std::ostream& stream) const;
146
148 void setHashAndIndex(unsigned short collHash, unsigned short objIndex);
150
151private:
152 friend class ::PrepRawDataCnv_p1;
154
158 // Need to force proper alignment; otherwise cling gets it wrong.
161 std::vector<Identifier> m_rdoList{};
164
168};
169
170MsgStream&
171operator<<(MsgStream& stream, const PrepRawData& prd);
172std::ostream&
173operator<<(std::ostream& stream, const PrepRawData& prd);
174}
175
177#endif // TRKPREPRAWDATA_PREPRAWDATA_H
178
Identifiable container index to a contained object.
Helper to enable counting number of instantiations in debug builds.
class thrown in the event of an variable not being defined.
Definition PrepRawData.h:59
std::vector< Identifier > m_rdoList
Stores the identifiers of the RDOs.
Amg::Vector2D m_localPos
see derived classes for definition of meaning of LocalPosition
Amg::MatrixX m_localCovariance
See derived classes for definition of ErrorMatrix.
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...
PrepRawData(const PrepRawData &)=default
bool hasLocalCovariance() const
returns localCovariance().size()!=0
const Amg::Vector2D & localPosition() const
return the local position reference
Identifier identify() const
return the identifier
virtual bool type(PrepRawDataType type) const
Interface method checking the type.
void setHashAndIndex(unsigned short collHash, unsigned short objIndex)
TEMP for testing: might make some classes friends later ...
const Amg::MatrixX & localCovariance() const
return const ref to the error matrix
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
IdentContIndex m_indexAndHash
Stores its own position (index) in collection plus the hash id for the collection (needed for the EL ...
const IdentContIndex & getHashAndIndex() const
virtual PrepRawDataType prdType() const =0
Interface method returning the prdType.
PrepRawData(PrepRawData &&) noexcept=default
PrepRawData()
public because of DataPool
Identifier m_clusId
PrepRawData ID, not const because of DataPool.
This is the base class for all tracking detector elements with read-out relevant information.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 2, 1 > Vector2D
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Ensure that the ATLAS eigen extensions are properly loaded.
MsgStream & operator<<(MsgStream &sl, const AlignModule &alignModule)
overload of << operator for MsgStream for debug output
PrepRawDataType
Definition PrepRawData.h:39
-event-from-file
STL namespace.