Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:39

0001 #ifndef SimDataFormats_Associations_MuonTrackType_h
0002 #define SimDataFormats_Associations_MuonTrackType_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     SimDataFormats/Associations
0006 // Class  :     MuonTrackType
0007 //
0008 /**\enum MuonTrackType MuonTrackType.h
0009  "SimDataFormats/Associations/interface/MuonTrackType.h"
0010 
0011  Description: Types of muon tracks used by MuonToSimAssociator
0012 
0013  Usage:
0014     <usage>
0015 
0016 */
0017 //
0018 // Original Author:  Christopher Jones
0019 //         Created:  Wed, 07 Jan 2015 21:03:32 GMT
0020 //
0021 
0022 #include "DataFormats/Common/interface/RefToBase.h"
0023 #include "DataFormats/MuonReco/interface/Muon.h"
0024 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h"
0025 #include <vector>
0026 
0027 namespace reco {
0028   enum MuonTrackType { InnerTk, OuterTk, GlobalTk, Segments, GlbOrTrk };
0029 
0030   struct RefToBaseSort {
0031     template <typename T>
0032     bool operator()(const edm::RefToBase<T> &r1, const edm::RefToBase<T> &r2) const {
0033       return (r1.id() == r2.id() ? r1.key() < r2.key() : r1.id() < r2.id());
0034     }
0035   };
0036   typedef std::map<edm::RefToBase<reco::Muon>, std::vector<std::pair<TrackingParticleRef, double>>, RefToBaseSort>
0037       MuonToSimCollection;
0038   typedef std::map<TrackingParticleRef, std::vector<std::pair<edm::RefToBase<reco::Muon>, double>>> SimToMuonCollection;
0039 
0040 }  // namespace reco
0041 
0042 #endif