|
|
#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 324 of file SimpleNavigationSchool.cc.
331 typedef map<const DetLayer*, vector<const BarrelDetLayer*>, less<const DetLayer*> > BarrelMapType;
332 typedef map<const DetLayer*, vector<const ForwardDetLayer*>, less<const DetLayer*> > ForwardMapType;
334 BarrelMapType reachedBarrelLayersMap;
335 ForwardMapType reachedForwardLayersMap;
339 for (
auto i : reachedLC) {
340 reachedBarrelLayersMap[
i].push_back(bli);
346 for (
auto i : reachedLC) {
347 reachedForwardLayersMap[
i].push_back(fli);
363 auto navigableLayer = static_cast<SimpleNavigableLayer*>(nl);
364 auto dl = nl->detLayer();
365 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 198 of file SimpleNavigationSchool.cc.
200 if (fli + 1 !=
group.end()) {
201 reachableFL.push_back(*(fli + 1));
204 float innerRThis = (**fli).specificSurface().innerRadius();
205 float innerRNext = (**(fli + 1)).specificSurface().innerRadius();
208 if (innerRNext > innerRThis +
epsilon) {
213 while ((fli +
i) !=
group.end()) {
214 if ((**(fli +
i)).specificSurface().innerRadius() < innerRNext +
epsilon) {
216 reachableFL.push_back(*(fli +
i));
References geometryDiff::epsilon, watchdog::group, and mps_fire::i.
◆ linkOuterGroup()
Definition at line 226 of file SimpleNavigationSchool.cc.
230 return a->position().z() >= fl->position().z();
236 reachableFL.insert(reachableFL.end(),
first,
last);
References a, 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 258 of file SimpleNavigationSchool.cc.
262 FDLI begin = myRightLayers.begin();
263 FDLI end = myRightLayers.end();
267 return a->specificSurface().innerRadius() <
b->specificSurface().innerRadius();
273 current.push_back(*begin);
276 LogDebug(
"TkNavigation") <<
"(**i).specificSurface().innerRadius() = " << (**i).specificSurface().innerRadius()
278 <<
"(**(i-1)).specificSurface().outerRadius()) = "
279 << (**(
i - 1)).specificSurface().outerRadius();
280 LogDebug(
"TkNavigation") <<
"(**i).specificSurface().position().z() = "
281 << (**i).specificSurface().position().z() << endl
282 <<
"(**(i-1)).specificSurface().position().z() = "
283 << (**(
i - 1)).specificSurface().position().z();
289 if ((**i).specificSurface().innerRadius() > (**(
i - 1)).specificSurface().outerRadius() ||
292 (**i).specificSurface().position().z() < (**(
i - 1)).specificSurface().position().z())) {
293 LogDebug(
"TkNavigation") <<
"found break between groups";
296 std::stable_sort(current.begin(), current.end(),
isDetLessZ);
298 result.push_back(current);
301 current.push_back(*
i);
303 result.push_back(current);
306 for (vector<FDLC>::iterator ivec =
result.begin(); ivec !=
result.end(); ivec++) {
307 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)