CMS 3D CMS Logo

RedundantSeedCleaner Class Reference

Description: RedundantSeedCleaner (TrackerSeedGenerator) duplicate removal from triplets pairs pixel seeds . More...

#include <RecoMuon/TrackerSeedGenerator/interface/RedundantSeedCleaner.h>

Inheritance diagram for RedundantSeedCleaner:

CachingSeedCleanerByHitPosition CachingSeedCleanerBySharedInput SeedCleanerByHitPosition SeedCleanerBySharedInput

List of all members.

Public Member Functions

virtual void add (const Trajectory *traj)=0
 Informs the cleaner that a new trajectory has been made, in case the cleaner keeps a local collection of those tracks (i.e.
void clean (const std::vector< TrajectorySeed > &, std::vector< TrajectorySeed > &)
 clean
void define (std::vector< TrajectorySeed > &)
 collection definition
virtual void done ()=0
 Tells the cleaner that the seeds are finished, and so it can clear any cache it has.
virtual bool good (const TrajectorySeed *seed)=0
 Returns true if the seed is not overlapping with another trajectory.
virtual void init (const std::vector< Trajectory > *vect)=0
 Provides the cleaner a pointer to the vector where trajectories are stored, in case it does not want to keep a local collection of trajectories.
 RedundantSeedCleaner ()
 constructor
virtual ~RedundantSeedCleaner ()
 ~RedundantSeedCleaner ()
 destructor

Private Attributes

std::vector< TrajectorySeedseedTriplets
std::string theCategory


Detailed Description

Description: RedundantSeedCleaner (TrackerSeedGenerator) duplicate removal from triplets pairs pixel seeds .

Author:
Alessandro Grelli, Jean-Roch Vlimant

Definition at line 23 of file RedundantSeedCleaner.h.


Constructor & Destructor Documentation

RedundantSeedCleaner::RedundantSeedCleaner (  )  [inline]

constructor

Definition at line 26 of file RedundantSeedCleaner.h.

00026                         {
00027 
00028   }

RedundantSeedCleaner::~RedundantSeedCleaner (  )  [inline]

destructor

Definition at line 30 of file RedundantSeedCleaner.h.

00030                          {
00031    }

virtual RedundantSeedCleaner::~RedundantSeedCleaner (  )  [inline, virtual]

Definition at line 9 of file RedundantSeedCleaner.h.

00009 {}


Member Function Documentation

virtual void RedundantSeedCleaner::add ( const Trajectory traj  )  [pure virtual]

Informs the cleaner that a new trajectory has been made, in case the cleaner keeps a local collection of those tracks (i.e.

in a map)

Implemented in CachingSeedCleanerByHitPosition, CachingSeedCleanerBySharedInput, SeedCleanerByHitPosition, and SeedCleanerBySharedInput.

Referenced by cms::CkfTrackCandidateMakerBase::produceBase(), OutInConversionTrackFinder::tracks(), and InOutConversionTrackFinder::tracks().

void RedundantSeedCleaner::clean ( const std::vector< TrajectorySeed > &  seedTr,
std::vector< TrajectorySeed > &  seed 
)

clean

Definition at line 48 of file RedundantSeedCleaner.cc.

References TrackingRecHit::all, h1, h2, LogDebug, r1, r2, HLT_VtxMuL3::result, s1, s2, and theCategory.

Referenced by define().

00049 {
00050 
00051     // loop over triplets
00052     std::vector<TrajectorySeed> result;
00053 
00054     std::vector<bool> maskPairs = std::vector<bool>(seed.size(),true);
00055     int iPair = 0;
00056 
00057     for(TrajectorySeedCollection::iterator s1 =seed.begin(); s1 != seed.end(); ++s1){
00058        //rechits from seed
00059 
00060        TrajectorySeed::range r1 = s1->recHits();
00061 
00062        for(TrajectorySeedCollection::const_iterator s2 = seedTr.begin(); s2 != seedTr.end(); ++s2){
00063           //empty
00064           if(s2->nHits()==0) continue ;
00065 
00066           TrajectorySeed::range r2 = s2->recHits();
00067           TrajectorySeed::const_iterator h2 = r2.first;
00068 
00069           //number of shared hits;
00070           int shared = 0;
00071  
00072           for(;h2 < r2.second;h2++){
00073             for(TrajectorySeed::const_iterator h1  = r1.first; h1 < r1.second;h1++){
00074                if(h2->sharesInput(&(*h1),TrackingRecHit::all)) shared++;
00075                if(s1->nHits()!=3) LogDebug(theCategory)<< shared<< " shared hits counter if 2 erease the seed.";
00076             }
00077           }
00078           
00079           if(shared ==2 && s1->nHits()!=3) {
00080              maskPairs[iPair] = false;
00081           }
00082 
00083        }//end triplets loop
00084        ++iPair;
00085      }// end pairs loop
00086 
00087      iPair = 0;
00088      //remove pairs in triplets
00089      for(TrajectorySeedCollection::iterator s1 = seed.begin(); s1 != seed.end(); ++s1){
00090         if (maskPairs[iPair]) result.push_back(*s1);
00091         ++iPair;
00092      }
00093 
00094      // cleaned collection
00095       seed.swap(result);
00096 }

void RedundantSeedCleaner::define ( std::vector< TrajectorySeed > &  coll  ) 

collection definition

Definition at line 28 of file RedundantSeedCleaner.cc.

References clean().

Referenced by TrackerSeedCleaner::clean().

00029 {
00030 
00031   std::vector<TrajectorySeed> triplets;
00032   
00033   //search for triplest
00034   for(TrajectorySeedCollection::iterator itr =coll.begin(); itr != coll.end(); ++itr){
00035       //fill vector of triplets
00036       if(itr->nHits()==3) triplets.push_back(*itr);
00037       
00038    }
00039 
00040   // clean from shared input
00041   if (!triplets.empty()) clean(triplets,coll);
00042 }

virtual void RedundantSeedCleaner::done (  )  [pure virtual]

Tells the cleaner that the seeds are finished, and so it can clear any cache it has.

Implemented in CachingSeedCleanerByHitPosition, CachingSeedCleanerBySharedInput, SeedCleanerByHitPosition, and SeedCleanerBySharedInput.

Referenced by cms::CkfTrackCandidateMakerBase::produceBase(), OutInConversionTrackFinder::tracks(), and InOutConversionTrackFinder::tracks().

virtual bool RedundantSeedCleaner::good ( const TrajectorySeed seed  )  [pure virtual]

Returns true if the seed is not overlapping with another trajectory.

Implemented in CachingSeedCleanerByHitPosition, CachingSeedCleanerBySharedInput, SeedCleanerByHitPosition, and SeedCleanerBySharedInput.

Referenced by cms::CkfTrackCandidateMakerBase::produceBase(), InOutConversionTrackFinder::tracks(), and OutInConversionTrackFinder::tracks().

virtual void RedundantSeedCleaner::init ( const std::vector< Trajectory > *  vect  )  [pure virtual]

Provides the cleaner a pointer to the vector where trajectories are stored, in case it does not want to keep a local collection of trajectories.

Implemented in CachingSeedCleanerByHitPosition, CachingSeedCleanerBySharedInput, SeedCleanerByHitPosition, and SeedCleanerBySharedInput.

Referenced by cms::CkfTrackCandidateMakerBase::produceBase(), InOutConversionTrackFinder::tracks(), and OutInConversionTrackFinder::tracks().


Member Data Documentation

std::vector<TrajectorySeed> RedundantSeedCleaner::seedTriplets [private]

Definition at line 39 of file RedundantSeedCleaner.h.

std::string RedundantSeedCleaner::theCategory [private]

Definition at line 41 of file RedundantSeedCleaner.h.

Referenced by clean().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:30:42 2009 for CMSSW by  doxygen 1.5.4