|
|
#include <SimpleNavigationSchool.h>
|
virtual float | barrelLength () |
|
void | cleanMemory () |
|
virtual void | establishInverseRelations () |
|
virtual void | linkBarrelLayers (SymmetricLayerFinder &symFinder) |
|
virtual void | linkForwardLayers (SymmetricLayerFinder &symFinder) |
|
virtual void | linkNextBarrelLayer (ForwardDetLayer const *fl, BDLC &) |
|
virtual void | linkNextForwardLayer (BarrelDetLayer const *, FDLC &) |
|
virtual void | linkNextLargerLayer (BDLI, BDLI, BDLC &) |
|
virtual void | linkNextLayerInGroup (FDLI fli, const FDLC &group, FDLC &reachableFL) |
|
virtual void | linkOuterGroup (ForwardDetLayer const *fl, const FDLC &group, FDLC &reachableFL) |
|
virtual void | linkWithinGroup (FDLI fl, const FDLC &group, FDLC &reachableFL) |
|
virtual ConstFDLI | outerRadiusIncrease (FDLI fl, const FDLC &group) |
|
virtual std::vector< FDLC > | splitForwardLayers () |
|
void | setState (const StateType &state) |
|
Concrete navigation school for the Tracker
Definition at line 19 of file SimpleNavigationSchool.h.
◆ BDLC
◆ BDLI
◆ BNLCType
◆ ConstBDLI
◆ ConstFDLI
◆ DLC
◆ DLI
◆ FDLC
◆ FDLI
◆ FNLCType
◆ SimpleNavigationSchool() [1/2]
SimpleNavigationSchool::SimpleNavigationSchool |
( |
| ) |
|
|
inline |
◆ SimpleNavigationSchool() [2/2]
◆ ~SimpleNavigationSchool()
SimpleNavigationSchool::~SimpleNavigationSchool |
( |
| ) |
|
|
inlineoverride |
◆ barrelLength()
float SimpleNavigationSchool::barrelLength |
( |
| ) |
|
|
protectedvirtual |
◆ cleanMemory()
void SimpleNavigationSchool::cleanMemory |
( |
| ) |
|
|
protected |
◆ establishInverseRelations()
void SimpleNavigationSchool::establishInverseRelations |
( |
| ) |
|
|
protectedvirtual |
Reimplemented in BeamHaloNavigationSchool.
Definition at line 323 of file SimpleNavigationSchool.cc.
330 typedef map<const DetLayer*, vector<const BarrelDetLayer*>, less<const DetLayer*> > BarrelMapType;
331 typedef map<const DetLayer*, vector<const ForwardDetLayer*>, less<const DetLayer*> > ForwardMapType;
333 BarrelMapType reachedBarrelLayersMap;
334 ForwardMapType reachedForwardLayersMap;
338 for (
auto i : reachedLC) {
339 reachedBarrelLayersMap[
i].push_back(bli);
345 for (
auto i : reachedLC) {
346 reachedForwardLayersMap[
i].push_back(fli);
362 auto navigableLayer = static_cast<SimpleNavigableLayer*>(nl);
363 auto dl = nl->detLayer();
364 navigableLayer->setInwardLinks(reachedBarrelLayersMap[dl], reachedForwardLayersMap[dl]);
References mps_fire::i, and insideOut.
◆ init()
void SimpleNavigationSchool::init |
( |
void |
| ) |
|
|
private |
◆ linkBarrelLayers()
◆ linkForwardLayers()
◆ linkNextBarrelLayer()
void SimpleNavigationSchool::linkNextBarrelLayer |
( |
ForwardDetLayer const * |
fl, |
|
|
BDLC & |
reachableBL |
|
) |
| |
|
protectedvirtual |
◆ linkNextForwardLayer()
void SimpleNavigationSchool::linkNextForwardLayer |
( |
BarrelDetLayer const * |
bl, |
|
|
FDLC & |
rightFL |
|
) |
| |
|
protectedvirtual |
◆ linkNextLargerLayer()
void SimpleNavigationSchool::linkNextLargerLayer |
( |
BDLI |
bli, |
|
|
BDLI |
end, |
|
|
BDLC & |
reachableBL |
|
) |
| |
|
protectedvirtual |
◆ linkNextLayerInGroup()
void SimpleNavigationSchool::linkNextLayerInGroup |
( |
FDLI |
fli, |
|
|
const FDLC & |
group, |
|
|
FDLC & |
reachableFL |
|
) |
| |
|
protectedvirtual |
Definition at line 197 of file SimpleNavigationSchool.cc.
199 if (fli + 1 !=
group.end()) {
200 reachableFL.push_back(*(fli + 1));
203 float innerRThis = (**fli).specificSurface().innerRadius();
204 float innerRNext = (**(fli + 1)).specificSurface().innerRadius();
207 if (innerRNext > innerRThis +
epsilon) {
212 while ((fli +
i) !=
group.end()) {
213 if ((**(fli +
i)).specificSurface().innerRadius() < innerRNext +
epsilon) {
215 reachableFL.push_back(*(fli +
i));
References geometryDiff::epsilon, watchdog::group, and mps_fire::i.
◆ linkOuterGroup()
Definition at line 225 of file SimpleNavigationSchool.cc.
229 return a->position().z() >= fl->position().z();
235 reachableFL.insert(reachableFL.end(),
first,
last);
References a, dqmdumpme::first, watchdog::group, dqmdumpme::last, min(), GeometricSearchDet::position(), and PV3DBase< T, PVType, FrameType >::z().
◆ linkWithinGroup()
void SimpleNavigationSchool::linkWithinGroup |
( |
FDLI |
fl, |
|
|
const FDLC & |
group, |
|
|
FDLC & |
reachableFL |
|
) |
| |
|
protectedvirtual |
◆ navigableLayers()
◆ outerRadiusIncrease()
◆ splitForwardLayers()
Definition at line 257 of file SimpleNavigationSchool.cc.
261 FDLI begin = myRightLayers.begin();
262 FDLI end = myRightLayers.end();
266 return a->specificSurface().innerRadius() <
b->specificSurface().innerRadius();
272 current.push_back(*begin);
275 LogDebug(
"TkNavigation") <<
"(**i).specificSurface().innerRadius() = " << (**i).specificSurface().innerRadius()
277 <<
"(**(i-1)).specificSurface().outerRadius()) = "
278 << (**(
i - 1)).specificSurface().outerRadius();
279 LogDebug(
"TkNavigation") <<
"(**i).specificSurface().position().z() = "
280 << (**i).specificSurface().position().z() << endl
281 <<
"(**(i-1)).specificSurface().position().z() = "
282 << (**(
i - 1)).specificSurface().position().z();
288 if ((**i).specificSurface().innerRadius() > (**(
i - 1)).specificSurface().outerRadius() ||
291 (**i).specificSurface().position().z() < (**(
i - 1)).specificSurface().position().z())) {
292 LogDebug(
"TkNavigation") <<
"found break between groups";
295 std::stable_sort(current.begin(), current.end(),
isDetLessZ);
297 result.push_back(current);
300 current.push_back(*
i);
302 result.push_back(current);
305 for (vector<FDLC>::iterator ivec =
result.begin(); ivec !=
result.end(); ivec++) {
306 std::stable_sort(ivec->begin(), ivec->end(),
isDetLessZ);
References a, b, mps_fire::end, mps_fire::i, isDetLessZ(), LogDebug, and mps_fire::result.
◆ theBarrelLayers
BDLC SimpleNavigationSchool::theBarrelLayers |
|
protected |
◆ theBarrelLength
float SimpleNavigationSchool::theBarrelLength = 0 |
|
protected |
◆ theBarrelNLC
BNLCType SimpleNavigationSchool::theBarrelNLC |
|
protected |
◆ theForwardLayers
FDLC SimpleNavigationSchool::theForwardLayers |
|
protected |
◆ theForwardNLC
FNLCType SimpleNavigationSchool::theForwardNLC |
|
protected |
◆ theLeftLayers
FDLC SimpleNavigationSchool::theLeftLayers |
|
protected |
◆ theRightLayers
FDLC SimpleNavigationSchool::theRightLayers |
|
protected |
virtual void linkNextLargerLayer(BDLI, BDLI, BDLC &)
virtual float barrelLength()
StateType navigableLayers() override
const MagneticField * theField
const MagneticField & field() const
virtual void linkNextBarrelLayer(ForwardDetLayer const *fl, BDLC &)
virtual void linkWithinGroup(FDLI fl, const FDLC &group, FDLC &reachableFL)
std::vector< const DetLayer * > nextLayers(const DetLayer &detLayer, Args &&... args) const
virtual std::vector< FDLC > splitForwardLayers()
std::vector< ForwardDetLayer const * > const & posTidLayers() const
FDLC::const_iterator ConstFDLI
StateType theAllNavigableLayer
std::vector< BarrelDetLayer const * > const & barrelLayers() const
virtual ConstFDLI outerRadiusIncrease(FDLI fl, const FDLC &group)
std::vector< NavigableLayer * > StateType
virtual void linkForwardLayers(SymmetricLayerFinder &symFinder)
std::vector< const ForwardDetLayer * > FDLC
bool isDetLessZ(const GeometricSearchDet *a, const GeometricSearchDet *b)
std::vector< const BarrelDetLayer * > BDLC
const ForwardDetLayer * mirror(const ForwardDetLayer *layer)
std::vector< ForwardDetLayer const * > const & posPixelForwardLayers() const
const GeometricSearchTracker * theTracker
virtual void linkNextLayerInGroup(FDLI fli, const FDLC &group, FDLC &reachableFL)
const std::vector< const DetLayer * > * theAllDetLayersInSystem
virtual void establishInverseRelations()
virtual void linkBarrelLayers(SymmetricLayerFinder &symFinder)
virtual void linkOuterGroup(ForwardDetLayer const *fl, const FDLC &group, FDLC &reachableFL)
std::vector< ForwardDetLayer const * > const & forwardLayers() const
virtual void linkNextForwardLayer(BarrelDetLayer const *, FDLC &)
std::vector< DetLayer const * > const & allLayers() const
void setState(const StateType &state)
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
TkNavigationSchool(const GeometricSearchTracker *tracker, const MagneticField *field)