CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 ) ||
10  ( vtx->isNucl_Loose() ));
11  }
12  static const reco::PFRecTrackRefVector&
14  return t.pfRecTracks();
15  }
16  static void set_element_info(reco::PFBlockElement* elem,
18  const reco::PFBlockElementTrack *tkelem =
19  static_cast<const reco::PFBlockElementTrack*>(elem);
20  const reco::PFRecTrackRef& reftrack = tkelem->trackRefPF();
22  if(parref->isIncomingTrack(reftrack))
24  else if (parref->isOutgoingTrack(reftrack))
26  elem->setDisplacedVertexRef(parref,tkType);
27  }
28  };
29 }
30 
32 
34  LooseNuclearInteractionTrackImporter,
35  "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)
Container::value_type value_type
const PFRecTrackRef & trackRefPF() const
#define DEFINE_EDM_PLUGIN(factory, type, name)