00001 #ifndef VirtualKinematicParticleFactory_H 00002 #define VirtualKinematicParticleFactory_H 00003 00004 #include "RecoVertex/KinematicFitPrimitives/interface/TrackKinematicStatePropagator.h" 00005 #include "RecoVertex/KinematicFitPrimitives/interface/TransientTrackKinematicStateBuilder.h" 00006 #include "RecoVertex/KinematicFitPrimitives/interface/VirtualKinematicParticle.h" 00007 #include "RecoVertex/KinematicFitPrimitives/interface/RefCountedKinematicParticle.h" 00008 00009 class VirtualKinematicParticleFactory 00010 { 00011 public: 00012 00016 VirtualKinematicParticleFactory(); 00017 00021 VirtualKinematicParticleFactory(KinematicStatePropagator * pr); 00022 00026 ~VirtualKinematicParticleFactory() 00027 {delete propagator;} 00028 00033 RefCountedKinematicParticle particle(const KinematicState& kineState, float& chiSquared, 00034 float& degreesOfFr, ReferenceCountingPointer<KinematicParticle> previousParticle, 00035 KinematicConstraint * lastConstraint = 0)const; 00036 private: 00037 00038 KinematicStatePropagator * propagator; 00039 const TransientTrackKinematicStateBuilder builder; 00040 00041 }; 00042 #endif