25 const double rBarrel = 129.;
26 const double zEndcap = 320.;
27 const double zVF = 1100.;
28 const double rEndcapMin = zEndcap *
tan ( 2*atan (
exp (-3.)));
29 const double rVFMin = zEndcap *
tan ( 2*atan (
exp (-5.191)));
56 propagatedInfo = fPropagator.
propagate (trackState,
63 if (fabs (
result.z()) < zEndcap) {
72 double zTarget = trackMomentum.
z() > 0 ? zEndcap : -zEndcap;
73 propagatedInfo = fPropagator.
propagate (trackState,
79 if (fabs (
result.perp()) > rEndcapMin) {
87 zTarget = trackMomentum.
z() > 0 ? zVF : -zVF;
88 propagatedInfo = fPropagator.
propagate (trackState,
94 if (fabs (
result.perp()) > rVFMin) {
108 : mDeltaR2Threshold (fDr*fDr)
113 const std::vector <reco::TrackRef>& fTracks,
118 std::vector<ImpactPoint> impacts;
119 for (
unsigned t = 0;
t < fTracks.size(); ++
t) {
120 GlobalPoint impact = propagateTrackToCalo (*(fTracks[
t]), fField, fPropagator);
121 if (impact.
mag () > 0) {
124 goodTrack.eta = impact.
eta ();
125 goodTrack.phi = impact.
barePhi();
126 impacts.push_back (goodTrack);
130 for (
unsigned j = 0;
j < fJets.size(); ++
j) {
135 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
GlobalPoint globalPosition() const
static PlanePointer build(const PositionType &pos, const RotationType &rot, MediumProperties *mp=0)
double px() const
x coordinate of momentum vector
virtual double eta() const
momentum pseudorapidity
double outerZ() const
z coordinate of the outermost hit position
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 ...
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 deltaR2(const Vector1 &v1, const Vector2 &v2)
double outerPz() const
z coordinate of momentum vector at the outermost hit position
double pz() const
z coordinate of momentum vector
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
double vz() const
z coordinate of the reference point on track
XYZPointD XYZPoint
point in space with cartesian internal representation
static CylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, MediumProperties *mp=0)
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 phi() const
momentum azimuthal angle
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