CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Attributes
TwoBodyDecayFitter Class Reference

#include <TwoBodyDecayFitter.h>

Public Member Functions

virtual TwoBodyDecayFitterclone (void) const
 
virtual const TwoBodyDecay estimate (const std::vector< reco::TransientTrack > &tracks, const TwoBodyDecayVirtualMeasurement &vm) const
 
virtual const TwoBodyDecay estimate (const std::vector< reco::TransientTrack > &tracks, const std::vector< TrajectoryStateOnSurface > &tsos, const TwoBodyDecayVirtualMeasurement &vm) const
 
const TwoBodyDecayEstimatorestimator (void) const
 
const TwoBodyDecayLinearizationPointFinderlinearizationPointFinder (void) const
 
 TwoBodyDecayFitter (const edm::ParameterSet &config)
 
 TwoBodyDecayFitter (const edm::ParameterSet &config, const LinearizationPointFinder *vf, const TwoBodyDecayLinearizationPointFinder *lpf, const TwoBodyDecayEstimator *est)
 
const LinearizationPointFindervertexFinder (void) const
 
virtual ~TwoBodyDecayFitter (void)
 

Private Types

typedef PerigeeLinearizedTrackState::RefCountedLinearizedTrackState RefCountedLinearizedTrackState
 

Private Attributes

DeepCopyPointerByClone< const TwoBodyDecayEstimatortheEstimator
 
DeepCopyPointerByClone< const TwoBodyDecayLinearizationPointFindertheLinPointFinder
 
LinearizedTrackStateFactory theLinTrackStateFactory
 
DeepCopyPointerByClone< const LinearizationPointFindertheVertexFinder
 

Detailed Description

/class TwoBodyDecayFitter

/author Edmund Widl

Definition at line 21 of file TwoBodyDecayFitter.h.

Member Typedef Documentation

◆ RefCountedLinearizedTrackState

Definition at line 48 of file TwoBodyDecayFitter.h.

Constructor & Destructor Documentation

◆ TwoBodyDecayFitter() [1/2]

TwoBodyDecayFitter::TwoBodyDecayFitter ( const edm::ParameterSet config)

Definition at line 3 of file TwoBodyDecayFitter.cc.

Referenced by clone().

DeepCopyPointerByClone< const TwoBodyDecayLinearizationPointFinder > theLinPointFinder
DeepCopyPointerByClone< const LinearizationPointFinder > theVertexFinder
Definition: config.py:1
DeepCopyPointerByClone< const TwoBodyDecayEstimator > theEstimator

◆ TwoBodyDecayFitter() [2/2]

TwoBodyDecayFitter::TwoBodyDecayFitter ( const edm::ParameterSet config,
const LinearizationPointFinder vf,
const TwoBodyDecayLinearizationPointFinder lpf,
const TwoBodyDecayEstimator est 
)

Definition at line 8 of file TwoBodyDecayFitter.cc.

12  : theVertexFinder(vf->clone()), theLinPointFinder(lpf->clone()), theEstimator(est->clone()) {}
DeepCopyPointerByClone< const TwoBodyDecayLinearizationPointFinder > theLinPointFinder
DeepCopyPointerByClone< const LinearizationPointFinder > theVertexFinder
virtual TwoBodyDecayLinearizationPointFinder * clone(void) const
virtual LinearizationPointFinder * clone() const =0
DeepCopyPointerByClone< const TwoBodyDecayEstimator > theEstimator
virtual TwoBodyDecayEstimator * clone(void) const

◆ ~TwoBodyDecayFitter()

TwoBodyDecayFitter::~TwoBodyDecayFitter ( void  )
virtual

Definition at line 14 of file TwoBodyDecayFitter.cc.

14 {}

Member Function Documentation

◆ clone()

virtual TwoBodyDecayFitter* TwoBodyDecayFitter::clone ( void  ) const
inlinevirtual

