24 const double rBarrel = 129.;
25 const double zEndcap = 320.;
26 const double zVF = 1100.;
27 const double rEndcapMin = zEndcap *
tan ( 2*atan (
exp (-3.)));
28 const double rVFMin = zEndcap *
tan ( 2*atan (
exp (-5.191)));
55 propagatedInfo = fPropagator.
propagate (trackState,
61 if (fabs (
result.z()) < zEndcap) {
70 double zTarget = trackMomentum.
z() > 0 ? zEndcap : -zEndcap;
71 propagatedInfo = fPropagator.
propagate (trackState,
77 if (fabs (
result.perp()) > rEndcapMin) {
85 zTarget = trackMomentum.
z() > 0 ? zVF : -zVF;
86 propagatedInfo = fPropagator.
propagate (trackState,
92 if (fabs (
result.perp()) > rVFMin) {
106 : mDeltaR2Threshold (fDr*fDr)
111 const std::vector <reco::TrackRef>& fTracks,
116 std::vector<ImpactPoint> impacts;
117 for (
unsigned t = 0;
t < fTracks.size(); ++
t) {
118 GlobalPoint impact = propagateTrackToCalo (*(fTracks[
t]), fField, fPropagator);
119 if (impact.
mag () > 0) {
122 goodTrack.eta = impact.
eta ();
123 goodTrack.phi = impact.
barePhi();
124 impacts.push_back (goodTrack);
128 for (
unsigned j = 0;
j < fJets.size(); ++
j) {
133 for (
unsigned t = 0;
t < impacts.size(); ++
t) {
double outerPy() const
y coordinate of momentum vector at the outermost hit position
const TrackExtraRef & extra() const
reference to "extra" object
JetTracksAssociationDRCalo(double fDr)
Base class for all types of Jets.
Global3DPoint GlobalPoint
virtual double phi() const final
momentum azimuthal angle
GlobalPoint globalPosition() const
double px() const
x coordinate of momentum vector
double outerZ() const
z coordinate of the outermost hit position
static CylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, Bounds *bounds=0)
double mDeltaR2Threshold
fidutial dR between track in the vertex and jet's reference direction
bool goodTrack(const reco::Track *pTrack, math::XYZPoint leadPV, trackSelectionParameters parameters, bool debug=false)
bool setValue(Container &, const reco::JetBaseRef &, reco::TrackRefVector)
associate jet with value. Returns false and associate nothing if jet is already associated ...
static PlanePointer build(Args &&...args)
Tan< T >::type tan(const T &t)
static math::XYZPoint propagateTrackToCalorimeter(const reco::Track &fTrack, const MagneticField &fField, const Propagator &fPropagator)
propagating the track to the Calorimeter
double outerX() const
x coordinate of the outermost hit position
double outerPz() const
z coordinate of momentum vector at the outermost hit position
double pz() const
z coordinate of momentum vector
double vz() const
z coordinate of the reference point on track
XYZPointD XYZPoint
point in space with cartesian internal representation
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
T1 deltaR2(T1 eta1, T2 phi1, T3 eta2, T4 phi2)
double vy() const
y coordinate of the reference point on track
double outerY() const
y coordinate of the outermost hit position
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
void produce(reco::JetTracksAssociation::Container *fAssociation, const std::vector< edm::RefToBase< reco::Jet > > &fJets, const std::vector< reco::TrackRef > &fTracks, const MagneticField &fField, const Propagator &fPropagator) const
int charge() const
track electric charge
virtual double eta() const final
momentum pseudorapidity
double outerPx() const
x coordinate of momentum vector at the outermost hit position
double py() const
y coordinate of momentum vector
double vx() const
x coordinate of the reference point on track
Global3DVector GlobalVector