15 ConstFDLI middle = find_if( flc.begin(), flc.end(),
18 FDLC leftLayers =
FDLC( flc.begin(), middle);
19 FDLC rightLayers =
FDLC( middle, flc.end());
20 vector<PairType> foundPairs;
22 for (
FDLI i = leftLayers.begin();
i != leftLayers.end();
i++) {
25 if ( partner ==
nullptr)
throw cms::Exception(
"SymmetricLayerFinder",
"Assymmetric forward layers in Tracker");
27 foundPairs.push_back( make_pair( *
i, partner));
31 for ( vector<PairType>::iterator ipair = foundPairs.begin();
32 ipair != foundPairs.end(); ipair++) {
33 theForwardMap[ipair->first] = ipair->second;
34 theForwardMap[ipair->second] = ipair->first;
39 const FDLC& rightLayers)
43 auto zdiff =
a->position().z() + layer->
position().
z();
44 auto rdiff =
a->specificSurface().innerRadius() -
53 find_if( rightLayers.begin(), rightLayers.end(), mirrorImage);
54 if ( result == rightLayers.end())
return nullptr;
61 for (
ConstFDLI i = input.begin();
i != input.end();
i++) {
SymmetricLayerFinder(const FDLC &)
const ForwardDetLayer * mirror(const ForwardDetLayer *layer)
static std::string const input
Abs< T >::type abs(const T &t)
const ForwardDetLayer * mirrorPartner(const ForwardDetLayer *layer, const FDLC &rightLayers)
virtual const BoundDisk & specificSurface() const final
virtual const Surface::PositionType & position() const
Returns position of the surface.
std::vector< const ForwardDetLayer * > FDLC
FDLC::const_iterator ConstFDLI