File indexing completed on 2023-03-17 10:38:58
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 <vector>
0021
0022 namespace edm {
0023 class Event;
0024 }
0025
0026 class AlignmentMuonSelector {
0027 public:
0028 typedef std::vector<const reco::Muon*> Muons;
0029
0030
0031 AlignmentMuonSelector(const edm::ParameterSet& cfg);
0032
0033
0034 ~AlignmentMuonSelector();
0035
0036
0037 Muons select(const Muons& muons, const edm::Event& evt) const;
0038
0039 private:
0040
0041 Muons basicCuts(const Muons& muons) const;
0042
0043
0044 Muons theNHighestPtMuons(const Muons& muons) const;
0045
0046
0047 Muons theBestMassPairCombinationMuons(const Muons& muons) const;
0048
0049
0050 struct ComparePt {
0051 bool operator()(const reco::Muon* t1, const reco::Muon* t2) const { return t1->pt() > t2->pt(); }
0052 };
0053 ComparePt ptComparator;
0054
0055
0056 bool applyBasicCuts, applyNHighestPt, applyMultiplicityFilter, applyMassPairFilter;
0057 int nHighestPt, minMultiplicity;
0058 double pMin, pMax, ptMin, ptMax, etaMin, etaMax, phiMin, phiMax;
0059 double nHitMinSA, nHitMaxSA, chi2nMaxSA;
0060 double nHitMinGB, nHitMaxGB, chi2nMaxGB;
0061 double nHitMinTO, nHitMaxTO, chi2nMaxTO;
0062 double minMassPair, maxMassPair;
0063 };
0064
0065 #endif