File indexing completed on 2024-04-06 12:24:07
0001 #ifndef RecoAlgos_CandKalmanVertexFitter_h
0002 #define RecoAlgos_CandKalmanVertexFitter_h
0003 #include "CommonTools/UtilAlgos/interface/EventSetupInitTrait.h"
0004 #include "PhysicsTools/RecoUtils/interface/CandCommonVertexFitter.h"
0005 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0006 #include "FWCore/Framework/interface/ESHandle.h"
0007 #include "FWCore/Framework/interface/EventSetup.h"
0008
0009 namespace reco {
0010 namespace modules {
0011 template <typename Fitter>
0012 struct CandVertexFitterEventSetupInit {
0013 explicit CandVertexFitterEventSetupInit(edm::ConsumesCollector iC) : magToken_(iC.esConsumes()) {}
0014 void init(CandCommonVertexFitter<Fitter>& fitter, const edm::Event& evt, const edm::EventSetup& es) {
0015 fitter.set(&es.getData(magToken_));
0016 }
0017 edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> magToken_;
0018 };
0019
0020 template <typename Fitter>
0021 struct EventSetupInit<CandCommonVertexFitter<Fitter> > {
0022 typedef CandVertexFitterEventSetupInit<Fitter> type;
0023 };
0024 }
0025 }
0026
0027 #endif