File indexing completed on 2023-03-31 23:02:12
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 }