13 const Surface & referenceSurface) :
14 theComponents(prtsComp), ftsAvailable(
false), refSurface(&referenceSurface),
20 theComponents(prtsComp), ftsAvailable(
false), refPosition(referencePosition),
38 double maxWeight = -1.;
39 RTSvector::const_iterator maxIt;
42 if ( (**it).weight() > maxWeight ) {
43 maxWeight = (**it).weight();
65 (
"MultiRefittedTS::freeTrajectoryState(): Don't know how to do that yet...");
75 (
"MultiRefittedTS::freeTrajectoryState(): Don't know how to do that yet...");
85 (
"MultiRefittedTS::freeTrajectoryState(): Don't know how to do that yet...");
96 (
"MultiRefittedTS::freeTrajectoryState(): Don't know how to do that yet...");
105 cout <<
"Asking for weight of empty MultiRefittedTS, returning zero!" << endl;
121 (
"MultiRefittedTS::stateWithNewWeight(): Can not reweight multi-state with total weight < DBL_MIN");
123 double factor = newWeight/
weight();
130 reWeightedRTSC.push_back((**it).stateWithNewWeight((**it).weight()*factor));
145 vector<TrajectoryStateOnSurface> tsosComponents;
149 tsosComponents.push_back((**it).trajectoryStateOnSurface(surface));
162 vector<TrajectoryStateOnSurface> tsosComponents;
166 tsosComponents.push_back((**it).trajectoryStateOnSurface(surface, propagator));
virtual TrajectoryStateOnSurface trajectoryStateOnSurface(const Surface &surface) const
virtual AlgebraicVectorM momentumVector() const
MultiRefittedTS(const std::vector< RefCountedRefittedTrackState > &prtsComp, const Surface &referenceSurface)
virtual double weight() const
FreeTrajectoryState * freeTrajectoryState(bool withErrors=true) const
virtual AlgebraicSymMatrixNN covariance() const
void computeFreeTrajectoryState() const
ReferenceCountingPointer< RefittedTrackState< 5 > > RefCountedRefittedTrackState
virtual AlgebraicVectorN parameters() const
virtual ReferenceCountingPointer< RefittedTrackState< 5 > > stateWithNewWeight(const double newWeight) const
ROOT::Math::SVector< double, N-2 > AlgebraicVectorM
const GlobalPoint refPosition
const SurfaceType & surface() const
ROOT::Math::SVector< double, N > AlgebraicVectorN
bool totalWeightAvailable
virtual reco::TransientTrack transientTrack() const
ROOT::Math::SMatrix< double, N, N, ROOT::Math::MatRepSym< double, N > > AlgebraicSymMatrixNN
std::vector< RefCountedRefittedTrackState > RTSvector
reco::TransientTrack build(const FreeTrajectoryState &fts) const
virtual FreeTrajectoryState freeTrajectoryState() const
virtual GlobalPoint position() const
ConstReferenceCountingPointer< Surface > refSurface