CMS 3D CMS Logo

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