Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 //
0003 // Package:    JetPlusTracks
0004 // Class:      JetPlusTrackProducerAA
0005 //
0006 /**\class JetPlusTrackProducerAA JetPlusTrackProducerAA.cc JetPlusTrackProducerAA.cc
0007 
0008  Description: [one line class summary]
0009 
0010  Implementation:
0011      [Notes on implementation]
0012 */
0013 //
0014 // Original Author:  Olga Kodolova,40 R-A12,+41227671273,
0015 //         Created:  Fri Feb 19 10:14:02 CET 2010
0016 //
0017 //
0018 
0019 // system include files
0020 #include <memory>
0021 
0022 // user include files
0023 #include "FWCore/Framework/interface/Frameworkfwd.h"
0024 #include "FWCore/Framework/interface/stream/EDProducer.h"
0025 #include "FWCore/Framework/interface/Event.h"
0026 #include "FWCore/Framework/interface/MakerMacros.h"
0027 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0028 #include "JetPlusTrackCorrector.h"
0029 #include "ZSPJPTJetCorrector.h"
0030 #include "DataFormats/JetReco/interface/JPTJetCollection.h"
0031 #include "DataFormats/JetReco/interface/JPTJet.h"
0032 
0033 #include "DataFormats/JetReco/interface/CaloJet.h"
0034 #include "DataFormats/VertexReco/interface/Vertex.h"
0035 
0036 //=>
0037 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0038 #include "DataFormats/Math/interface/Point3D.h"
0039 #include <vector>
0040 #include "RecoJets/JetAssociationAlgorithms/interface/JetTracksAssociationDR.h"
0041 #include "DataFormats/JetReco/interface/TrackExtrapolation.h"
0042 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0043 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
0044 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
0045 #include "Geometry/Records/interface/CaloGeometryRecord.h"
0046 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
0047 //=>
0048 
0049 #include <string>
0050 
0051 //
0052 // class declaration
0053 //
0054 
0055 class JetPlusTrackProducerAA : public edm::stream::EDProducer<> {
0056 public:
0057   explicit JetPlusTrackProducerAA(const edm::ParameterSet&);
0058   ~JetPlusTrackProducerAA() override;
0059   void produce(edm::Event&, const edm::EventSetup&) override;
0060 
0061   reco::TrackRefVector calculateBGtracksJet(reco::JPTJetCollection&,
0062                                             std::vector<reco::TrackRef>&,
0063                                             edm::Handle<std::vector<reco::TrackExtrapolation> >&,
0064                                             reco::TrackRefVector&);
0065 
0066 private:
0067   // ---------- private data members ---------------------------
0068   JetPlusTrackCorrector* mJPTalgo;
0069   ZSPJPTJetCorrector* mZSPalgo;
0070   edm::InputTag src;
0071   edm::InputTag srcPVs_;
0072   std::string alias;
0073   bool vectorial_;
0074   bool useZSP;
0075   edm::InputTag mTracks;
0076   double mConeSize;
0077   reco::TrackBase::TrackQuality trackQuality_;
0078 
0079   //=>
0080   edm::InputTag mExtrapolations;
0081   //=>
0082 
0083   edm::EDGetTokenT<edm::View<reco::CaloJet> > input_jets_token_;
0084   edm::EDGetTokenT<reco::VertexCollection> input_vertex_token_;
0085   edm::EDGetTokenT<reco::TrackCollection> input_tracks_token_;
0086   edm::EDGetTokenT<std::vector<reco::TrackExtrapolation> > input_extrapolations_token_;
0087 };