CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
pat::PATMuonSlimmer Class Reference

Slimmer of PAT Muons. More...

Inheritance diagram for pat::PATMuonSlimmer:
edm::stream::EDProducer<>

Public Member Functions

 PATMuonSlimmer (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~PATMuonSlimmer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Attributes

const StringCutObjectSelector
< pat::Muon
dropDirectionalIso_
 
const StringCutObjectSelector
< pat::Muon
dropPfP4_
 
const bool linkToPackedPF_
 
const bool modifyMuon_
 
std::unique_ptr
< pat::ObjectModifier
< pat::Muon > > 
muonModifier_
 
std::vector< edm::EDGetTokenT
< edm::Association
< pat::PackedCandidateCollection > > > 
pf2pc_
 
std::vector< edm::EDGetTokenT
< reco::PFCandidateCollection > > 
pf_
 
const bool saveSegments_
 
const StringCutObjectSelector
< pat::Muon
saveTeVMuons_
 
const StringCutObjectSelector
< pat::Muon
segmentsMuonSelection_
 
const StringCutObjectSelector
< pat::Muon
slimCaloMETCorr_
 
const StringCutObjectSelector
< pat::Muon
slimCaloVars_
 
const StringCutObjectSelector
< pat::Muon
slimKinkVars_
 
const StringCutObjectSelector
< pat::Muon
slimMatches_
 
const edm::EDGetTokenT
< pat::MuonCollection
src_
 
std::vector< edm::EDGetTokenT
< edm::Association
< reco::TrackExtraCollection > > > 
trackExtraAssocs_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Slimmer of PAT Muons.

Definition at line 25 of file PATMuonSlimmer.cc.

Constructor & Destructor Documentation

pat::PATMuonSlimmer::PATMuonSlimmer ( const edm::ParameterSet iConfig)
explicit

Definition at line 46 of file PATMuonSlimmer.cc.

References edm::ParameterSet::getParameter(), linkToPackedPF_, modifyMuon_, muonModifier_, pf2pc_, pf_, saveSegments_, GlobalPosition_Frontier_DevDB_cff::tag, and trackExtraAssocs_.

47  : src_(consumes<pat::MuonCollection>(iConfig.getParameter<edm::InputTag>("src"))),
48  linkToPackedPF_(iConfig.getParameter<bool>("linkToPackedPFCandidates")),
49  saveTeVMuons_(iConfig.getParameter<std::string>("saveTeVMuons")),
50  dropDirectionalIso_(iConfig.getParameter<std::string>("dropDirectionalIso")),
51  dropPfP4_(iConfig.getParameter<std::string>("dropPfP4")),
52  slimCaloVars_(iConfig.getParameter<std::string>("slimCaloVars")),
53  slimKinkVars_(iConfig.getParameter<std::string>("slimKinkVars")),
54  slimCaloMETCorr_(iConfig.getParameter<std::string>("slimCaloMETCorr")),
55  slimMatches_(iConfig.getParameter<std::string>("slimMatches")),
56  segmentsMuonSelection_(iConfig.getParameter<std::string>("segmentsMuonSelection")),
57  saveSegments_(iConfig.getParameter<bool>("saveSegments")),
58  modifyMuon_(iConfig.getParameter<bool>("modifyMuons")) {
59  if (linkToPackedPF_) {
60  const std::vector<edm::InputTag> &pf = iConfig.getParameter<std::vector<edm::InputTag>>("pfCandidates");
61  const std::vector<edm::InputTag> &pf2pc = iConfig.getParameter<std::vector<edm::InputTag>>("packedPFCandidates");
62  if (pf.size() != pf2pc.size())
63  throw cms::Exception("Configuration") << "Mismatching pfCandidates and packedPFCandidates\n";
64  for (const edm::InputTag &tag : pf)
65  pf_.push_back(consumes<reco::PFCandidateCollection>(tag));
66  for (const edm::InputTag &tag : pf2pc)
68  }
69 
70  if (modifyMuon_) {
71  const edm::ParameterSet &mod_config = iConfig.getParameter<edm::ParameterSet>("modifierConfig");
72  muonModifier_ = std::make_unique<pat::ObjectModifier<pat::Muon>>(mod_config, consumesCollector());
73  }
74  produces<std::vector<pat::Muon>>();
75  if (saveSegments_) {
76  produces<DTRecSegment4DCollection>();
77  produces<CSCSegmentCollection>();
78  }
79 
80  //associations for rekeying of TrackExtra refs in embedded tracks
81  std::vector<edm::InputTag> trackExtraAssocTags = iConfig.getParameter<std::vector<edm::InputTag>>("trackExtraAssocs");
82  for (edm::InputTag const &tag : trackExtraAssocTags) {
84  }
85 }
const edm::EDGetTokenT< pat::MuonCollection > src_
const StringCutObjectSelector< pat::Muon > dropDirectionalIso_
const StringCutObjectSelector< pat::Muon > slimKinkVars_
const bool linkToPackedPF_
std::vector< edm::EDGetTokenT< reco::PFCandidateCollection > > pf_
const StringCutObjectSelector< pat::Muon > slimCaloVars_
std::unique_ptr< pat::ObjectModifier< pat::Muon > > muonModifier_
const StringCutObjectSelector< pat::Muon > segmentsMuonSelection_
const StringCutObjectSelector< pat::Muon > dropPfP4_
std::vector< edm::EDGetTokenT< edm::Association< reco::TrackExtraCollection > > > trackExtraAssocs_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const StringCutObjectSelector< pat::Muon > slimMatches_
std::vector< edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > > pf2pc_
const StringCutObjectSelector< pat::Muon > saveTeVMuons_
const StringCutObjectSelector< pat::Muon > slimCaloMETCorr_
const bool saveSegments_
pat::PATMuonSlimmer::~PATMuonSlimmer ( )
inlineoverride

Definition at line 28 of file PATMuonSlimmer.cc.

28 {}

Member Function Documentation

void pat::PATMuonSlimmer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 87 of file PATMuonSlimmer.cc.

References reco::Muon::calEnergy(), pat::Muon::caloMETMuonCorrs(), reco::Muon::combinedQuality(), reco::MuonMETCorrectionData::corrX(), reco::MuonMETCorrectionData::corrY(), CSCDetId, reco::MuonSegmentMatch::cscSegmentRef, DTChamberId, reco::MuonSegmentMatch::dtSegmentRef, reco::MuonSegmentMatch::dXdZErr, reco::MuonSegmentMatch::dYdZErr, reco::MuonEnergy::ecal_position, reco::MuonEnergy::ecal_time, reco::MuonEnergy::ecal_timeError, reco::MuonEnergy::em, pat::Muon::embedCaloMETMuonCorrs(), pat::Muon::embedDytMuon(), pat::Muon::embedPickyMuon(), pat::Muon::embedTpfmsMuon(), reco::MuonEnergy::emMax, reco::MuonEnergy::emS25, edm::Event::getByToken(), reco::MuonEnergy::had, reco::MuonEnergy::hadMax, reco::MuonEnergy::hadS9, reco::MuonEnergy::hcal_position, reco::MuonEnergy::hcal_time, reco::MuonEnergy::hcal_timeError, mps_fire::i, reco::Muon::isEnergyValid(), reco::Muon::isMatchesValid(), edm::Ref< C, T, F >::isNonnull(), reco::Muon::isPFMuon(), reco::Muon::isQualityValid(), reco::Muon::matches(), eostools::move(), RPCpg::mu, reco::PFCandidate::muonRef(), dqmiodumpmetadata::n, reco::MuonMETCorrectionData::NotUsed, submitPVResolutionJobs::out, AlCaHLTBitMon_ParallelJobs::p, edm::Event::put(), pat::PATObject< ObjectType >::refToOrig_, edm::refToPtr(), pat::Muon::rekeyEmbeddedTracks(), reco::Muon::setCalEnergy(), reco::Muon::setCombinedQuality(), reco::Muon::setPFIsolation(), reco::Muon::setPFP4(), alcazmumu_cfi::src, reco::MuonQuality::tkKink_position, reco::MuonEnergy::tower, reco::MuonEnergy::towerS9, slimmedTrackExtras_cff::trackExtraAssocs, reco::MuonMETCorrectionData::type(), reco::MuonSegmentMatch::xErr, reco::MuonSegmentMatch::yErr, and SiPixelPI::zero.

87  {
88  using namespace edm;
89  using namespace std;
90 
91  if (modifyMuon_)
92  muonModifier_->setEventContent(iSetup);
93 
95  iEvent.getByToken(src_, src);
96 
97  auto out = std::make_unique<std::vector<pat::Muon>>();
98  out->reserve(src->size());
99 
100  auto outDTSegments = std::make_unique<DTRecSegment4DCollection>();
101  std::set<DTRecSegment4DRef> dtSegmentsRefs;
102  auto outCSCSegments = std::make_unique<CSCSegmentCollection>();
103  std::set<CSCSegmentRef> cscSegmentsRefs;
104 
105  if (modifyMuon_) {
106  muonModifier_->setEvent(iEvent);
107  }
108 
109  std::map<reco::CandidatePtr, pat::PackedCandidateRef> mu2pc;
110  if (linkToPackedPF_) {
113  for (unsigned int ipfh = 0, npfh = pf_.size(); ipfh < npfh; ++ipfh) {
114  iEvent.getByToken(pf_[ipfh], pf);
115  iEvent.getByToken(pf2pc_[ipfh], pf2pc);
116  const auto &pfcoll = (*pf);
117  const auto &pfmap = (*pf2pc);
118  for (unsigned int i = 0, n = pf->size(); i < n; ++i) {
119  const reco::PFCandidate &p = pfcoll[i];
120  if (p.muonRef().isNonnull())
121  mu2pc[refToPtr(p.muonRef())] = pfmap[reco::PFCandidateRef(pf, i)];
122  }
123  }
124  }
125 
126  std::vector<edm::Handle<edm::Association<reco::TrackExtraCollection>>> trackExtraAssocs(trackExtraAssocs_.size());
127  for (unsigned int i = 0; i < trackExtraAssocs_.size(); ++i) {
129  }
130 
131  for (vector<pat::Muon>::const_iterator it = src->begin(), ed = src->end(); it != ed; ++it) {
132  out->push_back(*it);
133  pat::Muon &mu = out->back();
134 
135  if (modifyMuon_) {
136  muonModifier_->modify(mu);
137  }
138 
139  if (saveTeVMuons_(mu)) {
140  mu.embedPickyMuon();
141  mu.embedTpfmsMuon();
142  mu.embedDytMuon();
143  }
144  if (linkToPackedPF_) {
145  mu.refToOrig_ = refToPtr(mu2pc[mu.refToOrig_]);
146  }
147  if (dropDirectionalIso_(mu)) {
149  mu.setPFIsolation("pfIsoMeanDRProfileR03", zero);
150  mu.setPFIsolation("pfIsoSumDRProfileR03", zero);
151  mu.setPFIsolation("pfIsoMeanDRProfileR04", zero);
152  mu.setPFIsolation("pfIsoSumDRProfileR04", zero);
153  }
154  if (mu.isPFMuon() && dropPfP4_(mu))
156  if (slimCaloVars_(mu) && mu.isEnergyValid()) {
157  reco::MuonEnergy ene = mu.calEnergy();
158  if (ene.tower)
159  ene.tower = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.tower);
160  if (ene.towerS9)
161  ene.towerS9 = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.towerS9);
162  if (ene.had)
163  ene.had = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.had);
164  if (ene.hadS9)
165  ene.hadS9 = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hadS9);
166  if (ene.hadMax)
167  ene.hadMax = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hadMax);
168  if (ene.em)
169  ene.em = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.em);
170  if (ene.emS25)
171  ene.emS25 = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.emS25);
172  if (ene.emMax)
173  ene.emMax = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.emMax);
174  if (ene.hcal_time)
175  ene.hcal_time = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_time);
176  if (ene.hcal_timeError)
177  ene.hcal_timeError = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_timeError);
178  if (ene.ecal_time)
179  ene.ecal_time = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.ecal_time);
180  if (ene.ecal_timeError)
181  ene.ecal_timeError = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.ecal_timeError);
182  ene.ecal_position = math::XYZPointF(MiniFloatConverter::reduceMantissaToNbitsRounding<14>(ene.ecal_position.X()),
183  MiniFloatConverter::reduceMantissaToNbitsRounding<14>(ene.ecal_position.Y()),
184  MiniFloatConverter::reduceMantissaToNbitsRounding<14>(ene.ecal_position.Z()));
185  ene.hcal_position = math::XYZPointF(MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_position.X()),
186  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_position.Y()),
187  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_position.Z()));
188  mu.setCalEnergy(ene);
189  }
190  if (slimKinkVars_(mu) && mu.isQualityValid()) {
192  qual.tkKink_position =
193  math::XYZPointF(MiniFloatConverter::reduceMantissaToNbitsRounding<12>(qual.tkKink_position.X()),
194  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(qual.tkKink_position.Y()),
195  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(qual.tkKink_position.Z()));
196  mu.setCombinedQuality(qual);
197  }
200  corrs = reco::MuonMETCorrectionData(corrs.type(),
201  MiniFloatConverter::reduceMantissaToNbitsRounding<10>(corrs.corrX()),
202  MiniFloatConverter::reduceMantissaToNbitsRounding<10>(corrs.corrY()));
203  mu.embedCaloMETMuonCorrs(corrs);
204  }
205  if (slimMatches_(mu) && mu.isMatchesValid()) {
206  for (reco::MuonChamberMatch &cmatch : mu.matches()) {
207  cmatch.edgeX = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.edgeX);
208  cmatch.edgeY = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.edgeY);
209  cmatch.xErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.xErr);
210  cmatch.yErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.yErr);
211  cmatch.dXdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.dXdZErr);
212  cmatch.dYdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.dYdZErr);
213  for (reco::MuonSegmentMatch &smatch : cmatch.segmentMatches) {
214  smatch.xErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.xErr);
215  smatch.yErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.yErr);
216  smatch.dXdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.dXdZErr);
217  smatch.dYdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.dYdZErr);
219  if (smatch.dtSegmentRef.isNonnull())
220  dtSegmentsRefs.insert(smatch.dtSegmentRef);
221  if (smatch.cscSegmentRef.isNonnull())
222  cscSegmentsRefs.insert(smatch.cscSegmentRef);
223  }
224  }
225  }
226  }
227  // rekey TrackExtra references in embedded tracks
229  }
230 
231  if (saveSegments_) {
232  std::map<DTRecSegment4DRef, size_t> dtMap;
233  std::vector<DTRecSegment4D> outDTSegmentsTmp;
234  std::map<CSCSegmentRef, size_t> cscMap;
235  std::vector<CSCSegment> outCSCSegmentsTmp;
236  for (auto &seg : dtSegmentsRefs) {
237  dtMap[seg] = outDTSegments->size();
238  outDTSegmentsTmp.push_back(*seg);
239  }
240  for (auto &seg : cscSegmentsRefs) {
241  cscMap[seg] = outCSCSegments->size();
242  outCSCSegmentsTmp.push_back(*seg);
243  }
244  outDTSegments->put(DTChamberId(), outDTSegmentsTmp.begin(), outDTSegmentsTmp.end());
245  outCSCSegments->put(CSCDetId(), outCSCSegmentsTmp.begin(), outCSCSegmentsTmp.end());
246  auto dtHandle = iEvent.put(std::move(outDTSegments));
247  auto cscHandle = iEvent.put(std::move(outCSCSegments));
248  for (auto &mu : *out) {
249  if (mu.isMatchesValid()) {
250  for (reco::MuonChamberMatch &cmatch : mu.matches()) {
251  for (reco::MuonSegmentMatch &smatch : cmatch.segmentMatches) {
252  if (dtMap.find(smatch.dtSegmentRef) != dtMap.end())
253  smatch.dtSegmentRef = DTRecSegment4DRef(dtHandle, dtMap[smatch.dtSegmentRef]);
254  if (cscMap.find(smatch.cscSegmentRef) != cscMap.end())
255  smatch.cscSegmentRef = CSCSegmentRef(cscHandle, cscMap[smatch.cscSegmentRef]);
256  }
257  }
258  }
259  }
260  }
261 
262  iEvent.put(std::move(out));
263 }
const edm::EDGetTokenT< pat::MuonCollection > src_
float ecal_timeError
Definition: MuonEnergy.h:48
void embedDytMuon()
embed reference to the above dyt Track
DTRecSegment4DRef dtSegmentRef
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
const StringCutObjectSelector< pat::Muon > dropDirectionalIso_
const StringCutObjectSelector< pat::Muon > slimKinkVars_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
void embedTpfmsMuon()
embed reference to the above tpfms Track
Ptr< typename C::value_type > refToPtr(Ref< C, typename C::value_type, refhelper::FindUsingAdvance< C, typename C::value_type > > const &ref)
Definition: RefToPtr.h:18
CSCSegmentRef cscSegmentRef
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
const bool linkToPackedPF_
std::vector< edm::EDGetTokenT< reco::PFCandidateCollection > > pf_
bool isMatchesValid() const
Definition: Muon.h:143
const StringCutObjectSelector< pat::Muon > slimCaloVars_
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
void setCalEnergy(const MuonEnergy &calEnergy)
set energy deposition information
Definition: Muon.h:108
std::unique_ptr< pat::ObjectModifier< pat::Muon > > muonModifier_
float towerS9
total energy in 3x3 tower shape
Definition: MuonEnergy.h:22
float ecal_time
Calorimeter timing.
Definition: MuonEnergy.h:47
const StringCutObjectSelector< pat::Muon > segmentsMuonSelection_
float emS25
energy deposited in 5x5 ECAL crystal shape around central crystal
Definition: MuonEnergy.h:30
def move
Definition: eostools.py:511
MuonQuality combinedQuality() const
get energy deposition information
Definition: Muon.h:119
void setPFIsolation(const std::string &label, const reco::MuonPFIsolation &deposit)
const int mu
Definition: Constants.h:22
bool isQualityValid() const
Definition: Muon.h:117
math::XYZPointF hcal_position
Definition: MuonEnergy.h:54
bool isEnergyValid() const
Definition: Muon.h:104
reco::MuonRef muonRef() const
Definition: PFCandidate.cc:443
MuonEnergy calEnergy() const
get energy deposition information
Definition: Muon.h:106
float emMax
maximal energy of ECAL crystal in the 5x5 shape
Definition: MuonEnergy.h:32
const StringCutObjectSelector< pat::Muon > dropPfP4_
float hadMax
maximal energy of HCAL tower in the 3x3 shape
Definition: MuonEnergy.h:40
std::vector< edm::EDGetTokenT< edm::Association< reco::TrackExtraCollection > > > trackExtraAssocs_
void rekeyEmbeddedTracks(std::vector< edm::Handle< edm::Association< reco::TrackExtraCollection >>> const &assocs)
void setCombinedQuality(const MuonQuality &combinedQuality)
set energy deposition information
Definition: Muon.h:121
std::vector< MuonChamberMatch > & matches()
get muon matching information
Definition: Muon.h:145
const StringCutObjectSelector< pat::Muon > slimMatches_
math::XYZPoint tkKink_position
Kink position for the tracker stub and global track.
Definition: MuonQuality.h:32
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
void embedCaloMETMuonCorrs(const reco::MuonMETCorrectionData &t)
std::vector< edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > > pf2pc_
bool isPFMuon() const
Definition: Muon.h:305
virtual void setPFP4(const reco::Candidate::LorentzVector &p4_)
float hcal_timeError
Definition: MuonEnergy.h:50
const StringCutObjectSelector< pat::Muon > saveTeVMuons_
const StringCutObjectSelector< pat::Muon > slimCaloMETCorr_
void embedPickyMuon()
embed reference to the above picky Track
math::XYZPointF ecal_position
Trajectory position at the calorimeter.
Definition: MuonEnergy.h:53
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Particle.h:21
Analysis-level muon class.
Definition: Muon.h:51
edm::Ptr< reco::Candidate > refToOrig_
Definition: PATObject.h:458
const bool saveSegments_
float hadS9
energy deposited in 3x3 HCAL tower shape around central tower
Definition: MuonEnergy.h:38
reco::MuonMETCorrectionData caloMETMuonCorrs() const
muon MET corrections for caloMET; returns the muon correction struct if embedded during pat tuple pro...
Definition: Muon.h:105

