SimTracker
TrackAssociation
plugins
MCTrackMatcher.cc
Go to the documentation of this file.
1
7
#include "
DataFormats/Common/interface/Association.h
"
8
#include "
DataFormats/HepMCCandidate/interface/GenParticle.h
"
9
#include "
FWCore/Framework/interface/global/EDProducer.h
"
10
#include "
FWCore/Utilities/interface/InputTag.h
"
11
#include "
SimDataFormats/Associations/interface/TrackToTrackingParticleAssociator.h
"
12
#include "
SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h
"
13
14
namespace
edm
{
15
class
ParameterSet
;
16
}
17
18
using namespace
edm
;
19
using namespace
std
;
20
using namespace
reco
;
21
22
class
MCTrackMatcher
:
public
edm::global::EDProducer
<> {
23
public
:
25
MCTrackMatcher
(
const
edm::ParameterSet
&);
26
27
private
:
28
void
produce(
edm::StreamID
,
edm::Event
&evt,
const
edm::EventSetup
&es)
const override
;
29
edm::EDGetTokenT<reco::TrackToTrackingParticleAssociator>
associator_
;
30
edm::EDGetTokenT<edm::View<reco::Track>
>
tracks_
;
31
edm::EDGetTokenT<GenParticleCollection>
genParticles_
;
32
edm::EDGetTokenT<std::vector<int>
>
genParticleInts_
;
33
edm::EDGetTokenT<TrackingParticleCollection>
trackingParticles_
;
34
typedef
edm::Association<reco::GenParticleCollection>
GenParticleMatch
;
35
};
36
37
#include "
DataFormats/Common/interface/Handle.h
"
38
#include "
FWCore/Framework/interface/ESHandle.h
"
39
#include "
FWCore/Framework/interface/Event.h
"
40
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
41
#include "
FWCore/Utilities/interface/EDMException.h
"
42
43
MCTrackMatcher::MCTrackMatcher
(
const
ParameterSet
&
p
)
44
: associator_(consumes<
reco
::
TrackToTrackingParticleAssociator
>(
p
.getParameter<
string
>(
"associator"
))),
45
tracks_(consumes<
edm
::
View
<
reco
::
Track
>>(
p
.getParameter<
InputTag
>(
"tracks"
))),
46
genParticles_(consumes<
GenParticleCollection
>(
p
.getParameter<
InputTag
>(
"genParticles"
))),
47
genParticleInts_(consumes<
std
::vector<
int
>>(
p
.getParameter<
InputTag
>(
"genParticles"
))),
48
trackingParticles_(consumes<
TrackingParticleCollection
>(
p
.getParameter<
InputTag
>(
"trackingParticles"
))) {
49
produces<GenParticleMatch>();
50
}
51
52
void
MCTrackMatcher::produce
(
edm::StreamID
,
Event
&evt,
const
EventSetup
&es)
const
{
53
Handle<reco::TrackToTrackingParticleAssociator>
assoc
;
54
evt.
getByToken
(
associator_
,
assoc
);
55
const
reco::TrackToTrackingParticleAssociator
*
associator
=
assoc
.product();
56
Handle<View<Track>
>
tracks
;
57
evt.
getByToken
(
tracks_
,
tracks
);
58
Handle<TrackingParticleCollection>
trackingParticles
;
59
evt.
getByToken
(
trackingParticles_
,
trackingParticles
);
60
Handle<vector<int>
> barCodes;
61
evt.
getByToken
(
genParticleInts_
, barCodes);
62
Handle<GenParticleCollection>
genParticles
;
63
evt.
getByToken
(
genParticles_
,
genParticles
);
64
RecoToSimCollection
associations
=
associator
->associateRecoToSim(
tracks
,
trackingParticles
);
65
unique_ptr<GenParticleMatch>
match
(
new
GenParticleMatch
(
GenParticleRefProd
(
genParticles
)));
66
GenParticleMatch::Filler
filler
(*
match
);
67
size_t
n
=
tracks
->size();
68
vector<int>
indices
(
n
, -1);
69
for
(
size_t
i
= 0;
i
<
n
; ++
i
) {
70
RefToBase<Track>
track
(
tracks
,
i
);
71
RecoToSimCollection::const_iterator
f
=
associations
.find(
track
);
72
if
(
f
!=
associations
.end()) {
73
TrackingParticleRef
tp
=
f
->val.front().first;
74
TrackingParticle::genp_iterator
j
,
b
=
tp
->genParticle_begin(),
e
=
tp
->genParticle_end();
75
for
(
j
=
b
;
j
!=
e
; ++
j
) {
76
const
reco::GenParticle
*
p
=
j
->get();
77
if
(
p
->status() == 1) {
78
indices
[
i
] =
j
->key();
79
break
;
80
}
81
}
82
}
83
}
84
filler
.insert(
tracks
,
indices
.begin(),
indices
.end());
85
filler
.fill();
86
evt.
put
(
std::move
(
match
));
87
}
88
89
#include "
FWCore/Framework/interface/MakerMacros.h
"
90
91
DEFINE_FWK_MODULE
(
MCTrackMatcher
);
bTagCombinedSVVariables_cff.indices
indices
Definition:
bTagCombinedSVVariables_cff.py:67
edm::StreamID
Definition:
StreamID.h:30
genericTrackCandidates_cff.associations
associations
Definition:
genericTrackCandidates_cff.py:45
Handle.h
PDWG_EXOHSCP_cff.tracks
tracks
Definition:
PDWG_EXOHSCP_cff.py:28
mps_fire.i
i
Definition:
mps_fire.py:355
edm::Association::Filler
Definition:
Association.h:78
genParticles2HepMC_cfi.genParticles
genParticles
Definition:
genParticles2HepMC_cfi.py:4
dqmiodumpmetadata.n
n
Definition:
dqmiodumpmetadata.py:28
ESHandle.h
f
double f[11][100]
Definition:
MuScleFitUtils.cc:78
reco::GenParticle
Definition:
GenParticle.h:21
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator >
edm
HLT enums.
Definition:
AlignableModifier.h:19
MCTrackMatcher::associator_
edm::EDGetTokenT< reco::TrackToTrackingParticleAssociator > associator_
Definition:
MCTrackMatcher.cc:29
AlCaHLTBitMon_ParallelJobs.p
p
Definition:
AlCaHLTBitMon_ParallelJobs.py:153
reco::TrackToTrackingParticleAssociator
Definition:
TrackToTrackingParticleAssociator.h:51
reco::GenParticleCollection
std::vector< GenParticle > GenParticleCollection
collection of GenParticles
Definition:
GenParticleFwd.h:13
reco
fixed size matrix
Definition:
AlignmentAlgorithmBase.h:45
Association.h
edm::Handle< reco::TrackToTrackingParticleAssociator >
edm::Ref< TrackingParticleCollection >
GenParticle.h
trackingPlots.assoc
assoc
Definition:
trackingPlots.py:183
EDMException.h
MakerMacros.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition:
MakerMacros.h:16
MCTrackMatcher
Definition:
MCTrackMatcher.cc:22
reco::Track
Definition:
Track.h:27
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition:
Event.h:528
ctfWithMaterialTrackMCMatch_cfi.associator
associator
Definition:
ctfWithMaterialTrackMCMatch_cfi.py:7
b
double b
Definition:
hdecay.h:118
cmsswSequenceInfo.tp
tp
Definition:
cmsswSequenceInfo.py:17
MCTrackMatcher::produce
void produce(edm::StreamID, edm::Event &evt, const edm::EventSetup &es) const override
Definition:
MCTrackMatcher.cc:52
edm::global::EDProducer
Definition:
EDProducer.h:32
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
edm::View
Definition:
CaloClusterFwd.h:14
TrackToTrackingParticleAssociator.h
edm::ParameterSet
Definition:
ParameterSet.h:36
Event.h
MCTrackMatcher::genParticles_
edm::EDGetTokenT< GenParticleCollection > genParticles_
Definition:
MCTrackMatcher.cc:31
edm::AssociationMap< edm::OneToManyWithQualityGeneric< edm::View< reco::Track >, TrackingParticleCollection, double > >
trigObjTnPSource_cfi.filler
filler
Definition:
trigObjTnPSource_cfi.py:21
muonClassificationByHits_cfi.trackingParticles
trackingParticles
Definition:
muonClassificationByHits_cfi.py:28
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition:
Utils.h:10
createfilelist.int
int
Definition:
createfilelist.py:10
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition:
Event.h:132
MCTrackMatcher::MCTrackMatcher
MCTrackMatcher(const edm::ParameterSet &)
constructor
Definition:
MCTrackMatcher.cc:43
edm::Association
Definition:
Association.h:18
edm::EventSetup
Definition:
EventSetup.h:57
InputTag.h
TrackingParticle.h
eostools.move
def move(src, dest)
Definition:
eostools.py:511
std
Definition:
JetResolutionObject.h:76
MCTrackMatcher::GenParticleMatch
edm::Association< reco::GenParticleCollection > GenParticleMatch
Definition:
MCTrackMatcher.cc:34
edm::RefVectorIterator
Definition:
EDProductfwd.h:33
MCTrackMatcher::tracks_
edm::EDGetTokenT< edm::View< reco::Track > > tracks_
Definition:
MCTrackMatcher.cc:30
MCTrackMatcher::trackingParticles_
edm::EDGetTokenT< TrackingParticleCollection > trackingParticles_
Definition:
MCTrackMatcher.cc:33
TrackingParticleCollection
std::vector< TrackingParticle > TrackingParticleCollection
Definition:
TrackingParticleFwd.h:8
edm::RefToBase
Definition:
AssociativeIterator.h:54
HLT_2018_cff.track
track
Definition:
HLT_2018_cff.py:10352
ParameterSet.h
EDProducer.h
dqmiolumiharvest.j
j
Definition:
dqmiolumiharvest.py:66
edm::Event
Definition:
Event.h:73
edm::InputTag
Definition:
InputTag.h:15
MCTrackMatcher::genParticleInts_
edm::EDGetTokenT< std::vector< int > > genParticleInts_
Definition:
MCTrackMatcher.cc:32
MillePedeFileConverter_cfg.e
e
Definition:
MillePedeFileConverter_cfg.py:37
reco::GenParticleRefProd
edm::RefProd< GenParticleCollection > GenParticleRefProd
persistent reference to a GenParticle collection
Definition:
GenParticleFwd.h:23
Generated for CMSSW Reference Manual by
1.8.16