File indexing completed on 2023-03-17 11:22:05
0001 #ifndef TransientInitialStateEstimator_H
0002 #define TransientInitialStateEstimator_H
0003
0004 #include "FWCore/Framework/interface/ConsumesCollector.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006
0007 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0008 #include "RecoTracker/TransientTrackingRecHit/interface/TkClonerImpl.h"
0009
0010 #include <utility>
0011
0012 class Propagator;
0013 class GeomDet;
0014 class Trajectory;
0015 class TrackingComponentsRecord;
0016 namespace edm {
0017 class EventSetup;
0018 }
0019
0020
0021
0022
0023
0024 class TransientInitialStateEstimator {
0025 public:
0026 typedef TrajectoryStateOnSurface TSOS;
0027
0028 TransientInitialStateEstimator(const edm::ParameterSet& conf, edm::ConsumesCollector iC);
0029 void setEventSetup(const edm::EventSetup& es, const TkClonerImpl& hc);
0030
0031 std::pair<TrajectoryStateOnSurface, const GeomDet*> innerState(const Trajectory& traj, bool doBackFit = true) const;
0032
0033 private:
0034 const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorAlongToken;
0035 const edm::ESGetToken<Propagator, TrackingComponentsRecord> thePropagatorOppositeToken;
0036 const Propagator* thePropagatorAlong;
0037 const Propagator* thePropagatorOpposite;
0038 TkClonerImpl theHitCloner;
0039 const int theNumberMeasurementsForFit;
0040 };
0041
0042 #endif