27 switch (elem1->
type()) {
62 const double tracketa = tkAtECAL.
positionREP().Eta();
63 const double trackphi = tkAtECAL.
positionREP().Phi();
65 reco::PFMultilinksType::const_iterator mlit = multilinks.begin();
66 for (; mlit != multilinks.end(); ++mlit)
67 if (mlit->trackRef == trackref)
71 if (mlit != multilinks.end()) {
82 std::cout <<
" Here a link has been established" 83 <<
" between a track an Ecal with dist " << dist << std::endl;
85 std::cout <<
" No link found " << std::endl;
Abstract base class for a PFBlock element (track, cluster...)
const REPPoint & positionREP() const
trajectory position in (rho, eta, phi) base
static double computeDist(double eta1, double phi1, double eta2, double phi2, bool etaPhi=true)
computes a chisquare
double testLink(const reco::PFBlockElement *, const reco::PFBlockElement *) const override
const PFMultilinksType & getMultilinks(Type type) const
bool isValid() const
is this point valid ?
std::vector< PFMultilink > PFMultilinksType
collection of PFSuperCluster objects
bool isMultilinksValide(Type type) const
const PFClusterRef & clusterRef() const override
bool linkPrefilter(const reco::PFBlockElement *, const reco::PFBlockElement *) const override
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< double > > REPPoint
#define DEFINE_EDM_PLUGIN(factory, type, name)
A PFTrack holds several trajectory points, which basically contain the position and momentum of a tra...
const PFRecTrackRef & trackRefPF() const override
LayerType
Define the different layers where the track can be propagated.
static double testTrackAndClusterByRecHit(const reco::PFRecTrack &track, const reco::PFCluster &cluster, bool isBrem=false, bool debug=false)
TrackAndECALLinker(const edm::ParameterSet &conf)