35 void clear()
override;
68 trajectoryLayerEntranceString_(conf.getParameter<
std::
string>(
"trajectoryLayerEntrance")),
69 trajectoryLayerExitString_(conf.getParameter<
std::
string>(
"trajectoryLayerExit")) {
103 const std::vector<reco::PFRecHitFraction>&
fraction = clusterref->recHitFractions();
107 for (
size_t rhit = 0; rhit <
fraction.size(); ++rhit) {
126 std::vector<KDTreeNodeInfo<reco::PFRecHit const*, 2>> eltList;
133 eltList.push_back(rh1);
138 float phi = rh1.dims[1] - 2 *
M_PI;
140 eltList.push_back(rh2);
144 float phi = rh1.dims[1] + 2 *
M_PI;
146 eltList.push_back(rh3);
182 dHphi = dHphi - 2. *
M_PI;
183 else if (dHphi < -
M_PI)
184 dHphi = dHphi + 2. *
M_PI;
187 float tracketa = atHCAL.
positionREP().eta() + 0.1 * dHeta;
188 float trackphi = atHCAL.
positionREP().phi() + 0.1 * dHphi;
191 trackphi -= 2 *
M_PI;
192 else if (trackphi < -
M_PI)
193 trackphi += 2 *
M_PI;
197 double inflation = 1.;
202 std::vector<reco::PFRecHit const*>
recHits;
203 KDTreeBox trackBox(tracketa - rangeeta, tracketa + rangeeta, trackphi - rangephi, trackphi + rangephi);
208 const auto& rhrep =
recHit->positionREP();
209 const auto& corners =
recHit->getCornersREP();
211 double rhsizeeta = fabs(corners[3].
eta() - corners[1].
eta());
212 double rhsizephi = fabs(corners[3].
phi() - corners[1].
phi());
213 if (rhsizephi >
M_PI)
214 rhsizephi = 2. *
M_PI - rhsizephi;
216 double deta = fabs(rhrep.eta() - tracketa);
217 double dphi = fabs(rhrep.phi() - trackphi);
219 dphi = 2. *
M_PI - dphi;
224 for (BlockEltSet::iterator clusterIt =
ret->second.begin(); clusterIt !=
ret->second.end(); clusterIt++) {
226 int fracsNbr = clusterref->recHitFractions().size();
228 double _rhsizeeta = rhsizeeta * (1.5 + 0.5 / fracsNbr) + 0.2 * fabs(dHeta);
229 double _rhsizephi = rhsizephi * (1.5 + 0.5 / fracsNbr) + 0.2 * fabs(dHphi);
232 if (deta < (_rhsizeeta / 2.) && dphi < (_rhsizephi / 2.))
246 for (BlockEltSet::iterator jt = it->second.begin(); jt != it->second.end(); ++jt) {
252 multitracks.
linkedClusters.push_back(std::make_pair(trackphi, tracketa));
255 it->first->setMultilinks(multitracks);
261 (*it)->setIsValidMultilinks(
true);