CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions
JetTracksAssociationXtrpCalo Class Reference

#include <JetTracksAssociationXtrpCalo.h>

Inheritance diagram for JetTracksAssociationXtrpCalo:
JetTracksAssociationDR

Public Member Functions

void associateInputTracksToJet (reco::TrackRefVector &associated, const reco::Jet &fJet, std::vector< reco::TrackExtrapolation > const &fExtrapolations, double dR)
 
 JetTracksAssociationXtrpCalo ()
 Constructor. More...
 
void produce (Association *, JetRefs const &, std::vector< reco::TrackExtrapolation > const &, CaloGeometry const &, double dR)
 Associates tracks to jets. More...
 
 ~JetTracksAssociationXtrpCalo ()
 Destructor. More...
 
- Public Member Functions inherited from JetTracksAssociationDR
void associateTracksToJets (Association *, const JetRefs &, const TrackRefs &)
 
 JetTracksAssociationDR (double dr_threshold)
 Constructor taking dR threshold as argument. More...
 
virtual ~JetTracksAssociationDR ()
 Destructor. More...
 

Private Member Functions

virtual void associateTracksToJet (reco::TrackRefVector &, const reco::Jet &, const TrackRefs &)
 Unused. More...
 

Additional Inherited Members

- Public Types inherited from JetTracksAssociationDR
typedef
reco::JetTracksAssociation::Container 
Association
 Container for jet-track associations. More...
 
typedef edm::RefToBase< reco::JetJetRef
 
typedef std::vector< JetRefJetRefs
 
typedef edm::Handle< edm::View
< reco::Jet > > 
Jets
 Handle to jet collection. More...
 
typedef
reco::TrackBase::TrackQuality 
TrackQuality
 
typedef std::vector
< reco::TrackRef
TrackRefs
 
typedef edm::Handle
< reco::TrackCollection
Tracks
 Handle to track collection. More...
 
- Static Public Member Functions inherited from JetTracksAssociationDR
static void createJetRefs (JetRefs &, const Jets &)
 
static void createTrackRefs (TrackRefs &, const Tracks &, const TrackQuality &)
 
- Protected Member Functions inherited from JetTracksAssociationDR
 JetTracksAssociationDR ()
 Private default constructor. More...
 
- Protected Attributes inherited from JetTracksAssociationDR
double mDeltaR2Threshold
 Threshold used to associate tracks to jets. More...
 

Detailed Description

Definition at line 28 of file JetTracksAssociationXtrpCalo.h.

Constructor & Destructor Documentation

JetTracksAssociationXtrpCalo::JetTracksAssociationXtrpCalo ( )

Constructor.

Definition at line 22 of file JetTracksAssociationXtrpCalo.cc.

23 {}
JetTracksAssociationXtrpCalo::~JetTracksAssociationXtrpCalo ( )

Destructor.

Definition at line 27 of file JetTracksAssociationXtrpCalo.cc.

28 {}

Member Function Documentation

void JetTracksAssociationXtrpCalo::associateInputTracksToJet ( reco::TrackRefVector associated,
const reco::Jet fJet,
std::vector< reco::TrackExtrapolation > const &  fExtrapolations,
double  dR 
)

Definition at line 54 of file JetTracksAssociationXtrpCalo.cc.

References reco::CaloJet::detectorP4(), edm::hlt::Exception, reco::btau::jetEta, reco::btau::jetPhi, reco::LeafCandidate::phi(), point, and edm::RefVector< C, T, F >::push_back().

Referenced by produce().

58 {
59  reco::CaloJet const * pCaloJet = dynamic_cast<reco::CaloJet const *>(&fJet);
60  if ( pCaloJet == 0 ) {
61  throw cms::Exception("InvalidInput") << "Expecting calo jets only in JetTracksAssociationXtrpCalo";
62  }
63  // Loop over CaloTowers
64  double jetPhi = pCaloJet->phi();
65  double jetEta = pCaloJet->detectorP4().eta();
66 
67  // now cache the mapping of (det ID --> track)
68 
69 // std::cout<<" New jet "<<jetEta<<" "<<jetPhi<<" Jet ET "<<pCaloJet->et()<<std::endl;
70 
71  for ( std::vector<reco::TrackExtrapolation>::const_iterator xtrpBegin = fExtrapolations.begin(),
72  xtrpEnd = fExtrapolations.end(), ixtrp = xtrpBegin;
73  ixtrp != xtrpEnd; ++ixtrp ) {
74 //
75 // Do nothing with invalid propagation
76 //
77  if( ixtrp->isValid().at(0) == 0 ) continue;
78 
79  reco::TrackBase::Point const & point = ixtrp->positions().at(0);
80 
81 
82  double dr = reco::deltaR<double>( jetEta, jetPhi, point.eta(), point.phi() );
83  if ( dr < dR ) {
84 
85 // std::cout<<" JetTracksAssociationXtrpCalo::associateInputTracksToJet:: initial track "<<ixtrp->track()->pt()<<" "<<ixtrp->track()->eta()<<
86 // " "<<ixtrp->track()->phi()<< " Extrapolated position "<<point.eta()<<" "<<point.phi()<<" Valid? "<<ixtrp->isValid().at(0)<<" Jet eta, phi "<<jetEta<<" "<<jetPhi<<" Jet ET "<<pCaloJet->et()<<
87 // " dr "<<dr<<" dR "<<dR<<std::endl;
88 
89  reco::TrackRef matchedTrack = ixtrp->track();
90  associated.push_back( matchedTrack );
91  }
92  }
93 
94 
95 }
Jets made from CaloTowers.
Definition: CaloJet.h:30
LorentzVector detectorP4() const
detector p4 for full 3d vertex correction.
Definition: CaloJet.cc:65
math::XYZPoint Point
point in the space
Definition: TrackBase.h:75
void push_back(value_type const &ref)
Add a Ref&lt;C, T&gt; to the RefVector.
Definition: RefVector.h:61
virtual double phi() const
momentum azimuthal angle
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5
virtual void JetTracksAssociationXtrpCalo::associateTracksToJet ( reco::TrackRefVector ,
const reco::Jet ,
const TrackRefs  
)
inlineprivatevirtual

Unused.

Implements JetTracksAssociationDR.

Definition at line 55 of file JetTracksAssociationXtrpCalo.h.

57  {}
void JetTracksAssociationXtrpCalo::produce ( Association fAssociation,
JetRefs const &  fJets,
std::vector< reco::TrackExtrapolation > const &  fExtrapolations,
CaloGeometry const &  fGeo,
double  dR 
)

Associates tracks to jets.

Definition at line 34 of file JetTracksAssociationXtrpCalo.cc.

References associateInputTracksToJet(), and reco::JetTracksAssociation::setValue().

Referenced by JetTracksAssociatorAtCaloFace::produce().

39 {
40  for ( JetRefs::const_iterator jetsBegin = fJets.begin(),
41  jetsEnd = fJets.end(),
42  ijet = jetsBegin;
43  ijet != jetsEnd; ++ijet ) {
44  reco::TrackRefVector associated;
45  associateInputTracksToJet( associated, **ijet, fExtrapolations, dR );
46  reco::JetTracksAssociation::setValue( fAssociation, *ijet, associated );
47  }
48 
49 
50 }
void associateInputTracksToJet(reco::TrackRefVector &associated, const reco::Jet &fJet, std::vector< reco::TrackExtrapolation > const &fExtrapolations, double dR)
bool setValue(Container &, const reco::JetBaseRef &, reco::TrackRefVector)
associate jet with value. Returns false and associate nothing if jet is already associated ...