File indexing completed on 2023-04-15 01:47:33
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 }
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