CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PATMuonProducer.h
Go to the documentation of this file.
1 //
2 // $Id: PATMuonProducer.h,v 1.28.6.1 2012/09/04 17:31:56 vadler Exp $
3 //
4 
5 #ifndef PhysicsTools_PatAlgos_PATMuonProducer_h
6 #define PhysicsTools_PatAlgos_PATMuonProducer_h
7 
19 #include <string>
20 
26 
31 
35 
36 
37 namespace pat {
39  class TrackerIsolationPt;
40  class CaloIsolationEnergy;
41 
44 
45  public:
47  explicit PATMuonProducer(const edm::ParameterSet & iConfig);
51  virtual void produce(edm::Event & iEvent, const edm::EventSetup & iSetup);
53  static void fillDescriptions(edm::ConfigurationDescriptions & descriptions);
54 
55  private:
58  typedef std::vector<edm::Handle<edm::Association<reco::GenParticleCollection> > > GenAssociations;
59  typedef std::vector< edm::Handle< edm::ValueMap<IsoDeposit> > > IsoDepositMaps;
60  typedef std::vector< edm::Handle< edm::ValueMap<double> > > IsolationValueMaps;
61  typedef std::pair<pat::IsolationKeys,edm::InputTag> IsolationLabel;
62  typedef std::vector<IsolationLabel> IsolationLabels;
63 
64 
66  void fillMuon( Muon& aMuon, const MuonBaseRef& muonRef, const reco::CandidateBaseRef& baseRef, const GenAssociations& genMatches, const IsoDepositMaps& deposits, const IsolationValueMaps& isolationValues) const;
69  void readIsolationLabels( const edm::ParameterSet & iConfig, const char* psetName, IsolationLabels& labels);
70 
71 
72  // embed various impact parameters with errors
73  // embed high level selection
74  void embedHighLevel( pat::Muon & aMuon,
75  reco::TrackRef track,
77  reco::Vertex & primaryVertex,
78  bool primaryVertexIsValid,
79  reco::BeamSpot & beamspot,
80  bool beamspotIsValid );
81 
82 
83  private:
86 
114  std::vector<edm::InputTag> genMatchSrc_;
132  bool usePV_;
143 
155  };
156 
157 }
158 
159 #endif
bool embedTpfmsMuon_
embed track from tpfms muon fit into the muon
bool useUserData_
add user data to the muon (this will be data members of th muon even w/o embedding) ...
std::pair< pat::IsolationKeys, edm::InputTag > IsolationLabel
Assists in assimilating all pat::UserData into pat objects.
bool usePV_
use the primary vertex or the beamspot
bool embedTcMETMuonCorrs_
embed muon MET correction info for tcMET into the muon
class definition
bool embedImprovedBestTrack_
embed the track from best muon measurement, new tuneP, 53X option only
bool addEfficiencies_
add efficiencies to the muon (this will be data members of th muon even w/o embedding) ...
bool embedCaloMETMuonCorrs_
embed muon MET correction info for caloMET into the muon
edm::InputTag pvSrc_
input source of the primary vertex
bool embedBestTrack_
embed the track from best muon measurement
edm::InputTag tcMETMuonCorrs_
source of tcMET muon corrections
edm::InputTag pfMuonSrc_
input source pfCandidates that will be to be transformed into pat::Muons, when using PF2PAT ...
bool addResolutions_
add resolutions to the muon (this will be data members of th muon even w/o embedding) ...
void embedHighLevel(pat::Muon &aMuon, reco::TrackRef track, reco::TransientTrack &tt, reco::Vertex &primaryVertex, bool primaryVertexIsValid, reco::BeamSpot &beamspot, bool beamspotIsValid)
PATMuonProducer(const edm::ParameterSet &iConfig)
default constructir
pat::helper::MultiIsolator isolator_
helper class to add userdefined isolation values to the muon
std::vector< IsolationLabel > IsolationLabels
bool useParticleFlow_
switch to use particle flow (PF2PAT) or not
pat::PATUserDataHelper< pat::Muon > userDataHelper_
helper class to add userData to the muon
bool embedStandAloneMuon_
embed track from muon system into the muon
~PATMuonProducer()
default destructur
int iEvent
Definition: GenABIO.cc:243
GreaterByPt< Muon > pTComparator_
bool embedTrack_
embed the track from inner tracker into the muon
bool addGenMatch_
add generator match information
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
description of config file parameters
edm::InputTag beamLineSrc_
input source of the primary vertex/beamspot
virtual void produce(edm::Event &iEvent, const edm::EventSetup &iSetup)
everything that needs to be done during the event loop
std::vector< edm::InputTag > genMatchSrc_
input tags for generator match information
edm::InputTag muonSrc_
input source
void readIsolationLabels(const edm::ParameterSet &iConfig, const char *psetName, IsolationLabels &labels)
edm::InputTag caloMETMuonCorrs_
source of caloMET muon corrections
std::vector< edm::Handle< edm::Association< reco::GenParticleCollection > > > GenAssociations
void fillMuon(Muon &aMuon, const MuonBaseRef &muonRef, const reco::CandidateBaseRef &baseRef, const GenAssociations &genMatches, const IsoDepositMaps &deposits, const IsolationValueMaps &isolationValues) const
common muon filling, for both the standard and PF2PAT case
std::vector< std::pair< pat::IsolationKeys, float > > IsolationValuePairs
Definition: MultiIsolator.h:16
pat::helper::EfficiencyLoader efficiencyLoader_
helper class to add efficiencies to the muon
bool embedPickyMuon_
embed track from picky muon fit into the muon
bool embedDytMuon_
embed track from DYT muon fit into the muon
std::vector< edm::Handle< edm::ValueMap< IsoDeposit > > > IsoDepositMaps
pat::helper::MultiIsolator::IsolationValuePairs isolatorTmpStorage_
isolation value pair for temporary storage before being folded into the muon
bool embedGenMatch_
embed the gen match information into the muon
IsolationLabels isoDepositLabels_
input source for isoDeposits
IsolationLabels isolationValueLabels_
input source isolation value maps
std::vector< edm::Handle< edm::ValueMap< double > > > IsolationValueMaps
edm::RefToBase< reco::Muon > MuonBaseRef
typedefs for convenience
bool embedPFCandidate_
embed pfCandidates into the muon
bool embedCombinedMuon_
embed track of the combined fit into the muon
Analysis-level muon class.
Definition: Muon.h:51
pat::helper::KinResolutionsLoader resolutionLoader_
helper class to add resolutions to the muon
bool embedHighLevelSelection_
embed high level selection variables