56 bool setParameterErrors)
const;
103 std::vector<reco::TransientTrack> transientTracks(2);
106 transientTracks[0].setTrackingGeometry(trackingGeometry);
109 transientTracks[1].setTrackingGeometry(trackingGeometry);
122 edm::LogInfo(
"ReferenceTrajectories") <<
"@SUB=TwoBodyDecayTrajectoryFactory::trajectories" 123 <<
"Need 2 tracks, got " <<
tracks.size() <<
".\n";
144 std::vector<reco::TransientTrack> transientTracks(2);
147 transientTracks[0].setTrackingGeometry(trackingGeometry);
150 transientTracks[1].setTrackingGeometry(trackingGeometry);
169 edm::LogInfo(
"ReferenceTrajectories") <<
"@SUB=TwoBodyDecayTrajectoryFactory::trajectories" 170 <<
"Need 2 tracks, got " <<
tracks.size() <<
".\n";
181 bool setParameterErrors)
const {
188 if (!(
input1.first.isValid() &&
input2.first.isValid()))
196 if (!trajectoryState.
isValid()) {
213 if (!valid1 || !valid2) {
225 config.hitsAreReverse =
false;
227 if (setParameterErrors && tbd.
hasError())
238 double deltaX = lp1.
x() - lp2.
x();
239 double deltaY = lp1.
y() - lp2.
y();
243 double varX = le.
xx();
244 double varY = le.
yy();
T getParameter(std::string const &) const
bool theUseRefittedStateFlag
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
~TwoBodyDecayTrajectoryFactory() override
const edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > m_globTackingToken
TwoBodyDecayTrajectory::ConstRecHitCollection ConstRecHitCollection
TwoBodyDecayVirtualMeasurement VirtualMeasurement
TwoBodyDecayFitter theFitter
bool theConstructTsosWithErrorsFlag
bool hasError(void) const
MaterialEffects materialEffects(void) const
U second(std::pair< T, U > const &p)
const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const override
Produce the trajectories.
const ReferenceTrajectoryCollection constructTrajectories(const ConstTrajTrackPairCollection &tracks, const TwoBodyDecay &tbd, const MagneticField *magField, const reco::BeamSpot &beamSpot, bool setParameterErrors) const
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
const bool allowZeroMaterial_
TwoBodyDecayTrajectoryFactory * clone() const override
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
Log< level::Info, false > LogInfo
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > m_MagFieldToken
auto const & tracks
cannot be loose
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
bool match(const TrajectoryStateOnSurface &state, const TransientTrackingRecHit::ConstRecHitPointer &recHit) const
const AlgebraicSymMatrix & covariance(void) const
std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer
config
parse the configuration file
TwoBodyDecayTrajectoryFactory(const edm::ParameterSet &config, edm::ConsumesCollector &iC)
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
const TsosContainer & trajectoryStates(bool useRefittedState=true) const
PropagationDirection propagationDirection(void) const
#define DEFINE_EDM_PLUGIN(factory, type, name)
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
virtual const TwoBodyDecay estimate(const std::vector< reco::TransientTrack > &tracks, const TwoBodyDecayVirtualMeasurement &vm) const
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
TwoBodyDecayTrajectoryState::TsosContainer TsosContainer
std::pair< ConstRecHitContainer, ConstRecHitContainer > ConstRecHitCollection