Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:05:54

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