59 bool setParameterErrors)
const;
83 theNSigmaCutValue( config.getParameter< double >(
"NSigmaCut" ) ),
84 theUseRefittedStateFlag( config.getParameter< bool >(
"UseRefittedState" ) ),
85 theConstructTsosWithErrorsFlag( config.getParameter< bool >(
"ConstructTsosWithErrors" ) )
101 if ( tracks.size() == 2 )
104 std::vector< reco::TransientTrack > transientTracks( 2 );
107 transientTracks[0].
setES( setup );
110 transientTracks[1].
setES( setup );
125 edm::LogInfo(
"ReferenceTrajectories" ) <<
"@SUB=TwoBodyDecayTrajectoryFactory::trajectories"
126 <<
"Need 2 tracks, got " << tracks.size() <<
".\n";
144 if ( tracks.size() == 2 && external.size() == 2 )
146 if ( external[0].isValid() && external[1].isValid() )
149 std::vector< reco::TransientTrack > transientTracks( 2 );
152 transientTracks[0].
setES( setup );
155 transientTracks[1].
setES( setup );
173 trajectories = this->
trajectories(setup, tracks, beamSpot);
178 edm::LogInfo(
"ReferenceTrajectories" ) <<
"@SUB=TwoBodyDecayTrajectoryFactory::trajectories"
179 <<
"Need 2 tracks, got " << tracks.size() <<
".\n";
191 bool setParameterErrors )
const
199 if ( !( input1.first.isValid() && input2.first.isValid() ) )
return trajectories;
206 if ( !trajectoryState.isValid() )
214 bool valid1 =
match( trajectoryState.trajectoryStates(
true ).first,
218 bool valid2 =
match( trajectoryState.trajectoryStates(
true ).second,
221 if ( !valid1 || !valid2 )
244 double deltaX = lp1.
x() - lp2.
x();
245 double deltaY = lp1.
y() - lp2.
y();
249 double varX = le.
xx();
250 double varY = le.
yy();
285 ppc.getParameter<
double >(
"PrimaryWidth" ),
286 ppc.getParameter<
double >(
"SecondaryMass" ),
287 theBeamSpot, theBeamSpotError );
T getParameter(std::string const &) const
bool theUseRefittedStateFlag
TwoBodyDecayFitter * theFitter
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
virtual const ReferenceTrajectoryCollection trajectories(const edm::EventSetup &setup, const ConstTrajTrackPairCollection &tracks, const reco::BeamSpot &beamSpot) const
Produce the trajectories.
bool theConstructTsosWithErrorsFlag
std::pair< ConstRecHitContainer, ConstRecHitContainer > ConstRecHitCollection
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
const bool isValid(void) const
const bool hasError(void) const
void produceVirtualMeasurement(const edm::ParameterSet &config)
std::pair< TrajectoryStateOnSurface, TrajectoryStateOnSurface > TsosContainer
const MaterialEffects materialEffects(void) const
void setES(const edm::EventSetup &es)
~TwoBodyDecayTrajectoryFactory()
const double secondaryMass(void) const
virtual const TrajectoryInput innermostStateAndRecHits(const ConstTrajTrackPair &track) const
AlignmentAlgorithmBase::ConstTrajTrackPairCollection ConstTrajTrackPairCollection
std::vector< ReferenceTrajectoryPtr > ReferenceTrajectoryCollection
virtual TwoBodyDecayTrajectoryFactory * clone() const
T const * product() const
const GlobalError & globalError() const
TwoBodyDecayTrajectoryFactory(const edm::ParameterSet &config)
const PropagationDirection propagationDirection(void) const
#define DEFINE_EDM_PLUGIN(factory, type, name)
std::pair< TrajectoryStateOnSurface, TransientTrackingRecHit::ConstRecHitContainer > TrajectoryInput
std::vector< TrajectoryStateOnSurface > ExternalPredictionCollection
ReferenceTrajectoryBase::ReferenceTrajectoryPtr ReferenceTrajectoryPtr
TwoBodyDecayTrajectoryState::TsosContainer TsosContainer