32 theRPCInTheFit(parameterSet.getParameter<
bool>(
"RefitRPCHits")),
33 theDoPredictionsOnly(parameterSet.getParameter<
bool>(
"DoPredictionsOnly")),
34 theRefitDirection(parameterSet.getParameter<
string>(
"RefitDirection")),
35 theFitterName(parameterSet.getParameter<
string>(
"Fitter")),
36 theSmootherName(parameterSet.getParameter<
string>(
"Smoother")),
38 theTrackerRecHitBuilderName(parameterSet.getParameter<
string>(
"TrackerRecHitBuilder")),
39 theMuonRecHitBuilderName(parameterSet.getParameter<
string>(
"MuonRecHitBuilder")),
40 theMTDRecHitBuilderName(parameterSet.getParameter<
string>(
"MTDRecHitBuilder"))
81 LogTrace(metname) <<
"Tracking Component changed!";
89 LogTrace(metname) <<
"GlobalTrackingGeometry changed!";
97 LogTrace(metname) <<
"Magnetic Field changed!";
106 LogTrace(metname) <<
"TransientRecHitRecord changed!";
132 if((*hit)->isValid()) {
134 result.emplace_back((**hit).cloneForFit(*tkbuilder->geometry()->idToDet( (**hit).geographicalId() ) ) );
135 }
else if ( (*hit)->geographicalId().det() ==
DetId::Muon ){
137 LogTrace(
"Reco|TrackingTools|TrackTransformer") <<
"RPC Rec Hit discarged";
142 (*hit)->geographicalId().subdetId() ==
FastTime ) {
144 else throw cms::Exception(
"TrackTransformer") <<
"MTD hit encountered but MTD not available!";
156 if (!recHits.empty()){
161 auto rFirst = first.
mag2();
162 auto rLast = last.
mag2();
166 LogDebug(
"Reco|TrackingTools|TrackTransformer") <<
"Impossible to determine the rechits order" <<endl;
179 return transform(track, recHitsForReFit);
189 if(recHitsForReFit.size() < 2)
return vector<Trajectory>();
223 LogTrace(metname) <<
"RH order (0-insideOut, 1-outsideIn): " << recHitsOrder;
234 LogTrace(metname) <<
"P (0-insideOut, 1-outsideIn): " <<
p;
235 LogTrace(metname) <<
"FD (0-OM, 1-AM, 2-ANY): " << propagationDirection;
243 reverse(recHitsForReFit.begin(),recHitsForReFit.end());}
272 LogTrace(metname)<<
"Error wrong initial state!"<<endl;
273 return vector<Trajectory>();
278 if(recHitsForReFit.front()->geographicalId() !=
DetId(innerId)){
279 LogTrace(metname)<<
"Propagation occured"<<endl;
282 LogTrace(metname)<<
"Propagation error!"<<endl;
283 return vector<Trajectory>();
290 for(
auto const &
hit : recHitsForReFit) {
294 return vector<Trajectory>(1, aTraj);
300 if(trajectories.empty()){
301 LogTrace(metname)<<
"No Track refitted!"<<endl;
305 auto const & trajectoryBW = trajectories.front();
307 auto const & trajectoriesSM =
theSmoother->trajectories(trajectoryBW);
309 if(trajectoriesSM.empty()){
310 LogTrace(metname)<<
"No Track smoothed!"<<endl;
313 return trajectoriesSM;
PropagationDirection propagationDirection() const
const std::string metname
GeometricalDirection geometricalDirection() const
Global3DPoint GlobalPoint
def setup(process, global_tag, zero_tesla=False)
GlobalPoint globalPosition() const
TrajectoryStateOnSurface innermostMeasurementState() const
virtual TrajectorySmoother * clone() const =0
virtual std::unique_ptr< TrajectoryFitter > clone() const =0
const SurfaceType & surface() const
unsigned int outerDetId() const
DetId of the detector on which surface the outermost state is located.
TrajectoryStateOnSurface outermostMeasurementState() const
ParameterDescriptionBase * add(U const &iLabel, T const &value)
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
trackingRecHit_iterator recHitsEnd() const
last iterator to RecHits
std::vector< ConstRecHitPointer > ConstRecHitContainer
const Track & track() const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
GlobalVector globalMomentum() const
static int position[264][3]
const GeomDet * idToDet(DetId) const override
unsigned int innerDetId() const
DetId of the detector on which surface the innermost state is located.
T const * product() const
void push(const TrajectoryMeasurement &tm)
trackingRecHit_iterator recHitsBegin() const
first iterator to RecHits
ParameterSet const & parameterSet(Provenance const &provenance)