Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-07 04:37:30

0001 #ifndef RecoHGCal_TICL_LinkingAlgoBase_H__
0002 #define RecoHGCal_TICL_LinkingAlgoBase_H__
0003 
0004 #include <vector>
0005 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0006 #include "FWCore/Framework/interface/Event.h"
0007 #include "FWCore/Framework/interface/EventSetup.h"
0008 #include "DataFormats/HGCalReco/interface/Trackster.h"
0009 #include "DataFormats/HGCalReco/interface/TICLCandidate.h"
0010 #include "DataFormats/TrackReco/interface/Track.h"
0011 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0012 #include "DataFormats/MuonReco/interface/Muon.h"
0013 #include "MagneticField/Engine/interface/MagneticField.h"
0014 #include "TrackingTools/GeomPropagators/interface/Propagator.h"
0015 #include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h"
0016 #include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h"
0017 
0018 namespace edm {
0019   class Event;
0020   class EventSetup;
0021 }  // namespace edm
0022 
0023 namespace ticl {
0024   class LinkingAlgoBase {
0025   public:
0026     LinkingAlgoBase(const edm::ParameterSet& conf) : algo_verbosity_(conf.getParameter<int>("algo_verbosity")) {}
0027 
0028     virtual ~LinkingAlgoBase() {}
0029 
0030     virtual void initialize(const HGCalDDDConstants* hgcons,
0031                             const hgcal::RecHitTools rhtools,
0032                             const edm::ESHandle<MagneticField> bfieldH,
0033                             const edm::ESHandle<Propagator> propH) = 0;
0034 
0035     virtual void linkTracksters(const edm::Handle<std::vector<reco::Track>> tkH,
0036                                 const edm::Handle<edm::ValueMap<float>> tkTime_h,
0037                                 const edm::Handle<edm::ValueMap<float>> tkTimeErr_h,
0038                                 const edm::Handle<edm::ValueMap<float>> tkTimeQual_h,
0039                                 const std::vector<reco::Muon>& muons,
0040                                 const edm::Handle<std::vector<Trackster>> tsH,
0041                                 const bool useMTDTiming,
0042                                 std::vector<TICLCandidate>& resultTracksters,
0043                                 std::vector<TICLCandidate>& resultFromTracks) = 0;
0044 
0045     static void fillPSetDescription(edm::ParameterSetDescription& desc) { desc.add<int>("algo_verbosity", 0); };
0046 
0047   protected:
0048     int algo_verbosity_;
0049   };
0050 }  // namespace ticl
0051 
0052 #endif