44 theTkRecHitBuildToken(
46 theMuonRecHitBuildToken(
66 LogTrace(metname) <<
"Tracking Component changed!";
75 LogTrace(metname) <<
"GlobalTrackingGeometry changed!";
83 LogTrace(metname) <<
"Magnetic Field changed!";
92 LogTrace(metname) <<
"TransientRecHitRecord changed!";
103 bool printout =
false;
111 if ((*hit)->isValid())
112 if ((*hit)->geographicalId().det() ==
DetId::Muon) {
113 if ((*hit)->geographicalId().subdetId() == 3 && !
theRPCInTheFit) {
114 LogTrace(
"Reco|TrackingTools|TrackTransformer") <<
"RPC Rec Hit discarged";
118 DetId hitId = staHits.back()->geographicalId();
120 float gpy = glbpoint.
y();
121 float gpz = glbpoint.
z();
124 if (gpy > 0 && gpz > 0)
126 else if (gpy > 0 && gpz < 0)
128 else if (gpy < 0 && gpz < 0)
130 else if (gpy < 0 && gpz > 0)
152 bool doReverse = staHits.front()->globalPosition().y() > 0 ?
true :
false;
163 reverse(staHits.begin(), staHits.end());
166 copy(staHits.begin(), staHits.end(), back_inserter(tkHits));
177 for (TransientTrackingRecHit::ConstRecHitContainer::const_iterator
hit = tkHits.begin();
hit != tkHits.end();
179 DetId hitId = (*hit)->geographicalId();
192 LogTrace(
"TrackFitters") <<
" UNKNOWN MUON HIT TYPE ";
311 if ((*hit)->isValid())
312 if ((*hit)->geographicalId().det() ==
DetId::Muon) {
313 if ((*hit)->geographicalId().subdetId() == 3 && !
theRPCInTheFit) {
314 LogTrace(
"Reco|TrackingTools|TrackTransformer") <<
"RPC Rec Hit discarged";
318 DetId hitId = staHits.back()->geographicalId();
320 float gpy = glbpoint.
y();
321 float gpz = glbpoint.
z();
324 if (gpy > 0 && gpz > 0) {
327 }
else if (gpy > 0 && gpz < 0) {
330 }
else if (gpy < 0 && gpz < 0) {
333 }
else if (gpy < 0 && gpz > 0) {
337 return vector<Trajectory>();
341 return vector<Trajectory>();
344 return vector<Trajectory>();
346 return vector<Trajectory>();
348 return vector<Trajectory>();
350 return vector<Trajectory>();
352 return vector<Trajectory>();
354 return vector<Trajectory>();
356 bool doReverse =
false;
368 reverse(staHits.begin(), staHits.end());
371 copy(staHits.begin(), staHits.end(), back_inserter(recHitsForReFit));
379 if (recHitsForReFit.size() < 2)
380 return vector<Trajectory>();
382 bool up = recHitsForReFit.back()->globalPosition().y() > 0 ?
true :
false;
385 float sumdy =
SumDy(recHitsForReFit);
392 LogTrace(metname) <<
"Prop Dir: " << propagationDirection <<
" FirstId " << innerId <<
" firstTSOS " << firstTSOS;
396 if (recHitsForReFit.front()->geographicalId() !=
DetId(innerId)) {
397 LogTrace(metname) <<
"Propagation occurring" << endl;
398 firstTSOS =
propagator(up, quadrant, sumdy)->propagate(firstTSOS, recHitsForReFit.front()->det()->surface());
399 LogTrace(metname) <<
"Final destination: " << recHitsForReFit.front()->det()->surface().position() << endl;
400 if (!firstTSOS.isValid()) {
401 std::cout <<
"Propagation error! Dumping RecHits..." << std::endl;
403 for (TransientTrackingRecHit::ConstRecHitContainer::const_iterator
hit = recHitsForReFit.begin();
404 hit != recHitsForReFit.end();
406 DetId hitId = (*hit)->geographicalId();
414 LogTrace(metname) <<
"Propagation error!" << endl;
415 return vector<Trajectory>();
421 if (trajectories.empty()) {
422 LogTrace(metname) <<
"No Track refitted!" << endl;
423 return vector<Trajectory>();
426 Trajectory const& trajectoryBW = trajectories.front();
428 vector<Trajectory> trajectoriesSM =
smoother(up, quadrant, sumdy)->trajectories(trajectoryBW);
430 if (trajectoriesSM.empty()) {
431 LogTrace(metname) <<
"No Track smoothed!" << endl;
434 return trajectoriesSM;
445 std::vector<float> py;
446 std::vector<float> pz;
452 for (TransientTrackingRecHit::ConstRecHitContainer::const_iterator
hit = tkHits.begin();
hit != tkHits.end(); ++
hit) {
453 DetId hitId = (*hit)->geographicalId();
458 float y2 = glbpoint.
y();
459 float z2 = glbpoint.
z();
501 std::vector<float> py;
502 std::vector<float> pz;
508 for (TransientTrackingRecHit::ConstRecHitContainer::const_iterator
hit = tkHits.begin();
hit != tkHits.end(); ++
hit) {
509 DetId hitId = (*hit)->geographicalId();
514 float y2 = glbpoint.
y();
515 float z2 = glbpoint.
z();
const std::string metname
int quadrant(const DetId &detid, const TrackerTopology *tTopo_, bool phase_)
TrajectoryStateOnSurface innermostMeasurementState() const
ParameterSet const & parameterSet(StableProvenance const &provenance, ProcessHistory const &history)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
unsigned int outerDetId() const
DetId of the detector on which surface the outermost state is located.
TrajectoryStateOnSurface outermostMeasurementState() const
trackingRecHit_iterator recHitsEnd() const
last iterator to RecHits
std::vector< ConstRecHitPointer > ConstRecHitContainer
const Track & track() const
T getParameter(std::string const &) const
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
unsigned int innerDetId() const
DetId of the detector on which surface the innermost state is located.
trackingRecHit_iterator recHitsBegin() const
first iterator to RecHits
constexpr Detector det() const
get the detector field from this detid