Go to the documentation of this file.
26 switch (elem1->
type()) {
46 pselem = static_cast<const reco::PFBlockElementCluster*>(elem1);
47 ecalelem = static_cast<const reco::PFBlockElementCluster*>(elem2);
49 pselem = static_cast<const reco::PFBlockElementCluster*>(elem2);
50 ecalelem = static_cast<const reco::PFBlockElementCluster*>(elem1);
55 throw cms::Exception(
"BadClusterRefs") <<
"PFBlockElementCluster's refs are null!";
64 const double ecalPhi = ecalreppos.Phi();
65 const double ecalEta = ecalreppos.Eta();
68 reco::PFMultilinksType::const_iterator mlit = multilinks.begin();
69 for (; mlit != multilinks.end(); ++mlit)
74 if (mlit != multilinks.end()) {
76 ecalxyzpos.X() / 1000., ecalxyzpos.Y() / 1000., psxyzpos.X() / 1000., psxyzpos.Y() / 1000.,
false);
std::vector< std::pair< double, double > > PFMultilinksType
Abstract This class is used by the KDTree Track / Ecal Cluster linker to store all found links.
bool isNull() const
Checks for null.
bool isMultilinksValide(Type type) const
static double testECALAndPSByRecHit(const reco::PFCluster &clusterECAL, const reco::PFCluster &clusterPS, bool debug=false)
double testLink(const reco::PFBlockElement *, const reco::PFBlockElement *) const override
#define DEFINE_EDM_PLUGIN(factory, type, name)
XYZPointD XYZPoint
point in space with cartesian internal representation
PreshowerAndECALLinker(const edm::ParameterSet &conf)
Abstract base class for a PFBlock element (track, cluster...)
const PFClusterRef & clusterRef() const override
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double > > REPPoint
const PFMultilinksType & getMultilinks(Type type) const
static double computeDist(double eta1, double phi1, double eta2, double phi2, bool etaPhi=true)
computes a chisquare
bool linkPrefilter(const reco::PFBlockElement *, const reco::PFBlockElement *) const override