32 theClusterShapeCacheToken(
54 theFilter = std::make_unique<TripletFilter>(es);
71 const std::vector<SeedingLayerSetsHits::SeedingLayer>& thirdLayers) {
89 int size = thirdLayers.size();
93 for (
int il = 0; il <
size; il++)
100 for (OrderedHitPairs::const_iterator ip = pairs.begin(); ip != pairs.end(); ip++) {
102 vector<const TrackingRecHit*>
recHits(3);
103 vector<GlobalPoint> points(3);
105 recHits[0] = (*ip).inner()->hit();
106 recHits[1] = (*ip).outer()->hit();
112 for (
int i = 0;
i < 2;
i++)
120 for (
int il = 0; il <
size; il++) {
136 vector<Hit> thirdHits = thirdHitMap[il]->
hits(phiRange.
min(), phiRange.
max());
137 typedef vector<Hit>::const_iterator IH;
139 for (IH th = thirdHits.begin(), eh = thirdHits.end(); th < eh; ++th) {
141 recHits[2] = (*th)->hit();
149 vector<GlobalVector> globalDirs;
152 cerr <<
" not compatible: multiple scattering" << endl;
174 if (!
theFilter->checkTrack(recHits, globalDirs, tTopo, *clusterShapeCache)) {
176 cerr <<
" not compatible: cluster shape" << endl;
187 delete[] thirdHitMap;
196 const std::vector<const DetLayer*>& thirdLayerDetLayer,
197 const int nThirdLayers) {
198 throw cms::Exception(
"Error") <<
"PixelTripletLowPtGenerator::hitTriplets is not implemented \n";
PixelTripletLowPtGenerator(const edm::ParameterSet &cfg, edm::ConsumesCollector &iC)
std::vector< Hit > hits(float phiMin, float phiMax) const
void getTracker(const edm::EventSetup &es)
virtual Location location() const =0
Which part of the detector (barrel, endcap)
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > m_geomToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
void hitTriplets(const TrackingRegion ®ion, OrderedHitTriplets &trs, const edm::Event &ev, const edm::EventSetup &es, const SeedingLayerSetsHits::SeedingLayerSet &pairLayers, const 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)
bool isCompatibleWithMultipleScattering(GlobalPoint g3, const std::vector< const TrackingRecHit * > &h, std::vector< GlobalVector > &localDirs, const MultipleScatteringParametrisationMaker &msmaker)
constexpr std::array< uint8_t, layerIndexSize > layer
std::unique_ptr< TripletFilter > theFilter
bool getData(T &iHolder) const
bool checkMultipleScattering
LayerCacheType * theLayerCache
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > m_magfieldToken
const TrackerGeomDet * idToDet(DetId) const override
edm::EDGetTokenT< SiPixelClusterShapeCache > theClusterShapeCacheToken
SeedingHitSet::ConstRecHitPointer Hit
BaseTrackerRecHit const * Hit
std::unique_ptr< HitPairGeneratorFromLayerPair > thePairGenerator
T getParameter(std::string const &) const
const TrackerGeometry * theTracker
GlobalPoint getGlobalPosition(const TrackingRecHit *recHit)
DetId geographicalId() const
void getRanges(const DetLayer *layer, float phi[], float rz[])
static std::string getInfo(const DetId &id, const TrackerTopology *tTopo)
virtual LocalPoint localPosition() const =0
~PixelTripletLowPtGenerator() override
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > m_msmakerToken
double nSigMultipleScattering
tuple size
Write out results.
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > m_topoToken
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > m_ttrhBuilderToken