22 using namespace ctfseeding;
27 theClusterShapeCacheToken(iC.consumes<
SiPixelClusterShapeCache>(cfg.getParameter<edm::InputTag>(
"clusterShapeCacheSrc")))
47 std::vector<SeedingLayerSetsHits::SeedingLayer> thirdLayers) {
78 theTracker->idToDet(detId)->toGlobal(recHit->
localPosition());
101 if (pairs.
size() == 0)
return;
107 for(
int il=0; il<
size; il++)
114 for(OrderedHitPairs::const_iterator ip = pairs.begin();
115 ip!= pairs.end(); ip++)
118 vector<const TrackingRecHit*> recHits(3);
119 vector<GlobalPoint> points(3);
121 recHits[0] = (*ip).inner()->hit();
122 recHits[1] = (*ip).outer()->hit();
129 for(
int i=0;
i<2;
i++)
134 thePrediction(region,
135 points[0],points[1], es,
139 for(
int il=0; il<
size; il++)
145 <<
" " << layer->
location() << endl;
157 vector<Hit> thirdHits = thirdHitMap[il]->
hits(phiRange.
min(),phiRange.
max());
158 typedef vector<Hit>::const_iterator IH;
160 for (IH th=thirdHits.begin(), eh=thirdHits.end(); th < eh; ++th)
163 recHits[2] = (*th)->hit();
171 vector<GlobalVector> globalDirs;
173 (points[2], recHits, globalDirs, es) ==
false)
176 cerr <<
" not compatible: multiple scattering" << endl;
201 cerr <<
" not compatible: cluster shape" << endl;
212 delete [] thirdHitMap;
PixelTripletLowPtGenerator(const edm::ParameterSet &cfg, edm::ConsumesCollector &iC)
T getParameter(std::string const &) const
std::vector< Hit > hits(float phiMin, float phiMax) const
virtual HitPairGenerator * clone() const =0
void getTracker(const edm::EventSetup &es)
virtual Location location() const =0
Which part of the detector (barrel, endcap)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet pairLayers, std::vector< SeedingLayerSetsHits::SeedingLayer > thirdLayers) override
virtual SubDetector subDetector() const =0
The type of detector (PixelBarrel, PixelEndcap, TIB, TOB, TID, TEC, CSC, DT, RPCBarrel, RPCEndcap)
TripletFilter * theFilter
HitPairGenerator * thePairGenerator
virtual unsigned int size() const
void init(const HitPairGenerator &pairs, LayerCacheType *layerCache) override
std::vector< SeedingLayerSetsHits::SeedingLayer > theLayers
virtual void hitPairs(const TrackingRegion ®, OrderedHitPairs &prs, const edm::EventSetup &es)
bool checkMultipleScattering
bool checkTrack(const std::vector< const TrackingRecHit * > &recHits, const std::vector< LocalVector > &localDirs, const TrackerTopology *tTopo, const SiPixelClusterShapeCache &clusterShapeCache)
edm::EDGetTokenT< SiPixelClusterShapeCache > theClusterShapeCacheToken
SeedingHitSet::ConstRecHitPointer Hit
BaseTrackerRecHit const * Hit
LayerCacheType * theLayerCache
T const * product() const
virtual void hitTriplets(const TrackingRegion ®ion, OrderedHitTriplets &trs, const edm::Event &ev, const edm::EventSetup &es)
GlobalPoint getGlobalPosition(const TrackingRecHit *recHit)
DetId geographicalId() const
bool isCompatibleWithMultipleScattering(GlobalPoint g3, const std::vector< const TrackingRecHit * > &h, std::vector< GlobalVector > &localDirs, const edm::EventSetup &es)
void getRanges(const DetLayer *layer, float phi[], float rz[])
list pairs
sort tag files by run number
static std::string getInfo(const DetId &id, const TrackerTopology *tTopo)
virtual LocalPoint localPosition() const =0
double nSigMultipleScattering
tuple size
Write out results.
virtual void setSeedingLayers(SeedingLayerSetsHits::SeedingLayerSet layers)=0