CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
VeryLooseNuclearInteractionTrackImporter.cc
Go to the documentation of this file.
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&
15  return t.pfRecTracks();
16  }
17  static void set_element_info(reco::PFBlockElement* elem,
19  const reco::PFBlockElementTrack *tkelem =
20  static_cast<const reco::PFBlockElementTrack*>(elem);
21  const reco::PFRecTrackRef& reftrack = tkelem->trackRefPF();
23  if(parref->isIncomingTrack(reftrack))
25  else if (parref->isOutgoingTrack(reftrack))
27  elem->setDisplacedVertexRef(parref,tkType);
28  }
29  };
30 }
31 
32 
34 
36  VeryLooseNuclearInteractionTrackImporter,
37  "VeryLooseNuclearInteractionTrackImporter");
Abstract base class for a PFBlock element (track, cluster...)
virtual void setDisplacedVertexRef(const PFDisplacedTrackerVertexRef &niref, TrackType trType)
pflow::importers::TrackFromParentImporter< reco::PFDisplacedTrackerVertexCollection, VeryLooseNuclAdaptor > VeryLooseNuclearInteractionTrackImporter
const PFRecTrackRef & trackRefPF() const
#define DEFINE_EDM_PLUGIN(factory, type, name)