ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonSegmentMakers
MuonSegmentMakerTools
MuonSegmentMakerToolInterfaces
MuonSegmentMakerToolInterfaces
IMuonPatternCalibration.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MUONSEGMENTMAKETOOLINTERFACES_MUON_IMUONPATTERNCALIBRATION_H
6
#define MUONSEGMENTMAKETOOLINTERFACES_MUON_IMUONPATTERNCALIBRATION_H
7
8
#include <vector>
9
10
#include "GaudiKernel/IAlgTool.h"
11
#include "Identifier/Identifier.h"
12
#include "
MuonPattern/MuonPatternCombination.h
"
13
#include "
MuonPattern/MuonPatternCombinationCollection.h
"
14
#include "
MuonPrepRawData/MuonPrepDataContainer.h
"
15
#include "
MuonRecToolInterfaces/IMdtDriftCircleOnTrackCreator.h
"
16
#include "
MuonRecToolInterfaces/IMuonClusterOnTrackCreator.h
"
17
//
18
19
namespace
Muon
{
20
class
MuonClusterOnTrack
;
21
class
MdtDriftCircleOnTrack
;
22
24
class
IMuonPatternCalibration
:
virtual
public
IAlgTool {
25
public
:
26
using
ClusterVec
= std::vector<const MuonClusterOnTrack*>;
27
using
MdtVec
= std::vector<const MdtDriftCircleOnTrack*>;
28
using
MdtVecVec
= std::vector<MdtVec>;
29
30
struct
ROTRegion
{
31
int
regionId
{0};
32
Amg::Vector3D
regionPos
{Amg::Vector3D::Zero()};
33
Amg::Vector3D
regionDir
{Amg::Vector3D::Zero()};
34
35
const
ClusterVec
&
clusters
()
const
{
return
m_clusters
;}
36
const
MdtVecVec
&
mdts
()
const
{
return
m_mdts
;}
37
38
void
push_back
(std::unique_ptr<const MuonClusterOnTrack> cl){
39
// cppcheck-suppress danglingLifetime
40
m_clusters
.push_back(cl.get());
41
m_garbage
.push_back(std::move(cl));
42
}
43
void
push_back
(
MdtVec
&&
vec
) {
44
std::transform(
vec
.begin(),
vec
.end(),std::back_inserter(
m_garbage
),
45
[](
const
MdtDriftCircleOnTrack
* mdt) {return std::unique_ptr<const Trk::MeasurementBase>{mdt};
46
});
47
m_mdts
.push_back(std::move(
vec
));
48
}
49
private
:
50
ClusterVec
m_clusters
{};
51
MdtVecVec
m_mdts
{};
52
std::vector<std::unique_ptr<const Trk::MeasurementBase>>
m_garbage
{};
53
};
54
55
using
ROTsPerRegion
= std::vector<ROTRegion>;
56
58
static
const
InterfaceID&
interfaceID
() {
59
static
const
InterfaceID IID_IMuonPatternCalibration(
"Muon::IMuonPatternCalibration"
, 1, 0);
60
return
IID_IMuonPatternCalibration;
61
}
62
63
virtual
StatusCode
calibrate
(
const
EventContext& ctx,
const
MuonPatternCombination
& pat,
ROTsPerRegion
& hitsPerRegion)
const
= 0;
64
virtual
int
getRegionId
(
const
Identifier
&
id
)
const
= 0;
65
virtual
bool
checkForPhiMeasurements
(
const
MuonPatternCombination
& pat)
const
= 0;
66
67
virtual
~IMuonPatternCalibration
() =
default
;
68
};
69
70
}
// namespace Muon
71
72
#endif
vec
std::vector< size_t > vec
Definition
CombinationsGeneratorTest.cxx:9
IMdtDriftCircleOnTrackCreator.h
IMuonClusterOnTrackCreator.h
MuonPatternCombinationCollection.h
MuonPatternCombination.h
MuonPrepDataContainer.h
Muon::IMuonPatternCalibration
The IMuonCalibration is a pure virtual interface for tools to calibrate PRD hits.
Definition
IMuonPatternCalibration.h:24
Muon::IMuonPatternCalibration::MdtVec
std::vector< const MdtDriftCircleOnTrack * > MdtVec
Definition
IMuonPatternCalibration.h:27
Muon::IMuonPatternCalibration::interfaceID
static const InterfaceID & interfaceID()
access to tool interface
Definition
IMuonPatternCalibration.h:58
Muon::IMuonPatternCalibration::~IMuonPatternCalibration
virtual ~IMuonPatternCalibration()=default
Muon::IMuonPatternCalibration::ClusterVec
std::vector< const MuonClusterOnTrack * > ClusterVec
Definition
IMuonPatternCalibration.h:26
Muon::IMuonPatternCalibration::MdtVecVec
std::vector< MdtVec > MdtVecVec
Definition
IMuonPatternCalibration.h:28
Muon::IMuonPatternCalibration::ROTsPerRegion
std::vector< ROTRegion > ROTsPerRegion
Definition
IMuonPatternCalibration.h:55
Muon::IMuonPatternCalibration::calibrate
virtual StatusCode calibrate(const EventContext &ctx, const MuonPatternCombination &pat, ROTsPerRegion &hitsPerRegion) const =0
Muon::IMuonPatternCalibration::getRegionId
virtual int getRegionId(const Identifier &id) const =0
Muon::IMuonPatternCalibration::checkForPhiMeasurements
virtual bool checkForPhiMeasurements(const MuonPatternCombination &pat) const =0
Muon::MdtDriftCircleOnTrack
This class represents the corrected MDT measurements, where the corrections include the effects of wi...
Definition
MdtDriftCircleOnTrack.h:37
Muon::MuonClusterOnTrack
Base class for Muon cluster RIO_OnTracks.
Definition
MuonClusterOnTrack.h:34
Muon::MuonPatternCombination
The MuonPatternCombination class provides the means to store the output of the initial global pattern...
Definition
MuonPatternCombination.h:29
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
Identifier
Definition
IdentifierFieldParser.cxx:14
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Muon::IMuonPatternCalibration::ROTRegion
Definition
IMuonPatternCalibration.h:30
Muon::IMuonPatternCalibration::ROTRegion::regionPos
Amg::Vector3D regionPos
Definition
IMuonPatternCalibration.h:32
Muon::IMuonPatternCalibration::ROTRegion::m_clusters
ClusterVec m_clusters
Definition
IMuonPatternCalibration.h:50
Muon::IMuonPatternCalibration::ROTRegion::mdts
const MdtVecVec & mdts() const
Definition
IMuonPatternCalibration.h:36
Muon::IMuonPatternCalibration::ROTRegion::regionDir
Amg::Vector3D regionDir
Definition
IMuonPatternCalibration.h:33
Muon::IMuonPatternCalibration::ROTRegion::regionId
int regionId
Definition
IMuonPatternCalibration.h:31
Muon::IMuonPatternCalibration::ROTRegion::push_back
void push_back(std::unique_ptr< const MuonClusterOnTrack > cl)
Definition
IMuonPatternCalibration.h:38
Muon::IMuonPatternCalibration::ROTRegion::clusters
const ClusterVec & clusters() const
Definition
IMuonPatternCalibration.h:35
Muon::IMuonPatternCalibration::ROTRegion::m_mdts
MdtVecVec m_mdts
Definition
IMuonPatternCalibration.h:51
Muon::IMuonPatternCalibration::ROTRegion::m_garbage
std::vector< std::unique_ptr< const Trk::MeasurementBase > > m_garbage
Definition
IMuonPatternCalibration.h:52
Muon::IMuonPatternCalibration::ROTRegion::push_back
void push_back(MdtVec &&vec)
Definition
IMuonPatternCalibration.h:43
Generated on
for ATLAS Offline Software by
1.17.0