Definition at line 45 of file TwoBodyDecayFitter.h.

References TwoBodyDecayFitter().

45 { return new TwoBodyDecayFitter(*this); }
TwoBodyDecayFitter(const edm::ParameterSet &config)

◆ estimate() [1/2]

const TwoBodyDecay TwoBodyDecayFitter::estimate ( const std::vector< reco::TransientTrack > &  tracks,
const TwoBodyDecayVirtualMeasurement vm 
) const
virtual

Definition at line 16 of file TwoBodyDecayFitter.cc.

References TwoBodyDecayEstimator::estimate(), LinearizationPointFinder::getLinearizationPoint(), TwoBodyDecayLinearizationPointFinder::getLinearizationPoint(), LinearizedTrackStateFactory::linearizedTrackState(), TwoBodyDecayVirtualMeasurement::primaryMass(), TwoBodyDecayVirtualMeasurement::secondaryMass(), theEstimator, theLinPointFinder, theLinTrackStateFactory, theVertexFinder, and tracks.

Referenced by TwoBodyDecayConstraintProducer::produce(), TwoBodyDecayMomConstraintProducer::produce(), and TwoBodyDecayTrajectoryFactory::trajectories().

17  {
18  // get geometrical linearization point
20 
21  // create linearized track states
22  std::vector<RefCountedLinearizedTrackState> linTracks;
23  linTracks.push_back(theLinTrackStateFactory.linearizedTrackState(linVertex, tracks[0]));
24  linTracks.push_back(theLinTrackStateFactory.linearizedTrackState(linVertex, tracks[1]));
25 
26  // get full linearization point (geomatrical & kinematical)
27  const TwoBodyDecayParameters linPoint =
29 
30  // make the fit
31  return theEstimator->estimate(linTracks, linPoint, vm);
32 }
DeepCopyPointerByClone< const TwoBodyDecayLinearizationPointFinder > theLinPointFinder
DeepCopyPointerByClone< const LinearizationPointFinder > theVertexFinder
RefCountedLinearizedTrackState linearizedTrackState(const GlobalPoint &linP, const reco::TransientTrack &track) const override
virtual const TwoBodyDecayParameters getLinearizationPoint(const std::vector< RefCountedLinearizedTrackState > &tracks, const double primaryMass, const double secondaryMass) const
virtual TwoBodyDecay estimate(const std::vector< RefCountedLinearizedTrackState > &linTracks, const TwoBodyDecayParameters &linearizationPoint, const TwoBodyDecayVirtualMeasurement &vm) const
auto const & tracks
cannot be loose
LinearizedTrackStateFactory theLinTrackStateFactory
virtual GlobalPoint getLinearizationPoint(const std::vector< reco::TransientTrack > &) const =0
DeepCopyPointerByClone< const TwoBodyDecayEstimator > theEstimator

◆ estimate() [2/2]

const TwoBodyDecay TwoBodyDecayFitter::estimate ( const std::vector< reco::TransientTrack > &  tracks,
const std::vector< TrajectoryStateOnSurface > &  tsos,
const TwoBodyDecayVirtualMeasurement vm 
) const
virtual

Definition at line 34 of file TwoBodyDecayFitter.cc.

References TwoBodyDecayEstimator::estimate(), LinearizationPointFinder::getLinearizationPoint(), TwoBodyDecayLinearizationPointFinder::getLinearizationPoint(), LinearizedTrackStateFactory::linearizedTrackState(), TwoBodyDecayVirtualMeasurement::primaryMass(), TwoBodyDecayVirtualMeasurement::secondaryMass(), theEstimator, theLinPointFinder, theLinTrackStateFactory, theVertexFinder, and tracks.

