1 #ifndef RecoHI_HiTracking_HITrackingRegionForPrimaryVtxProducer_H 2 #define RecoHI_HiTracking_HITrackingRegionForPrimaryVtxProducer _H 48 double xDir = regionPSet.
getParameter<
double>(
"directionXCoord");
49 double yDir = regionPSet.
getParameter<
double>(
"directionYCoord");
50 double zDir = regionPSet.
getParameter<
double>(
"directionZCoord");
71 desc.add<
double>(
"ptMin", 0.7);
72 desc.add<
bool>(
"doVariablePtMin",
true);
73 desc.add<
double>(
"originRadius", 0.2);
74 desc.add<
double>(
"nSigmaZ", 3.0);
76 desc.add<
bool>(
"precise",
true);
77 desc.add<
bool>(
"useMultipleScattering",
false);
78 desc.add<
bool>(
"useFakeVertices",
false);
80 desc.add<
double>(
"directionXCoord", 1.0);
81 desc.add<
double>(
"directionYCoord", 1.0);
82 desc.add<
double>(
"directionZCoord", 0.0);
83 desc.add<
bool>(
"useFoundVertices",
true);
85 desc.add<
bool>(
"useFixedError",
true);
86 desc.add<
double>(
"fixedError", 3.0);
87 desc.add<
double>(
"sigmaZVertex", 3.0);
93 descriptions.
add(
"hiTrackingRegionFromClusterVtx", descRegion);
103 std::vector<const TrackingRecHit*> theChosenHits;
105 return theChosenHits.size();
114 float bb = 0.0581765;
115 float aa = 1.34306e-06;
117 float estTracks = aa * estMult * estMult + bb * estMult + cc;
119 LogTrace(
"heavyIonHLTVertexing") <<
"[HIVertexing]";
120 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: hits in the 1. layer:" << estMult <<
"]";
121 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: estimated number of tracks:" << estTracks <<
"]";
123 float regTracking = 60.;
127 float decEta = estTracks / 90.;
130 if (estTracks > regTracking) {
131 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: Regional Tracking]";
132 LogTrace(
"heavyIonHLTVertexing") <<
" [Regional Tracking: eta range: -" << etaB <<
", " << etaB <<
"]";
133 LogTrace(
"heavyIonHLTVertexing") <<
" [Regional Tracking: phi range: -" << phiB <<
", " << phiB <<
"]";
134 LogTrace(
"heavyIonHLTVertexing") <<
" [Regional Tracking: factor of decrease: " << decEta * 2.
139 float varPtCutoff = 1500;
147 std::vector<std::unique_ptr<TrackingRegion> >
result;
163 if (iV->isFake() || !iV->isValid())
170 if (estTracks > regTracking) {
177 result.push_back(std::make_unique<RectangularEtaPhiTrackingRegion>(
180 LogTrace(
"heavyIonHLTVertexing") <<
" [HIVertexing: Global Tracking]";
T getParameter(std::string const &) const
void copyDetSetRange(DSTV const &dstv, std::vector< T const *> &v, std::pair< A, B > const &sel)
edm::EDGetTokenT< SiPixelRecHitCollection > theSiPixelRecHitsToken
edm::InputTag theSiPixelRecHits
Global3DPoint GlobalPoint
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::vector< std::unique_ptr< TrackingRegion > > regions(const edm::Event &ev, const edm::EventSetup &es) const override
edm::InputTag theBeamSpotTag
bool getData(T &iHolder) const
ParameterDescriptionBase * add(U const &iLabel, T const &value)
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > theTtopoToken
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > theMSMakerToken
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
HITrackingRegionForPrimaryVtxProducer(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theFieldToken
edm::InputTag vertexCollName
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotToken
void add(std::string const &label, ParameterSetDescription const &psetDescription)
int estimateMultiplicity(const edm::Event &ev, const edm::EventSetup &es) const
edm::EDGetTokenT< reco::VertexCollection > vertexCollToken
GlobalVector theDirection
~HITrackingRegionForPrimaryVtxProducer() override=default
Global3DVector GlobalVector