Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:29

0001 #ifndef RecoTracker_PixelLowPtUtilities_plugins_TrackListCombiner_h
0002 #define RecoTracker_PixelLowPtUtilities_plugins_TrackListCombiner_h
0003 
0004 #include "FWCore/Framework/interface/global/EDProducer.h"
0005 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0006 
0007 #include "TrackingTools/PatternTools/interface/Trajectory.h"
0008 #include "TrackingTools/PatternTools/interface/TrajTrackAssociation.h"
0009 
0010 #include <vector>
0011 
0012 namespace edm {
0013   class Event;
0014   class EventSetup;
0015 }  // namespace edm
0016 
0017 class TrackListCombiner : public edm::global::EDProducer<> {
0018 public:
0019   explicit TrackListCombiner(const edm::ParameterSet& ps);
0020   ~TrackListCombiner() override;
0021   void produce(edm::StreamID, edm::Event& ev, const edm::EventSetup& es) const override;
0022 
0023 private:
0024   struct Tags {
0025     template <typename T1, typename T2>
0026     Tags(T1 t1, T2 t2) : trajectory(t1), assoMap(t2) {}
0027     edm::EDGetTokenT<std::vector<Trajectory>> trajectory;
0028     edm::EDGetTokenT<TrajTrackAssociationCollection> assoMap;
0029   };
0030 
0031   std::vector<Tags> trackProducers;
0032 };
0033 #endif