CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions
JetTracksAssociationXtrpCalo Class Reference

#include <JetTracksAssociationXtrpCalo.h>

Public Types

typedef reco::JetTracksAssociation::Container Association
 
typedef edm::RefToBase< reco::JetJetRef
 
typedef std::vector< JetRefJetRefs
 
typedef std::vector< reco::TrackRefTrackRefs
 

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...
 
virtual ~JetTracksAssociationXtrpCalo ()
 Destructor. More...
 

Private Member Functions

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

Detailed Description

Definition at line 26 of file JetTracksAssociationXtrpCalo.h.

Member Typedef Documentation

Definition at line 28 of file JetTracksAssociationXtrpCalo.h.

Definition at line 29 of file JetTracksAssociationXtrpCalo.h.

Definition at line 30 of file JetTracksAssociationXtrpCalo.h.

Definition at line 31 of file JetTracksAssociationXtrpCalo.h.

Constructor & Destructor Documentation

JetTracksAssociationXtrpCalo::JetTracksAssociationXtrpCalo ( )

Constructor.

Definition at line 21 of file JetTracksAssociationXtrpCalo.cc.

22 {}
JetTracksAssociationXtrpCalo::~JetTracksAssociationXtrpCalo ( )
virtual

Destructor.

Definition at line 26 of file JetTracksAssociationXtrpCalo.cc.

27 {}

Member Function Documentation

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

Definition at line 53 of file JetTracksAssociationXtrpCalo.cc.

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

Referenced by produce().

57 {
58  reco::CaloJet const * pCaloJet = dynamic_cast<reco::CaloJet const *>(&fJet);
59  if ( pCaloJet == nullptr ) {
60  throw cms::Exception("InvalidInput") << "Expecting calo jets only in JetTracksAssociationXtrpCalo";
61  }
62  // Loop over CaloTowers
63  double jetPhi = pCaloJet->phi();
64  double jetEta = pCaloJet->detectorP4().eta();
65 
66  // now cache the mapping of (det ID --> track)
67 
68 // std::cout<<" New jet "<<jetEta<<" "<<jetPhi<<" Jet ET "<<pCaloJet->et()<<std::endl;
69 
70  for ( std::vector<reco::TrackExtrapolation>::const_iterator xtrpBegin = fExtrapolations.begin(),
71  xtrpEnd = fExtrapolations.end(), ixtrp = xtrpBegin;
72  ixtrp != xtrpEnd; ++ixtrp ) {
73 
74  if ( ixtrp->positions().empty() ) continue;
75  reco::TrackBase::Point const & point = ixtrp->positions().at(0);
76 
77 
78  double dr = reco::deltaR<double>( jetEta, jetPhi, point.eta(), point.phi() );
79  if ( dr < dR ) {
80 
81 // std::cout<<" JetTracksAssociationXtrpCalo::associateInputTracksToJet:: initial track "<<ixtrp->track()->pt()<<" "<<ixtrp->track()->eta()<<
82 // " "<<ixtrp->track()->phi()<< " Extrapolated position "<<point.eta()<<" "<<point.phi()<<" Valid? "<<ixtrp->isValid().at(0)<<" Jet eta, phi "<<jetEta<<" "<<jetPhi<<" Jet ET "<<pCaloJet->et()<<
83 // " dr "<<dr<<" dR "<<dR<<std::endl;
84 
85  reco::TrackRef matchedTrack = ixtrp->track();
86  associated.push_back( matchedTrack );
87  }
88  }
89 
90 
91 }
Jets made from CaloTowers.
Definition: CaloJet.h:29
LorentzVector detectorP4() const
detector p4 for full 3d vertex correction.
Definition: CaloJet.cc:64
math::XYZPoint Point
point in the space
Definition: TrackBase.h:83
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
Definition: RefVector.h:69
double phi() const final
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.

Definition at line 56 of file JetTracksAssociationXtrpCalo.h.

58  {}
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 33 of file JetTracksAssociationXtrpCalo.cc.

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

Referenced by JetTracksAssociatorAtCaloFace::produce().

38 {
39  for ( JetRefs::const_iterator jetsBegin = fJets.begin(),
40  jetsEnd = fJets.end(),
41  ijet = jetsBegin;
42  ijet != jetsEnd; ++ijet ) {
43  reco::TrackRefVector associated;
44  associateInputTracksToJet( associated, **ijet, fExtrapolations, dR );
45  reco::JetTracksAssociation::setValue( fAssociation, *ijet, associated );
46  }
47 
48 
49 }
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 ...