Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:30

0001 #include "RecoTracker/PixelLowPtUtilities/interface/TripletFilter.h"
0002 
0003 #include "RecoTracker/PixelLowPtUtilities/interface/ClusterShapeHitFilter.h"
0004 #include "RecoTracker/PixelLowPtUtilities/interface/HitInfo.h"
0005 
0006 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0007 
0008 #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHit.h"
0009 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0010 
0011 #include "DataFormats/TrackerCommon/interface/TrackerTopology.h"
0012 
0013 using namespace std;
0014 
0015 /*****************************************************************************/
0016 bool TripletFilter::checkTrack(const vector<const TrackingRecHit*>& recHits,
0017                                const vector<LocalVector>& localDirs,
0018                                const TrackerTopology* tTopo,
0019                                const SiPixelClusterShapeCache& clusterShapeCache) const {
0020   bool ok = true;
0021 
0022   vector<LocalVector>::const_iterator localDir = localDirs.begin();
0023   for (vector<const TrackingRecHit*>::const_iterator recHit = recHits.begin(); recHit != recHits.end(); recHit++) {
0024     const SiPixelRecHit* pixelRecHit = dynamic_cast<const SiPixelRecHit*>(*recHit);
0025 
0026     if (!pixelRecHit->isValid()) {
0027       ok = false;
0028       break;
0029     }
0030 
0031     if (!theFilter->isCompatible(*pixelRecHit, *localDir, clusterShapeCache)) {
0032       LogTrace("MinBiasTracking") << "  [TripletFilter] clusShape problem" << HitInfo::getInfo(**recHit, tTopo);
0033 
0034       ok = false;
0035       break;
0036     }
0037 
0038     localDir++;
0039   }
0040 
0041   return ok;
0042 }
0043 
0044 /*****************************************************************************/
0045 bool TripletFilter::checkTrack(const vector<const TrackingRecHit*>& recHits,
0046                                const vector<GlobalVector>& globalDirs,
0047                                const TrackerTopology* tTopo,
0048                                const SiPixelClusterShapeCache& clusterShapeCache) const {
0049   bool ok = true;
0050 
0051   vector<GlobalVector>::const_iterator globalDir = globalDirs.begin();
0052   for (vector<const TrackingRecHit*>::const_iterator recHit = recHits.begin(); recHit != recHits.end(); recHit++) {
0053     const SiPixelRecHit* pixelRecHit = dynamic_cast<const SiPixelRecHit*>(*recHit);
0054 
0055     if (!pixelRecHit->isValid()) {
0056       ok = false;
0057       break;
0058     }
0059 
0060     if (!theFilter->isCompatible(*pixelRecHit, *globalDir, clusterShapeCache)) {
0061       LogTrace("MinBiasTracking") << "  [TripletFilter] clusShape problem" << HitInfo::getInfo(**recHit, tTopo);
0062 
0063       ok = false;
0064       break;
0065     }
0066 
0067     globalDir++;
0068   }
0069 
0070   return ok;
0071 }