Imperial Analysis
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ICMuonProducer.hh
Go to the documentation of this file.
1 #ifndef UserCode_ICHiggsTauTau_ICMuonProducer_h
2 #define UserCode_ICHiggsTauTau_ICMuonProducer_h
3 
4 #include <memory>
5 #include <vector>
6 #include <string>
7 #include "boost/functional/hash.hpp"
8 #include "FWCore/Framework/interface/EDProducer.h"
9 #include "FWCore/ParameterSet/interface/ParameterSet.h"
10 #include "FWCore/Framework/interface/Event.h"
11 #include "FWCore/Framework/interface/EventSetup.h"
12 #include "FWCore/Utilities/interface/InputTag.h"
13 #include "DataFormats/MuonReco/interface/Muon.h"
14 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h"
17 
21 class ICMuonProducer : public edm::EDProducer {
22  public:
23  explicit ICMuonProducer(const edm::ParameterSet&);
25 
26  private:
27  virtual void beginJob();
28  virtual void produce(edm::Event&, const edm::EventSetup&);
29  virtual void endJob();
30 
31  std::vector<ic::Muon>* muons_;
32  edm::InputTag input_;
33  std::string branch_;
34  boost::hash<reco::Muon const*> muon_hasher_;
35  boost::hash<reco::PFCandidate const*> pf_hasher_;
36 
37 
38  bool is_pf_;
39 
40  std::vector<std::pair<std::string, edm::InputTag> > input_vmaps_;
41  std::vector<std::pair<std::string, edm::InputTag> > input_double_vmaps_;
42  edm::InputTag input_vertices_;
43  bool do_vertex_ip_;
44  edm::InputTag input_beamspot_;
45  bool do_beamspot_ip_;
46 
47  struct IsoTags {
48  edm::InputTag charged_all;
49  edm::InputTag charged;
50  edm::InputTag neutral;
51  edm::InputTag gamma;
52  edm::InputTag pu;
53  explicit IsoTags(edm::ParameterSet const& pset, edm::ConsumesCollector && collector);
54  };
55 
56  IsoTags pf_iso_03_;
57  IsoTags pf_iso_04_;
58  bool do_pf_iso_03_;
59  bool do_pf_iso_04_;
60 };
61 #endif
ICMuonProducer(const edm::ParameterSet &)
See documentation here.