File indexing completed on 2024-04-06 12:29:13
0001 #ifndef VirtualKinematicParticleFactory_H
0002 #define VirtualKinematicParticleFactory_H
0003
0004 #include "RecoVertex/KinematicFitPrimitives/interface/TrackKinematicStatePropagator.h"
0005 #include "RecoVertex/KinematicFitPrimitives/interface/TransientTrackKinematicStateBuilder.h"
0006 #include "RecoVertex/KinematicFitPrimitives/interface/VirtualKinematicParticle.h"
0007 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicParticle.h"
0008
0009 class VirtualKinematicParticleFactory {
0010 public:
0011
0012
0013
0014 VirtualKinematicParticleFactory();
0015
0016
0017
0018
0019 VirtualKinematicParticleFactory(KinematicStatePropagator* pr);
0020
0021
0022
0023
0024 ~VirtualKinematicParticleFactory() { delete propagator; }
0025
0026
0027
0028
0029
0030 RefCountedKinematicParticle particle(const KinematicState& kineState,
0031 float& chiSquared,
0032 float& degreesOfFr,
0033 ReferenceCountingPointer<KinematicParticle> previousParticle,
0034 KinematicConstraint* lastConstraint = nullptr) const;
0035
0036 private:
0037 KinematicStatePropagator* propagator;
0038 const TransientTrackKinematicStateBuilder builder;
0039 };
0040 #endif