17 #include "TGraphAsymmErrors.h" 54 void endJob()
override;
78 std::vector<reco::Particle>& HLTMu,
81 size_t dim = HLTMu.size();
85 double muRecoPt = mu.
pt();
86 hTrigMuonPtDenS_->Fill(muRecoPt);
90 for (
size_t k = 0;
k < dim;
k++) {
91 if ((
deltaR(HLTMu[
k], mu) < DR) && (fabs(HLTMu[k].
pt() - mu.
pt()) / HLTMu[k].
pt() < DPtRel)) {
93 std::cout <<
" matching a muon " << std::endl;
94 std::cout <<
"muon reco pt : " << muRecoPt << std::endl;
96 std::cout <<
"muon trigger pt " << HLTMu[
k].pt() << std::endl;
98 hTrigMuonPtNumS_->Fill(muRecoPt);
99 deltaR_->Fill(
deltaR(HLTMu[k], mu));
100 deltaPtOverPt_->Fill(fabs(HLTMu[k].
pt() - mu.
pt()) / HLTMu[k].
pt());
102 std::cout <<
"muon trigger eta : " << HLTMu[
k].eta() << std::endl;
103 std::cout <<
"deltaR((HLTMu[k], mu)): " <<
deltaR(HLTMu[k], mu) << std::endl;
104 std::cout <<
"deltaPtOverPt: " << fabs(HLTMu[k].
pt() - mu.
pt()) / HLTMu[k].
pt() << std::endl;
113 trigEvTag_(cfg.getParameter<
edm::
InputTag>(
"triggerEvent")),
116 ptMuCut_(cfg.getUntrackedParameter<double>(
"ptMuCut")),
117 etaMuCut_(cfg.getUntrackedParameter<double>(
"etaMuCut")),
118 hltPath_(cfg.getParameter<
std::
string>(
"hltPath")),
119 L3FilterName_(cfg.getParameter<
std::
string>(
"L3FilterName")),
120 maxDPtRel_(cfg.getParameter<double>(
"maxDPtRel")),
121 maxDeltaR_(cfg.getParameter<double>(
"maxDeltaR")),
122 nbins_(cfg.getParameter<double>(
"ptMax_")),
123 ptMax_(cfg.getParameter<double>(
"ptMax_")) {
146 LogWarning(
"") <<
">>> TRIGGER collection does not exist !!!";
152 for (
unsigned int i = 0;
i < triggerResults->
size();
i++) {
167 std::vector<reco::Particle> HLTMuMatched;
168 for (
size_t ia = 0; ia < handleTriggerEvent->
sizeFilters(); ++ia) {
171 size_t p = fullname.find_first_of(
':');
172 if (p != std::string::npos) {
173 name = fullname.substr(0, p);
179 for (trigger::Keys::const_iterator ki = k.begin(); ki != k.end(); ++ki) {
181 HLTMuMatched.push_back(toc[*ki].particle());
191 LogError(
"") <<
">>> muon collection does not exist !!!";
195 std::vector<reco::Muon> highPtGlbMuons;
197 for (
unsigned int i = 0;
i < muons->size();
i++) {
203 highPtGlbMuons.push_back(mu);
206 unsigned int nHighPtGlbMu = highPtGlbMuons.size();
207 std::cout <<
"I've got " << nHighPtGlbMu <<
" nHighPtGlbMu" << std::endl;
210 if (nHighPtGlbMu > 10)
213 for (
unsigned int i = 0;
i < nHighPtGlbMu;
i++) {
bool IsMuMatchedToHLTMu(const reco::Muon &, std::vector< reco::Particle > &, double, double)
edm::EDGetTokenT< View< Muon > > muonToken_
double eta() const final
momentum pseudorapidity
trigger::size_type sizeFilters() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::Handle< trigger::TriggerEvent > handleTriggerEvent_
bool accept() const
Has at least one path accepted the event?
const Keys & filterKeys(trigger::size_type index) const
double pt() const final
transverse momentum
edm::TriggerNames const * trigNames_
T * make(const Args &...args) const
make new ROOT object
void analyze(const edm::Event &event, const edm::EventSetup &setup) override
edm::Handle< edm::TriggerResults > triggerResults_
example_stream void analyze(const edm::Event &, const edm::EventSetup &) override
edm::EDGetTokenT< TriggerResults > trigToken_
#define DEFINE_FWK_MODULE(type)
bool isGlobalMuon() const override
const TriggerObjectCollection & getObjects() const
unsigned int size() const
Get number of paths stored.
static std::string const triggerResults
edm::EDGetTokenT< trigger::TriggerEvent > trigEvToken_
std::vector< TriggerObject > TriggerObjectCollection
collection of trigger physics objects (e.g., all isolated muons)
static const char *const trigNames[]
MuTriggerAnalyzer(const edm::ParameterSet &pset)
const edm::InputTag filterTag(trigger::size_type index) const
std::string const & triggerName(unsigned int index) const
std::vector< size_type > Keys
bool IsMuMatchedToHLTMu(const reco::Candidate *dau, std::vector< reco::Particle > HLTMu, double DR, double DPtRel)
std::string L3FilterName_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override