33 vector<double>
errors =
pset.getParameter<vector<double> >(
"BeamSpotPositionErrors");
36 <<
"MuonUpdatorAtVertex::BeamSpotPositionErrors wrong number of parameters!!";
63 const string metname =
"Muon|RecoMuon|MuonUpdatorAtVertex";
75 <<
" This can cause a severe bug.";
84 return pair<bool, FreeTrajectoryState>(
true,
result);
107 <<
"Exception from SingleTrackVertexConstraint\n" 112 if (std::get<0>(constrainedTransientTrack))
113 if (std::get<2>(constrainedTransientTrack) <=
theChi2Cut) {
115 result.second = *std::get<1>(constrainedTransientTrack).impactPointState().freeState();
133 if (propagationResult.first) {
136 edm::LogInfo(
"Muon|RecoMuon|MuonUpdatorAtVertex") <<
"Constraint at vertex failed";
143 const string metname =
"Muon|RecoMuon|MuonUpdatorAtVertex";
152 return pair<bool, FreeTrajectoryState>(
true, tscp.
theState());
155 <<
" This can cause a severe bug.";
163 pair<FreeTrajectoryState, double>
result =
167 <<
" parameters: " <<
result.first.parameters();
169 if (
result.first.hasError())
170 return pair<bool, FreeTrajectoryState>(
true,
result.first);
static bool isInside(const GlobalPoint &)
MuonUpdatorAtVertex(const edm::ParameterSet &pset, const MuonServiceProxy *service)
Constructor.
std::tuple< bool, reco::TransientTrack, float > BTFtuple
reco::TransientTrack build(const FreeTrajectoryState &fts) const
const std::string metname
Global3DPoint GlobalPoint
GlobalError thePositionErrors
std::pair< bool, FreeTrajectoryState > update(const reco::TransientTrack &track, const reco::BeamSpot &beamSpot) const
Applies the vertex constraint.
const MuonServiceProxy * theService
BTFtuple constrain(const reco::TransientTrack &track, const GlobalPoint &priorPos, const GlobalError &priorError) const
std::pair< bool, FreeTrajectoryState > propagateWithUpdate(const TrajectoryStateOnSurface &tsos, const reco::BeamSpot &beamSpot) const
Propagate to the 2D-PCA and apply the vertex constraint.
GlobalPoint globalPosition() const
TransientTrackFromFTSFactory theTransientTrackFactory
std::pair< bool, FreeTrajectoryState > propagateToNominalLine(const TrajectoryStateOnSurface &tsos) const
Propagate the state to the 2D-PCA (nominal CMS axis)
FTS const & trackStateAtPCA() const
std::pair< bool, FreeTrajectoryState > propagate(const TrajectoryStateOnSurface &tsos, const reco::BeamSpot &beamSpot) const
Propagate the state to the 2D-PCA.
Log< level::Info, false > LogInfo
const FreeTrajectoryState & theState() const
virtual ~MuonUpdatorAtVertex()
Destructor.
FreeTrajectoryState const * freeState(bool withErrors=true) const
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
SingleTrackVertexConstraint theConstrictor
Log< level::Warning, false > LogWarning
std::string thePropagatorName
const MuonServiceProxy * theService