CMS 3D CMS Logo

FastHelix.h

Go to the documentation of this file.
00001 #ifndef TR_FastHelix_H_
00002 #define TR_FastHelix_H_
00003 
00004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00005 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
00006 #include "RecoTracker/TkSeedGenerator/interface/FastCircle.h"
00007 #include "FWCore/Framework/interface/EventSetup.h"
00008 #include "FWCore/Framework/interface/ESHandle.h"
00009 #include "MagneticField/Engine/interface/MagneticField.h"
00010 // You don't really want to know why the rest does not compile on Sun 
00011 // whthout this method, and why it compiles with it. 
00012 inline GlobalPoint sun_bullshit( const GlobalPoint point) {
00013   return point;
00014 }
00015 
00031 class FastHelix {
00032 
00033 private:
00034   
00035   typedef FreeTrajectoryState FTS;
00036 
00037 public:
00038 
00039   FastHelix(const GlobalPoint& outerHit, 
00040             const GlobalPoint& middleHit,
00041             const GlobalPoint& aVertex,
00042             const edm::EventSetup& iSetup);
00043   
00044   ~FastHelix() {}
00045   
00046   bool isValid() const {return theCircle.isValid();}
00047 
00048   FTS stateAtVertex() const;
00049 
00050   FTS helixStateAtVertex() const;
00051 
00052   FTS straightLineStateAtVertex() const;
00053 
00054 private:
00055   
00056   GlobalPoint theOuterHit;
00057   GlobalPoint theMiddleHit;
00058   GlobalPoint theVertex;
00059   FastCircle theCircle;
00060   edm::ESHandle<MagneticField> pSetup;
00061   GlobalVector tesla0;
00062 };
00063 
00064 #endif //TR_FastHelix_H_
00065 
00066 
00067 
00068 

Generated on Tue Jun 9 17:45:56 2009 for CMSSW by  doxygen 1.5.4