12 _useKDTree(conf.getParameter<bool>(
"useKDTree")),
13 _debug(conf.getUntrackedParameter<bool>(
"debug",
false)) {}
25 "TrackAndHCALLinker");
37 if( elem1->
type() < elem2->
type() ) {
48 trackref->extrapolatedPoint( HCALEntrance );
50 trackref->extrapolatedPoint( HCALExit );
51 const double dHEta = ( tkAtHCALEx.
positionREP().Eta() -
57 const double tracketa = tkAtHCALEnt.
positionREP().Eta();
58 const double trackphi = tkAtHCALEnt.
positionREP().Phi();
61 reco::PFMultilinksType::const_iterator mlit = multilinks.begin();
62 for (; mlit != multilinks.end(); ++mlit)
63 if ((mlit->first == trackphi) && (mlit->second == tracketa))
67 if (mlit != multilinks.end()){
70 <<
"Qu'est ce que c'est que ce gag ? "
71 << tkAtHCALEx.
position().R() <<
" is smaller than "
72 << tkAtHCALEnt.
position().R() <<
" !" << std::endl;
76 tracketa + 0.1 * dHEta,
77 trackphi + 0.1 * dHPhi);
const REPPoint & positionREP() const
trajectory position in (rho, eta, phi) base
std::vector< std::pair< double, double > > PFMultilinksType
Abstract This class is used by the KDTree Track / Ecal Cluster linker to store all found links...
Abstract base class for a PFBlock element (track, cluster...)
static double computeDist(double eta1, double phi1, double eta2, double phi2, bool etaPhi=true)
computes a chisquare
ROOT::Math::PositionVector3D< ROOT::Math::CylindricalEta3D< Double32_t > > REPPoint
const math::XYZPoint & position() const
cartesian position (x, y, z)
double testLink(const reco::PFBlockElement *, const reco::PFBlockElement *) const override
const PFClusterRef & clusterRef() const
double deltaPhi(double phi1, double phi2)
bool isValid() const
is this point valid ?
TrackAndHCALLinker(const edm::ParameterSet &conf)
bool isMultilinksValide() const
const PFRecTrackRef & trackRefPF() const
#define DEFINE_EDM_PLUGIN(factory, type, name)
A PFTrack holds several trajectory points, which basically contain the position and momentum of a tra...
volatile std::atomic< bool > shutdown_flag false
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)
const PFMultilinksType & getMultilinks() const