CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/RecoJets/JetAssociationAlgorithms/interface/JetTracksAssociationXtrpCalo.h

Go to the documentation of this file.
00001 // \class JetTracksAssociationXtrpCalo
00002 // Associate jets with tracks by extrapolation to calo face
00003 // $Id: JetTracksAssociationXtrpCalo.h,v 1.2 2011/02/16 18:25:33 stadie Exp $
00004 
00005 #ifndef RecoJets_JetAssociationAlgorithms_JetTracksAssociationXtrpCalo_h
00006 #define RecoJets_JetAssociationAlgorithms_JetTracksAssociationXtrpCalo_h
00007 
00008 
00009 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00010 #include "DataFormats/Math/interface/Point3D.h"
00011 #include <vector>
00012 #include "DataFormats/JetReco/interface/TrackExtrapolation.h"
00013 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" 
00014 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
00015 #include "FWCore/Framework/interface/Event.h"
00016 #include "DataFormats/Common/interface/View.h"
00017 #include "DataFormats/JetReco/interface/Jet.h"
00018 #include "DataFormats/TrackReco/interface/Track.h"
00019 #include "DataFormats/JetReco/interface/JetTracksAssociation.h"
00020 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00021 #include "Geometry/Records/interface/CaloGeometryRecord.h"
00022 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00023 
00024 class MagneticField;
00025 class Propagator;
00026 
00027 class JetTracksAssociationXtrpCalo { 
00028  public:
00029   typedef reco::JetTracksAssociation::Container Association;
00030   typedef edm::RefToBase<reco::Jet> JetRef;
00031   typedef std::vector<JetRef> JetRefs;
00032   typedef std::vector<reco::TrackRef> TrackRefs;
00034   JetTracksAssociationXtrpCalo();
00035   
00037   ~JetTracksAssociationXtrpCalo();
00038 
00040   void produce( Association*,
00041                 JetRefs const &,
00042                 std::vector<reco::TrackExtrapolation> const &,
00043                 CaloGeometry const &,
00044                 double dR );
00045 
00046   void associateInputTracksToJet( reco::TrackRefVector& associated,
00047                                   const reco::Jet& fJet,
00048                                   std::vector<reco::TrackExtrapolation> const & fExtrapolations,
00049                                   double dR ) ;
00050   
00051 
00052   
00053 
00054  private:
00055 
00057   virtual void associateTracksToJet( reco::TrackRefVector&,
00058                                      const reco::Jet&,
00059                                      const TrackRefs& ) {}
00060 };
00061 
00062 #endif // RecoJets_JetAssociationAlgorithms_JetTracksAssociationXtrpCalo_h