CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/RecoMuon/MuonIdentification/interface/MuonCosmicCompatibilityFiller.h

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