Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
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"
);
reco::PFBlockElement
Abstract base class for a PFBlock element (track, cluster...)
Definition:
PFBlockElement.h:26
pflow::importers::TrackFromParentImporter
Definition:
TrackFromParentImporter.h:27
submitPVValidationJobs.t
string t
Definition:
submitPVValidationJobs.py:644
edm::Ref
Definition:
AssociativeIterator.h:58
reco::PFBlockElement::TrackType
TrackType
Definition:
PFBlockElement.h:47
TrackFromParentImporter.h
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition:
JetExtendedAssociation.h:30
PFDisplacedTrackerVertex.h
edmplugin::PluginFactory
Definition:
PluginFactory.h:34
LooseNuclearInteractionTrackImporter
pflow::importers::TrackFromParentImporter< reco::PFDisplacedTrackerVertexCollection, LooseNuclAdaptor > LooseNuclearInteractionTrackImporter
Definition:
LooseNuclearInteractionTrackImporter.cc:30
reco::PFBlockElement::T_TO_DISP
Definition:
PFBlockElement.h:47
reco::PFBlockElement::setDisplacedVertexRef
virtual void setDisplacedVertexRef(const PFDisplacedTrackerVertexRef &niref, TrackType trType)
Definition:
PFBlockElement.h:95
edm::RefVector< PFRecTrackCollection >
reco::PFBlockElement::T_FROM_DISP
Definition:
PFBlockElement.h:47
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition:
PluginFactory.h:124
reco::PFBlockElementTrack::trackRefPF
const PFRecTrackRef & trackRefPF() const override
Definition:
PFBlockElementTrack.h:46
reco::PFBlockElement::DEFAULT
Definition:
PFBlockElement.h:47
reco::PFBlockElementTrack
Track Element.
Definition:
PFBlockElementTrack.h:17
Generated for CMSSW Reference Manual by
1.8.5