6 #include "GaudiKernel/MsgStream.h"
17 std::unique_ptr<MeasurementBase> meas,
18 std::unique_ptr<TrackParameters> trackParameters,
19 std::unique_ptr<MaterialEffectsBase> materialEffects,
20 std::unique_ptr<AlignmentEffectsOnTrack> alignmentEffectsOnTrack)
21 : m_fitQualityOnSurface(fitQoS)
22 , m_trackParameters(std::move(trackParameters))
23 , m_measurementOnTrack(std::move(meas))
24 , m_materialEffectsOnTrack(std::move(materialEffects))
25 , m_alignmentEffectsOnTrack(std::move(alignmentEffectsOnTrack))
32 std::unique_ptr<MeasurementBase> meas,
33 std::unique_ptr<TrackParameters> trackParameters,
34 std::unique_ptr<MaterialEffectsBase> materialEffects,
35 std::unique_ptr<AlignmentEffectsOnTrack> alignmentEffectsOnTrack)
36 : m_fitQualityOnSurface{}
37 , m_trackParameters(std::move(trackParameters))
38 , m_measurementOnTrack(std::move(meas))
39 , m_materialEffectsOnTrack(std::move(materialEffects))
40 , m_alignmentEffectsOnTrack(std::move(alignmentEffectsOnTrack))
49 std::unique_ptr<MeasurementBase> meas,
50 std::unique_ptr<TrackParameters> trackParameters,
51 std::unique_ptr<MaterialEffectsBase> materialEffects,
52 const std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>& typePattern,
53 std::unique_ptr<AlignmentEffectsOnTrack> alignmentEffectsOnTrack)
54 : m_fitQualityOnSurface(fitQoS)
55 , m_trackParameters(std::move(trackParameters))
56 , m_measurementOnTrack(std::move(meas))
57 , m_materialEffectsOnTrack(std::move(materialEffects))
58 , m_alignmentEffectsOnTrack(std::move(alignmentEffectsOnTrack))
59 , m_typeFlags(typePattern.to_ulong())
65 std::unique_ptr<MeasurementBase> meas,
66 std::unique_ptr<TrackParameters> trackParameters,
67 std::unique_ptr<MaterialEffectsBase> materialEffects,
68 const std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>& typePattern,
69 std::unique_ptr<AlignmentEffectsOnTrack> alignmentEffectsOnTrack)
70 : m_fitQualityOnSurface{}
71 , m_trackParameters(std::move(trackParameters))
72 , m_measurementOnTrack(std::move(meas))
73 , m_materialEffectsOnTrack(std::move(materialEffects))
74 , m_alignmentEffectsOnTrack(std::move(alignmentEffectsOnTrack))
75 , m_typeFlags(typePattern.to_ulong())
82 : m_fitQualityOnSurface(rhs.m_fitQualityOnSurface),
83 m_trackParameters(rhs.m_trackParameters ? rhs.m_trackParameters->
clone()
85 m_measurementOnTrack(rhs.m_measurementOnTrack
86 ? rhs.m_measurementOnTrack->
clone()
88 m_materialEffectsOnTrack(rhs.m_materialEffectsOnTrack
89 ? rhs.m_materialEffectsOnTrack->
clone()
91 m_alignmentEffectsOnTrack(rhs.m_alignmentEffectsOnTrack
93 *rhs.m_alignmentEffectsOnTrack)
95 m_typeFlags(rhs.m_typeFlags) {}
99 : m_fitQualityOnSurface(rhs.m_fitQualityOnSurface)
100 , m_trackParameters(std::move(rhs.m_trackParameters))
101 , m_measurementOnTrack(std::move(rhs.m_measurementOnTrack))
102 , m_materialEffectsOnTrack(std::move(rhs.m_materialEffectsOnTrack))
103 , m_alignmentEffectsOnTrack(std::move(rhs.m_alignmentEffectsOnTrack))
104 , m_typeFlags(rhs.m_typeFlags)
122 ? std::make_unique<AlignmentEffectsOnTrack>(
137 m_trackParameters = std::move(rhs.m_trackParameters);
138 m_measurementOnTrack = std::move(rhs.m_measurementOnTrack);
139 m_materialEffectsOnTrack = std::move(rhs.m_materialEffectsOnTrack);
140 m_alignmentEffectsOnTrack = std::move(rhs.m_alignmentEffectsOnTrack);
141 m_typeFlags = rhs.m_typeFlags;
150 const auto& typesSet =
types();
152 type +=
"Measurement ";
155 type +=
"InertMaterial ";
158 type +=
"BremPoint ";
161 type +=
"Scatterer ";
173 type +=
"CaloDeposit ";
176 type +=
"Parameter ";
179 type +=
"FitQuality ";
182 type +=
"Alignment ";
199 throw std::runtime_error(
"TrackStateOnSurface without Surface!");
205 bool surfacesDiffer =
209 if (surfacesDiffer) {
210 std::cerr <<
"TrackStateOnSurface::isSane. With :" <<
'\n';
211 std::cerr <<
"Types : " <<
types().to_string() <<
'\n';
212 std::cerr <<
"Hints " <<
hints().to_string() <<
'\n';
213 std::cerr <<
"Surfaces differ! " << std::endl;
224 std::cerr <<
"matSurf: ["
240 if (!
m_hints.compare_exchange_strong(
242 throw std::runtime_error(
243 "TSOS trying to set again already set Persistification Hints");
252 std::string
name(
"TrackStateOnSurface: ");
255 if (sl.level() < MSG::INFO) {
256 sl <<
name <<
"Detailed dump of contained objects follows:" <<
endmsg;
272 <<
"\n (end of MaterialEffectsBase dump)" <<
endmsg;
277 <<
"\n (end of AlignmentEffectsOnTrack dump)" <<
endmsg;
286 std::string
name(
"TrackStateOnSurface: ");
287 sl <<
name <<
"\t of type : " << tsos.
dumpType() << std::endl;
289 sl <<
"\t FitQualityOnSurface(s)." << std::endl;
293 sl <<
"\t HAS TrackParameter(s)." << std::endl;
296 sl <<
"\t NO TrackParameters." << std::endl;
300 sl <<
"\t HAS MeasurementBase(s)." << std::endl;
303 sl <<
"\t NO MeasurementBase." << std::endl;
307 sl <<
"\t HAS MaterialEffectsBase." << std::endl;
310 sl <<
"\t NO MaterialEffects." << std::endl;
314 sl <<
"\t HAS AlignmentEffectsOnTrack." << std::endl;
317 sl <<
"\t NO AlignmentEffectsOnTrack." << std::endl;