CMS 3D CMS Logo

TwoBodyDecayTrajectoryFactory.h

Go to the documentation of this file.
00001 #ifndef Alignment_ReferenceTrajectories_TwoParticleEventTrajectoryFactory_h
00002 #define Alignment_ReferenceTrajectories_TwoParticleEventTrajectoryFactory_h
00003 
00004 #include "Alignment/ReferenceTrajectories/interface/TrajectoryFactoryBase.h"
00005 #include "Alignment/ReferenceTrajectories/interface/TwoBodyDecayTrajectory.h"
00006 
00007 #include "Alignment/TwoBodyDecay/interface/TwoBodyDecayFitter.h"
00008 
00009 
00010 class TwoBodyDecayTrajectoryFactory : public TrajectoryFactoryBase
00011 {
00012 
00013 public:
00014 
00015   typedef TwoBodyDecayVirtualMeasurement VirtualMeasurement;
00016   typedef TwoBodyDecayTrajectoryState::TsosContainer TsosContainer;
00017   typedef TwoBodyDecayTrajectory::ConstRecHitCollection ConstRecHitCollection;
00018 
00019   TwoBodyDecayTrajectoryFactory( const edm::ParameterSet & config );
00020   ~TwoBodyDecayTrajectoryFactory( void ) {}
00021 
00023   virtual const ReferenceTrajectoryCollection trajectories( const edm::EventSetup & setup,
00024                                                             const ConstTrajTrackPairCollection & tracks ) const;
00025 
00026   virtual const ReferenceTrajectoryCollection trajectories( const edm::EventSetup& setup,
00027                                                             const ConstTrajTrackPairCollection& tracks,
00028                                                             const ExternalPredictionCollection& external ) const;
00029 
00030   virtual TwoBodyDecayTrajectoryFactory* clone( void ) const { return new TwoBodyDecayTrajectoryFactory( *this ); }
00031 
00032 protected:
00033 
00034   const ReferenceTrajectoryCollection constructTrajectories( const ConstTrajTrackPairCollection& tracks,
00035                                                              const TwoBodyDecay& tbd,
00036                                                              const MagneticField* magField,
00037                                                              bool setParameterErrors ) const;
00038 
00039   bool match( const TrajectoryStateOnSurface& state,
00040               const TransientTrackingRecHit::ConstRecHitPointer& recHit ) const;
00041     
00042   void produceVirtualMeasurement( const edm::ParameterSet & config );
00043 
00044   VirtualMeasurement theVM;
00045   GlobalPoint theBeamSpot;
00046   GlobalError theBeamSpotError;
00047 
00048   TwoBodyDecayFitter* theFitter;
00049 
00050   double theNSigmaCutValue;
00051   bool theUseRefittedStateFlag;
00052   bool theConstructTsosWithErrorsFlag;
00053 
00054 };
00055 
00056 
00057 #endif

Generated on Tue Jun 9 17:24:59 2009 for CMSSW by  doxygen 1.5.4