Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:26:58

0001 #ifndef QuarkoniaTrackSelector_h_
0002 #define QuarkoniaTrackSelector_h_
0003 /** Creates a filtered TrackCollection based on the mass of a combination 
0004  *  of a track and a RecoChargedCandidate (typically a muon)
0005  */
0006 
0007 #include "FWCore/Framework/interface/global/EDProducer.h"
0008 #include "FWCore/Utilities/interface/InputTag.h"
0009 
0010 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h"
0011 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0012 #include "DataFormats/TrackReco/interface/Track.h"
0013 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0014 
0015 #include <vector>
0016 
0017 class QuarkoniaTrackSelector : public edm::global::EDProducer<> {
0018 public:
0019   explicit QuarkoniaTrackSelector(const edm::ParameterSet&);
0020   ~QuarkoniaTrackSelector() override {}
0021 
0022 private:
0023   void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override;
0024 
0025 private:
0026   edm::InputTag muonTag_;   ///< tag for RecoChargedCandidateCollection
0027   edm::InputTag trackTag_;  ///< tag for TrackCollection
0028   edm::EDGetTokenT<reco::RecoChargedCandidateCollection> muonToken_;
0029   edm::EDGetTokenT<reco::TrackCollection> trackToken_;
0030 
0031   std::vector<double> minMasses_;  ///< lower mass limits
0032   std::vector<double> maxMasses_;  ///< upper mass limits
0033   bool checkCharge_;               ///< check opposite charge?
0034   double minTrackPt_;              ///< track pt cut
0035   double minTrackP_;               ///< track p cut
0036   double maxTrackEta_;             ///< track |eta| cut
0037 };
0038 
0039 #endif