File indexing completed on 2024-04-06 12:24:57
0001
0002 #include "RecoEgamma/EgammaPhotonAlgos/interface/ConversionTrackFinder.h"
0003
0004 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0005 #include "RecoTracker/Record/interface/CkfComponentsRecord.h"
0006 #include "RecoTracker/CkfPattern/interface/TransientInitialStateEstimator.h"
0007 #include "RecoTracker/TransientTrackingRecHit/interface/TkTransientTrackingRecHitBuilder.h"
0008
0009
0010 #include "TrackingTools/KalmanUpdators/interface/KFUpdator.h"
0011
0012
0013
0014 #include <sstream>
0015
0016 ConversionTrackFinder::ConversionTrackFinder(const edm::ParameterSet& conf,
0017 const BaseCkfTrajectoryBuilder* trajectoryBuilder,
0018 edm::ConsumesCollector iC)
0019 : theCkfTrajectoryBuilder_(trajectoryBuilder),
0020 theInitialState_(new TransientInitialStateEstimator(
0021 conf.getParameter<edm::ParameterSet>("TransientInitialStateEstimatorParameters"), iC)),
0022 theTrackerGeom_(nullptr),
0023 theUpdator_(nullptr),
0024 thePropagator_(nullptr),
0025 theMeasurementTrackerToken_(iC.esConsumes(edm::ESInputTag("", theMeasurementTrackerName_))),
0026 theTrackerGeomToken_(iC.esConsumes()),
0027 thePropagatorToken_(iC.esConsumes(edm::ESInputTag("", "AnyDirectionAnalyticalPropagator")))
0028
0029 {
0030
0031 useSplitHits_ = conf.getParameter<bool>("useHitsSplitting");
0032 theMeasurementTrackerName_ = conf.getParameter<std::string>("MeasurementTrackerName");
0033 }
0034
0035 ConversionTrackFinder::~ConversionTrackFinder() {}
0036
0037 void ConversionTrackFinder::setEventSetup(const edm::EventSetup& es) {
0038 theMeasurementTracker_ = &es.getData(theMeasurementTrackerToken_);
0039
0040 theTrackerGeom_ = &es.getData(theTrackerGeomToken_);
0041
0042 thePropagator_ = es.getHandle(thePropagatorToken_);
0043 theInitialState_->setEventSetup(
0044 es, static_cast<TkTransientTrackingRecHitBuilder const*>(theCkfTrajectoryBuilder_->hitBuilder())->cloner());
0045 }