CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/Alignment/CommonAlignmentProducer/interface/AlignmentMuonSelector.h

Go to the documentation of this file.
00001 #ifndef Alignment_CommonAlignmentAlgorithm_AlignmentMuonSelector_h
00002 #define Alignment_CommonAlignmentAlgorithm_AlignmentMuonSelector_h
00003 
00018 #include "DataFormats/MuonReco/interface/Muon.h"
00019 #include "CommonTools/RecoAlgos/interface/MuonSelector.h"
00020 #include <vector>
00021 
00022 namespace edm { class Event; }
00023 
00024 class AlignmentMuonSelector 
00025 {
00026 
00027  public:
00028 
00029   typedef std::vector<const reco::Muon*> Muons; 
00030 
00032   AlignmentMuonSelector(const edm::ParameterSet & cfg);
00033 
00035   ~AlignmentMuonSelector();
00036 
00038   Muons select(const Muons& muons, const edm::Event& evt) const;
00039 
00040  private:
00041 
00043   Muons basicCuts(const Muons& muons) const;
00044 
00046   Muons theNHighestPtMuons(const Muons& muons) const;
00047   
00049   Muons theBestMassPairCombinationMuons(const Muons& muons) const;
00050   
00052   struct ComparePt {
00053     bool operator()( const reco::Muon* t1, const reco::Muon* t2 ) const {
00054       return t1->pt()> t2->pt();
00055     }
00056   };
00057   ComparePt ptComparator;
00058 
00060   bool applyBasicCuts,applyNHighestPt,applyMultiplicityFilter,applyMassPairFilter;
00061   int nHighestPt,minMultiplicity;
00062   double pMin,pMax,ptMin,ptMax,etaMin,etaMax,phiMin,phiMax;
00063   double nHitMinSA,nHitMaxSA,chi2nMaxSA;
00064   double nHitMinGB,nHitMaxGB,chi2nMaxGB;
00065   double nHitMinTO,nHitMaxTO,chi2nMaxTO;
00066   double minMassPair,maxMassPair;
00067 
00068 };
00069 
00070 #endif
00071