21 for ( std::vector<BarrelDetLayer*>::iterator
i = blc.begin();
i != blc.end();
i++)
25 for ( std::vector<ForwardDetLayer*>::iterator
i = flc.begin();
i != flc.end();
i++)
28 std::vector< std::string >
names;
31 bool inverseRelationShip =
true;
32 for (
unsigned int iN=0;iN!=names.size();++iN){
34 std::vector<std::string> OUT = pset.
getParameter<std::vector<std::string> >(
"OUT");
36 if ( pset.
exists(
"IN") ) inverseRelationShip =
false;
42 for (
unsigned int iOut=0;iOut!=OUT.size();++iOut)
43 addLayer(OUT[iOut], reachableBL, reachableFL);
51 if( inverseRelationShip ){
55 for (
unsigned int iN=0;iN!=names.size();++iN){
57 std::vector<std::string> IN = pset.
getParameter<std::vector<std::string> >(
"IN");
63 for (
unsigned int iIn=0;iIn!=IN.size();++iIn)
64 addLayer(IN[iIn], reachableBL, reachableFL);
76 FDLI middle = find_if( reachableFL.begin(), reachableFL.end(),
78 FDLC leftFL(reachableFL.begin(), middle);
79 FDLC rightFL(middle, reachableFL.end());
82 theBarrelNLC.push_back(
new SimpleBarrelNavigableLayer(bl,
90 theForwardNLC.push_back(
new SimpleForwardNavigableLayer(fwdL,
103 edm::LogError(
"CfgNavigationSchool")<<
"a layer is not casting to SimpleNavigableLayer.";
110 reachableBL.push_back(dynamic_cast<BarrelDetLayer*>(l));
112 reachableFL .push_back(dynamic_cast<ForwardDetLayer*>(l));
118 unsigned int idLayer = atoi(lname.substr(3,1).c_str())-1;
119 bool isFwd = (lname.find(
"pos")!=std::string::npos);
120 LogDebug(
"CfgNavigationSchool")<<
"part: "<<part<<
"\n idLayer: "<<idLayer<<
" is: "<<(isFwd?
"isFwd":
"isBwd");
128 edm::LogError(
"CfgNavigationSchool")<<
"layer specification: "<<lname<<
" not understood. returning a null pointer.";
T getParameter(std::string const &) const
NavigableLayer * navigableLayer() const
Return the NavigableLayer associated with this DetLayer.
static const HistoName names[]
virtual Location location() const =0
Which part of the detector (barrel, endcap)
bool exists(std::string const ¶meterName) const
checks if a parameter exists
std::vector< ForwardDetLayer * > const & posTecLayers() const
const GeometricSearchTracker * theTracker
virtual void setInwardLinks(const BDLC &, const FDLC &, TkLayerLess sorter=TkLayerLess(outsideIn))=0
void makeBwdLinks(std::string &lname, BDLC &reachableBL, FDLC &reachableFL)
std::vector< BarrelDetLayer * > const & barrelLayers() const
std::vector< ForwardDetLayer * > const & negTecLayers() const
std::vector< ForwardDetLayer * > FDLC
std::vector< ForwardDetLayer * > const & posPixelForwardLayers() const
virtual void establishInverseRelations()
std::vector< DetLayer * > const & allLayers() const
const MagneticField * theField
void addLayer(std::string &lname, BDLC &reachableBL, FDLC &reachableFL)
DetLayer * layer(std::string &lname)
std::vector< BarrelDetLayer * > const & tibLayers() const
std::vector< ForwardDetLayer * > const & posTidLayers() const
void makeFwdLinks(std::string &lname, BDLC &reachableBL, FDLC &reachableFL)
std::vector< ForwardDetLayer * > const & negTidLayers() const
std::vector< BarrelDetLayer * > BDLC
const std::vector< DetLayer * > * theAllDetLayersInSystem
size_t getParameterSetNames(std::vector< std::string > &output, bool trackiness=true) const
std::vector< ForwardDetLayer * > const & forwardLayers() const
std::vector< BarrelDetLayer * > const & tobLayers() const
std::vector< BarrelDetLayer * > const & pixelBarrelLayers() const
std::vector< ForwardDetLayer * > const & negPixelForwardLayers() const