File indexing completed on 2025-02-05 23:50:57
0001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentMuonSelector_h
0002 #define Alignment_CommonAlignmentAlgorithm_AlignmentMuonSelector_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018 #include "DataFormats/MuonReco/interface/Muon.h"
0019 #include "CommonTools/RecoAlgos/interface/MuonSelector.h"
0020 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0021 #include <vector>
0022
0023 namespace edm {
0024 class Event;
0025 }
0026
0027 class AlignmentMuonSelector {
0028 public:
0029 typedef std::vector<const reco::Muon*> Muons;
0030
0031
0032 AlignmentMuonSelector(const edm::ParameterSet& cfg);
0033
0034
0035 ~AlignmentMuonSelector();
0036
0037
0038 Muons select(const Muons& muons, const edm::Event& evt) const;
0039
0040 static void fillPSetDescription(edm::ParameterSetDescription& desc);
0041
0042 private:
0043
0044 Muons basicCuts(const Muons& muons) const;
0045
0046
0047 Muons theNHighestPtMuons(const Muons& muons) const;
0048
0049
0050 Muons theBestMassPairCombinationMuons(const Muons& muons) const;
0051
0052
0053 struct ComparePt {
0054 bool operator()(const reco::Muon* t1, const reco::Muon* t2) const { return t1->pt() > t2->pt(); }
0055 };
0056 ComparePt ptComparator;
0057
0058
0059 bool applyBasicCuts, applyNHighestPt, applyMultiplicityFilter, applyMassPairFilter;
0060 int nHighestPt, minMultiplicity;
0061 double pMin, pMax, ptMin, ptMax, etaMin, etaMax, phiMin, phiMax;
0062 double nHitMinSA, nHitMaxSA, chi2nMaxSA;
0063 double nHitMinGB, nHitMaxGB, chi2nMaxGB;
0064 double nHitMinTO, nHitMaxTO, chi2nMaxTO;
0065 double minMassPair, maxMassPair;
0066 };
0067
0068 #endif