ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkExtrapolation
TrkExTools
TrkExTools
Extrapolator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
6
// Extrapolator.h, (c) ATLAS Detector software
8
9
#ifndef TRKEXTOOLS_EXTRAPOLATOR_H
10
#define TRKEXTOOLS_EXTRAPOLATOR_H
11
12
#include "
LocalExtrapolatorCache.h
"
//for Trk::Cache
13
#include "
ExtrUniquePtrHolder.h
"
14
15
#include "
TrkExInterfaces/IExtrapolator.h
"
16
#include "
TrkExInterfaces/IMaterialEffectsUpdator.h
"
// in tool handle array
17
#include "
TrkExInterfaces/INavigator.h
"
//in tool handle
18
#include "
TrkExInterfaces/IPropagator.h
"
//in tool handle
19
// Trk
20
#include "
TrkEventPrimitives/ParticleHypothesis.h
"
//enum
21
#include "
TrkEventPrimitives/PropDirection.h
"
//enum
22
#include "
TrkGeometry/MagneticFieldProperties.h
"
//member
23
#include "
TrkNeutralParameters/NeutralParameters.h
"
//typedef
24
#include "
TrkParameters/TrackParameters.h
"
//template parameter in typedef
25
#include "
TrkSurfaces/BoundaryCheck.h
"
//template parameter in typedef
26
// Amg
27
#include "
EventPrimitives/EventPrimitives.h
"
//Amg::Vector etc
28
// xAOD
29
#include "
xAODTracking/NeutralParticle.h
"
//typedef
30
#include "
xAODTracking/TrackParticle.h
"
//typedef
31
// Gaudi/StoreGate
32
#include "
AthenaBaseComps/AthAlgTool.h
"
33
#include "
AthenaBaseComps/AthCheckedComponent.h
"
34
#include "GaudiKernel/ToolHandle.h"
35
#include <Gaudi/Accumulators.h>
36
// STL
37
#include <cstring>
38
#include <map>
39
#include <memory>
40
#include <utility>
41
#include <vector>
42
43
class
MsgStream;
44
class
EventContext;
45
46
namespace
Trk
{
47
class
Track
;
48
class
Surface
;
49
class
Layer
;
50
class
Volume
;
51
class
DetachedTrackingVolume
;
52
class
TrackingGeometry
;
53
class
TrackParticleBase
;
54
class
IDynamicLayerCreator
;
55
class
IMultipleScatteringUpdator
;
56
class
IEnergyLossUpdator
;
57
class
AlignableTrackingVolume
;
58
class
ExtrapolationCache
;
59
class
TrackingVolume
;
60
61
62
using
TrackParametersUVector
= std::vector<std::unique_ptr<Trk::TrackParameters>>;
63
using
DestSurf
= std::pair<const Surface*, BoundaryCheck>;
64
110
111
class
Extrapolator
final
112
:
public
AthCheckedComponent
<AthAlgTool>
113
,
virtual
public
IExtrapolator
114
{
115
public
:
116
118
Extrapolator
(
const
std::string&,
const
std::string&,
const
IInterface*);
120
~Extrapolator
();
121
123
virtual
StatusCode
initialize
()
override
;
125
virtual
StatusCode
finalize
()
override
;
126
131
virtual
std::unique_ptr<TrackParameters>
extrapolateDirectly
(
132
const
EventContext& ctx,
133
const
TrackParameters
& parm,
134
const
Surface
& sf,
135
PropDirection
dir =
anyDirection
,
136
const
BoundaryCheck
& bcheck =
true
,
137
ParticleHypothesis
particle =
pion
)
const
override
final
;
138
141
virtual
std::unique_ptr<NeutralParameters>
extrapolate
(
142
const
NeutralParameters
& parameters,
143
const
Surface
& sf,
144
PropDirection
dir =
anyDirection
,
145
const
BoundaryCheck
& bcheck =
true
)
const
override final;
146
149
virtual
std
::
unique_ptr
<
TrackParameters
>
extrapolate
(
150
const
EventContext& ctx,
151
const
TrackParameters
& parm,
152
const
Surface
& sf,
153
PropDirection
dir =
anyDirection
,
154
const
BoundaryCheck
& bcheck = true,
155
ParticleHypothesis
particle =
pion
,
156
MaterialUpdateMode
matupmode =
addNoise
,
157
Trk
::
ExtrapolationCache
*
cache
=
nullptr
)
const
override final;
158
163
virtual
TrackParametersUVector
extrapolateStepwise
(
164
const
EventContext& ctx,
165
const
TrackParameters
& parm,
166
const
Surface
& sf,
167
PropDirection
dir =
anyDirection
,
168
const
BoundaryCheck
& bcheck = true,
169
ParticleHypothesis
particle =
pion
)
const
override final;
170
174
virtual
std
::
unique_ptr
<
TrackParameters
>
extrapolateTrack
(
175
const
EventContext& ctx,
176
const
Track
& trk,
177
const
Surface
& sf,
178
PropDirection
dir =
anyDirection
,
179
const
BoundaryCheck
& bcheck = true,
180
ParticleHypothesis
particle =
pion
,
181
MaterialUpdateMode
matupmode =
addNoise
,
182
Trk
::
ExtrapolationCache
*
cache
=
nullptr
)
const
override final;
183
189
virtual
TrackParametersUVector
extrapolateBlindly
(
190
const
EventContext& ctx,
191
const
TrackParameters
& parm,
192
PropDirection
dir =
anyDirection
,
193
const
BoundaryCheck
& bcheck = true,
194
ParticleHypothesis
particle =
pion
,
195
const
Volume
* boundaryVol =
nullptr
)
const
override final;
196
201
virtual
std
::
vector
<
const
TrackStateOnSurface
*>*
extrapolateM
(
202
const
EventContext& ctx,
203
const
TrackParameters
& parameters,
204
const
Surface
& sf,
205
PropDirection
dir,
206
const
BoundaryCheck
& bcheck,
207
ParticleHypothesis
particle =
pion
,
208
Trk
::
ExtrapolationCache
*
cache
=
nullptr
)
const
override final;
209
217
virtual
std
::
unique_ptr
<
std
::
vector
<
std
::
pair
<
std
::
unique_ptr
<
Trk
::
TrackParameters
>,
int
>>>
218
collectIntersections
(
219
const
EventContext& ctx,
220
const
Trk
::
TrackParameters
& parm,
221
Trk
::
PropDirection
dir,
222
Trk
::
ParticleHypothesis
particle,
223
int
destination = 3)
const
override final;
224
226
virtual
std
::
pair
<
std
::
unique_ptr
<
TrackParameters
>,
const
Layer
*>
extrapolateToNextActiveLayerM
(
227
const
EventContext& ctx,
228
const
TrackParameters
& parm,
229
PropDirection
dir,
230
const
BoundaryCheck
& bcheck,
231
std
::
vector
<
const
Trk
::
TrackStateOnSurface
*>& material,
232
ParticleHypothesis
particle =
pion
,
233
MaterialUpdateMode
matupmode =
addNoise
)
const
override final;
234
236
virtual
std
::
unique_ptr
<
TrackParameters
>
extrapolateToVolume
(
237
const
EventContext& ctx,
238
const
TrackParameters
& parm,
239
const
Trk
::
TrackingVolume
& vol,
240
PropDirection
dir =
anyDirection
,
241
ParticleHypothesis
particle =
pion
)
const
override final;
242
244
virtual
const
TrackingGeometry
*
trackingGeometry
()
const
override final;
245
246
private
:
247
248
typedef
std
::
vector
<
std
::
pair
<
std
::
unique_ptr
<
Trk
::
TrackParameters
>,
int
>>
identifiedParameters_t
;
252
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateImpl
(
253
const
EventContext& ctx,
254
Cache
&
cache
,
255
const
IPropagator
& prop,
256
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
257
const
Surface
& sf,
258
PropDirection
dir =
anyDirection
,
259
const
BoundaryCheck
& bcheck = true,
260
ParticleHypothesis
particle =
pion
,
261
MaterialUpdateMode
matupmode =
addNoise
)
const
;
262
268
TrackParametersUVector
extrapolateStepwiseImpl
(
269
const
EventContext& ctx,
270
const
IPropagator
& prop,
271
const
TrackParameters
& parm,
272
const
Surface
& sf,
273
PropDirection
dir =
anyDirection
,
274
const
BoundaryCheck
& bcheck = true,
275
ParticleHypothesis
particle =
pion
)
const
;
276
284
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateImpl
(
285
const
EventContext& ctx,
286
Cache
&
cache
,
287
const
IPropagator
& prop,
288
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
289
const
std
::
vector
<
MaterialEffectsOnTrack
>& sfMeff,
290
const
TrackingVolume
& tvol,
291
PropDirection
dir,
292
ParticleHypothesis
particle =
pion
,
293
MaterialUpdateMode
matupmode =
addNoise
)
const
;
294
297
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateImpl
(
298
const
EventContext& ctx,
299
Cache
&
cache
,
300
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
301
const
Surface
& sf,
302
PropDirection
dir =
anyDirection
,
303
const
BoundaryCheck
& bcheck = true,
304
ParticleHypothesis
particle =
pion
,
305
MaterialUpdateMode
matupmode =
addNoise
,
306
Trk
::
ExtrapolationCache
* extrapolationCache =
nullptr
)
const
;
307
310
std
::
unique_ptr
<
TrackParameters
>
extrapolateDirectlyImpl
(
311
const
EventContext& ctx,
312
const
IPropagator
& prop,
313
const
TrackParameters
& parm,
314
const
Surface
& sf,
315
PropDirection
dir =
anyDirection
,
316
const
BoundaryCheck
& bcheck = true,
317
ParticleHypothesis
particle =
pion
)
const
;
318
321
Trk
::
TrackParametersUVector
extrapolateBlindlyImpl
(
322
const
EventContext& ctx,
323
Cache
&
cache
,
324
const
IPropagator
& prop,
325
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
326
PropDirection
dir =
anyDirection
,
327
const
BoundaryCheck
& bcheck = true,
328
ParticleHypothesis
particle =
pion
,
329
const
Volume
* boundaryVol =
nullptr
)
const
;
330
333
std
::
pair
<
std
::
unique_ptr
<
TrackParameters
>,
const
Layer
*>
334
extrapolateToNextActiveLayerImpl
(
335
const
EventContext& ctx,
336
const
IPropagator
& prop,
337
const
TrackParameters
& parm,
338
PropDirection
dir,
339
const
BoundaryCheck
& bcheck,
340
ParticleHypothesis
particle =
pion
,
341
MaterialUpdateMode
matupmode =
addNoise
)
const
;
342
345
std
::
pair
<
std
::
unique_ptr
<
TrackParameters
>,
const
Layer
*>
346
extrapolateToNextActiveLayerMImpl
(
347
const
EventContext& ctx,
348
const
IPropagator
& prop,
349
const
TrackParameters
& parm,
350
PropDirection
dir,
351
const
BoundaryCheck
& bcheck,
352
std
::
vector
<
const
Trk
::
TrackStateOnSurface
*>& material,
353
ParticleHypothesis
particle =
pion
,
354
MaterialUpdateMode
matupmode =
addNoise
)
const
;
355
358
std
::
unique_ptr
<
TrackParameters
>
extrapolateToVolumeImpl
(
359
const
EventContext& ctx,
360
const
IPropagator
& prop,
361
const
TrackParameters
& parm,
362
const
Trk
::
TrackingVolume
& vol,
363
PropDirection
dir =
anyDirection
,
364
ParticleHypothesis
particle =
pion
)
const
;
365
380
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateInsideVolume
(
const
EventContext& ctx,
381
Cache
&
cache
,
382
const
IPropagator
& prop,
383
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
384
const
Surface
& sf,
385
const
Layer
* associatedLayer,
386
const
TrackingVolume
& tvol,
387
PropDirection
dir =
anyDirection
,
388
const
BoundaryCheck
& bcheck = true,
389
ParticleHypothesis
particle =
pion
,
390
MaterialUpdateMode
matupmode =
addNoise
)
const
;
391
395
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
insideVolumeStaticLayers
(
const
EventContext& ctx,
396
Cache
&
cache
,
397
bool
toBoundary,
398
const
IPropagator
& prop,
399
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
400
const
Layer
* associatedLayer,
401
const
TrackingVolume
& tvol,
402
PropDirection
dir =
anyDirection
,
403
const
BoundaryCheck
& bcheck = true,
404
ParticleHypothesis
particle =
pion
,
405
MaterialUpdateMode
matupmode =
addNoise
)
const
;
406
408
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateWithinDetachedVolumes
(
409
const
EventContext& ctx,
410
Cache
&
cache
,
411
const
IPropagator
& prop,
412
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
413
const
Surface
& sf,
414
const
TrackingVolume
& tvol,
415
PropDirection
dir =
anyDirection
,
416
const
BoundaryCheck
& bcheck = true,
417
ParticleHypothesis
particle =
pion
,
418
MaterialUpdateMode
matupmode =
addNoise
)
const
;
419
420
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateToNextMaterialLayer
(
421
const
EventContext& ctx,
422
Cache
&
cache
,
423
const
IPropagator
& prop,
424
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
425
const
Trk
::
Surface
* destSurf,
426
const
Trk
::
TrackingVolume
* vol,
427
PropDirection
dir,
428
const
BoundaryCheck
& bcheck,
429
ParticleHypothesis
particle =
pion
,
430
MaterialUpdateMode
matupmode =
addNoise
)
const
;
431
432
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateInAlignableTV
(
433
const
EventContext& ctx,
434
Cache
&
cache
,
435
const
IPropagator
& prop,
436
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
437
const
Trk
::
Surface
* destSurf,
438
const
Trk
::
AlignableTrackingVolume
* vol,
439
PropDirection
dir,
440
ParticleHypothesis
particle =
pion
)
const
;
441
442
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateToVolumeWithPathLimit
(
443
const
EventContext& ctx,
444
Cache
&
cache
,
445
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
446
double
pathLim,
447
Trk
::
PropDirection
dir,
448
Trk
::
ParticleHypothesis
particle,
449
const
Trk
::
TrackingVolume
* destVol,
450
MaterialUpdateMode
matupmod =
addNoise
)
const
;
451
465
void
extrapolateToVolumeBoundary
(
466
const
EventContext& ctx,
467
Cache
&
cache
,
468
const
IPropagator
& prop,
469
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
470
const
Layer
* associatedLayer,
471
const
TrackingVolume
& tvol,
472
PropDirection
dir =
anyDirection
,
473
const
BoundaryCheck
& bcheck = true,
474
ParticleHypothesis
particle =
pion
,
475
MaterialUpdateMode
matupmode =
addNoise
)
const
;
476
479
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateFromLayerToLayer
(
480
const
EventContext& ctx,
481
Cache
&
cache
,
482
const
IPropagator
& prop,
483
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
484
const
TrackingVolume
& tvol,
485
const
Layer
* nextLayer,
486
const
Layer
* destinationLayer,
487
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> navParameters,
488
PropDirection
dir =
anyDirection
,
489
const
BoundaryCheck
& bcheck = true,
490
ParticleHypothesis
particle =
pion
,
491
MaterialUpdateMode
matupmode =
addNoise
)
const
;
492
495
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>
extrapolateToDestinationLayer
(
496
const
EventContext& ctx,
497
Cache
&
cache
,
498
const
IPropagator
& prop,
499
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
500
const
Surface
& sf,
501
const
Layer
& lay,
502
const
TrackingVolume
& tvol,
503
const
Layer
* startLayer,
504
PropDirection
dir =
anyDirection
,
505
const
BoundaryCheck
& bcheck = true,
506
ParticleHypothesis
particle =
pion
,
507
MaterialUpdateMode
matupmode =
addNoise
)
const
;
508
513
std
::
pair
<
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>,
bool
>
extrapolateToIntermediateLayer
(
514
const
EventContext& ctx,
515
Cache
&
cache
,
516
const
IPropagator
& prop,
517
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
518
const
Layer
& lay,
519
const
TrackingVolume
& tvol,
520
PropDirection
dir =
anyDirection
,
521
const
BoundaryCheck
& bcheck = true,
522
ParticleHypothesis
particle =
pion
,
523
MaterialUpdateMode
matupmode =
addNoise
,
524
bool
perpendicularCheck = true)
const
;
525
527
void
overlapSearch
(
const
EventContext& ctx,
528
Cache
&
cache
,
529
const
IPropagator
& prop,
530
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
531
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parsOnLayer,
532
const
Layer
& lay,
533
const
TrackingVolume
& tvol,
534
PropDirection
dir =
anyDirection
,
535
const
BoundaryCheck
& bcheck = true,
536
ParticleHypothesis
particle =
pion
,
537
bool
startingLayer = false)
const
;
538
545
PropDirection
initializeNavigation
(
546
const
EventContext& ctx,
547
Cache
&
cache
,
548
const
Trk
::
IPropagator
& prop,
549
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> startPars,
550
const
Trk
::
Surface
& destSurface,
551
Trk
::
PropDirection
dir,
552
ParticleHypothesis
particle,
553
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
>& referenceParameters,
554
const
Trk
::
Layer
*& associatedLayer,
555
const
Trk
::
TrackingVolume
*& associatedVolume,
556
const
Trk
::
TrackingVolume
*& destinationVolume)
const
;
557
562
bool
radialDirectionCheck
(
const
EventContext& ctx,
563
const
IPropagator
& prop,
564
const
TrackParameters
& startParm,
565
const
TrackParameters
& parsOnLayer,
566
const
TrackingVolume
& tvol,
567
PropDirection
dir =
anyDirection
,
568
ParticleHypothesis
particle =
pion
)
const
;
569
571
const
IPropagator
*
subPropagator
(
const
TrackingVolume
& tvol)
const
;
572
574
const
IMaterialEffectsUpdator
*
subMaterialEffectsUpdator
(
const
TrackingVolume
& tvol)
const
;
575
577
std
::
string
positionOutput
(
const
Amg
::
Vector3D
& pos)
const
;
578
580
void
addMaterialEffectsOnTrack
(
const
EventContext& ctx,
581
Cache
&
cache
,
582
const
Trk
::
IPropagator
& prop,
583
Trk
::
CacheOwnedPtr
<
Trk
::
TrackParameters
> parm,
584
const
Trk
::
Layer
& lay,
585
const
Trk
::
TrackingVolume
& vol,
586
Trk
::
PropDirection
propDir,
587
Trk
::
ParticleHypothesis
)
const
;
588
589
590
593
// unsigned int geoIDToDetOrder(Trk::GeometrySignature geoid) const;
594
595
// --------------- Used Tools ----------------------------- //
597
ToolHandleArray<
IPropagator
>
m_propagators
{
this
,
"Propagators"
, {} };
599
ToolHandle<IPropagator>
m_stepPropagator
{
600
this
,
601
"STEP_Propagator"
,
602
"Trk::STEP_Propagator/AtlasSTEP_Propagator"
603
};
604
605
ToolHandle<INavigator>
m_navigator
{
this
,
606
"Navigator"
,
607
"Trk::Navigator/AtlasNavigator"
};
608
609
ToolHandleArray<IMaterialEffectsUpdator>
m_updaters
{
610
this
,
611
"MaterialEffectsUpdators"
,
612
{}
613
};
614
615
ToolHandle<IMultipleScatteringUpdator>
m_msupdater
{
616
this
,
617
"MultipleScatteringUpdater"
,
618
"Trk::MultipleScatteringUpdator/AtlasMultipleScatteringUpdator"
619
};
620
621
ToolHandle<IEnergyLossUpdator>
m_elossupdater
{
this
,
622
"EnergyLossUpdater"
,
623
"Trk::EnergyLossUpdator/AtlasEnergyLossUpdator"
};
624
625
// ---------------- For Extrapolation handling ------------ //
626
628
std::vector<const IPropagator*>
m_subPropagators
;
630
std::vector<const IMaterialEffectsUpdator*>
m_subupdaters
;
631
632
// ---------------- For Extrapolator configuration ------------ //
633
634
StringArrayProperty
m_propNames
{
this
,
"SubPropagators"
, {},
635
"configuration of subPropagators"
};
636
StringArrayProperty
m_updatNames
{
this
,
"SubMEUpdators"
, {},
637
"configuration of subupdaters"
};
638
639
// --------------- General steering & Navigation -------------- //
640
641
BooleanProperty
m_includeMaterialEffects
{
this
,
"ApplyMaterialEffects"
,
true
,
642
"boolean to switch on/off material effects"
};
643
BooleanProperty
m_stopWithNavigationBreak
644
{
this
,
"StopWithNavigationBreak"
,
false
,
645
"return 0 if navigation breaks - for validation reasons"
};
646
BooleanProperty
m_stopWithUpdateZero
{
this
,
"StopWithUpdateKill"
,
false
,
647
"return 0 if update kills the trajectory"
};
648
BooleanProperty
m_skipInitialLayerUpdate
{
this
,
"SkipInitialPostUpdate"
,
false
,
649
"skip the initial post-Update at the layer [Fatras conversion mode]"
};
650
BooleanProperty
m_resolveActive
{
this
,
"ResolveMuonStation"
,
false
};
651
BooleanProperty
m_resolveMultilayers
{
this
,
"ResolveMultilayers"
,
true
};
653
//if we have no valid subpropagatos it will be set to an INVALID value
654
unsigned
int
m_numOfValidPropagators
;
655
UnsignedIntegerProperty
m_initialLayerAttempts
656
{
this
,
"InitialLayerAttempts"
, 3,
657
"allowed layer intersection attempts at the start of a volume"
};
658
UnsignedIntegerProperty
m_successiveLayerAttempts
659
{
this
,
"SuccessiveLayerAttempts"
, 1,
660
"layer intersection attemps after one layer has been hit sucessfully"
};
661
UnsignedIntegerProperty
m_maxMethodSequence
662
{
this
,
"MaximalMethodSequence"
, 2000};
663
DoubleProperty
m_tolerance
{
this
,
"Tolerance"
, 0.002,
664
"surface & volume tolerance"
};
665
// ------------------------------------------------------- //
666
BooleanProperty
m_useMuonMatApprox
{
this
,
"UseMuonMatApproximation"
,
false
,
667
"use approximative MS inert material"
};
668
BooleanProperty
m_useDenseVolumeDescription
669
{
this
,
"UseDenseVolumeDescription"
,
true
,
670
"use dense volume description when available in ID/Calo"
};
671
UnsignedIntegerProperty
m_maxRecursion
{
this
,
"MaxRecursion"
, 1000};
672
673
static
const
unsigned
int
m_maxNavigSurf
= 1000;
674
static
const
unsigned
int
m_maxNavigVol
= 50;
675
BooleanProperty
m_dumpCache
{
this
,
"DumpCache"
,
false
};
676
//------------ Magnetic field properties
677
BooleanProperty
m_fastField
{
this
,
"MagneticFieldProperties"
,
false
};
678
Trk::MagneticFieldProperties
m_fieldProperties
;
679
//------------Reference surface --------------
680
std::unique_ptr<Surface>
m_referenceSurface
=
nullptr
;
681
//-------------------------- SCREEN output steering -------------------------------------------//
682
BooleanProperty
m_printRzOutput
{
this
,
"positionOutput"
,
true
};
683
//------------------------- VALIDATION SECTION ------------------------------------------//
684
// flags
685
BooleanProperty
m_navigationStatistics
686
{
this
,
"NavigationStatisticsOutput"
,
false
,
687
"steer the output for the navigation statistics"
};
688
BooleanProperty
m_navigationBreakDetails
689
{
this
,
"DetailedNavigationOutput"
,
false
,
690
"steer the output for the navigation break details"
};
691
692
// extrapolation counters
693
mutable
Gaudi::Accumulators::Counter<>
m_extrapolateCalls
{};
694
mutable
Gaudi::Accumulators::Counter<>
m_extrapolateBlindlyCalls
{};
695
mutable
Gaudi::Accumulators::Counter<>
m_extrapolateDirectlyCalls
{};
696
mutable
Gaudi::Accumulators::Counter<>
m_extrapolateStepwiseCalls
{};
697
698
mutable
Gaudi::Accumulators::Counter<>
m_startThroughAssociation
{};
699
mutable
Gaudi::Accumulators::Counter<>
m_startThroughRecall
{};
700
mutable
Gaudi::Accumulators::Counter<>
m_startThroughGlobalSearch
{};
701
mutable
Gaudi::Accumulators::Counter<>
m_destinationThroughAssociation
{};
702
mutable
Gaudi::Accumulators::Counter<>
m_destinationThroughRecall
{};
703
mutable
Gaudi::Accumulators::Counter<>
m_destinationThroughGlobalSearch
{};
704
mutable
Gaudi::Accumulators::Counter<>
m_layerSwitched
{};
705
706
// navigation counters
707
mutable
Gaudi::Accumulators::Counter<>
m_navigationBreakLoop
{};
708
mutable
Gaudi::Accumulators::Counter<>
m_navigationBreakOscillation
{};
709
mutable
Gaudi::Accumulators::Counter<>
m_navigationBreakNoVolume
{};
710
mutable
Gaudi::Accumulators::Counter<>
m_navigationBreakDistIncrease
{};
711
mutable
Gaudi::Accumulators::Counter<>
m_navigationBreakVolumeSignature
{};
712
mutable
Gaudi::Accumulators::Counter<>
m_overlapSurfaceHit
{};
713
714
mutable
Dbg::PropStat
m_propStat
ATLAS_THREAD_SAFE
;
715
};
716
717
}
// end of namespace
718
#include "
TrkExTools/Extrapolator.icc
"
719
720
#endif
// TRKEXTOOLS_TRKEXTRAPOLATOR_H
721
AthAlgTool.h
AthCheckedComponent.h
BoundaryCheck.h
EventPrimitives.h
TrackParticle.h
ExtrUniquePtrHolder.h
Extrapolator.icc
IExtrapolator.h
IMaterialEffectsUpdator.h
INavigator.h
IPropagator.h
LocalExtrapolatorCache.h
MagneticFieldProperties.h
NeutralParameters.h
NeutralParticle.h
ParticleHypothesis.h
PropDirection.h
Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition
GeoPrimitives.h:47
TrackParameters.h
AthCheckedComponent
Mixin class to perform additional checks on a component.
Definition
AthCheckedComponent.h:25
Trk::AlignableTrackingVolume
Base Class for a navigation object (active) in the Calo realm.
Definition
AlignableTrackingVolume.h:36
Trk::BoundaryCheck
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Definition
BoundaryCheck.h:51
Trk::DetachedTrackingVolume
Base Class for a navigation object (active/passive) in the Tracking realm.
Definition
DetachedTrackingVolume.h:37
Trk::ExtrapolationCache
Definition
ExtrapolationCache.h:26
Trk::Extrapolator::m_stopWithUpdateZero
BooleanProperty m_stopWithUpdateZero
Definition
Extrapolator.h:646
Trk::Extrapolator::extrapolateToNextActiveLayerImpl
std::pair< std::unique_ptr< TrackParameters >, const Layer * > extrapolateToNextActiveLayerImpl(const EventContext &ctx, const IPropagator &prop, const TrackParameters &parm, PropDirection dir, const BoundaryCheck &bcheck, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Actual heavy lifting implementation for extrapolateToNextActiveLayer.
Trk::Extrapolator::extrapolate
virtual std::unique_ptr< NeutralParameters > extrapolate(const NeutralParameters ¶meters, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true) const override final
Main extrapolation Interface starting from neutral parameters and aiming at surface.
Definition
Extrapolator.cxx:385
Trk::Extrapolator::extrapolateDirectly
virtual std::unique_ptr< TrackParameters > extrapolateDirectly(const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion) const override final
Extrapolate directly: Forwards directly the call to the configured "Global" propagator.
Definition
Extrapolator.cxx:346
Trk::Extrapolator::m_dumpCache
BooleanProperty m_dumpCache
Definition
Extrapolator.h:675
Trk::Extrapolator::m_elossupdater
ToolHandle< IEnergyLossUpdator > m_elossupdater
Definition
Extrapolator.h:621
Trk::Extrapolator::m_propagators
ToolHandleArray< IPropagator > m_propagators
Private method for conversion of the synchronized geometry signature to the natural subdetector order...
Definition
Extrapolator.h:597
Trk::Extrapolator::m_successiveLayerAttempts
UnsignedIntegerProperty m_successiveLayerAttempts
Definition
Extrapolator.h:659
Trk::Extrapolator::extrapolateToVolumeBoundary
void extrapolateToVolumeBoundary(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Layer *associatedLayer, const TrackingVolume &tvol, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Private method for extrapolation in intermediate volume to boundary surface.
Definition
Extrapolator.cxx:2851
Trk::Extrapolator::positionOutput
std::string positionOutput(const Amg::Vector3D &pos) const
For the output - global position.
Definition
Extrapolator.cxx:3952
Trk::Extrapolator::extrapolateToNextMaterialLayer
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateToNextMaterialLayer(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Trk::Surface *destSurf, const Trk::TrackingVolume *vol, PropDirection dir, const BoundaryCheck &bcheck, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Definition
Extrapolator.cxx:726
Trk::Extrapolator::m_stopWithNavigationBreak
BooleanProperty m_stopWithNavigationBreak
Definition
Extrapolator.h:644
Trk::Extrapolator::m_navigationBreakOscillation
Gaudi::Accumulators::Counter m_navigationBreakOscillation
number of navigation breaks due to oscillation
Definition
Extrapolator.h:708
Trk::Extrapolator::extrapolateWithinDetachedVolumes
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateWithinDetachedVolumes(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Surface &sf, const TrackingVolume &tvol, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
C) call from extrapolateInsideVolume.
Definition
Extrapolator.cxx:2678
Trk::Extrapolator::identifiedParameters_t
std::vector< std::pair< std::unique_ptr< Trk::TrackParameters >, int > > identifiedParameters_t
Definition
Extrapolator.h:248
Trk::Extrapolator::extrapolateInAlignableTV
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateInAlignableTV(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Trk::Surface *destSurf, const Trk::AlignableTrackingVolume *vol, PropDirection dir, ParticleHypothesis particle=pion) const
Definition
Extrapolator.cxx:1742
Trk::Extrapolator::overlapSearch
void overlapSearch(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, Trk::CacheOwnedPtr< Trk::TrackParameters > parsOnLayer, const Layer &lay, const TrackingVolume &tvol, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, bool startingLayer=false) const
Private to search for overlap surfaces.
Definition
Extrapolator.cxx:3546
Trk::Extrapolator::extrapolateDirectlyImpl
std::unique_ptr< TrackParameters > extrapolateDirectlyImpl(const EventContext &ctx, const IPropagator &prop, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion) const
Actual heavy lifting implementation for extrapolateDirectly.
Definition
Extrapolator.cxx:1984
Trk::Extrapolator::m_initialLayerAttempts
UnsignedIntegerProperty m_initialLayerAttempts
Definition
Extrapolator.h:656
Trk::Extrapolator::extrapolateBlindlyImpl
Trk::TrackParametersUVector extrapolateBlindlyImpl(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, const Volume *boundaryVol=nullptr) const
Actual heavy lifting implementation for extrapolateBlindly.
Definition
Extrapolator.cxx:2621
Trk::Extrapolator::m_destinationThroughGlobalSearch
Gaudi::Accumulators::Counter m_destinationThroughGlobalSearch
navigation intialization
Definition
Extrapolator.h:703
Trk::Extrapolator::m_navigationBreakDetails
BooleanProperty m_navigationBreakDetails
Definition
Extrapolator.h:689
Trk::Extrapolator::m_resolveActive
BooleanProperty m_resolveActive
Definition
Extrapolator.h:650
Trk::Extrapolator::m_navigationBreakNoVolume
Gaudi::Accumulators::Counter m_navigationBreakNoVolume
number of navigation breaks due no Volume found
Definition
Extrapolator.h:709
Trk::Extrapolator::m_navigationBreakDistIncrease
Gaudi::Accumulators::Counter m_navigationBreakDistIncrease
number of navigation breaks due to distance increase
Definition
Extrapolator.h:710
Trk::Extrapolator::m_skipInitialLayerUpdate
BooleanProperty m_skipInitialLayerUpdate
Definition
Extrapolator.h:648
Trk::Extrapolator::extrapolateToIntermediateLayer
std::pair< Trk::CacheOwnedPtr< Trk::TrackParameters >, bool > extrapolateToIntermediateLayer(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Layer &lay, const TrackingVolume &tvol, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise, bool perpendicularCheck=true) const
Private to extrapolate to the destination layer + surface, special treatment for exit layer.
Definition
Extrapolator.cxx:3448
Trk::Extrapolator::m_msupdater
ToolHandle< IMultipleScatteringUpdator > m_msupdater
Array of EnergyLoss updaters.
Definition
Extrapolator.h:615
Trk::Extrapolator::extrapolateToVolumeWithPathLimit
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateToVolumeWithPathLimit(const EventContext &ctx, Cache &cache, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, double pathLim, Trk::PropDirection dir, Trk::ParticleHypothesis particle, const Trk::TrackingVolume *destVol, MaterialUpdateMode matupmod=addNoise) const
Definition
Extrapolator.cxx:4070
Trk::Extrapolator::extrapolateFromLayerToLayer
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateFromLayerToLayer(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const TrackingVolume &tvol, const Layer *nextLayer, const Layer *destinationLayer, Trk::CacheOwnedPtr< Trk::TrackParameters > navParameters, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Private method to step from one to the last layer and stop at last layer (before 0) or before destina...
Definition
Extrapolator.cxx:3265
Trk::Extrapolator::m_subupdaters
std::vector< const IMaterialEffectsUpdator * > m_subupdaters
Definition
Extrapolator.h:630
Trk::Extrapolator::m_maxNavigVol
static const unsigned int m_maxNavigVol
Definition
Extrapolator.h:674
Trk::Extrapolator::collectIntersections
virtual std::unique_ptr< std::vector< std::pair< std::unique_ptr< Trk::TrackParameters >, int > > > collectIntersections(const EventContext &ctx, const Trk::TrackParameters &parm, Trk::PropDirection dir, Trk::ParticleHypothesis particle, int destination=3) const override final
Extrapolation method collecting intersections with subdetector boundaries and active volumes/layers.
Definition
Extrapolator.cxx:511
Trk::Extrapolator::finalize
virtual StatusCode finalize() override
AlgTool finalize method.
Definition
Extrapolator.cxx:277
Trk::Extrapolator::extrapolateToVolume
virtual std::unique_ptr< TrackParameters > extrapolateToVolume(const EventContext &ctx, const TrackParameters &parm, const Trk::TrackingVolume &vol, PropDirection dir=anyDirection, ParticleHypothesis particle=pion) const override final
Extrapolation to volume :
Definition
Extrapolator.cxx:588
Trk::Extrapolator::m_extrapolateStepwiseCalls
Gaudi::Accumulators::Counter m_extrapolateStepwiseCalls
number of calls: extrapolateStepwise() method
Definition
Extrapolator.h:696
Trk::Extrapolator::m_subPropagators
std::vector< const IPropagator * > m_subPropagators
< Propagators to chose from (steered by signature)
Definition
Extrapolator.h:628
Trk::Extrapolator::extrapolateM
virtual std::vector< const TrackStateOnSurface * > * extrapolateM(const EventContext &ctx, const TrackParameters ¶meters, const Surface &sf, PropDirection dir, const BoundaryCheck &bcheck, ParticleHypothesis particle=pion, Trk::ExtrapolationCache *cache=nullptr) const override final
Extrapolate to a destination surface, while collecting all the material layers in between.
Definition
Extrapolator.cxx:471
Trk::Extrapolator::extrapolateBlindly
virtual TrackParametersUVector extrapolateBlindly(const EventContext &ctx, const TrackParameters &parm, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, const Volume *boundaryVol=nullptr) const override final
extrapolateBlindly like step-wise extrapolation, but without a destination surface.
Definition
Extrapolator.cxx:447
Trk::Extrapolator::extrapolateStepwiseImpl
TrackParametersUVector extrapolateStepwiseImpl(const EventContext &ctx, const IPropagator &prop, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion) const
Definition
Extrapolator.cxx:615
Trk::Extrapolator::m_tolerance
DoubleProperty m_tolerance
Definition
Extrapolator.h:663
Trk::Extrapolator::m_resolveMultilayers
BooleanProperty m_resolveMultilayers
number of sub valid propagators in the m_subPropagators array
Definition
Extrapolator.h:651
Trk::Extrapolator::m_numOfValidPropagators
unsigned int m_numOfValidPropagators
Definition
Extrapolator.h:654
Trk::Extrapolator::m_extrapolateBlindlyCalls
Gaudi::Accumulators::Counter m_extrapolateBlindlyCalls
number of calls: extrapolateBlindly() method
Definition
Extrapolator.h:694
Trk::Extrapolator::trackingGeometry
virtual const TrackingGeometry * trackingGeometry() const override final
Return the TrackingGeometry used by the Extrapolator (forward information from Navigator).
Trk::Extrapolator::m_overlapSurfaceHit
Gaudi::Accumulators::Counter m_overlapSurfaceHit
number of OverlapSurfaces found
Definition
Extrapolator.h:712
Trk::Extrapolator::extrapolateTrack
virtual std::unique_ptr< TrackParameters > extrapolateTrack(const EventContext &ctx, const Track &trk, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise, Trk::ExtrapolationCache *cache=nullptr) const override final
Main extrapolation interface starting from a Trk::Track and aiming at Surface.
Definition
Extrapolator.cxx:422
Trk::Extrapolator::m_updaters
ToolHandleArray< IMaterialEffectsUpdator > m_updaters
Array of MultipleScattering updaters.
Definition
Extrapolator.h:609
Trk::Extrapolator::m_printRzOutput
BooleanProperty m_printRzOutput
Definition
Extrapolator.h:682
Trk::Extrapolator::extrapolateInsideVolume
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateInsideVolume(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Surface &sf, const Layer *associatedLayer, const TrackingVolume &tvol, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Private method for extrapolation in final volume to destination surface.
Definition
Extrapolator.cxx:2655
Trk::Extrapolator::extrapolateToDestinationLayer
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateToDestinationLayer(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Surface &sf, const Layer &lay, const TrackingVolume &tvol, const Layer *startLayer, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Private to extrapolate to the destination layer + surface.
Definition
Extrapolator.cxx:3380
Trk::Extrapolator::extrapolateToNextActiveLayerMImpl
std::pair< std::unique_ptr< TrackParameters >, const Layer * > extrapolateToNextActiveLayerMImpl(const EventContext &ctx, const IPropagator &prop, const TrackParameters &parm, PropDirection dir, const BoundaryCheck &bcheck, std::vector< const Trk::TrackStateOnSurface * > &material, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Actual heavy lifting implementation for extrapolateToNextActiveLayerM.
Definition
Extrapolator.cxx:652
Trk::Extrapolator::extrapolateToVolumeImpl
std::unique_ptr< TrackParameters > extrapolateToVolumeImpl(const EventContext &ctx, const IPropagator &prop, const TrackParameters &parm, const Trk::TrackingVolume &vol, PropDirection dir=anyDirection, ParticleHypothesis particle=pion) const
Actual heavy lifting implementation for extrapolateToVolume.
Definition
Extrapolator.cxx:1998
Trk::Extrapolator::m_propNames
StringArrayProperty m_propNames
Definition
Extrapolator.h:634
Trk::Extrapolator::m_extrapolateCalls
Gaudi::Accumulators::Counter m_extrapolateCalls
number of calls: extrapolate() method
Definition
Extrapolator.h:693
Trk::Extrapolator::m_layerSwitched
Gaudi::Accumulators::Counter m_layerSwitched
number of layers that have been switched
Definition
Extrapolator.h:704
Trk::Extrapolator::Extrapolator
Extrapolator(const std::string &, const std::string &, const IInterface *)
Constructor.
Definition
Extrapolator.cxx:116
Trk::Extrapolator::~Extrapolator
~Extrapolator()
Destructor.
Trk::Extrapolator::m_maxNavigSurf
static const unsigned int m_maxNavigSurf
Definition
Extrapolator.h:673
Trk::Extrapolator::m_navigationStatistics
BooleanProperty m_navigationStatistics
Definition
Extrapolator.h:686
Trk::Extrapolator::extrapolateImpl
Trk::CacheOwnedPtr< Trk::TrackParameters > extrapolateImpl(const EventContext &ctx, Cache &cache, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
Actual heavy lifting implementation for extrapolate.
Definition
Extrapolator.cxx:2090
Trk::Extrapolator::initialize
virtual StatusCode initialize() override
AlgTool initailize method.
Definition
Extrapolator.cxx:131
Trk::Extrapolator::m_startThroughGlobalSearch
Gaudi::Accumulators::Counter m_startThroughGlobalSearch
navigation intialization
Definition
Extrapolator.h:700
Trk::Extrapolator::m_stepPropagator
ToolHandle< IPropagator > m_stepPropagator
Navigator for TrackingGeometry and magnetic fiels acces.
Definition
Extrapolator.h:599
Trk::Extrapolator::m_navigationBreakLoop
Gaudi::Accumulators::Counter m_navigationBreakLoop
number of navigation breaks due to loop
Definition
Extrapolator.h:707
Trk::Extrapolator::m_maxMethodSequence
UnsignedIntegerProperty m_maxMethodSequence
Definition
Extrapolator.h:662
Trk::Extrapolator::radialDirectionCheck
bool radialDirectionCheck(const EventContext &ctx, const IPropagator &prop, const TrackParameters &startParm, const TrackParameters &parsOnLayer, const TrackingVolume &tvol, PropDirection dir=anyDirection, ParticleHypothesis particle=pion) const
Check for punchThrough in case of radial (perpendicular) direction change, returns true if the radial...
Definition
Extrapolator.cxx:3906
Trk::Extrapolator::m_fieldProperties
Trk::MagneticFieldProperties m_fieldProperties
Definition
Extrapolator.h:678
Trk::Extrapolator::m_startThroughRecall
Gaudi::Accumulators::Counter m_startThroughRecall
navigation intialization
Definition
Extrapolator.h:699
Trk::Extrapolator::m_fastField
BooleanProperty m_fastField
Definition
Extrapolator.h:677
Trk::Extrapolator::m_destinationThroughAssociation
Gaudi::Accumulators::Counter m_destinationThroughAssociation
navigation intialization
Definition
Extrapolator.h:701
Trk::Extrapolator::m_useMuonMatApprox
BooleanProperty m_useMuonMatApprox
Definition
Extrapolator.h:666
Trk::Extrapolator::initializeNavigation
PropDirection initializeNavigation(const EventContext &ctx, Cache &cache, const Trk::IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > startPars, const Trk::Surface &destSurface, Trk::PropDirection dir, ParticleHypothesis particle, Trk::CacheOwnedPtr< Trk::TrackParameters > &referenceParameters, const Trk::Layer *&associatedLayer, const Trk::TrackingVolume *&associatedVolume, const Trk::TrackingVolume *&destinationVolume) const
Private method for Initial Extrapolation setup -> overwrites the given pointers for the start and des...
Definition
Extrapolator.cxx:3717
Trk::Extrapolator::m_navigator
ToolHandle< INavigator > m_navigator
Array of Material updatersc.
Definition
Extrapolator.h:605
Trk::Extrapolator::insideVolumeStaticLayers
Trk::CacheOwnedPtr< Trk::TrackParameters > insideVolumeStaticLayers(const EventContext &ctx, Cache &cache, bool toBoundary, const IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Layer *associatedLayer, const TrackingVolume &tvol, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const
A) call from extrapolateInsideVolume or toBoundary, if it is to boundary, the return parameters are t...
Definition
Extrapolator.cxx:2879
Trk::Extrapolator::subPropagator
const IPropagator * subPropagator(const TrackingVolume &tvol) const
Access the subPropagator to the given volume.
Trk::Extrapolator::m_useDenseVolumeDescription
BooleanProperty m_useDenseVolumeDescription
Definition
Extrapolator.h:669
Trk::Extrapolator::m_startThroughAssociation
Gaudi::Accumulators::Counter m_startThroughAssociation
navigation intialization
Definition
Extrapolator.h:698
Trk::Extrapolator::m_referenceSurface
std::unique_ptr< Surface > m_referenceSurface
Definition
Extrapolator.h:680
Trk::Extrapolator::m_maxRecursion
UnsignedIntegerProperty m_maxRecursion
Definition
Extrapolator.h:671
Trk::Extrapolator::m_destinationThroughRecall
Gaudi::Accumulators::Counter m_destinationThroughRecall
navigation intialization
Definition
Extrapolator.h:702
Trk::Extrapolator::ATLAS_THREAD_SAFE
Dbg::PropStat m_propStat ATLAS_THREAD_SAFE
Definition
Extrapolator.h:714
Trk::Extrapolator::m_navigationBreakVolumeSignature
Gaudi::Accumulators::Counter m_navigationBreakVolumeSignature
number of navigation breaks due to distance increase
Definition
Extrapolator.h:711
Trk::Extrapolator::subMaterialEffectsUpdator
const IMaterialEffectsUpdator * subMaterialEffectsUpdator(const TrackingVolume &tvol) const
Access the subPropagator to the given volume.
Trk::Extrapolator::m_extrapolateDirectlyCalls
Gaudi::Accumulators::Counter m_extrapolateDirectlyCalls
number of calls: extrapolateDirectly() method
Definition
Extrapolator.h:695
Trk::Extrapolator::m_includeMaterialEffects
BooleanProperty m_includeMaterialEffects
Definition
Extrapolator.h:641
Trk::Extrapolator::extrapolateStepwise
virtual TrackParametersUVector extrapolateStepwise(const EventContext &ctx, const TrackParameters &parm, const Surface &sf, PropDirection dir=anyDirection, const BoundaryCheck &bcheck=true, ParticleHypothesis particle=pion) const override final
Extrapolation method where a step-wise navigation to the destination surface is performed.
Definition
Extrapolator.cxx:401
Trk::Extrapolator::extrapolateToNextActiveLayerM
virtual std::pair< std::unique_ptr< TrackParameters >, const Layer * > extrapolateToNextActiveLayerM(const EventContext &ctx, const TrackParameters &parm, PropDirection dir, const BoundaryCheck &bcheck, std::vector< const Trk::TrackStateOnSurface * > &material, ParticleHypothesis particle=pion, MaterialUpdateMode matupmode=addNoise) const override final
Extrapolation to the next active layer with material collection.
Definition
Extrapolator.cxx:563
Trk::Extrapolator::addMaterialEffectsOnTrack
void addMaterialEffectsOnTrack(const EventContext &ctx, Cache &cache, const Trk::IPropagator &prop, Trk::CacheOwnedPtr< Trk::TrackParameters > parm, const Trk::Layer &lay, const Trk::TrackingVolume &vol, Trk::PropDirection propDir, Trk::ParticleHypothesis) const
helper method for MaterialEffectsOnTrack to be added
Definition
Extrapolator.cxx:3965
Trk::Extrapolator::m_updatNames
StringArrayProperty m_updatNames
Definition
Extrapolator.h:636
Trk::IDynamicLayerCreator
Interface class IDynamicLayerCreator It inherits from IAlgTool.
Definition
IDynamicLayerCreator.h:34
Trk::IEnergyLossUpdator
Interface class IEnergyLossUpdator.
Definition
IEnergyLossUpdator.h:34
Trk::IExtrapolator
Interface class for the extrapolation AlgTool, it inherits from IAlgTool Detailed information about p...
Definition
IExtrapolator.h:61
Trk::IMaterialEffectsUpdator
Interface class for the updater AlgTool, it inherits from IAlgTool.
Definition
IMaterialEffectsUpdator.h:45
Trk::IMultipleScatteringUpdator
Interface class IMultipleScatteringUpdator.
Definition
IMultipleScatteringUpdator.h:29
Trk::IPropagator
Interface class IPropagators It inherits from IAlgTool.
Definition
IPropagator.h:54
Trk::Layer
Base Class for a Detector Layer in the Tracking realm.
Definition
Layer.h:72
Trk::MagneticFieldProperties
magnetic field properties to steer the behavior of the extrapolation
Definition
MagneticFieldProperties.h:31
Trk::MaterialEffectsOnTrack
represents the full description of deflection and e-loss of a track in material.
Definition
MaterialEffectsOnTrack.h:40
Trk::Surface
Abstract Base Class for tracking surfaces.
Definition
Surface.h:79
Trk::TrackParticleBase
Definition
TrackParticleBase.h:41
Trk::TrackStateOnSurface
represents the track state (measurement, material, fit parameters and quality) at a surface.
Definition
TrackStateOnSurface.h:71
Trk::Track
The ATLAS Track class.
Definition
Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::TrackingGeometry
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Definition
TrackingGeometry.h:68
Trk::TrackingVolume
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Definition
TrackingVolume.h:119
Trk::Volume
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition
Volume.h:36
pair
STL class.
unique_ptr
STL class.
vector
Definition
MultiHisto.h:13
const
Amg
Definition of ATLAS Math & Geometry primitives (Amg).
Definition
AmgStringHelpers.h:19
Track
Definition
TriggerChamberClusterOnTrackCreator.h:19
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::PropDirection
PropDirection
PropDirection, enum for direction of the propagation.
Definition
PropDirection.h:19
Trk::anyDirection
@ anyDirection
Definition
PropDirection.h:22
Trk::NeutralParameters
ParametersBase< NeutralParametersDim, Neutral > NeutralParameters
Definition
NeutralParameters.h:26
Trk::ParticleHypothesis
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
Definition
ParticleHypothesis.h:28
Trk::pion
@ pion
Definition
ParticleHypothesis.h:32
Trk::MaterialUpdateMode
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
Definition
MaterialUpdateMode.h:18
Trk::addNoise
@ addNoise
Definition
MaterialUpdateMode.h:19
Trk::TrackParametersUVector
std::vector< std::unique_ptr< Trk::TrackParameters > > TrackParametersUVector
Definition
Extrapolator.h:62
Trk::DestSurf
std::pair< const Surface *, BoundaryCheck > DestSurf
typedef for input surfaces, boundary check
Definition
IPropagator.h:44
Trk::TrackParameters
ParametersBase< TrackParametersDim, Charged > TrackParameters
Definition
Tracking/TrkEvent/TrkParameters/TrkParameters/TrackParameters.h:27
Trk::cache
const IIntersectionCache * cache() const
Retrieve the associated cache block, if it exists.
Trk::CacheOwnedPtr
T * CacheOwnedPtr
Definition
ExtrUniquePtrHolder.h:28
std
STL namespace.
Dbg::PropStat
Definition
LocalExtrapolatorCache.h:27
Trk::Cache
Definition
LocalExtrapolatorCache.h:36
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0