File indexing completed on 2024-04-06 12:29:13
0001 #ifndef VirtualKinematicParticle_H
0002 #define VirtualKinematicParticle_H
0003
0004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicParticle.h"
0005 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicStatePropagator.h"
0006 #include "RecoVertex/KinematicFitPrimitives/interface/ParticleKinematicLinearizedTrackStateFactory.h"
0007
0008
0009
0010
0011
0012
0013
0014 class VirtualKinematicParticle : public KinematicParticle {
0015 public:
0016
0017
0018
0019
0020
0021
0022
0023 VirtualKinematicParticle(const KinematicState& kineState,
0024 float& chiSquared,
0025 float& degreesOfFr,
0026 KinematicConstraint* lastConstraint,
0027 ReferenceCountingPointer<KinematicParticle> previousParticle,
0028 KinematicStatePropagator* pr);
0029
0030 ~VirtualKinematicParticle() override;
0031
0032
0033
0034
0035
0036
0037
0038
0039 bool operator==(const KinematicParticle& other) const override;
0040
0041 bool operator==(const ReferenceCountingPointer<KinematicParticle>& other) const override;
0042
0043 bool operator!=(const KinematicParticle& other) const override;
0044
0045
0046
0047
0048
0049 KinematicState stateAtPoint(const GlobalPoint& point) const override;
0050
0051
0052
0053
0054
0055
0056 RefCountedKinematicParticle refittedParticle(const KinematicState& state,
0057 float chi2,
0058 float ndf,
0059 KinematicConstraint* cons = nullptr) const override;
0060
0061
0062
0063
0064
0065 RefCountedLinearizedTrackState particleLinearizedTrackState(const GlobalPoint& point) const override;
0066
0067 private:
0068
0069 KinematicStatePropagator* propagator;
0070
0071
0072
0073 ParticleKinematicLinearizedTrackStateFactory linFactory;
0074 };
0075 #endif