Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:15:49

0001 #ifndef HLTDisplacedmumuVtxProducer_h
0002 #define HLTDisplacedmumuVtxProducer_h
0003 
0004 /** \class HLTDisplacedmumuVtxProducer_h
0005  *
0006  *  
0007  *  produces kalman vertices from di-muons
0008  *  takes muon candidates as input
0009  *  configurable cuts on pt, eta, pair pt, inv. mass
0010  *
0011  *  \author Alexander.Schmidt@cern.ch
0012  *  \date   3. Feb. 2011
0013  *
0014  */
0015 
0016 #include "FWCore/Framework/interface/global/EDProducer.h"
0017 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0018 #include "FWCore/Framework/interface/Event.h"
0019 #include "FWCore/Framework/interface/EventSetup.h"
0020 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0021 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0022 #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
0023 #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h"
0024 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
0025 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
0026 
0027 #include <vector>
0028 
0029 namespace edm {
0030   class ConfigurationDescriptions;
0031 }
0032 
0033 class HLTDisplacedmumuVtxProducer : public edm::global::EDProducer<> {
0034 public:
0035   explicit HLTDisplacedmumuVtxProducer(const edm::ParameterSet&);
0036   ~HLTDisplacedmumuVtxProducer() override;
0037   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0038   void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0039 
0040 private:
0041   bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector<reco::RecoChargedCandidateRef>& ref2) const;
0042 
0043   const edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> transientTrackRecordToken_;
0044   const edm::InputTag srcTag_;
0045   const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> srcToken_;
0046   const edm::InputTag previousCandTag_;
0047   const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> previousCandToken_;
0048   const bool matchToPrevious_;
0049   const double maxEta_;
0050   const double minPt_;
0051   const double minPtPair_;
0052   const double minInvMass_;
0053   const double maxInvMass_;
0054   const int chargeOpt_;
0055 };
0056 
0057 #endif