Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef HLTDisplacedmumumuVtxProducer_h
0002 #define HLTDisplacedmumumuVtxProducer_h
0003 
0004 /** \class HLTDisplacedmumumuVtxProducer_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 #include <vector>
0027 
0028 namespace edm {
0029   class ConfigurationDescriptions;
0030 }
0031 
0032 class HLTDisplacedmumumuVtxProducer : public edm::global::EDProducer<> {
0033 public:
0034   explicit HLTDisplacedmumumuVtxProducer(const edm::ParameterSet&);
0035   ~HLTDisplacedmumumuVtxProducer() override;
0036   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0037   void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0038 
0039 private:
0040   bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector<reco::RecoChargedCandidateRef>& ref2) const;
0041 
0042   const edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> transientTrackRecordToken_;
0043   const edm::InputTag srcTag_;
0044   const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> srcToken_;
0045   const edm::InputTag previousCandTag_;
0046   const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> previousCandToken_;
0047   const double maxEta_;
0048   const double minPt_;
0049   const double minPtTriplet_;
0050   const double minInvMass_;
0051   const double maxInvMass_;
0052   const int chargeOpt_;
0053 };
0054 
0055 #endif