19 FDLC leftLayers =
FDLC( flc.begin(), middle);
20 FDLC rightLayers =
FDLC( middle, flc.end());
21 vector<PairType> foundPairs;
23 for (
FDLI i = leftLayers.begin();
i != leftLayers.end();
i++) {
26 if ( partner == 0)
throw cms::Exception(
"SymmetricLayerFinder",
"Assymmetric forward layers in Tracker");
28 foundPairs.push_back( make_pair( *
i, partner));
32 for ( vector<PairType>::iterator ipair = foundPairs.begin();
33 ipair != foundPairs.end(); ipair++) {
34 theForwardMap[ipair->first] = ipair->second;
35 theForwardMap[ipair->second] = ipair->first;
40 const FDLC& rightLayers)
44 auto zdiff =
a->position().z() + layer->
position().
z();
45 auto rdiff =
a->specificSurface().innerRadius() -
54 find_if( rightLayers.begin(), rightLayers.end(), mirrorImage);
55 if ( result == rightLayers.end())
return 0;
62 for (
ConstFDLI i = input.begin();
i != input.end();
i++) {
63 result.push_back( mirror(*
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 Surface::PositionType & position() const
Returns position of the surface.
virtual const BoundDisk & specificSurface() const final
std::vector< const ForwardDetLayer * > FDLC
FDLC::const_iterator ConstFDLI