#include <TrackingTools/DetLayers/interface/NavigationSetter.h>
Public Types | |
typedef std::vector < NavigableLayer * > | StateType |
Public Member Functions | |
NavigationSetter (const NavigationSchool &) | |
~NavigationSetter () | |
Private Member Functions | |
void | cleanState () |
void | saveState () |
void | setState (const StateType &) |
Private Attributes | |
const NavigationSchool & | theNav |
StateType | theSavedState |
It must be instatiated as a local variable in the method that needs the navigation of the school, before using the navigation methods. The constructor saves the current state and sets the new one, and the destructod restores the previous state. This allows different reconstruction algorithms to use different navigations in the same set of DetLayers.
Definition at line 20 of file NavigationSetter.h.
typedef std::vector<NavigableLayer*> NavigationSetter::StateType |
Definition at line 23 of file NavigationSetter.h.
NavigationSetter::NavigationSetter | ( | const NavigationSchool & | school | ) |
Definition at line 7 of file NavigationSetter.cc.
References cleanState(), NavigationSchool::navigableLayers(), saveState(), and setState().
00008 : theNav(school) 00009 { 00010 //save the current state from all layer in the system which is being set: allow to set it back 00011 saveState(); 00012 00013 //remove any links from the detlayer in the system: allow partial navigation (BeamHalo) 00014 cleanState(); 00015 00016 //set the current navigation 00017 setState(school.navigableLayers()); 00018 }
NavigationSetter::~NavigationSetter | ( | ) |
Definition at line 20 of file NavigationSetter.cc.
References cleanState(), setState(), and theSavedState.
00021 { 00022 //remove any link from the detlyaer in the system which has been set 00023 cleanState(); 00024 /* 00025 LogDebug("NavigationSetter")<<"NavigationSchool settings are totally reset in the destructor of NavigationSetter.\n" 00026 <<"this is the designed behavior. If you do not get track reconstruction, please refer to\n" 00027 <<"httpss://twiki.cern.ch/twiki/bin/view/CMS/NavigationSchool \n" 00028 <<"to properly use the NavigationSetter."; 00029 */ 00030 00031 //restore the previous layer DetLayer settings within the system which has been set. 00032 setState( theSavedState); 00033 }
void NavigationSetter::cleanState | ( | ) | [private] |
Definition at line 45 of file NavigationSetter.cc.
References NavigationSchool::allLayersInSystem(), end, i, and theNav.
Referenced by NavigationSetter(), and ~NavigationSetter().
00045 { 00046 //set no navigable layer to all detlayers in the system 00047 std::vector<DetLayer*>::const_iterator i = theNav.allLayersInSystem().begin(); 00048 std::vector<DetLayer*>::const_iterator end = theNav.allLayersInSystem().end(); 00049 for (; i != end; ++i){ 00050 if (*i !=0) (*i)->setNavigableLayer(0); 00051 } 00052 }
void NavigationSetter::saveState | ( | ) | [private] |
Definition at line 36 of file NavigationSetter.cc.
References NavigationSchool::allLayersInSystem(), end, i, theNav, and theSavedState.
Referenced by NavigationSetter().
00036 { 00037 //remember all navigable layers from all layer in the system. 00038 std::vector<DetLayer*>::const_iterator i = theNav.allLayersInSystem().begin(); 00039 std::vector<DetLayer*>::const_iterator end = theNav.allLayersInSystem().end(); 00040 for (; i != end; ++i){ 00041 if (*i !=0) theSavedState.push_back( (*i)->navigableLayer()); 00042 } 00043 }
Definition at line 54 of file NavigationSetter.cc.
Referenced by NavigationSetter(), and ~NavigationSetter().
00054 { 00055 //set DetLayer->NavigableLayer link from navigable layer in given state 00056 StateType::const_iterator i = newState.begin(); 00057 StateType::const_iterator end = newState.end(); 00058 for (; i != end; i++) { 00059 if ( *i != 0) (**i).detLayer()->setNavigableLayer(*i); 00060 } 00061 }
const NavigationSchool& NavigationSetter::theNav [private] |
StateType NavigationSetter::theSavedState [private] |
Definition at line 33 of file NavigationSetter.h.
Referenced by saveState(), and ~NavigationSetter().