Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:28

0001 // \class JetTracksAssociationXtrpCalo
0002 // Associate jets with tracks by extrapolation to calo face
0003 
0004 #ifndef RecoJets_JetAssociationAlgorithms_JetTracksAssociationXtrpCalo_h
0005 #define RecoJets_JetAssociationAlgorithms_JetTracksAssociationXtrpCalo_h
0006 
0007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0008 #include "DataFormats/Math/interface/Point3D.h"
0009 #include <vector>
0010 #include "DataFormats/JetReco/interface/TrackExtrapolation.h"
0011 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0012 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
0013 #include "FWCore/Framework/interface/Event.h"
0014 #include "DataFormats/Common/interface/View.h"
0015 #include "DataFormats/JetReco/interface/Jet.h"
0016 #include "DataFormats/TrackReco/interface/Track.h"
0017 #include "DataFormats/JetReco/interface/JetTracksAssociation.h"
0018 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0019 #include "Geometry/Records/interface/CaloGeometryRecord.h"
0020 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0021 
0022 class MagneticField;
0023 class Propagator;
0024 
0025 class JetTracksAssociationXtrpCalo {
0026 public:
0027   typedef reco::JetTracksAssociation::Container Association;
0028   typedef edm::RefToBase<reco::Jet> JetRef;
0029   typedef std::vector<JetRef> JetRefs;
0030   typedef std::vector<reco::TrackRef> TrackRefs;
0031   /// Constructor
0032   JetTracksAssociationXtrpCalo();
0033 
0034   /// Destructor
0035   virtual ~JetTracksAssociationXtrpCalo();
0036 
0037   /// Associates tracks to jets
0038   void produce(
0039       Association*, JetRefs const&, std::vector<reco::TrackExtrapolation> const&, CaloGeometry const&, double dR);
0040 
0041   void associateInputTracksToJet(reco::TrackRefVector& associated,
0042                                  const reco::Jet& fJet,
0043                                  std::vector<reco::TrackExtrapolation> const& fExtrapolations,
0044                                  double dR);
0045 
0046 private:
0047   /// Unused
0048   virtual void associateTracksToJet(reco::TrackRefVector&, const reco::Jet&, const TrackRefs&) {}
0049 };
0050 
0051 #endif  // RecoJets_JetAssociationAlgorithms_JetTracksAssociationXtrpCalo_h