CMS 3D CMS Logo

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::MuondropDirectionalIso_
 
const StringCutObjectSelector< pat::MuondropPfP4_
 
const bool linkToLostTrack_
 
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::MuonsaveTeVMuons_
 
const StringCutObjectSelector< pat::MuonsegmentsMuonSelection_
 
const StringCutObjectSelector< pat::MuonslimCaloMETCorr_
 
const StringCutObjectSelector< pat::MuonslimCaloVars_
 
const StringCutObjectSelector< pat::MuonslimKinkVars_
 
const StringCutObjectSelector< pat::MuonslimMatches_
 
const edm::EDGetTokenT< pat::MuonCollectionsrc_
 
edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > track2LostTrack_
 
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

◆ PATMuonSlimmer()

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

Definition at line 47 of file PATMuonSlimmer.cc.

References edm::ParameterSet::getParameter(), linkToLostTrack_, linkToPackedPF_, modifyMuon_, muonModifier_, packedPFCandidateRefMixer_cfi::pf, pf2pc_, pf_, saveSegments_, makeGlobalPositionRcd_cfg::tag, track2LostTrack_, and trackExtraAssocs_.

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

◆ ~PATMuonSlimmer()

pat::PATMuonSlimmer::~PATMuonSlimmer ( )
inlineoverride

Definition at line 28 of file PATMuonSlimmer.cc.

28 {}

Member Function Documentation

◆ produce()

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

Definition at line 93 of file PATMuonSlimmer.cc.

References reco::MuonMETCorrectionData::corrX(), reco::MuonMETCorrectionData::corrY(), reco::MuonSegmentMatch::cscSegmentRef, reco::MuonSegmentMatch::dtSegmentRef, reco::MuonSegmentMatch::dXdZErr, reco::MuonSegmentMatch::dYdZErr, reco::MuonEnergy::ecal_position, reco::MuonEnergy::ecal_time, reco::MuonEnergy::ecal_timeError, reco::MuonEnergy::em, reco::MuonEnergy::emMax, reco::MuonEnergy::emS25, reco::MuonEnergy::had, reco::MuonEnergy::hadMax, reco::MuonEnergy::hadS9, reco::MuonEnergy::hcal_position, reco::MuonEnergy::hcal_time, reco::MuonEnergy::hcal_timeError, mps_fire::i, iEvent, susybsm::HSCParticleType::innerTrack, edm::Ref< C, T, F >::isNonnull(), eostools::move(), amptDefaultParameters_cff::mu, dqmiodumpmetadata::n, reco::MuonMETCorrectionData::NotUsed, MillePedeFileConverter_cfg::out, AlCaHLTBitMon_ParallelJobs::p, packedPFCandidateRefMixer_cfi::pf, edm::refToPtr(), TrackRefitter_38T_cff::src, reco::MuonQuality::tkKink_position, reco::MuonEnergy::tower, reco::MuonEnergy::towerS9, HLT_2023v12_cff::track, slimmedDisplacedMuons_cfi::trackExtraAssocs, reco::MuonMETCorrectionData::type(), reco::MuonSegmentMatch::xErr, reco::MuonSegmentMatch::yErr, and SiPixelPI::zero.

