10 #include "GaudiKernel/MsgStream.h"
23 , m_containedChildRots()
24 , m_ROTsHaveCommonSurface(8)
34 , m_containedChildRots{}
35 , m_ROTsHaveCommonSurface(compROT.m_ROTsHaveCommonSurface)
37 std::vector<const InDet::TRT_DriftCircleOnTrack*>::const_iterator rotIter =
38 compROT.m_containedChildRots.begin();
39 for (; rotIter != compROT.m_containedChildRots.end(); ++rotIter) {
40 m_containedChildRots.push_back((*rotIter)->clone());
42 if (compROT.m_globalPosition) {
43 m_globalPosition.store(
44 std::make_unique<const Amg::Vector3D>(*(compROT.m_globalPosition)));
51 std::vector<const InDet::TRT_DriftCircleOnTrack*>&& childrots,
52 std::vector<AssignmentProb>&& assgnProb,
61 , m_containedChildRots(std::move(childrots))
62 , m_ROTsHaveCommonSurface(ROTsHaveComSrfc)
64 m_localParams = effecLocalPars;
65 m_localCovariance = effecLocalErrMat;
72 if (
this != &compROT) {
90 std::vector<const InDet::TRT_DriftCircleOnTrack*>::const_iterator rotIter =
102 if (
this != &compROT) {
107 clearChildRotVector();
108 m_containedChildRots = std::move(compROT.m_containedChildRots);
109 m_globalPosition = std::move(compROT.m_globalPosition);
110 m_ROTsHaveCommonSurface = compROT.m_ROTsHaveCommonSurface;
123 std::vector<const InDet::TRT_DriftCircleOnTrack*>::const_iterator rotIter =
134 out <<
"Trk::CompetingTRT_DriftCirclesOnTrack with ["
139 :
"over different surfaces")
140 <<
" (given prob>cut)" << std::endl;
142 out <<
" - GlobalPosition : ";
154 out <<
"Trk::CompetingTRT_DriftCirclesOnTrack with ["
159 :
"over different surfaces")
160 <<
" (given prob>cut)" << std::endl;
162 out <<
" - GlobalPosition : ";
164 out <<
"null pointer" << std::endl;
173 const bool withNonVanishingAssignProb)
const
181 if (withNonVanishingAssignProb) {
199 double assgnProbSum = 0.;
200 std::vector<AssignmentProb>::const_iterator assgnProbIter =
202 for (; assgnProbIter !=
m_assignProb.end(); ++assgnProbIter) {
203 assgnProbSum += (*assgnProbIter);
207 if (assgnProbSum > 0.) {
208 std::vector<const InDet::TRT_DriftCircleOnTrack*>::const_iterator rotIter =
212 ++rotIter, ++assgnProbIter) {
214 (((*assgnProbIter) / assgnProbSum) * ((*rotIter)->globalPosition()));
227 std::cout <<
"InDet::CompetingTRT_DriftCirclesOnTrack: can not handle ROTs "
228 "in different surfaces without detector specific knowledge "