CMS 3D CMS Logo

TICLInterpretationAlgoBase.h
Go to the documentation of this file.
1 #ifndef RecoHGCal_TICL_PatternRecognitionAlgoBase_H__
2 #define RecoHGCal_TICL_PatternRecognitionAlgoBase_H__
3 
4 #include <memory>
5 #include <vector>
26 
27 namespace edm {
28  class Event;
29  class EventSetup;
30 } // namespace edm
31 namespace ticl {
32  template <typename T>
34  public:
36  : algo_verbosity_(conf.getParameter<int>("algo_verbosity")) {}
38  struct Inputs {
39  const edm::Event& ev;
41  const std::vector<reco::CaloCluster>& layerClusters;
44  const std::vector<std::vector<unsigned int>>& linkedResultTracksters;
46  const std::vector<bool>& maskedTracks;
47 
48  Inputs(const edm::Event& eV,
49  const edm::EventSetup& eS,
50  const std::vector<reco::CaloCluster>& lC,
51  const edm::ValueMap<std::pair<float, float>>& lcT,
53  const std::vector<std::vector<unsigned int>>& links,
54  const edm::Handle<std::vector<T>> trks,
55  const std::vector<bool>& mT)
56  : ev(eV),
57  es(eS),
58  layerClusters(lC),
59  layerClustersTime(lcT),
60  tracksters(tS),
63  maskedTracks(mT) {}
64  };
65 
73 
80  : tkTime_h(tkT), tkTimeErr_h(tkTE), tkQuality_h(tkQ), tkBeta_h(tkB), tkPath_h(tkP), tkMtdPos_h(mtdPos) {}
81  };
82 
83  virtual void makeCandidates(const Inputs& input,
84  edm::Handle<MtdHostCollection> inputTiming_h,
85  std::vector<Trackster>& resultTracksters,
86  std::vector<int>& resultCandidate) = 0;
87 
88  virtual void initialize(const HGCalDDDConstants* hgcons,
89  const hgcal::RecHitTools rhtools,
90  const edm::ESHandle<MagneticField> bfieldH,
91  const edm::ESHandle<Propagator> propH) = 0;
92 
93  static void fillPSetDescription(edm::ParameterSetDescription& desc) { desc.add<int>("algo_verbosity", 0); };
94 
95  protected:
96  int algo_verbosity_;
97  };
98 } // namespace ticl
99 
100 #endif
const edm::Handle< edm::ValueMap< GlobalPoint > > tkMtdPos_h
virtual void initialize(const HGCalDDDConstants *hgcons, const hgcal::RecHitTools rhtools, const edm::ESHandle< MagneticField > bfieldH, const edm::ESHandle< Propagator > propH)=0
virtual void makeCandidates(const Inputs &input, edm::Handle< MtdHostCollection > inputTiming_h, std::vector< Trackster > &resultTracksters, std::vector< int > &resultCandidate)=0
TICLInterpretationAlgoBase(const edm::ParameterSet &conf, edm::ConsumesCollector)
const edm::Handle< std::vector< T > > tracksHandle
const std::vector< reco::CaloCluster > & layerClusters
static std::string const input
Definition: EdmProvDump.cc:50
const std::vector< std::vector< unsigned int > > & linkedResultTracksters
const edm::Handle< edm::ValueMap< float > > tkTimeErr_h
static void fillPSetDescription(edm::ParameterSetDescription &desc)
const edm::ValueMap< std::pair< float, float > > & layerClustersTime
TrackTimingInformation(const edm::Handle< edm::ValueMap< float >> tkT, const edm::Handle< edm::ValueMap< float >> tkTE, const edm::Handle< edm::ValueMap< float >> tkQ, const edm::Handle< edm::ValueMap< float >> tkB, const edm::Handle< edm::ValueMap< float >> tkP, const edm::Handle< edm::ValueMap< GlobalPoint >> mtdPos)
HLT enums.
const MultiVectorManager< Trackster > & tracksters
Definition: Common.h:10
Inputs(const edm::Event &eV, const edm::EventSetup &eS, const std::vector< reco::CaloCluster > &lC, const edm::ValueMap< std::pair< float, float >> &lcT, const MultiVectorManager< Trackster > &tS, const std::vector< std::vector< unsigned int >> &links, const edm::Handle< std::vector< T >> trks, const std::vector< bool > &mT)
const edm::Handle< edm::ValueMap< float > > tkQuality_h