Go to the documentation of this file.
51 switch (elem1->
type()) {
68 tkelem = static_cast<const reco::PFBlockElementTrack*>(elem1);
69 hcalelem = static_cast<const reco::PFBlockElementCluster*>(elem2);
71 tkelem = static_cast<const reco::PFBlockElementTrack*>(elem2);
72 hcalelem = static_cast<const reco::PFBlockElementCluster*>(elem1);
86 dRHCALEx = tkAtHCALEx.
position().R();
90 const double tracketa = tkAtHCALEnt.
positionREP().Eta();
91 const double trackphi = tkAtHCALEnt.
positionREP().Phi();
94 reco::PFMultilinksType::const_iterator mlit = multilinks.begin();
95 for (; mlit != multilinks.end(); ++mlit)
96 if ((mlit->first == trackphi) && (mlit->second == tracketa))
101 if (mlit != multilinks.end()) {
111 if (dRHCALEx < tkAtHCALEnt.
position().R()) {
114 <<
"Special case of linking with track hitting HCAL and looping back in the tracker ";
117 hcalreppos.Eta(), hcalreppos.Phi(), tracketa + 0.1 * dHEta, trackphi + 0.1 * dHPhi);
std::vector< std::pair< double, double > > PFMultilinksType
Abstract This class is used by the KDTree Track / Ecal Cluster linker to store all found links.
std::string trajectoryLayerEntranceString_
constexpr double deltaPhi(double phi1, double phi2)
static double testTrackAndClusterByRecHit(const reco::PFRecTrack &track, const reco::PFCluster &cluster, bool isBrem=false, bool debug=false)
const PFMultilinksType & getMultilinks() const
const REPPoint & positionREP() const
trajectory position in (rho, eta, phi) base
const PFRecTrackRef & trackRefPF() const override
reco::PFTrajectoryPoint::LayerType trajectoryLayerExit_
#define DEFINE_EDM_PLUGIN(factory, type, name)
const math::XYZPoint & position() const
cartesian position (x, y, z)
LayerType
Define the different layers where the track can be propagated.
static LayerType layerTypeByName(const std::string &name)
bool isValid() const
is this point valid ?
Abstract base class for a PFBlock element (track, cluster...)
A PFTrack holds several trajectory points, which basically contain the position and momentum of a tra...
bool linkPrefilter(const reco::PFBlockElement *, const reco::PFBlockElement *) const override
reco::PFTrajectoryPoint::LayerType trajectoryLayerEntrance_
const PFClusterRef & clusterRef() const override
double testLink(const reco::PFBlockElement *, const reco::PFBlockElement *) const override
std::string trajectoryLayerExitString_
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double > > REPPoint
static double computeDist(double eta1, double phi1, double eta2, double phi2, bool etaPhi=true)
computes a chisquare
TrackAndHCALLinker(const edm::ParameterSet &conf)
bool isMultilinksValide() const