Main Page
Namespaces
Classes
Package Documentation
RecoParticleFlow
PFProducer
plugins
importers
VeryLooseNuclearInteractionTrackImporter.cc
Go to the documentation of this file.
1
#include "
TrackFromParentImporter.h
"
2
#include "
DataFormats/ParticleFlowReco/interface/PFDisplacedTrackerVertex.h
"
3
4
namespace
{
5
class
VeryLooseNuclAdaptor {
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 ) ||
10
(
vtx
->isNucl_Loose() ) ||
11
(
vtx
->isNucl_Kink() ) );
12
}
13
static
const
reco::PFRecTrackRefVector
&
14
get_track_refs(
const
reco::PFDisplacedTrackerVertexCollection::value_type
& t) {
15
return
t.pfRecTracks();
16
}
17
static
void
set_element_info(
reco::PFBlockElement
*
elem
,
18
const
edm::Ref<reco::PFDisplacedTrackerVertexCollection>
& parref) {
19
const
reco::PFBlockElementTrack
*tkelem =
20
static_cast<
const
reco::PFBlockElementTrack
*
>
(
elem
);
21
const
reco::PFRecTrackRef
& reftrack = tkelem->
trackRefPF
();
22
reco::PFBlockElement::TrackType
tkType =
reco::PFBlockElement::DEFAULT
;
23
if
(parref->isIncomingTrack(reftrack))
24
tkType =
reco::PFBlockElement::T_TO_DISP
;
25
else
if
(parref->isOutgoingTrack(reftrack))
26
tkType =
reco::PFBlockElement::T_FROM_DISP
;
27
elem->
setDisplacedVertexRef
(parref,tkType);
28
}
29
};
30
}
31
32
33
typedef
pflow::importers::TrackFromParentImporter<reco::PFDisplacedTrackerVertexCollection,VeryLooseNuclAdaptor>
VeryLooseNuclearInteractionTrackImporter
;
34
35
DEFINE_EDM_PLUGIN
(
BlockElementImporterFactory
,
36
VeryLooseNuclearInteractionTrackImporter,
37
"VeryLooseNuclearInteractionTrackImporter"
);
reco::PFBlockElement
Abstract base class for a PFBlock element (track, cluster...)
Definition:
PFBlockElement.h:28
pflow::importers::TrackFromParentImporter
Definition:
TrackFromParentImporter.h:31
edm::Ref
Definition:
AssociativeIterator.h:51
reco::PFBlockElement::TrackType
TrackType
Definition:
PFBlockElement.h:50
TrackFromParentImporter.h
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition:
JetExtendedAssociation.h:30
PFDisplacedTrackerVertex.h
edmplugin::PluginFactory
Definition:
PluginFactory.h:31
reco::PFBlockElement::T_TO_DISP
Definition:
PFBlockElement.h:53
reco::PFBlockElement::setDisplacedVertexRef
virtual void setDisplacedVertexRef(const PFDisplacedTrackerVertexRef &niref, TrackType trType)
Definition:
PFBlockElement.h:111
VeryLooseNuclearInteractionTrackImporter
pflow::importers::TrackFromParentImporter< reco::PFDisplacedTrackerVertexCollection, VeryLooseNuclAdaptor > VeryLooseNuclearInteractionTrackImporter
Definition:
VeryLooseNuclearInteractionTrackImporter.cc:33
HTMLExport.elem
def elem(elemtype, innerHTML='', html_class='', kwargs)
Definition:
HTMLExport.py:18
edm::RefVector< PFRecTrackCollection >
reco::PFBlockElementTrack::trackRefPF
const PFRecTrackRef & trackRefPF() const
Definition:
PFBlockElementTrack.h:54
reco::PFBlockElement::T_FROM_DISP
Definition:
PFBlockElement.h:52
lumiQTWidget.t
t
Definition:
lumiQTWidget.py:50
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition:
PluginFactory.h:101
badGlobalMuonTaggersAOD_cff.vtx
vtx
Definition:
badGlobalMuonTaggersAOD_cff.py:5
reco::PFBlockElement::DEFAULT
Definition:
PFBlockElement.h:51
reco::PFBlockElementTrack
Track Element.
Definition:
PFBlockElementTrack.h:17
Generated for CMSSW Reference Manual by
1.8.11