36  {
37  // get geometrical linearization point
38  std::vector<FreeTrajectoryState> freeTrajStates;
39  freeTrajStates.push_back(*tsos[0].freeState());
40  freeTrajStates.push_back(*tsos[1].freeState());
41  GlobalPoint linVertex = theVertexFinder->getLinearizationPoint(freeTrajStates);
42 
43  // create linearized track states
44  std::vector<RefCountedLinearizedTrackState> linTracks;
45  linTracks.push_back(theLinTrackStateFactory.linearizedTrackState(linVertex, tracks[0], tsos[0]));
46  linTracks.push_back(theLinTrackStateFactory.linearizedTrackState(linVertex, tracks[1], tsos[1]));
47 
48  // get full linearization point (geomatrical & kinematical)
49  const TwoBodyDecayParameters linPoint =
51 
52  // make the fit
53  return theEstimator->estimate(linTracks, linPoint, vm);
54 }
DeepCopyPointerByClone< const TwoBodyDecayLinearizationPointFinder > theLinPointFinder
DeepCopyPointerByClone< const LinearizationPointFinder > theVertexFinder
RefCountedLinearizedTrackState linearizedTrackState(const GlobalPoint &linP, const reco::TransientTrack &track) const override
virtual const TwoBodyDecayParameters getLinearizationPoint(const std::vector< RefCountedLinearizedTrackState > &tracks, const double primaryMass, const double secondaryMass) const
virtual TwoBodyDecay estimate(const std::vector< RefCountedLinearizedTrackState > &linTracks, const TwoBodyDecayParameters &linearizationPoint, const TwoBodyDecayVirtualMeasurement &vm) const
auto const & tracks
cannot be loose
LinearizedTrackStateFactory theLinTrackStateFactory
virtual GlobalPoint getLinearizationPoint(const std::vector< reco::TransientTrack > &) const =0
DeepCopyPointerByClone< const TwoBodyDecayEstimator > theEstimator

◆ estimator()

const TwoBodyDecayEstimator* TwoBodyDecayFitter::estimator ( void  ) const
inline

Definition at line 42 of file TwoBodyDecayFitter.h.

References theEstimator.

42 { return theEstimator.operator->(); }
DeepCopyPointerByClone< const TwoBodyDecayEstimator > theEstimator

◆ linearizationPointFinder()

const TwoBodyDecayLinearizationPointFinder* TwoBodyDecayFitter::linearizationPointFinder ( void  ) const
inline

Definition at line 39 of file TwoBodyDecayFitter.h.

References theLinPointFinder.

39  {
40  return theLinPointFinder.operator->();
41  }
DeepCopyPointerByClone< const TwoBodyDecayLinearizationPointFinder > theLinPointFinder

◆ vertexFinder()

const LinearizationPointFinder* TwoBodyDecayFitter::vertexFinder ( void  ) const
inline

Definition at line 43 of file TwoBodyDecayFitter.h.

References theVertexFinder.

43 { return theVertexFinder.operator->(); }
DeepCopyPointerByClone< const LinearizationPointFinder > theVertexFinder

Member Data Documentation

◆ theEstimator

DeepCopyPointerByClone<const TwoBodyDecayEstimator> TwoBodyDecayFitter::theEstimator
private

Definition at line 52 of file TwoBodyDecayFitter.h.

Referenced by estimate(), and estimator().

◆ theLinPointFinder

DeepCopyPointerByClone<const TwoBodyDecayLinearizationPointFinder> TwoBodyDecayFitter::theLinPointFinder
private

Definition at line 51 of file TwoBodyDecayFitter.h.

Referenced by estimate(), and linearizationPointFinder().

◆ theLinTrackStateFactory

LinearizedTrackStateFactory TwoBodyDecayFitter::theLinTrackStateFactory
private

Definition at line 54 of file TwoBodyDecayFitter.h.

Referenced by estimate().

◆ theVertexFinder

DeepCopyPointerByClone<const LinearizationPointFinder> TwoBodyDecayFitter::theVertexFinder
private

Definition at line 50 of file TwoBodyDecayFitter.h.

Referenced by estimate(), and vertexFinder().