CMS 3D CMS Logo

HLTCollectionProducer.h
Go to the documentation of this file.
1 #ifndef HLTCollectionProducer_h
2 #define HLTCollectionProducer_h
3 
4 //
5 // Package: HLTCollectionProducer
6 // Class: HLTCollectionProducer
7 //
14 //
15 // Original Author: Ian Tomalin
16 //
17 
18 #include <string>
19 #include <vector>
20 
21 // user include files
30 
31 //
32 // class declaration
33 //
34 
35 template <typename T>
37 public:
39  ~HLTCollectionProducer() override;
40  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
41  void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
42 
43 private:
46  const std::vector<int> triggerTypes_;
47 };
48 
49 //
50 // constructors and destructor
51 //
52 template <typename T>
54  : hltObjectTag_(iConfig.getParameter<edm::InputTag>("HLTObject")),
55  hltObjectToken_(consumes<trigger::TriggerFilterObjectWithRefs>(hltObjectTag_)),
56  triggerTypes_(iConfig.getParameter<std::vector<int>>("TriggerTypes")) {
57  produces<std::vector<T>>();
58 }
59 
60 template <typename T>
62 
63 template <typename T>
66  desc.add<edm::InputTag>("HLTObject", edm::InputTag("TriggerFilterObjectWithRefs"));
67  std::vector<int> triggerTypes;
68  desc.add<std::vector<int>>("TriggerTypes", triggerTypes);
69  descriptions.add(defaultModuleLabel<HLTCollectionProducer<T>>(), desc);
70 }
71 
72 //
73 // member functions
74 //
75 
76 // ------------ method called to produce the data ------------
77 template <typename T>
80  const edm::EventSetup& iSetup) const {
81  std::unique_ptr<std::vector<T>> collection(new std::vector<T>());
82 
83  // get hold of collection of TriggerFilterObjectsWithRefs
85  iEvent.getByToken(hltObjectToken_, hltObject);
86  std::vector<edm::Ref<std::vector<T>>> objectRefs;
87 
88  for (size_t t = 0; t < triggerTypes_.size(); ++t) {
89  objectRefs.clear();
90  hltObject->getObjects(triggerTypes_[t], objectRefs);
91  for (size_t i = 0; i < objectRefs.size(); ++i) {
92  collection->push_back(*objectRefs[i]);
93  }
94  }
95 
97 }
98 
99 #endif // HLTCollectionProducer_h
defaultModuleLabel.h
ConfigurationDescriptions.h
edm::StreamID
Definition: StreamID.h:30
HLTCollectionProducer
Definition: HLTCollectionProducer.h:36
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs >
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
HLTCollectionProducer::hltObjectTag_
const edm::InputTag hltObjectTag_
Definition: HLTCollectionProducer.h:44
TriggerFilterObjectWithRefs.h
HLTCollectionProducer::produce
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
Definition: HLTCollectionProducer.h:78
edm::Handle< trigger::TriggerFilterObjectWithRefs >
HLTCollectionProducer::triggerTypes_
const std::vector< int > triggerTypes_
Definition: HLTCollectionProducer.h:46
trigger::TriggerRefsCollections::getObjects
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
Definition: TriggerRefsCollections.h:593
HLTCollectionProducer::HLTCollectionProducer
HLTCollectionProducer(const edm::ParameterSet &)
Definition: HLTCollectionProducer.h:53
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
OrderedSet.t
t
Definition: OrderedSet.py:90
HLTCollectionProducer::hltObjectToken_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > hltObjectToken_
Definition: HLTCollectionProducer.h:45
edm::global::EDProducer
Definition: EDProducer.h:32
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
defaultModuleLabel
std::string defaultModuleLabel()
Definition: defaultModuleLabel.h:16
RefVector.h
Event.h
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
universalConfigTemplate.collection
collection
Definition: universalConfigTemplate.py:81
edm::EventSetup
Definition: EventSetup.h:57
ClusterTask_cfi.triggerTypes
triggerTypes
Definition: ClusterTask_cfi.py:5
InputTag.h
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
HLTCollectionProducer::~HLTCollectionProducer
~HLTCollectionProducer() override
Definition: HLTCollectionProducer.h:61
trigger
Definition: HLTPrescaleTableCond.h:8
ParameterSet.h
EDProducer.h
edm::Event
Definition: Event.h:73
HLTCollectionProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: HLTCollectionProducer.h:64
edm::InputTag
Definition: InputTag.h:15