CMS 3D CMS Logo

HLTBTagPerformanceAnalyzer.h
Go to the documentation of this file.
1 #ifndef HLTBTagPerformanceAnalyzer_H
2 #define HLTBTagPerformanceAnalyzer_H
3 
4 // system include files
5 #include <map>
6 #include <memory>
7 #include <string>
8 #include <vector>
9 
10 // user include files
18 
19 // Trigger
22 
23 // DQM services
28 
29 // for gen matching
31 #include <Math/GenVector/VectorUtil.h>
32 
34 
44 public:
46  ~HLTBTagPerformanceAnalyzer() override;
47  void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override;
48 
49 private:
50  void analyze(const edm::Event &, const edm::EventSetup &) override;
51  void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override;
52 
53  struct JetRefCompare {
54  inline bool operator()(const edm::RefToBase<reco::Jet> &j1, const edm::RefToBase<reco::Jet> &j2) const {
55  return j1.id() < j2.id() || (j1.id() == j2.id() && j1.key() < j2.key());
56  }
57  };
58 
59  typedef std::map<edm::RefToBase<reco::Jet>, float, JetRefCompare> JetTagMap;
60 
62 
63  // variables from python configuration
66  std::vector<std::string> hltPathNames_;
69  std::vector<edm::EDGetTokenT<reco::JetTagCollection>> JetTagCollection_;
70  // edm::EDGetTokenT<std::vector<reco::ShallowTagInfo> >
71  // shallowTagInfosTokenCalo_;
73  // edm::Handle<std::vector<reco::ShallowTagInfo> >
74  // shallowTagInfosCalo;
76 
78  std::vector<bool> _isfoundHLTs;
79  std::vector<int> hltPathIndexs_;
80 
81  // gen level tag-handlers
82  typedef unsigned int flavour_t;
83  typedef std::vector<flavour_t> flavours_t;
84 
85  edm::EDGetTokenT<reco::JetFlavourMatchingCollection> m_mcPartons; // MC truth match - jet association to partons
86  std::vector<std::string> m_mcLabels; // MC truth match - labels
87  std::vector<flavours_t> m_mcFlavours; // MC truth match - flavours selection
88  double m_mcRadius; // MC truth match - deltaR association radius
89  bool m_mcMatching; // MC truth matching anabled/disabled
90 
92  std::vector<std::string> folders;
93 
94  // Histogram handler
95  std::vector<std::map<std::string, MonitorElement *>> H1_;
96  std::vector<std::map<std::string, std::map<HCALSpecials, MonitorElement *>>> H1mod_;
97  std::vector<std::map<std::string, MonitorElement *>> H2_;
98  std::vector<std::map<std::string, std::map<HCALSpecials, MonitorElement *>>> H2mod_;
99  std::vector<std::map<std::string, MonitorElement *>> H2Eta_;
100  std::vector<std::map<std::string, MonitorElement *>> H2EtaPhi_;
101  std::vector<std::map<std::string, MonitorElement *>> H2EtaPhi_threshold_;
102  std::vector<std::map<std::string, MonitorElement *>> H2Phi_;
103 
104  // Other variables
107  std::vector<std::string> JetTagCollection_Label;
110  std::map<HLTBTagPerformanceAnalyzer::HCALSpecials, std::string> HCALSpecialsNames;
111 };
112 
113 #endif
std::vector< std::map< std::string, std::map< HCALSpecials, MonitorElement * > > > H2mod_
std::vector< flavour_t > flavours_t
std::vector< std::string > m_mcLabels
std::vector< std::map< std::string, MonitorElement * > > H2EtaPhi_threshold_
void analyze(const edm::Event &, const edm::EventSetup &) override
edm::Handle< std::vector< reco::ShallowTagInfo > > shallowTagInfosPf
bool operator()(const edm::RefToBase< reco::Jet > &j1, const edm::RefToBase< reco::Jet > &j2) const
edm::EDGetTokenT< std::vector< reco::ShallowTagInfo > > shallowTagInfosTokenPf_
std::vector< std::string > folders
DQM folder handle.
ProductID id() const
Definition: RefToBase.h:242
std::vector< std::map< std::string, MonitorElement * > > H2_
std::map< edm::RefToBase< reco::Jet >, float, JetRefCompare > JetTagMap
std::vector< std::map< std::string, MonitorElement * > > H1_
size_t key() const
Definition: RefToBase.h:250
void dqmBeginRun(const edm::Run &iRun, const edm::EventSetup &iSetup) override
void bookHistograms(DQMStore::IBooker &ibooker, edm::Run const &iRun, edm::EventSetup const &iSetup) override
std::vector< flavours_t > m_mcFlavours
std::vector< std::map< std::string, MonitorElement * > > H2EtaPhi_
edm::EDGetTokenT< reco::JetFlavourMatchingCollection > m_mcPartons
std::vector< std::map< std::string, MonitorElement * > > H2Eta_
std::map< HLTBTagPerformanceAnalyzer::HCALSpecials, std::string > HCALSpecialsNames
std::vector< std::map< std::string, MonitorElement * > > H2Phi_
std::vector< std::string > hltPathNames_
std::vector< std::map< std::string, std::map< HCALSpecials, MonitorElement * > > > H1mod_
HLTBTagPerformanceAnalyzer(const edm::ParameterSet &)
std::vector< edm::EDGetTokenT< reco::JetTagCollection > > JetTagCollection_
edm::EDConsumerBase::Labels label
std::vector< bool > _isfoundHLTs
other class variable
std::vector< std::string > JetTagCollection_Label
edm::EDGetTokenT< edm::TriggerResults > hlTriggerResults_
Definition: Run.h:45