File indexing completed on 2024-05-02 05:10:04
0001
0002
0003
0004
0005
0006
0007 #ifndef TauAnalysis_MCEmbeddingTools_DoubleCollectionMerger_H
0008 #define TauAnalysis_MCEmbeddingTools_DoubleCollectionMerger_H
0009
0010 #include "DataFormats/Common/interface/Handle.h"
0011 #include "FWCore/Framework/interface/Event.h"
0012 #include "FWCore/Framework/interface/MakerMacros.h"
0013 #include "FWCore/Framework/interface/stream/EDProducer.h"
0014 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0015
0016 #include "DataFormats/Common/interface/DetSetVectorNew.h"
0017 #include "DataFormats/Common/interface/SortedCollection.h"
0018
0019 #include <iostream>
0020 #include <map>
0021 #include <string>
0022
0023 template <typename T1, typename T2, typename T3, typename T4>
0024 class DoubleCollectionMerger : public edm::stream::EDProducer<> {
0025 public:
0026 explicit DoubleCollectionMerger(const edm::ParameterSet &);
0027 ~DoubleCollectionMerger() override;
0028
0029 private:
0030 void produce(edm::Event &, const edm::EventSetup &) override;
0031
0032 typedef T1 MergeCollection1;
0033 typedef T2 BaseHit1;
0034 typedef T3 MergeCollection2;
0035 typedef T4 BaseHit2;
0036 std::map<std::string, std::vector<edm::EDGetTokenT<MergeCollection1>>> inputs1_;
0037 std::map<std::string, std::vector<edm::EDGetTokenT<MergeCollection2>>> inputs2_;
0038
0039 void fill_output_obj(std::unique_ptr<MergeCollection1> &output1,
0040 std::vector<edm::Handle<MergeCollection1>> &inputCollections1);
0041 void fill_output_obj(std::unique_ptr<MergeCollection2> &output2,
0042 std::vector<edm::Handle<MergeCollection2>> &inputCollections2);
0043 void fill_output_obj_digiflag(std::unique_ptr<MergeCollection1> &output,
0044 std::vector<edm::Handle<MergeCollection1>> &inputCollections);
0045 void fill_output_obj_digiflag(std::unique_ptr<MergeCollection2> &output,
0046 std::vector<edm::Handle<MergeCollection2>> &inputCollections);
0047 void fill_output_obj_hcaldigi(std::unique_ptr<MergeCollection1> &output,
0048 std::vector<edm::Handle<MergeCollection1>> &inputCollections);
0049 void fill_output_obj_hcaldigi(std::unique_ptr<MergeCollection2> &output,
0050 std::vector<edm::Handle<MergeCollection2>> &inputCollections);
0051 };
0052 #endif