CMS 3D CMS Logo

DualReferenceTrajectory.h

Go to the documentation of this file.
00001 #ifndef Alignment_ReferenceTrajectories_DualReferenceTrajectory_H
00002 #define Alignment_ReferenceTrajectories_DualReferenceTrajectory_H
00003 
00029 #include "Alignment/ReferenceTrajectories/interface/ReferenceTrajectoryBase.h"
00030 #include "DataFormats/TrajectorySeed/interface/PropagationDirection.h"
00031 
00032 class ReferenceTrajectory;
00033 
00034 
00035 class DualReferenceTrajectory : public ReferenceTrajectoryBase
00036 {
00037 
00038 public:
00039 
00040   typedef TransientTrackingRecHit::ConstRecHitContainer ConstRecHitContainer;
00041 
00042   DualReferenceTrajectory( const TrajectoryStateOnSurface &referenceTsos,
00043                            const ConstRecHitContainer &forwardRecHits,
00044                            const ConstRecHitContainer &backwardRecHits,
00045                            const MagneticField *magField,
00046                            MaterialEffects materialEffects = combined, 
00047                            PropagationDirection propDir = alongMomentum,
00048                            double mass = 0.10565836 );
00049 
00050   virtual ~DualReferenceTrajectory() {}
00051 
00052   virtual DualReferenceTrajectory* clone() const { return new DualReferenceTrajectory(*this); }
00053 
00054 protected:
00055 
00056   DualReferenceTrajectory( unsigned int nPar = 0, unsigned int nHits = 0 );
00057 
00060   virtual bool construct(const TrajectoryStateOnSurface &referenceTsos, 
00061                          const ConstRecHitContainer &forwardRecHits,
00062                          const ConstRecHitContainer &backwardRecHits,
00063                          double mass, MaterialEffects materialEffects,
00064                          const PropagationDirection propDir,
00065                          const MagneticField *magField);
00066 
00067   virtual ReferenceTrajectory* construct(const TrajectoryStateOnSurface &referenceTsos, 
00068                                          const ConstRecHitContainer &recHits,
00069                                          double mass, MaterialEffects materialEffects,
00070                                          const PropagationDirection propDir,
00071                                          const MagneticField *magField) const;
00072 
00073   virtual AlgebraicVector extractParameters(const TrajectoryStateOnSurface &referenceTsos) const;
00074 
00075   inline const PropagationDirection oppositeDirection( const PropagationDirection propDir ) const
00076   { return ( propDir == anyDirection ) ? anyDirection : ( ( propDir == alongMomentum ) ? oppositeToMomentum : alongMomentum ); }
00077 
00078 };
00079 
00080 #endif

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