Member Data Documentation

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::dropDirectionalIso_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::dropPfP4_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const bool pat::PATMuonSlimmer::linkToPackedPF_
private

Definition at line 36 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

const bool pat::PATMuonSlimmer::modifyMuon_
private

Definition at line 39 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

std::unique_ptr<pat::ObjectModifier<pat::Muon> > pat::PATMuonSlimmer::muonModifier_
private

Definition at line 40 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

std::vector<edm::EDGetTokenT<edm::Association<pat::PackedCandidateCollection> > > pat::PATMuonSlimmer::pf2pc_
private

Definition at line 35 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

std::vector<edm::EDGetTokenT<reco::PFCandidateCollection> > pat::PATMuonSlimmer::pf_
private

Definition at line 34 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

const bool pat::PATMuonSlimmer::saveSegments_
private

Definition at line 39 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::saveTeVMuons_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::segmentsMuonSelection_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::slimCaloMETCorr_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::slimCaloVars_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::slimKinkVars_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const StringCutObjectSelector<pat::Muon> pat::PATMuonSlimmer::slimMatches_
private

Definition at line 37 of file PATMuonSlimmer.cc.

const edm::EDGetTokenT<pat::MuonCollection> pat::PATMuonSlimmer::src_
private

Definition at line 33 of file PATMuonSlimmer.cc.

std::vector<edm::EDGetTokenT<edm::Association<reco::TrackExtraCollection> > > pat::PATMuonSlimmer::trackExtraAssocs_
private

Definition at line 41 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().