PhysicsTools
NanoAOD
plugins
IsFromLostTrackMapProducer.cc
Go to the documentation of this file.
1
// -*- C++ -*-
2
//
3
// Package: PhysicsTools/NanoAOD
4
// Class: IsFromLostTrackMapProducer
5
//
13
//
14
// Original Author: Maria Giulia Ratti (ETHZ) [mratti]
15
// Created: Thu, 22 Nov 2018 12:34:48 GMT
16
//
17
//
18
19
// system include files
20
#include <memory>
21
22
// user include files
23
#include "
FWCore/Framework/interface/Frameworkfwd.h
"
24
#include "
FWCore/Framework/interface/global/EDProducer.h
"
25
26
#include "
FWCore/Framework/interface/Event.h
"
27
#include "
FWCore/Framework/interface/MakerMacros.h
"
28
29
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
30
#include "
FWCore/Utilities/interface/StreamID.h
"
31
32
#include "
DataFormats/PatCandidates/interface/PackedCandidate.h
"
33
#include "
DataFormats/PatCandidates/interface/IsolatedTrack.h
"
34
#include "
DataFormats/ParticleFlowCandidate/interface/PFCandidate.h
"
35
36
//
37
// class declaration
38
//
39
40
class
IsFromLostTrackMapProducer
:
public
edm::global::EDProducer
<> {
41
public
:
42
explicit
IsFromLostTrackMapProducer
(
const
edm::ParameterSet
& iConfig)
43
:
srcIsoTracks_
(
consumes
<
edm
::
View
<
pat
::IsolatedTrack>>(
44
iConfig.getParameter<
edm
::
InputTag
>(
"srcIsoTracks"
))),
// final isolated tracks
45
pc_
(
consumes
<
pat
::
PackedCandidateCollection
>(
46
iConfig.getParameter<
edm
::
InputTag
>(
"packedPFCandidates"
))),
// pf candidates
47
lt_
(
consumes
<
pat
::
PackedCandidateCollection
>(iConfig.getParameter<
edm
::
InputTag
>(
"lostTracks"
)))
// lost tracks
48
{
49
produces<edm::ValueMap<bool>>(
"isFromLostTrack"
);
// name of the value map that I want to actually produce
50
}
51
~IsFromLostTrackMapProducer
()
override
{};
52
53
static
void
fillDescriptions
(
edm::ConfigurationDescriptions
& descriptions);
54
55
private
:
56
void
produce
(
edm::StreamID
,
edm::Event
&,
const
edm::EventSetup
&)
const override
;
57
58
// ----------member data ---------------------------
59
edm::EDGetTokenT<edm::View<pat::IsolatedTrack>
>
srcIsoTracks_
;
60
edm::EDGetTokenT<pat::PackedCandidateCollection>
pc_
;
61
edm::EDGetTokenT<pat::PackedCandidateCollection>
lt_
;
62
};
63
64
//
65
// constants, enums and typedefs
66
//
67
68
//
69
// static data member definitions
70
//
71
72
//
73
// member functions
74
//
75
76
// ------------ method called to produce the data ------------
77
void
IsFromLostTrackMapProducer::produce
(
edm::StreamID
streamID,
78
edm::Event
&
iEvent
,
79
const
edm::EventSetup
& iSetup)
const
{
80
// isolated tracks
81
edm::Handle<edm::View<pat::IsolatedTrack>
>
srcIsoTracks
;
82
iEvent
.getByToken(
srcIsoTracks_
,
srcIsoTracks
);
83
84
// packedPFCandidate collection
85
edm::Handle<pat::PackedCandidateCollection>
pc_handle;
86
iEvent
.getByToken(
pc_
, pc_handle);
87
88
// lostTracks collection
89
edm::Handle<pat::PackedCandidateCollection>
lt_handle;
90
iEvent
.getByToken(
lt_
, lt_handle);
91
92
// the map cannot be filled straight away, so create an intermediate vector
93
unsigned
int
Nit =
srcIsoTracks
->size();
94
std::vector<bool> v_isFromLostTrack(Nit,
false
);
95
96
for
(
unsigned
int
iit = 0; iit < Nit; iit++) {
97
auto
isotrack =
srcIsoTracks
->ptrAt(iit);
98
pat::PackedCandidateRef
pcref =
99
isotrack->packedCandRef();
// this is either the reference to the pf candidate or to the lost track
100
bool
isFromLostTrack
= (pcref.
isNonnull
() && pcref.
id
() == lt_handle.
id
());
101
v_isFromLostTrack[iit] =
isFromLostTrack
;
102
}
103
104
std::unique_ptr<edm::ValueMap<bool>> vm_isFromLostTrack(
new
edm::ValueMap<bool>
());
105
edm::ValueMap<bool>::Filler
filler
(*vm_isFromLostTrack);
106
filler
.insert(
srcIsoTracks
, v_isFromLostTrack.begin(), v_isFromLostTrack.end());
107
filler
.fill();
108
iEvent
.put(
std::move
(vm_isFromLostTrack),
"isFromLostTrack"
);
109
}
110
111
// ------------ method fills 'descriptions' with the allowed parameters for the module ------------
112
void
IsFromLostTrackMapProducer::fillDescriptions
(
edm::ConfigurationDescriptions
& descriptions) {
113
edm::ParameterSetDescription
desc
;
114
desc
.add<
edm::InputTag
>(
"srcIsoTracks"
)->setComment(
"isolated track input collection"
);
115
desc
.add<
edm::InputTag
>(
"packedPFCandidates"
)->setComment(
"packed PF Candidates collection "
);
116
desc
.add<
edm::InputTag
>(
"lostTracks"
)->setComment(
"lost tracks collection"
);
117
118
descriptions.
addWithDefaultLabel
(
desc
);
119
}
120
121
//define this as a plug-in
122
DEFINE_FWK_MODULE
(
IsFromLostTrackMapProducer
);
edm::StreamID
Definition:
StreamID.h:30
IsFromLostTrackMapProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition:
IsFromLostTrackMapProducer.cc:112
IsFromLostTrackMapProducer::~IsFromLostTrackMapProducer
~IsFromLostTrackMapProducer() override
Definition:
IsFromLostTrackMapProducer.cc:51
isotracks_cff.srcIsoTracks
srcIsoTracks
Definition:
isotracks_cff.py:21
sistrip::View
View
Definition:
ConstantsForView.h:26
PFCandidate.h
edm::EDGetTokenT
Definition:
EDGetToken.h:33
edm
HLT enums.
Definition:
AlignableModifier.h:19
HLT_FULL_cff.InputTag
InputTag
Definition:
HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition:
ParameterSetDescription.h:52
IsFromLostTrackMapProducer::srcIsoTracks_
edm::EDGetTokenT< edm::View< pat::IsolatedTrack > > srcIsoTracks_
Definition:
IsFromLostTrackMapProducer.cc:59
edm::Handle
Definition:
AssociativeIterator.h:50
edm::Ref< pat::PackedCandidateCollection >
MakerMacros.h
IsFromLostTrackMapProducer::lt_
edm::EDGetTokenT< pat::PackedCandidateCollection > lt_
Definition:
IsFromLostTrackMapProducer.cc:61
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition:
MakerMacros.h:16
IsolatedTrack.h
edm::global::EDProducer
Definition:
EDProducer.h:32
edm::ConfigurationDescriptions
Definition:
ConfigurationDescriptions.h:28
edm::ParameterSet
Definition:
ParameterSet.h:47
Event.h
trigObjTnPSource_cfi.filler
filler
Definition:
trigObjTnPSource_cfi.py:21
PackedCandidate.h
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition:
Ref.h:238
iEvent
int iEvent
Definition:
GenABIO.cc:224
isotracks_cff.isFromLostTrack
isFromLostTrack
Definition:
isotracks_cff.py:46
edm::EventSetup
Definition:
EventSetup.h:57
pat
Definition:
HeavyIon.h:7
IsFromLostTrackMapProducer::produce
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
Definition:
IsFromLostTrackMapProducer.cc:77
pat::PackedCandidateCollection
std::vector< pat::PackedCandidate > PackedCandidateCollection
Definition:
PackedCandidate.h:1130
IsFromLostTrackMapProducer
Definition:
IsFromLostTrackMapProducer.cc:40
edm::Ref::id
ProductID id() const
Accessor for product ID.
Definition:
Ref.h:244
submitPVResolutionJobs.desc
string desc
Definition:
submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition:
eostools.py:511
IsFromLostTrackMapProducer::pc_
edm::EDGetTokenT< pat::PackedCandidateCollection > pc_
Definition:
IsFromLostTrackMapProducer.cc:60
Frameworkfwd.h
edm::ValueMap
Definition:
ValueMap.h:107
IsFromLostTrackMapProducer::IsFromLostTrackMapProducer
IsFromLostTrackMapProducer(const edm::ParameterSet &iConfig)
Definition:
IsFromLostTrackMapProducer.cc:42
edm::helper::Filler
Definition:
ValueMap.h:22
ParameterSet.h
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition:
EDConsumerBase.h:153
EDProducer.h
edm::Event
Definition:
Event.h:73
StreamID.h
edm::HandleBase::id
ProductID id() const
Definition:
HandleBase.cc:29
edm::InputTag
Definition:
InputTag.h:15
edm::ConfigurationDescriptions::addWithDefaultLabel
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
Definition:
ConfigurationDescriptions.cc:87
Generated for CMSSW Reference Manual by
1.8.16