CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/RecoPixelVertexing/PixelTriplets/plugins/LayerTriplets.cc

Go to the documentation of this file.
00001 #include "LayerTriplets.h"
00002 
00003 using namespace ctfseeding;
00004 std::vector<LayerTriplets::LayerPairAndLayers> LayerTriplets::layers() const
00005 {
00006   std::vector<LayerPairAndLayers> result;
00007   typedef std::vector<LayerPairAndLayers>::iterator IR;
00008 
00009   typedef SeedingLayerSets::const_iterator IL;
00010   for (IL il=theSets.begin(), ilEnd= theSets.end(); il != ilEnd; ++il) {
00011     const SeedingLayers & set = *il;
00012     if (set.size() != 3) continue;
00013     SeedingLayerPair layerPair = std::make_pair(set[0], set[1]);
00014     bool added = false;
00015     for (IR ir = result.begin(); ir < result.end(); ++ir) {
00016       const SeedingLayerPair & resPair = ir->first;
00017       if (resPair.first ==layerPair.first && resPair.second == layerPair.second) {
00018         std::vector<SeedingLayer> & thirds = ir->second;
00019         thirds.push_back( set[2] );
00020         added = true;
00021         break;
00022       }
00023     }
00024     if (!added) {
00025       LayerPairAndLayers lpl = std::make_pair(layerPair,  std::vector<SeedingLayer>(1, set[2]) );
00026       result.push_back(lpl);
00027     }
00028   }
00029   return result;
00030 }