54 bool setParameterErrors)
const;
96 if (tracks.size() == 2) {
98 std::vector<reco::TransientTrack> transientTracks(2);
101 transientTracks[0].
setES(setup);
104 transientTracks[1].
setES(setup);
117 edm::LogInfo(
"ReferenceTrajectories") <<
"@SUB=TwoBodyDecayTrajectoryFactory::trajectories" 118 <<
"Need 2 tracks, got " << tracks.size() <<
".\n";
134 if (tracks.size() == 2 && external.size() == 2) {
135 if (external[0].isValid() && external[1].isValid())
138 std::vector<reco::TransientTrack> transientTracks(2);
141 transientTracks[0].
setES(setup);
144 transientTracks[1].
setES(setup);
160 trajectories = this->
trajectories(setup, tracks, beamSpot);
163 edm::LogInfo(
"ReferenceTrajectories") <<
"@SUB=TwoBodyDecayTrajectoryFactory::trajectories" 164 <<
"Need 2 tracks, got " << tracks.size() <<
".\n";
175 bool setParameterErrors)
const {
182 if (!(input1.first.isValid() && input2.first.isValid()))
190 if (!trajectoryState.
isValid()) {
207 if (!valid1 || !valid2) {
221 if (setParameterErrors && tbd.
hasError())
232 double deltaX = lp1.
x() - lp2.
x();
233 double deltaY = lp1.
y() - lp2.
y();
237 double varX = le.
xx();
238 double varY = le.
yy();
T getParameter(std::string const &) const
bool hasError(void) const
bool theUseRefittedStateFlag
const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const override
Produce the trajectories.
~TwoBodyDecayTrajectoryFactory() override
MaterialEffects materialEffects(void) const
TwoBodyDecayTrajectory::ConstRecHitCollection ConstRecHitCollection
LocalPoint localPosition() const
TwoBodyDecayVirtualMeasurement VirtualMeasurement
void setParameterErrors(const AlgebraicSymMatrix &error)
const ReferenceTrajectoryCollection constructTrajectories(const ConstTrajTrackPairCollection &tracks, const TwoBodyDecay &tbd, const MagneticField *magField, const reco::BeamSpot &beamSpot, bool setParameterErrors) const
TwoBodyDecayFitter theFitter
bool theConstructTsosWithErrorsFlag
const TsosContainer & trajectoryStates(bool useRefittedState=true) const
bool match(const TrajectoryStateOnSurface &state, const TransientTrackingRecHit::ConstRecHitPointer &recHit) const
virtual const TwoBodyDecay estimate(const std::vector< reco::TransientTrack > &tracks, const TwoBodyDecayVirtualMeasurement &vm) const
U second(std::pair< T, U > const &p)
const AlgebraicSymMatrix & covariance(void) const
TwoBodyDecayTrajectoryFactory * clone() const override
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const bool allowZeroMaterial_
bool constructTsosWithErrors
void setES(const edm::EventSetup &es)
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer
TwoBodyDecayTrajectoryFactory(const edm::ParameterSet &config)
PropagationDirection propagationDirection(void) const
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
#define DEFINE_EDM_PLUGIN(factory, type, name)
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
T const * product() const
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
TwoBodyDecayTrajectoryState::TsosContainer TsosContainer
std::pair< ConstRecHitContainer, ConstRecHitContainer > ConstRecHitCollection