PhysicsTools
PatExamples
plugins
PatMCMatching.cc
Go to the documentation of this file.
1
#include <map>
2
#include <string>
3
4
#include "TH1.h"
5
6
#include "
FWCore/Framework/interface/Event.h
"
7
#include "
FWCore/Framework/interface/EDAnalyzer.h
"
8
#include "
FWCore/Utilities/interface/InputTag.h
"
9
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
10
#include "
FWCore/ServiceRegistry/interface/Service.h
"
11
#include "
CommonTools/UtilAlgos/interface/TFileService.h
"
12
#include "Math/VectorUtil.h"
13
14
#include "
DataFormats/PatCandidates/interface/Muon.h
"
15
16
class
PatMCMatching
:
public
edm::EDAnalyzer
{
17
public
:
19
explicit
PatMCMatching
(
const
edm::ParameterSet
&);
21
~PatMCMatching
()
override
;
22
23
private
:
24
void
beginJob
()
override
;
25
void
analyze
(
const
edm::Event
&,
const
edm::EventSetup
&)
override
;
26
void
endJob
()
override
;
27
28
// simple map to contain all histograms;
29
// histograms are booked in the beginJob()
30
// method
31
std::map<std::string, TH1F*>
histContainer_
;
32
33
// input tags
34
edm::EDGetTokenT<edm::View<pat::Muon>
>
muonSrcToken_
;
35
};
36
37
PatMCMatching::PatMCMatching
(
const
edm::ParameterSet
& iConfig)
38
: histContainer_(),
39
muonSrcToken_(consumes<
edm
::
View
<
pat
::
Muon
> >(iConfig.getUntrackedParameter<
edm
::
InputTag
>(
"muonSrc"
))) {}
40
41
PatMCMatching::~PatMCMatching
() {}
42
43
void
PatMCMatching::analyze
(
const
edm::Event
&
iEvent
,
const
edm::EventSetup
& iSetup) {
44
// get muon collection
45
edm::Handle<edm::View<pat::Muon>
>
muons
;
46
iEvent
.getByToken(
muonSrcToken_
,
muons
);
47
48
for
(
edm::View<pat::Muon>::const_iterator
muon
=
muons
->begin();
muon
!=
muons
->end(); ++
muon
) {
49
for
(
unsigned
int
i
= 0;
i
<
muon
->genParticleRefs().size(); ++
i
) {
50
switch
(
muon
->genParticle(
i
)->status()) {
51
case
1:
52
histContainer_
[
"DR_status1Match"
]->Fill(
53
ROOT::Math::VectorUtil::DeltaR
(
muon
->p4(),
muon
->genParticle(
i
)->p4()));
54
break
;
55
case
3:
56
histContainer_
[
"DR_status3Match"
]->Fill(
57
ROOT::Math::VectorUtil::DeltaR
(
muon
->p4(),
muon
->genParticle(
i
)->p4()));
58
break
;
59
default
:
60
histContainer_
[
"DR_defaultMatch"
]->Fill(
61
ROOT::Math::VectorUtil::DeltaR
(
muon
->p4(),
muon
->genParticle(
i
)->p4()));
62
break
;
63
}
64
}
65
}
66
}
67
68
void
PatMCMatching::beginJob
() {
69
// register to the TFileService
70
edm::Service<TFileService>
fs;
71
72
// book histograms:
73
histContainer_
[
"DR_defaultMatch"
] = fs->
make
<TH1F>(
"DR_defaultMatch"
,
"DR_defaultMatch"
, 100, 0., 0.02);
74
histContainer_
[
"DR_status1Match"
] = fs->
make
<TH1F>(
"DR_status1Match"
,
"DR_status1Match"
, 100, 0., 0.02);
75
histContainer_
[
"DR_status3Match"
] = fs->
make
<TH1F>(
"DR_status3Match"
,
"DR_status3Match"
, 100, 0., 0.02);
76
}
77
78
void
PatMCMatching::endJob
() {}
79
80
#include "
FWCore/Framework/interface/MakerMacros.h
"
81
DEFINE_FWK_MODULE
(
PatMCMatching
);
PDWG_BPHSkim_cff.muons
muons
Definition:
PDWG_BPHSkim_cff.py:47
mps_fire.i
i
Definition:
mps_fire.py:355
sistrip::View
View
Definition:
ConstantsForView.h:26
muon
Definition:
MuonCocktails.h:17
edm::EDGetTokenT
Definition:
EDGetToken.h:33
edm
HLT enums.
Definition:
AlignableModifier.h:19
Muon.h
PatMCMatching::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition:
PatMCMatching.cc:43
EDAnalyzer.h
HLT_2018_cff.muon
muon
Definition:
HLT_2018_cff.py:10349
edm::Handle
Definition:
AssociativeIterator.h:50
Muon
Definition:
Muon.py:1
edm::EDAnalyzer
Definition:
EDAnalyzer.h:29
MakerMacros.h
PatMCMatching::~PatMCMatching
~PatMCMatching() override
default destructor
Definition:
PatMCMatching.cc:41
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition:
MakerMacros.h:16
Service.h
PatMCMatching
Definition:
PatMCMatching.cc:16
TFileService.h
HLT_2018_cff.InputTag
InputTag
Definition:
HLT_2018_cff.py:79016
edm::ParameterSet
Definition:
ParameterSet.h:36
Event.h
PatMCMatching::histContainer_
std::map< std::string, TH1F * > histContainer_
Definition:
PatMCMatching.cc:31
edm::Service< TFileService >
iEvent
int iEvent
Definition:
GenABIO.cc:224
PatMCMatching::muonSrcToken_
edm::EDGetTokenT< edm::View< pat::Muon > > muonSrcToken_
Definition:
PatMCMatching.cc:34
edm::EventSetup
Definition:
EventSetup.h:57
PatMCMatching::beginJob
void beginJob() override
Definition:
PatMCMatching.cc:68
pat
Definition:
HeavyIon.h:7
electronAnalyzer_cfi.DeltaR
DeltaR
Definition:
electronAnalyzer_cfi.py:33
PatMCMatching::PatMCMatching
PatMCMatching(const edm::ParameterSet &)
default constructor
Definition:
PatMCMatching.cc:37
InputTag.h
PatMCMatching::endJob
void endJob() override
Definition:
PatMCMatching.cc:78
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition:
View.h:86
ParameterSet.h
edm::Event
Definition:
Event.h:73
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition:
TFileService.h:64
Generated for CMSSW Reference Manual by
1.8.16