CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TriggerSummaryProducerAOD.h
Go to the documentation of this file.
1 #ifndef HLTcore_TriggerSummaryProducerAOD_h
2 #define HLTcore_TriggerSummaryProducerAOD_h
3 
19 
23 
25 
29 
34 
35 
36 #include<string>
37 #include<vector>
38 
39 //
40 // class declaration
41 //
42 
44 
45  public:
48  virtual void produce(edm::Event&, const edm::EventSetup&);
49  virtual void endJob();
50 
51  // additional
52 
53  template <typename C>
55 
56  template <typename T>
57  void fillTriggerObject(const T& );
60  void fillTriggerObject(const reco::CaloMET& );
61  void fillTriggerObject(const reco::MET& );
62 
63  template <typename C>
64  void fillFilterObjectMembers(const edm::Event&, const edm::InputTag& tag, const trigger::Vids &, const std::vector<edm::Ref<C> >&);
65 
66  template <typename C>
67  void fillFilterObjectMember(const int&, const int&, const edm::Ref<C>&);
68  void fillFilterObjectMember(const int&, const int&, const edm::Ref<l1extra::L1HFRingsCollection>&);
69  void fillFilterObjectMember(const int&, const int&, const edm::Ref<l1extra::L1EtMissParticleCollection>&);
70  void fillFilterObjectMember(const int&, const int&, const edm::Ref<reco::CaloMETCollection>&);
71  void fillFilterObjectMember(const int&, const int&, const edm::Ref<reco::METCollection>&);
72 
73  private:
75  std::string pn_;
76 
79 
82 
84  struct OrderInputTag {
86  OrderInputTag(bool ignoreProcess): ignoreProcess_(ignoreProcess) { };
87  inline bool operator()(const edm::InputTag& l, const edm::InputTag& r) const {
88  int c = l.label().compare(r.label());
89  if(0==c) {
90  if(ignoreProcess_) {
91  return l.instance()<r.instance();
92  }
93  c = l.instance().compare(r.instance());
94  if(0==c) {
95  return l.process()<r.process();
96  }
97  }
98  return c < 0;
99  };
100  };
101  typedef std::set<edm::InputTag,OrderInputTag> InputTagSet;
102 
106 
110 
113  std::vector<std::string> tags_;
115  std::map<edm::ProductID,unsigned int> offset_;
116 
118  std::vector<edm::Handle<trigger::TriggerFilterObjectWithRefs> > fobs_;
123 
125  std::vector<bool> maskFilters_;
126 
127 };
128 #endif
virtual void produce(edm::Event &, const edm::EventSetup &)
trigger::TriggerObjectCollection toc_
trigger object collection
std::vector< bool > maskFilters_
packing decision
std::set< edm::InputTag, OrderInputTag > InputTagSet
edm::ProcessNameSelector selector_
selector for getMany methods
void fillFilterObjectMember(const int &, const int &, const edm::Ref< C > &)
edm::service::TriggerNamesService * tns_
the pointer to the current TriggerNamesService
void fillTriggerObjectCollections(const edm::Event &)
std::vector< std::string > tags_
TriggerSummaryProducerAOD(const edm::ParameterSet &)
Definition: MET.h:32
bool operator()(const edm::InputTag &l, const edm::InputTag &r) const
std::map< edm::ProductID, unsigned int > offset_
global map for indices into toc_: offset per input L3 collection
void fillFilterObjectMembers(const edm::Event &, const edm::InputTag &tag, const trigger::Vids &, const std::vector< edm::Ref< C > > &)
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
Definition: TriggerObject.h:83
std::vector< size_type > Keys
std::vector< edm::Handle< trigger::TriggerFilterObjectWithRefs > > fobs_
handles to the filter objects
std::string const & label() const
Definition: InputTag.h:25
std::string const & process() const
Definition: InputTag.h:29
InputTagSet collectionTagsEvent_
list of L3 collection tags
std::string pn_
process name
InputTagSet filterTagsEvent_
list of L3 filter tags
long double T
std::string const & instance() const
Definition: InputTag.h:26
std::vector< int > Vids