Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
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
lumiQTWidget.t
tuple t
Definition:
lumiQTWidget.py:50
edm::Ref
Definition:
AssociativeIterator.h:51
reco::PFBlockElement::TrackType
TrackType
Definition:
PFBlockElement.h:49
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:52
HTMLExport.elem
def elem
Definition:
HTMLExport.py:18
reco::PFBlockElement::setDisplacedVertexRef
virtual void setDisplacedVertexRef(const PFDisplacedTrackerVertexRef &niref, TrackType trType)
Definition:
PFBlockElement.h:108
VeryLooseNuclearInteractionTrackImporter
pflow::importers::TrackFromParentImporter< reco::PFDisplacedTrackerVertexCollection, VeryLooseNuclAdaptor > VeryLooseNuclearInteractionTrackImporter
Definition:
VeryLooseNuclearInteractionTrackImporter.cc:33
edm::RefVector< PFRecTrackCollection >
reco::PFBlockElementTrack::trackRefPF
const PFRecTrackRef & trackRefPF() const
Definition:
PFBlockElementTrack.h:54
reco::PFBlockElement::T_FROM_DISP
Definition:
PFBlockElement.h:51
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition:
PluginFactory.h:101
reco::PFBlockElement::DEFAULT
Definition:
PFBlockElement.h:50
reco::PFBlockElementTrack
Track Element.
Definition:
PFBlockElementTrack.h:17
Generated for CMSSW Reference Manual by
1.8.5