1 #ifndef RecoHI_HiTracking_HITrackingRegionForPrimaryVtxProducer_H 2 #define RecoHI_HiTracking_HITrackingRegionForPrimaryVtxProducer _H 45 double xDir = regionPSet.
getParameter<
double>(
"directionXCoord");
46 double yDir = regionPSet.
getParameter<
double>(
"directionYCoord");
47 double zDir = regionPSet.
getParameter<
double>(
"directionZCoord");
64 desc.
add<
double>(
"ptMin", 0.7);
65 desc.
add<
bool>(
"doVariablePtMin",
true);
66 desc.
add<
double>(
"originRadius", 0.2);
67 desc.
add<
double>(
"nSigmaZ", 3.0);
69 desc.
add<
bool>(
"precise",
true);
70 desc.
add<
bool>(
"useMultipleScattering",
false);
71 desc.
add<
bool>(
"useFakeVertices",
false);
73 desc.
add<
double>(
"directionXCoord", 1.0);
74 desc.
add<
double>(
"directionYCoord", 1.0);
75 desc.
add<
double>(
"directionZCoord", 0.0);
76 desc.
add<
bool>(
"useFoundVertices",
true);
78 desc.
add<
bool>(
"useFixedError",
true);
79 desc.
add<
double>(
"fixedError", 3.0);
80 desc.
add<
double>(
"sigmaZVertex", 3.0);
86 descriptions.
add(
"hiTrackingRegionFromClusterVtx", descRegion);
99 std::vector<const TrackingRecHit*> theChosenHits;
101 return theChosenHits.size();
111 float bb = 0.0581765;
112 float aa = 1.34306e-06;
114 float estTracks = aa*estMult*estMult+bb*estMult+cc;
116 LogTrace(
"heavyIonHLTVertexing")<<
"[HIVertexing]";
117 LogTrace(
"heavyIonHLTVertexing")<<
" [HIVertexing: hits in the 1. layer:" << estMult <<
"]";
118 LogTrace(
"heavyIonHLTVertexing")<<
" [HIVertexing: estimated number of tracks:" << estTracks <<
"]";
120 float regTracking = 60.;
124 float decEta = estTracks/90.;
127 if(estTracks>regTracking) {
128 LogTrace(
"heavyIonHLTVertexing")<<
" [HIVertexing: Regional Tracking]";
129 LogTrace(
"heavyIonHLTVertexing")<<
" [Regional Tracking: eta range: -" << etaB <<
", "<< etaB <<
"]";
130 LogTrace(
"heavyIonHLTVertexing")<<
" [Regional Tracking: phi range: -" << phiB <<
", "<< phiB <<
"]";
131 LogTrace(
"heavyIonHLTVertexing")<<
" [Regional Tracking: factor of decrease: " << decEta*2. <<
"]";
135 float varPtCutoff = 1500;
138 if(estMult > 0) minpt += estMult * (
thePtMin - 0.075)/varPtCutoff;
142 std::vector<std::unique_ptr<TrackingRegion> >
result;
157 for(reco::VertexCollection::const_iterator iV=vertexCollection->begin();
158 iV != vertexCollection->end() ; iV++) {
159 if (iV->isFake() || !iV->isValid())
continue;
165 if(estTracks>regTracking) {
170 LogTrace(
"heavyIonHLTVertexing")<<
" [HIVertexing: Global Tracking]";
T getParameter(std::string const &) const
double z0() const
z coordinate
void copyDetSetRange(DSTV const &dstv, std::vector< T const * > &v, std::pair< A, B > const &sel)
edm::EDGetTokenT< SiPixelRecHitCollection > theSiPixelRecHitsToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::InputTag theSiPixelRecHits
Global3DPoint GlobalPoint
std::vector< Vertex > VertexCollection
collection of Vertex objects
~HITrackingRegionForPrimaryVtxProducer() override
edm::InputTag theBeamSpotTag
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
HITrackingRegionForPrimaryVtxProducer(const edm::ParameterSet &cfg, edm::ConsumesCollector &&iC)
edm::InputTag vertexCollName
double sigmaZ() const
sigma z
edm::EDGetTokenT< reco::BeamSpot > theBeamSpotToken
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< std::unique_ptr< TrackingRegion > > regions(const edm::Event &ev, const edm::EventSetup &es) const override
edm::EDGetTokenT< reco::VertexCollection > vertexCollToken
double y0() const
y coordinate
int estimateMultiplicity(const edm::Event &ev, const edm::EventSetup &es) const
GlobalVector theDirection
std::pair< DetId, SameLayerComparator > pxbDetIdLayerComparator(uint32_t layer) const
Global3DVector GlobalVector
double x0() const
x coordinate