93  {
94  using namespace edm;
95  using namespace std;
96 
97  if (modifyMuon_)
98  muonModifier_->setEventContent(iSetup);
99 
101  iEvent.getByToken(src_, src);
102 
103  auto out = std::make_unique<std::vector<pat::Muon>>();
104  out->reserve(src->size());
105 
106  auto outDTSegments = std::make_unique<DTRecSegment4DCollection>();
107  std::set<DTRecSegment4DRef> dtSegmentsRefs;
108  auto outCSCSegments = std::make_unique<CSCSegmentCollection>();
109  std::set<CSCSegmentRef> cscSegmentsRefs;
110 
111  if (modifyMuon_) {
112  muonModifier_->setEvent(iEvent);
113  }
114 
115  std::map<reco::CandidatePtr, pat::PackedCandidateRef> mu2pc;
116  if (linkToPackedPF_) {
119  for (unsigned int ipfh = 0, npfh = pf_.size(); ipfh < npfh; ++ipfh) {
120  iEvent.getByToken(pf_[ipfh], pf);
121  iEvent.getByToken(pf2pc_[ipfh], pf2pc);
122  const auto &pfcoll = (*pf);
123  const auto &pfmap = (*pf2pc);
124  for (unsigned int i = 0, n = pf->size(); i < n; ++i) {
125  const reco::PFCandidate &p = pfcoll[i];
126  if (p.muonRef().isNonnull())
127  mu2pc[refToPtr(p.muonRef())] = pfmap[reco::PFCandidateRef(pf, i)];
128  }
129  }
130  }
131  if (linkToLostTrack_) {
132  const auto &trk2LT = iEvent.get(track2LostTrack_);
133  for (const auto &mu : *src) {
134  const auto &track = dynamic_cast<const reco::Muon *>(mu.originalObject())->innerTrack();
135  if (track.isNonnull() && trk2LT.contains(track.id())) {
136  const auto &lostTrack = trk2LT[track];
137  if (lostTrack.isNonnull())
138  mu2pc[mu.refToOrig_] = lostTrack;
139  }
140  }
141  }
142 
143  std::vector<edm::Handle<edm::Association<reco::TrackExtraCollection>>> trackExtraAssocs(trackExtraAssocs_.size());
144  for (unsigned int i = 0; i < trackExtraAssocs_.size(); ++i) {
146  }
147 
148  for (vector<pat::Muon>::const_iterator it = src->begin(), ed = src->end(); it != ed; ++it) {
149  out->push_back(*it);
150  pat::Muon &mu = out->back();
151 
152  if (modifyMuon_) {
153  muonModifier_->modify(mu);
154  }
155 
156  if (saveTeVMuons_(mu)) {
157  mu.embedPickyMuon();
158  mu.embedTpfmsMuon();
159  mu.embedDytMuon();
160  }
162  mu.refToOrig_ = refToPtr(mu2pc[mu.refToOrig_]);
163  }
164  if (dropDirectionalIso_(mu)) {
166  mu.setPFIsolation("pfIsoMeanDRProfileR03", zero);
167  mu.setPFIsolation("pfIsoSumDRProfileR03", zero);
168  mu.setPFIsolation("pfIsoMeanDRProfileR04", zero);
169  mu.setPFIsolation("pfIsoSumDRProfileR04", zero);
170  }
171  if (mu.isPFMuon() && dropPfP4_(mu))
173  if (slimCaloVars_(mu) && mu.isEnergyValid()) {
174  reco::MuonEnergy ene = mu.calEnergy();
175  if (ene.tower)
176  ene.tower = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.tower);
177  if (ene.towerS9)
178  ene.towerS9 = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.towerS9);
179  if (ene.had)
180  ene.had = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.had);
181  if (ene.hadS9)
182  ene.hadS9 = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hadS9);
183  if (ene.hadMax)
184  ene.hadMax = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hadMax);
185  if (ene.em)
186  ene.em = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.em);
187  if (ene.emS25)
188  ene.emS25 = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.emS25);
189  if (ene.emMax)
190  ene.emMax = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.emMax);
191  if (ene.hcal_time)
192  ene.hcal_time = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_time);
193  if (ene.hcal_timeError)
194  ene.hcal_timeError = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_timeError);
195  if (ene.ecal_time)
196  ene.ecal_time = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.ecal_time);
197  if (ene.ecal_timeError)
198  ene.ecal_timeError = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.ecal_timeError);
199  ene.ecal_position = math::XYZPointF(MiniFloatConverter::reduceMantissaToNbitsRounding<14>(ene.ecal_position.X()),
200  MiniFloatConverter::reduceMantissaToNbitsRounding<14>(ene.ecal_position.Y()),
201  MiniFloatConverter::reduceMantissaToNbitsRounding<14>(ene.ecal_position.Z()));
202  ene.hcal_position = math::XYZPointF(MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_position.X()),
203  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_position.Y()),
204  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(ene.hcal_position.Z()));
205  mu.setCalEnergy(ene);
206  }
207  if (slimKinkVars_(mu) && mu.isQualityValid()) {
208  reco::MuonQuality qual = mu.combinedQuality();
209  qual.tkKink_position =
210  math::XYZPointF(MiniFloatConverter::reduceMantissaToNbitsRounding<12>(qual.tkKink_position.X()),
211  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(qual.tkKink_position.Y()),
212  MiniFloatConverter::reduceMantissaToNbitsRounding<12>(qual.tkKink_position.Z()));
213  mu.setCombinedQuality(qual);
214  }
215  if (slimCaloMETCorr_(mu) && mu.caloMETMuonCorrs().type() != reco::MuonMETCorrectionData::NotUsed) {
216  reco::MuonMETCorrectionData corrs = mu.caloMETMuonCorrs();
217  corrs = reco::MuonMETCorrectionData(corrs.type(),
218  MiniFloatConverter::reduceMantissaToNbitsRounding<10>(corrs.corrX()),
219  MiniFloatConverter::reduceMantissaToNbitsRounding<10>(corrs.corrY()));
220  mu.embedCaloMETMuonCorrs(corrs);
221  }
222  if (slimMatches_(mu) && mu.isMatchesValid()) {
223  for (reco::MuonChamberMatch &cmatch : mu.matches()) {
224  cmatch.edgeX = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.edgeX);
225  cmatch.edgeY = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.edgeY);
226  cmatch.xErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.xErr);
227  cmatch.yErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.yErr);
228  cmatch.dXdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.dXdZErr);
229  cmatch.dYdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(cmatch.dYdZErr);
230  for (reco::MuonSegmentMatch &smatch : cmatch.segmentMatches) {
231  smatch.xErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.xErr);
232  smatch.yErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.yErr);
233  smatch.dXdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.dXdZErr);
234  smatch.dYdZErr = MiniFloatConverter::reduceMantissaToNbitsRounding<12>(smatch.dYdZErr);
236  if (smatch.dtSegmentRef.isNonnull())
237  dtSegmentsRefs.insert(smatch.dtSegmentRef);
238  if (smatch.cscSegmentRef.isNonnull())
239  cscSegmentsRefs.insert(smatch.cscSegmentRef);
240  }
241  }
242  }
243  }
244  // rekey TrackExtra references in embedded tracks
245  mu.rekeyEmbeddedTracks(trackExtraAssocs);
246  }
247 
248  if (saveSegments_) {
249  std::map<DTRecSegment4DRef, size_t> dtMap;
250  std::vector<DTRecSegment4D> outDTSegmentsTmp;
251  std::map<CSCSegmentRef, size_t> cscMap;
252  std::vector<CSCSegment> outCSCSegmentsTmp;
253  for (auto &seg : dtSegmentsRefs) {
254  dtMap[seg] = outDTSegments->size();
255  outDTSegmentsTmp.push_back(*seg);
256  }
257  for (auto &seg : cscSegmentsRefs) {
258  cscMap[seg] = outCSCSegments->size();
259  outCSCSegmentsTmp.push_back(*seg);
260  }
261  outDTSegments->put(DTChamberId(), outDTSegmentsTmp.begin(), outDTSegmentsTmp.end());
262  outCSCSegments->put(CSCDetId(), outCSCSegmentsTmp.begin(), outCSCSegmentsTmp.end());
263  auto dtHandle = iEvent.put(std::move(outDTSegments));
264  auto cscHandle = iEvent.put(std::move(outCSCSegments));
265  for (auto &mu : *out) {
266  if (mu.isMatchesValid()) {
267  for (reco::MuonChamberMatch &cmatch : mu.matches()) {
268  for (reco::MuonSegmentMatch &smatch : cmatch.segmentMatches) {
269  if (dtMap.find(smatch.dtSegmentRef) != dtMap.end())
270  smatch.dtSegmentRef = DTRecSegment4DRef(dtHandle, dtMap[smatch.dtSegmentRef]);
271  if (cscMap.find(smatch.cscSegmentRef) != cscMap.end())
272  smatch.cscSegmentRef = CSCSegmentRef(cscHandle, cscMap[smatch.cscSegmentRef]);
273  }
274  }
275  }
276  }
277  }
278 
279  iEvent.put(std::move(out));
280 }
const edm::EDGetTokenT< pat::MuonCollection > src_
float ecal_timeError
Definition: MuonEnergy.h:48
DTRecSegment4DRef dtSegmentRef
const StringCutObjectSelector< pat::Muon > dropDirectionalIso_
const StringCutObjectSelector< pat::Muon > slimKinkVars_
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
const bool linkToPackedPF_
std::vector< edm::EDGetTokenT< reco::PFCandidateCollection > > pf_
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
const StringCutObjectSelector< pat::Muon > slimCaloVars_
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float > > XYZPointF
point in space with cartesian internal representation
Definition: Point3D.h:10
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_
int iEvent
Definition: GenABIO.cc:224
float emS25
energy deposited in 5x5 ECAL crystal shape around central crystal
Definition: MuonEnergy.h:30
edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > track2LostTrack_
math::XYZPointF hcal_position
Definition: MuonEnergy.h:54
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_
const StringCutObjectSelector< pat::Muon > slimMatches_
math::XYZPoint tkKink_position
Kink position for the tracker stub and global track.
Definition: MuonQuality.h:32
const bool linkToLostTrack_
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
HLT enums.
std::vector< edm::EDGetTokenT< edm::Association< pat::PackedCandidateCollection > > > pf2pc_
float hcal_timeError
Definition: MuonEnergy.h:50
const StringCutObjectSelector< pat::Muon > saveTeVMuons_
const StringCutObjectSelector< pat::Muon > slimCaloMETCorr_
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
const bool saveSegments_
float hadS9
energy deposited in 3x3 HCAL tower shape around central tower
Definition: MuonEnergy.h:38
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

