RecoParticleFlow
PFProducer
plugins
importers
LooseNuclearInteractionTrackImporter.cc
Go to the documentation of this file.
1
#include "
TrackFromParentImporter.h
"
2
#include "
DataFormats/ParticleFlowReco/interface/PFDisplacedTrackerVertex.h
"
3
4
namespace
{
5
class
LooseNuclAdaptor {
6
public
:
7
static
bool
check_importable(
const
reco::PFDisplacedTrackerVertexCollection::value_type
&
t
) {
8
const
auto
&
vtx
=
t
.displacedVertexRef();
9
return
((
vtx
->isNucl() &&
vtx
->position().rho() > 2.7) || (
vtx
->isNucl_Loose()));
10
}
11
static
const
reco::PFRecTrackRefVector
& get_track_refs(
12
const
reco::PFDisplacedTrackerVertexCollection::value_type
&
t
) {
13
return
t
.pfRecTracks();
14
}
15
static
void
set_element_info(
reco::PFBlockElement
* elem,
16
const
edm::Ref<reco::PFDisplacedTrackerVertexCollection>
& parref) {
17
const
reco::PFBlockElementTrack
* tkelem = static_cast<const reco::PFBlockElementTrack*>(elem);
18
const
reco::PFRecTrackRef
& reftrack = tkelem->
trackRefPF
();
19
reco::PFBlockElement::TrackType
tkType =
reco::PFBlockElement::DEFAULT
;
20
if
(parref->isIncomingTrack(reftrack))
21
tkType =
reco::PFBlockElement::T_TO_DISP
;
22
else
if
(parref->isOutgoingTrack(reftrack))
23
tkType =
reco::PFBlockElement::T_FROM_DISP
;
24
elem->
setDisplacedVertexRef
(parref, tkType);
25
}
26
};
27
}
// namespace
28
29
typedef
pflow::importers::TrackFromParentImporter<reco::PFDisplacedTrackerVertexCollection, LooseNuclAdaptor>
30
LooseNuclearInteractionTrackImporter
;
31
32
DEFINE_EDM_PLUGIN
(
BlockElementImporterFactory
,
33
LooseNuclearInteractionTrackImporter
,
34
"LooseNuclearInteractionTrackImporter"
);
pflow::importers::TrackFromParentImporter
Definition:
TrackFromParentImporter.h:25
TrackFromParentImporter.h
reco::PFBlockElement::T_TO_DISP
Definition:
PFBlockElement.h:47
edm::RefVector< PFRecTrackCollection >
edm::Ref
Definition:
AssociativeIterator.h:58
reco::PFBlockElementTrack::trackRefPF
const PFRecTrackRef & trackRefPF() const override
Definition:
PFBlockElementTrack.h:46
OrderedSet.t
t
Definition:
OrderedSet.py:90
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition:
PluginFactory.h:124
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition:
badGlobalMuonTaggersAOD_cff.py:5
reco::PFBlockElement::TrackType
TrackType
Definition:
PFBlockElement.h:47
reco::PFBlockElement::T_FROM_DISP
Definition:
PFBlockElement.h:47
edmplugin::PluginFactory
Definition:
PluginFactory.h:34
PFDisplacedTrackerVertex.h
reco::PFBlockElement::DEFAULT
Definition:
PFBlockElement.h:47
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition:
JetExtendedAssociation.h:30
reco::PFBlockElement
Abstract base class for a PFBlock element (track, cluster...)
Definition:
PFBlockElement.h:26
reco::PFBlockElementTrack
Track Element.
Definition:
PFBlockElementTrack.h:17
LooseNuclearInteractionTrackImporter
pflow::importers::TrackFromParentImporter< reco::PFDisplacedTrackerVertexCollection, LooseNuclAdaptor > LooseNuclearInteractionTrackImporter
Definition:
LooseNuclearInteractionTrackImporter.cc:30
reco::PFBlockElement::setDisplacedVertexRef
virtual void setDisplacedVertexRef(const PFDisplacedTrackerVertexRef &niref, TrackType trType)
Definition:
PFBlockElement.h:95
Generated for CMSSW Reference Manual by
1.8.16