14 find_if(flc.begin(), flc.end(), [](
const GeometricSearchDet*
a) {
return a->position().z() >= 0.0; });
16 FDLC leftLayers =
FDLC(flc.begin(), middle);
17 FDLC rightLayers =
FDLC(middle, flc.end());
18 vector<PairType> foundPairs;
20 for (
FDLI i = leftLayers.begin();
i != leftLayers.end();
i++) {
23 if (partner ==
nullptr)
24 throw cms::Exception(
"SymmetricLayerFinder",
"Assymmetric forward layers in Tracker");
26 foundPairs.push_back(make_pair(*
i, partner));
30 for (vector<PairType>::iterator ipair = foundPairs.begin(); ipair != foundPairs.end(); ipair++) {
31 theForwardMap[ipair->first] = ipair->second;
32 theForwardMap[ipair->second] = ipair->first;
38 auto zdiff =
a->position().z() + layer->
position().
z();
39 auto rdiff =
a->specificSurface().innerRadius() - layer->
specificSurface().innerRadius();
45 ConstFDLI result = find_if(rightLayers.begin(), rightLayers.end(), mirrorImage);
46 if (result == rightLayers.end())
54 for (
ConstFDLI i = input.begin();
i != input.end();
i++) {
55 result.push_back(mirror(*
i));
SymmetricLayerFinder(const FDLC &)
const ForwardDetLayer * mirror(const ForwardDetLayer *layer)
constexpr std::array< uint8_t, layerIndexSize > 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