◆ dropDirectionalIso_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ dropPfP4_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ linkToLostTrack_

const bool pat::PATMuonSlimmer::linkToLostTrack_
private

Definition at line 37 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ linkToPackedPF_

const bool pat::PATMuonSlimmer::linkToPackedPF_
private

Definition at line 37 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ modifyMuon_

const bool pat::PATMuonSlimmer::modifyMuon_
private

Definition at line 40 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ muonModifier_

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

Definition at line 41 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ pf2pc_

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

Definition at line 35 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ pf_

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

Definition at line 34 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ saveSegments_

const bool pat::PATMuonSlimmer::saveSegments_
private

Definition at line 40 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ saveTeVMuons_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ segmentsMuonSelection_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ slimCaloMETCorr_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ slimCaloVars_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ slimKinkVars_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ slimMatches_

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

Definition at line 38 of file PATMuonSlimmer.cc.

◆ src_

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

Definition at line 33 of file PATMuonSlimmer.cc.

◆ track2LostTrack_

edm::EDGetTokenT<edm::Association<pat::PackedCandidateCollection> > pat::PATMuonSlimmer::track2LostTrack_
private

Definition at line 36 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().

◆ trackExtraAssocs_

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

Definition at line 42 of file PATMuonSlimmer.cc.

Referenced by PATMuonSlimmer().