Go to the documentation of this file.00001
00016 #ifndef MuonIdentification_MuonCosmicCompatibilityFiller_h
00017 #define MuonIdentification_MuonCosmicCompatibilityFiller_h
00018
00019 #include <vector>
00020
00021 #include "FWCore/Framework/interface/Frameworkfwd.h"
00022 #include "DataFormats/Common/interface/ValueMap.h"
00023
00024 #include "DataFormats/MuonReco/interface/Muon.h"
00025 #include "DataFormats/MuonReco/interface/MuonCosmicCompatibility.h"
00026
00027 namespace edm {class ParameterSet; class Event; class EventSetup;}
00028 class GlobalMuonRefitter;
00029 class MuonServiceProxy;
00030
00031
00032 class MuonCosmicCompatibilityFiller {
00033
00034 public:
00035
00036 MuonCosmicCompatibilityFiller(const edm::ParameterSet&);
00037 ~MuonCosmicCompatibilityFiller();
00038
00040 reco::MuonCosmicCompatibility fillCompatibility( const reco::Muon& muon,edm::Event&, const edm::EventSetup&);
00041
00042 private:
00043
00045 float muonTiming(const edm::Event& iEvent, const reco::Muon& muon, bool isLoose) const;
00046
00048 unsigned int backToBack2LegCosmic(const edm::Event&, const reco::Muon&) const;
00049
00051 unsigned int pvMatches(const edm::Event&, const reco::Muon&, bool) const;
00052
00054 bool isOverlappingMuon(const edm::Event&, const edm::EventSetup& iSetup, const reco::Muon&) const;
00055
00057 unsigned int nMuons(const edm::Event&) const;
00058
00060 unsigned int eventActivity(const edm::Event&, const reco::Muon&) const;
00061
00063 float combinedCosmicID(const edm::Event&, const edm::EventSetup& iSetup, const reco::Muon&, bool CheckMuonID, bool checkVertex) const;
00064
00066 bool checkMuonID( const reco::Muon& ) const;
00067
00069 bool checkMuonSegments(const reco::Muon& muon) const;
00070
00071 private:
00072
00073 std::vector<edm::InputTag> inputMuonCollections_;
00074 std::vector<edm::InputTag> inputTrackCollections_;
00075 edm::InputTag inputCosmicMuonCollection_;
00076 edm::InputTag inputVertexCollection_;
00077 MuonServiceProxy* service_;
00078
00079 double maxdxyLoose_;
00080 double maxdzLoose_;
00081 double maxdxyTight_;
00082 double maxdzTight_;
00083 double maxdxyLooseMult_;
00084 double maxdzLooseMult_;
00085 double maxdxyTightMult_;
00086 double maxdzTightMult_;
00087 double largedxyMult_;
00088 double largedxy_;
00089 double hIpTrdxy_;
00090 double hIpTrvProb_;
00091 double minvProb_;
00092 double maxvertZ_;
00093 double maxvertRho_;
00094 unsigned int nTrackThreshold_;
00095 double offTimePosLoose_;
00096 double offTimeNegLoose_;
00097 double offTimePosTight_;
00098 double offTimeNegTight_;
00099 double offTimePosLooseMult_;
00100 double offTimeNegLooseMult_;
00101 double offTimePosTightMult_;
00102 double offTimeNegTightMult_;
00103 double corrTimePos_;
00104 double corrTimeNeg_;
00105 double deltaPt_;
00106 double angleThreshold_;
00107 int sharedHits_;
00108 double sharedFrac_;
00109 double ipThreshold_;
00110 int nChamberMatches_;
00111 double segmentComp_;
00112
00113 };
00114 #endif