Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:21:52

0001 ///=== Create requested track fitter
0002 
0003 #include "L1Trigger/TrackFindingTMTT/interface/TrackFitFactory.h"
0004 #include "L1Trigger/TrackFindingTMTT/interface/Settings.h"
0005 #include "L1Trigger/TrackFindingTMTT/interface/ChiSquaredFit4.h"
0006 #include "L1Trigger/TrackFindingTMTT/interface/KFParamsComb.h"
0007 #include "L1Trigger/TrackFindingTMTT/interface/SimpleLR4.h"
0008 #ifdef USE_HLS
0009 #include "L1Trigger/TrackFindingTMTT/interface/HLS/KFParamsCombCallHLS.h"
0010 #endif
0011 #include "FWCore/Utilities/interface/Exception.h"
0012 
0013 using namespace std;
0014 
0015 namespace tmtt {
0016 
0017   namespace trackFitFactory {
0018 
0019     std::unique_ptr<TrackFitGeneric> create(const std::string& fitterName, const Settings* settings) {
0020       if (fitterName == "ChiSquaredFit4") {
0021         return std::make_unique<ChiSquaredFit4>(settings, 4);
0022       } else if (fitterName == "KF4ParamsComb") {
0023         return std::make_unique<KFParamsComb>(settings, 4, fitterName);
0024       } else if (fitterName == "KF5ParamsComb") {
0025         return std::make_unique<KFParamsComb>(settings, 5, fitterName);
0026       } else if (fitterName == "SimpleLR4") {
0027         return std::make_unique<SimpleLR4>(settings);
0028 #ifdef USE_HLS
0029       } else if (fitterName == "KF4ParamsCombHLS") {
0030         return std::make_unique<KFParamsCombCallHLS>(settings, 4, fitterName);
0031       } else if (fitterName == "KF5ParamsCombHLS") {
0032         return std::make_unique<KFParamsCombCallHLS>(settings, 5, fitterName);
0033 #endif
0034       } else {
0035         throw cms::Exception("BadConfig")
0036             << "TrackFitFactory: ERROR you requested unknown track fitterName: " << fitterName;
0037       }
0038     }
0039 
0040   }  // namespace trackFitFactory
0041 
0042 }  // namespace tmtt