File indexing completed on 2024-04-06 12:15:50
0001 #ifndef HLTmmkFilter_h
0002 #define HLTmmkFilter_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include <memory>
0022
0023 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0024 #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h"
0025 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0026 #include "TrackingTools/Records/interface/TransientTrackRecord.h"
0027 #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h"
0028 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0029 #include "MagneticField/Engine/interface/MagneticField.h"
0030
0031 namespace edm {
0032 class ConfigurationDescriptions;
0033 }
0034
0035 namespace reco {
0036 class Candidate;
0037 class Track;
0038 }
0039
0040 class FreeTrajectoryState;
0041 class MagneticField;
0042
0043 class HLTmmkFilter : public HLTFilter {
0044 public:
0045 explicit HLTmmkFilter(const edm::ParameterSet&);
0046 ~HLTmmkFilter() override;
0047 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0048
0049 private:
0050 void beginJob() override;
0051 bool hltFilter(edm::Event&,
0052 const edm::EventSetup&,
0053 trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0054 void endJob() override;
0055
0056 static int overlap(const reco::Candidate&, const reco::Candidate&);
0057 static FreeTrajectoryState initialFreeState(const reco::Track&, const MagneticField*);
0058
0059 const edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> transientTrackRecordToken_;
0060 const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> idealMagneticFieldRecordToken_;
0061
0062 edm::InputTag muCandTag_;
0063 edm::EDGetTokenT<reco::RecoChargedCandidateCollection> muCandToken_;
0064 edm::InputTag trkCandTag_;
0065 edm::EDGetTokenT<reco::RecoChargedCandidateCollection> trkCandToken_;
0066
0067 const double thirdTrackMass_;
0068 const double maxEta_;
0069 const double minPt_;
0070 const double minInvMass_;
0071 const double maxInvMass_;
0072 const double maxNormalisedChi2_;
0073 const double minLxySignificance_;
0074 const double minCosinePointingAngle_;
0075 const double minD0Significance_;
0076 const bool fastAccept_;
0077 edm::InputTag beamSpotTag_;
0078 edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_;
0079 };
0080 #endif