1 #ifndef RecoHI_HiTracking_HITrackingRegionProducer_H
2 #define RecoHI_HiTracking_HITrackingRegionProducer_H
32 double xPos = regionPSet.
getParameter<
double>(
"originXPos");
33 double yPos = regionPSet.
getParameter<
double>(
"originYPos");
34 double zPos = regionPSet.
getParameter<
double>(
"originZPos");
35 double xDir = regionPSet.
getParameter<
double>(
"directionXCoord");
36 double yDir = regionPSet.
getParameter<
double>(
"directionYCoord");
37 double zDir = regionPSet.
getParameter<
double>(
"directionZCoord");
61 recHitIdIteratorEnd = recHitColl->end();
62 recHitIdIterator != recHitIdIteratorEnd;
66 unsigned int detType = detId.
det();
67 unsigned int subid = detId.
subdetId();
69 unsigned int layer = 0;
70 layer = tTopo.pxbLayer(detId);
71 if (detType == 1 && subid == 1 && layer == 1) {
72 numRecHits += hits.
size();
83 float aa = 1.90935e-04;
84 float bb = -2.90167e-01;
85 float cc = 3.86125e+02;
87 float estTracks = aa * estMult * estMult + bb * estMult + cc;
89 LogTrace(
"heavyIonHLTVertexing") <<
"[HIVertexing]";
90 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: hits in the 1. layer:" << estMult <<
"]";
91 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: estimated number of tracks:" << estTracks <<
"]";
93 float regTracking = 400.;
97 float decEta = estTracks / 600.;
100 if (estTracks > regTracking) {
101 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: Regional Tracking]";
102 LogTrace(
"heavyIonHLTVertexing") <<
" [Regional Tracking: eta range: -" << etaB <<
", " << etaB <<
"]";
103 LogTrace(
"heavyIonHLTVertexing") <<
" [Regional Tracking: phi range: -" << phiB <<
", " << phiB <<
"]";
104 LogTrace(
"heavyIonHLTVertexing") <<
" [Regional Tracking: factor of decrease: " << decEta * 2.
109 std::vector<std::unique_ptr<TrackingRegion> >
result;
110 if (estTracks > regTracking) {
117 result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(
theDirection,
128 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: Global Tracking]";
129 result.push_back(std::make_unique<GlobalTrackingRegion>(
int estimateMultiplicity(const edm::Event &ev, const edm::EventSetup &es) const
HITrackingRegionProducer(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< SiPixelRecHitCollection > theSiPixelRecHitsToken
std::vector< std::unique_ptr< TrackingRegion > > regions(const edm::Event &ev, const edm::EventSetup &es) const override
edm::InputTag theSiPixelRecHits
Global3DPoint GlobalPoint
~HITrackingRegionProducer() override=default
GlobalVector theDirection
constexpr std::array< uint8_t, layerIndexSize > layer
bool getData(T &iHolder) const
edm::ESGetToken< TrackerTopology, IdealGeometryRecord > theTtopoToken
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
double theOriginHalfLength
T getParameter(std::string const &) const
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > theMSMakerToken
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theFieldToken
Global3DVector GlobalVector
constexpr Detector det() const
get the detector field from this detid