31 theBarrelLength(0),theField(field), theTracker(theInputTracker)
39 for ( vector<BarrelDetLayer*>::iterator
i = blc.begin();
i != blc.end();
i++) {
40 if((*i)->specificSurface().radius()<20. || (*i)->specificSurface().radius()>65.) {
52 for ( vector<ForwardDetLayer*>::iterator
i = flc.begin();
i != flc.end();
i++) {
53 if(((*i)->specificSurface().outerRadius()>60.&& (*i)->specificSurface().innerRadius()>20.)|| (*i)->specificSurface().innerRadius()<10.) {
82 theBarrelLength(0),theField(field), theTracker(theInputTracker)
96 for ( vector<BarrelDetLayer*>::iterator
i = blc.begin();
i != blc.end();
i++) {
97 if((*i)->specificSurface().radius()<20. || (*i)->specificSurface().radius()>65.) {
115 for ( vector<ForwardDetLayer*>::iterator
i = flc.begin();
i != flc.end();
i++)
117 if(((*i)->specificSurface().outerRadius()>60.&&
118 (*i)->specificSurface().innerRadius()>20.)|| (*i)->specificSurface().innerRadius()<10.)
134 for ( vector<ForwardDetLayer*>::iterator
i = flc.begin();
i != flc.end();
i++)
136 if(((*i)->specificSurface().outerRadius()>60.&&
137 (*i)->specificSurface().innerRadius()>20.)|| (*i)->specificSurface().innerRadius()<10.)
172 for ( vector< SimpleBarrelNavigableLayer*>::const_iterator
174 result.push_back( *ib);
176 for ( vector< SimpleForwardNavigableLayer*>::const_iterator
178 result.push_back( *ifl);
207 symFinder.
mirror(rightFL),
222 if(fabs((**fli).position().z())>130. && fabs((**fli).position().z())<132.)
227 rightFL.push_back( *fli);
237 float length = (**(bli+1)).surface().bounds().length();
241 if ( length + epsilon < (**i).surface().bounds().length()) {
242 reachableBL.push_back( *
i);
255 LogDebug(
"TkNavigation") <<
"SimpleNavigationSchool, Forward groups size = " << groups.size() ;
256 for (vector<FDLC>::iterator
g = groups.begin();
g != groups.end();
g++) {
257 LogDebug(
"TkNavigation") <<
"group " <<
g - groups.begin() <<
" has "
258 <<
g->size() <<
" layers " ;
261 for ( vector<FDLC>::iterator group = groups.begin();
262 group != groups.end(); group++) {
264 for (
FDLI i = group->begin();
i != group->end();
i++) {
277 if ( group+1 != groups.end()) {
290 symFinder.
mirror(reachableFL),
318 if( fabs(zpos) > 130. && fabs(zpos) < 132. )
321 reachableBL.push_back( *bli);
333 if ( fli+1 != group.end()) {
334 reachableFL.push_back( *(fli+1));
337 float innerRThis = (**fli).specificSurface().innerRadius();
338 float innerRNext = (**(fli+1)).specificSurface().innerRadius();
341 if (innerRNext > innerRThis + epsilon) {
346 while ( (fli+i) != group.end()) {
347 if ( (**(fli+i)).specificSurface().innerRadius() <
350 reachableFL.push_back( *(fli+i));
370 if ( first != group.end()) {
375 reachableFL.insert( reachableFL.end(),
first,
last);
384 if ( biggerLayer != group.end() && biggerLayer != fl+1) {
385 reachableFL.push_back( *biggerLayer);
393 float outerRadius = (**fl).specificSurface().outerRadius();
394 while ( ++fl != group.end()) {
395 if ( (**fl).specificSurface().outerRadius() > outerRadius +
epsilon) {
402 vector<HICSimpleNavigationSchool::FDLC>
409 FDLI end = myRightLayers.end();
417 current.push_back( *begin);
420 LogDebug(
"TkNavigation") <<
"(**i).specificSurface().innerRadius() = "
421 << (**i).specificSurface().innerRadius() << endl
422 <<
"(**(i-1)).specificSurface().outerRadius()) = "
423 << (**(
i-1)).specificSurface().outerRadius() ;
426 if ( (**i).specificSurface().innerRadius() >
427 (**(
i-1)).specificSurface().outerRadius()) {
429 LogDebug(
"TkNavigation") <<
"found break between groups" ;
434 result.push_back(current);
437 current.push_back(*
i);
439 result.push_back(current);
442 for ( vector<FDLC>::iterator ivec = result.begin();
443 ivec != result.end(); ivec++) {
455 (**i).surface().bounds().length() / 2.f);
469 typedef map<const DetLayer*, vector<BarrelDetLayer*>, less<const DetLayer*> > BarrelMapType;
470 typedef map<const DetLayer*, vector<ForwardDetLayer*>, less<const DetLayer*> > ForwardMapType;
473 BarrelMapType reachedBarrelLayersMap;
474 ForwardMapType reachedForwardLayersMap;
480 for (
DLI i = reachedLC.begin();
i != reachedLC.end();
i++) {
481 reachedBarrelLayersMap[*
i].push_back( *bli);
488 for (
DLI i = reachedLC.begin();
i != reachedLC.end();
i++) {
489 reachedForwardLayersMap[*
i].push_back( *fli);
498 navigableLayer->
setInwardLinks( reachedBarrelLayersMap[*
i],reachedForwardLayersMap[*i] );
const MagneticField * theField
std::vector< BarrelDetLayer * > BDLC
std::vector< ForwardDetLayer * > FDLC
virtual void linkBarrelLayers(SymmetricLayerFinder &symFinder)
virtual float barrelLength()
virtual void linkNextLayerInGroup(FDLI fli, const FDLC &group, FDLC &reachableFL)
virtual std::vector< FDLC > splitForwardLayers()
virtual void setInwardLinks(const BDLC &, const FDLC &, TkLayerLess sorter=TkLayerLess(outsideIn))=0
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
std::vector< DetLayer * > theDetLayers
std::vector< BarrelDetLayer * > const & barrelLayers() const
virtual StateType navigableLayers() const
const T & max(const T &a, const T &b)
std::vector< const DetLayer * > DLC
std::vector< NavigableLayer * > StateType
std::vector< DetLayer * > const & allLayers() const
virtual void linkNextBarrelLayer(ForwardDetLayer *fl, BDLC &)
virtual void linkNextLargerLayer(BDLI, BDLI, BDLC &)
virtual const Surface::PositionType & position() const
Returns position of the surface.
virtual void linkOuterGroup(ForwardDetLayer *fl, const FDLC &group, FDLC &reachableFL)
virtual void linkForwardLayers(SymmetricLayerFinder &symFinder)
const GeometricSearchTracker * theTracker
virtual void establishInverseRelations()
virtual ConstFDLI outerRadiusIncrease(FDLI fl, const FDLC &group)
const std::vector< DetLayer * > * theAllDetLayersInSystem
std::vector< ForwardDetLayer * > const & forwardLayers() const
virtual void linkWithinGroup(FDLI fl, const FDLC &group, FDLC &reachableFL)
virtual void linkNextForwardLayer(BarrelDetLayer *, FDLC &)
FDLC::const_iterator ConstFDLI
ForwardDetLayer * mirror(const ForwardDetLayer *layer)
HICSimpleNavigationSchool()