Back to home page

Project CMSSW displayed by LXR

 
 

    


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  * Factory constructor taking a KinematicStatePropagator
0013  */
0014   VirtualKinematicParticleFactory();
0015 
0016   /**
0017  * Factory constructor taking a KinematicStatePropagator
0018  */
0019   VirtualKinematicParticleFactory(KinematicStatePropagator* pr);
0020 
0021   /**
0022  * Default destructor
0023  */
0024   ~VirtualKinematicParticleFactory() { delete propagator; }
0025 
0026   /**
0027  * Method building a particle out of new created kinematic state,
0028  * chi2, number of degrees of freedom and history information
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