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
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