CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
NavigationSchool Class Referenceabstract

#include <NavigationSchool.h>

Inheritance diagram for NavigationSchool:
MuonNavigationSchool SimpleNavigationSchool BeamHaloNavigationSchool CosmicNavigationSchool SkippingLayerCosmicNavigationSchool

Public Types

typedef std::vector
< NavigableLayer * > 
StateType
 

Public Member Functions

const std::vector< const
DetLayer * > & 
allLayersInSystem () const
 
template<typename... Args>
std::vector< const DetLayer * > compatibleLayers (const DetLayer &detLayer, Args &&...args) const
 Returns all layers compatible. More...
 
virtual StateType navigableLayers ()=0
 
 NavigationSchool ()
 
template<typename... Args>
std::vector< const DetLayer * > nextLayers (const DetLayer &detLayer, Args &&...args) const
 NavigationDirection. More...
 
virtual ~NavigationSchool ()
 

Protected Member Functions

void setState (const StateType &state)
 

Protected Attributes

const std::vector< const
DetLayer * > * 
theAllDetLayersInSystem
 
StateType theAllNavigableLayer
 

Detailed Description

A base class for NavigationSchools. The links between layers are computed or loaded from persistent store by a NavigationSchool. The result is a container of NavigableLayers.

Definition at line 19 of file NavigationSchool.h.

Member Typedef Documentation

Definition at line 28 of file NavigationSchool.h.

Constructor & Destructor Documentation

NavigationSchool::NavigationSchool ( )
inline

Definition at line 22 of file NavigationSchool.h.

23 // std::cout << "NVSH: C "<< this << std::endl;
24  }
const std::vector< const DetLayer * > * theAllDetLayersInSystem
virtual NavigationSchool::~NavigationSchool ( )
inlinevirtual

Definition at line 26 of file NavigationSchool.h.

26 {}

Member Function Documentation

const std::vector<const DetLayer*>& NavigationSchool::allLayersInSystem ( ) const
inline

Definition at line 74 of file NavigationSchool.h.

References theAllDetLayersInSystem.

74 {return *theAllDetLayersInSystem;}
const std::vector< const DetLayer * > * theAllDetLayersInSystem
template<typename... Args>
std::vector<const DetLayer*> NavigationSchool::compatibleLayers ( const DetLayer detLayer,
Args &&...  args 
) const
inline

Returns all layers compatible.

Definition at line 48 of file NavigationSchool.h.

References ExtractAppInfoFromXML::args, DetLayer::seqNum(), and theAllNavigableLayer.

Referenced by DTChamberEfficiency::compatibleLayers(), and MuonNavigationPrinter::printLayer().

48  {
49  auto nl = theAllNavigableLayer[detLayer.seqNum()];
50  return nl
51  ? nl->compatibleLayers(std::forward<Args>(args)...)
52  : std::vector<const DetLayer*>();
53  }
int seqNum() const
Definition: DetLayer.h:36
StateType theAllNavigableLayer
virtual StateType NavigationSchool::navigableLayers ( )
pure virtual
template<typename... Args>
std::vector<const DetLayer*> NavigationSchool::nextLayers ( const DetLayer detLayer,
Args &&...  args 
) const
inline

NavigationDirection.

Return the next (closest) layer(s) that can be reached in the specified

Definition at line 37 of file NavigationSchool.h.

References ExtractAppInfoFromXML::args, assert(), DetLayer::seqNum(), and theAllNavigableLayer.

Referenced by CkfDebugger::analyseRecHitNotFound(), TrackEfficiencyMonitor::compatibleLayers(), SimpleNavigationSchool::establishInverseRelations(), MuonCkfTrajectoryBuilder::findCompatibleMeasurements(), NuclearInteractionFinder::findMeasurementsFromTSOS(), BaseCkfTrajectoryBuilder::findStateAndLayers(), PixelMatchNextLayers::PixelMatchNextLayers(), and MuonNavigationPrinter::printLayer().

37  {
38  assert( detLayer.seqNum()>=0);
39  auto nl = theAllNavigableLayer[detLayer.seqNum()];
40  return nl
41  ? nl->nextLayers(std::forward<Args>(args)...)
42  : std::vector<const DetLayer*>();
43  }
assert(m_qm.get())
int seqNum() const
Definition: DetLayer.h:36
StateType theAllNavigableLayer
void NavigationSchool::setState ( const StateType state)
inlineprotected

Definition at line 57 of file NavigationSchool.h.

References theAllNavigableLayer.

Referenced by MuonNavigationSchool::createInverseLinks(), and SimpleNavigationSchool::establishInverseRelations().

57  {
58  // std::cout << "NVSH: set "<< this << ' ' << typeid(*this).name()
59  // << ' ' << state.size() << ' ' << theAllNavigableLayer.size() << std::endl;
60 
61  for (auto nl : state) {
62  if (!nl) continue;
63  theAllNavigableLayer[nl->detLayer()->seqNum()]=nl;
64  nl->setSchool(this);
65  }
66  }
StateType theAllNavigableLayer

Member Data Documentation

const std::vector<const DetLayer*>* NavigationSchool::theAllDetLayersInSystem
protected
StateType NavigationSchool::theAllNavigableLayer
protected