Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:57

0001 #ifndef Egamma_ConversionFastHelix_H_
0002 #define Egamma_ConversionFastHelix_H_
0003 
0004 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0005 #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h"
0006 #include "RecoTracker/TkSeedGenerator/interface/FastCircle.h"
0007 #include "FWCore/Framework/interface/EventSetup.h"
0008 #include "FWCore/Framework/interface/ESHandle.h"
0009 #include "MagneticField/Engine/interface/MagneticField.h"
0010 
0011 /**
0012    Generation of track parameters at a vertex using two hits and a vertex.
0013  */
0014 
0015 class ConversionFastHelix {
0016 private:
0017   typedef FreeTrajectoryState FTS;
0018 
0019 public:
0020   ConversionFastHelix(const GlobalPoint& outerHit,
0021                       const GlobalPoint& middleHit,
0022                       const GlobalPoint& aVertex,
0023                       const MagneticField* field);
0024 
0025   ~ConversionFastHelix() {}
0026 
0027   void makeHelix();
0028 
0029   bool isValid() { return validStateAtVertex; }
0030 
0031   FTS stateAtVertex();
0032 
0033   FTS helixStateAtVertex();
0034 
0035   FTS straightLineStateAtVertex();
0036 
0037 private:
0038   FTS theHelix_;
0039   bool validStateAtVertex;
0040   GlobalPoint theOuterHit;
0041   GlobalPoint theMiddleHit;
0042   GlobalPoint theVertex;
0043   FastCircle theCircle;
0044   const MagneticField* mField;
0045 };
0046 
0047 #endif  //Egamma_ConversionFastHelix_H_