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) {
128 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: Global Tracking]";
129 result.push_back(std::make_unique<GlobalTrackingRegion>(
T getParameter(std::string const &) const
HITrackingRegionProducer(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
uint32_t cc[maxCellsPerHit]
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 Detector det() const
get the detector field from this detid
const_iterator end(bool update=false) const
constexpr std::array< uint8_t, layerIndexSize< TrackerTraits > > layer
edm::ESGetToken< TrackerTopology, IdealGeometryRecord > theTtopoToken
int estimateMultiplicity(const edm::Event &ev, const edm::EventSetup &es) const
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
const_iterator begin(bool update=false) const
double theOriginHalfLength
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > theMSMakerToken
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theFieldToken
Global3DVector GlobalVector