CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoEgamma/EgammaPhotonAlgos/interface/ConversionFastHelix.h

Go to the documentation of this file.
00001 #ifndef Egamma_ConversionFastHelix_H_
00002 #define Egamma_ConversionFastHelix_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 
00011 
00016 class ConversionFastHelix {
00017 
00018 private:
00019   
00020   typedef FreeTrajectoryState FTS;
00021 
00022 public:
00023 
00024   ConversionFastHelix(const GlobalPoint& outerHit, 
00025             const GlobalPoint& middleHit,
00026             const GlobalPoint& aVertex,
00027             const MagneticField* field
00028             );
00029   
00030   ~ConversionFastHelix() {}
00031 
00032   void makeHelix();
00033   
00034 
00035   bool isValid() {return validStateAtVertex;  }
00036 
00037   FTS stateAtVertex() ;
00038 
00039   FTS helixStateAtVertex() ;
00040 
00041   FTS straightLineStateAtVertex() ;
00042 
00043 private:
00044 
00045   FTS theHelix_; 
00046   bool validStateAtVertex; 
00047   GlobalPoint theOuterHit;
00048   GlobalPoint theMiddleHit;
00049   GlobalPoint theVertex;
00050   FastCircle theCircle;
00051   const MagneticField* mField;
00052  
00053 };
00054 
00055 #endif //Egamma_ConversionFastHelix_H_
00056 
00057 
00058 
00059