CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Static Private Member Functions | Private Attributes
HLTTriMuonIsolation Class Reference

#include <HLTTriMuonIsolation.h>

Inheritance diagram for HLTTriMuonIsolation:
edm::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HLTTriMuonIsolation (const edm::ParameterSet &iConfig)
 
void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 
 ~HLTTriMuonIsolation () override=default
 
- Public Member Functions inherited from edm::global::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
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Static Private Member Functions

template<typename T >
static bool ptComparer (const T &cand_1, const T &cand_2)
 

Private Attributes

edm::Handle< reco::RecoChargedCandidateCollectionAllMuCands
 
const edm::EDGetTokenT< reco::RecoChargedCandidateCollectionAllMuonsToken_
 
const double ChargedAbsIsoCut_
 
const double ChargedRelIsoCut_
 
const bool EnableAbsIso_
 
const bool EnableRelIso_
 
const double IsoConeSize_
 
edm::Handle< reco::TrackCollectionIsoTracks
 
const edm::EDGetTokenT< reco::TrackCollectionIsoTracksToken_
 
edm::Handle< trigger::TriggerFilterObjectWithRefsL3DiMuonsFilterCands
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefsL3DiMuonsFilterToken_
 
edm::Handle< reco::RecoChargedCandidateCollectionL3MuCands
 
const edm::EDGetTokenT< reco::RecoChargedCandidateCollectionL3MuonsToken_
 
const double MatchingConeSize_
 
const double MaxDZ_
 
const double MaxTriMuonMass_
 
const double MaxTriMuonRadius_
 
const double MinTriMuonMass_
 
const double Muon1PtCut_
 
const double Muon2PtCut_
 
const double Muon3PtCut_
 
edm::Handle< reco::RecoChargedCandidateRefPassedL3Muons
 
const int TriMuonAbsCharge_
 
const double TriMuonEtaCut_
 
const double TriMuonPtCut_
 
const double TwiceMuonMass_ = 2. * 0.1056583715
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 23 of file HLTTriMuonIsolation.h.

Constructor & Destructor Documentation

◆ HLTTriMuonIsolation()

HLTTriMuonIsolation::HLTTriMuonIsolation ( const edm::ParameterSet iConfig)
inlineexplicit

Definition at line 67 of file HLTTriMuonIsolation.h.

68  : L3MuonsToken_(consumes<reco::RecoChargedCandidateCollection>(iConfig.getParameter<edm::InputTag>("L3MuonsSrc"))),
70  consumes<reco::RecoChargedCandidateCollection>(iConfig.getParameter<edm::InputTag>("AllMuonsSrc"))),
72  consumes<trigger::TriggerFilterObjectWithRefs>(iConfig.getParameter<edm::InputTag>("L3DiMuonsFilterSrc"))),
73  IsoTracksToken_(consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("IsoTracksSrc"))),
74  Muon1PtCut_(iConfig.getParameter<double>("Muon1PtCut")),
75  Muon2PtCut_(iConfig.getParameter<double>("Muon2PtCut")),
76  Muon3PtCut_(iConfig.getParameter<double>("Muon3PtCut")),
77  TriMuonPtCut_(iConfig.getParameter<double>("TriMuonPtCut")),
78  TriMuonEtaCut_(iConfig.getParameter<double>("TriMuonEtaCut")),
79  ChargedRelIsoCut_(iConfig.getParameter<double>("ChargedRelIsoCut")),
80  ChargedAbsIsoCut_(iConfig.getParameter<double>("ChargedAbsIsoCut")),
81  IsoConeSize_(iConfig.getParameter<double>("IsoConeSize")),
82  MatchingConeSize_(iConfig.getParameter<double>("MatchingConeSize")),
83  MinTriMuonMass_(iConfig.getParameter<double>("MinTriMuonMass")),
84  MaxTriMuonMass_(iConfig.getParameter<double>("MaxTriMuonMass")),
85  MaxTriMuonRadius_(iConfig.getParameter<double>("MaxTriMuonRadius")),
86  TriMuonAbsCharge_(iConfig.getParameter<int>("TriMuonAbsCharge")),
87  MaxDZ_(iConfig.getParameter<double>("MaxDZ")),
88  EnableRelIso_(iConfig.getParameter<bool>("EnableRelIso")),
89  EnableAbsIso_(iConfig.getParameter<bool>("EnableAbsIso")) {
90  //register products
91  produces<reco::CompositeCandidateCollection>("Taus");
92  produces<reco::CompositeCandidateCollection>("SelectedTaus");
93 }

◆ ~HLTTriMuonIsolation()

HLTTriMuonIsolation::~HLTTriMuonIsolation ( )
overridedefault

Member Function Documentation

◆ fillDescriptions()

void HLTTriMuonIsolation::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inlinestatic

Definition at line 269 of file HLTTriMuonIsolation.h.

269  {
271  desc.add<edm::InputTag>("L3MuonsSrc", edm::InputTag("hltIterL3FromL2MuonCandidates"));
272  desc.add<edm::InputTag>("AllMuonsSrc", edm::InputTag("hltGlbTrkMuonCands"));
273  desc.add<edm::InputTag>("L3DiMuonsFilterSrc", edm::InputTag("hltDiMuonForTau3MuDzFiltered0p3"));
274  desc.add<edm::InputTag>("IsoTracksSrc", edm::InputTag("hltIter2L3FromL2MuonMerged"));
275  desc.add<double>("Muon1PtCut", 5.);
276  desc.add<double>("Muon2PtCut", 3.);
277  desc.add<double>("Muon3PtCut", 0.);
278  desc.add<double>("TriMuonPtCut", 8.);
279  desc.add<double>("TriMuonEtaCut", 2.5);
280  desc.add<double>("ChargedAbsIsoCut", 3.0);
281  desc.add<double>("ChargedRelIsoCut", 0.1);
282  desc.add<double>("IsoConeSize", 0.5);
283  desc.add<double>("MatchingConeSize", 0.03);
284  desc.add<double>("MinTriMuonMass", 0.5);
285  desc.add<double>("MaxTriMuonMass", 2.8);
286  desc.add<double>("MaxTriMuonRadius", 0.6);
287  desc.add<int>("TriMuonAbsCharge", -1);
288  desc.add<double>("MaxDZ", 0.3);
289  desc.add<bool>("EnableRelIso", false);
290  desc.add<bool>("EnableAbsIso", true);
291  descriptions.add("hltTriMuonIsolationProducer", desc);
292 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and HLT_FULL_cff::InputTag.

◆ produce()

void HLTTriMuonIsolation::produce ( edm::StreamID  sid,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
inlineoverridevirtual

Implements edm::global::EDProducerBase.

Definition at line 95 of file HLTTriMuonIsolation.h.

95  {
96  std::unique_ptr<reco::CompositeCandidateCollection> Taus(new reco::CompositeCandidateCollection);
97  std::unique_ptr<reco::CompositeCandidateCollection> SelectedTaus(new reco::CompositeCandidateCollection);
98 
99  // Get the L3 muon candidates
101  iEvent.getByToken(L3MuonsToken_, L3MuCands);
102 
103  // Get the L3 muon candidates that passed the filter
106 
107  std::vector<reco::RecoChargedCandidateRef> PassedL3Muons;
109 
110  // Get the Trk + L3 muon candidates (after merging)
112  iEvent.getByToken(AllMuonsToken_, AllMuCands);
113 
114  // Get iso tracks
116  iEvent.getByToken(IsoTracksToken_, IsoTracks);
117 
118  if (AllMuCands->size() >= 3 && L3MuCands->size() >= 2) {
119  // Create the 3-muon candidates
120  // loop over L3/Trk muons and create all combinations
121  auto AllMuCands_end = AllMuCands->end();
122  for (auto i = AllMuCands->begin(); i != AllMuCands_end - 2; ++i) {
123  // check that muon_i passes the previous filter
124  bool passingPreviousFilter_1 = false;
125  for (const auto& imu : PassedL3Muons) {
126  if (reco::deltaR2(i->momentum(), imu->momentum()) < (MatchingConeSize_ * MatchingConeSize_))
127  passingPreviousFilter_1 = true;
128  }
129  for (auto j = i + 1; j != AllMuCands_end - 1; ++j) {
130  // check that muon_j passes the previous filter
131  bool passingPreviousFilter_2 = false;
132  for (const auto& jmu : PassedL3Muons) {
133  if (reco::deltaR2(j->momentum(), jmu->momentum()) < (MatchingConeSize_ * MatchingConeSize_))
134  passingPreviousFilter_2 = true;
135  }
136  // if, at this point, no muons passed the previous filter just skip to the next iteration
137  if (!(passingPreviousFilter_1 || passingPreviousFilter_2))
138  continue;
139  for (auto k = j + 1; k != AllMuCands_end; ++k) {
140  // check that muon_k passes the previous filter
141  bool passingPreviousFilter_3 = false;
142  for (const auto& kmu : PassedL3Muons) {
143  if (reco::deltaR2(k->momentum(), kmu->momentum()) < (MatchingConeSize_ * MatchingConeSize_))
144  passingPreviousFilter_3 = true;
145  }
146  // at least two muons must have passed the previous di-muon filter
147  if (!((passingPreviousFilter_1 & passingPreviousFilter_2) ||
148  (passingPreviousFilter_1 & passingPreviousFilter_3) ||
149  (passingPreviousFilter_2 & passingPreviousFilter_3)))
150  continue;
151 
152  // Create a composite candidate to be a tau
154 
155  // sort the muons by pt and add them to the tau
157  daughters.reserve(3);
158 
159  daughters.push_back(*i);
160  daughters.push_back(*j);
161  daughters.push_back(*k);
162 
163  std::sort(daughters.begin(), daughters.end(), ptComparer<reco::RecoChargedCandidate>);
164 
165  // Muon kinematic selections
166  if (daughters[0].pt() < Muon1PtCut_)
167  continue;
168  if (daughters[1].pt() < Muon2PtCut_)
169  continue;
170  if (daughters[2].pt() < Muon3PtCut_)
171  continue;
172 
173  // assign the tau its daughters
174  tau.addDaughter((daughters)[0], "Muon_1");
175  tau.addDaughter((daughters)[1], "Muon_2");
176  tau.addDaughter((daughters)[2], "Muon_3");
177 
178  // start building the tau
179  int charge = daughters[0].charge() + daughters[1].charge() + daughters[2].charge();
180  math::XYZTLorentzVectorD taup4 = daughters[0].p4() + daughters[1].p4() + daughters[2].p4();
181  int tauPdgId = charge > 0 ? 15 : -15;
182 
183  tau.setP4(taup4);
184  tau.setCharge(charge);
185  tau.setPdgId(tauPdgId);
186  tau.setVertex((daughters)[0].vertex()); // assign the leading muon vertex as tau vertex
187 
188  // the three muons must be close to each other in Z
189  if (std::abs(tau.daughter(0)->vz() - tau.vz()) > MaxDZ_)
190  continue;
191  if (std::abs(tau.daughter(1)->vz() - tau.vz()) > MaxDZ_)
192  continue;
193  if (std::abs(tau.daughter(2)->vz() - tau.vz()) > MaxDZ_)
194  continue;
195 
196  // require muons to be collimated
197  bool collimated = true;
198  for (auto const& idau : daughters) {
199  if (reco::deltaR2(tau.p4(), idau.p4()) > MaxTriMuonRadius_ * MaxTriMuonRadius_) {
200  collimated = false;
201  break;
202  }
203  }
204 
205  if (!collimated)
206  continue;
207 
208  // Tau kinematic selections
209  if (tau.pt() < TriMuonPtCut_)
210  continue;
211  if (tau.mass() < MinTriMuonMass_)
212  continue;
213  if (tau.mass() > MaxTriMuonMass_)
214  continue;
215  if (std::abs(tau.eta()) > TriMuonEtaCut_)
216  continue;
217 
218  // Tau charge selection
219  if ((std::abs(tau.charge()) != TriMuonAbsCharge_) & (TriMuonAbsCharge_ >= 0))
220  continue;
221 
222  // Sanity check against duplicates, di-muon masses must be > 2 * mass_mu
223  if ((tau.daughter(0)->p4() + tau.daughter(1)->p4()).mass() < TwiceMuonMass_)
224  continue;
225  if ((tau.daughter(0)->p4() + tau.daughter(2)->p4()).mass() < TwiceMuonMass_)
226  continue;
227  if ((tau.daughter(1)->p4() + tau.daughter(2)->p4()).mass() < TwiceMuonMass_)
228  continue;
229 
230  // a good tau, at last
231  Taus->push_back(tau);
232  }
233  }
234  }
235 
236  // Sort taus by pt
237  std::sort(Taus->begin(), Taus->end(), ptComparer<reco::CompositeCandidate>);
238 
239  // Loop over taus and further select by isolation
240  for (const auto& itau : *Taus) {
241  // remove the candidate pt from the iso sum
242  double sumPt = -itau.pt();
243 
244  // compute iso sum pT
245  for (const auto& itrk : *IsoTracks) {
246  if (reco::deltaR2(itrk.momentum(), itau.p4()) > IsoConeSize_ * IsoConeSize_)
247  continue;
248  if (std::abs(itrk.vz() - itau.vz()) > MaxDZ_)
249  continue;
250  sumPt += itrk.pt();
251  }
252 
253  // apply the isolation cut
255  double chRelIsoCut = EnableRelIso_ ? ChargedRelIsoCut_ * itau.pt() : std::numeric_limits<double>::infinity();
256 
257  if (!((sumPt < chAbsIsoCut) || (sumPt < chRelIsoCut)))
258  continue;
259 
260  SelectedTaus->push_back(itau);
261  }
262  }
263 
264  // finally put the vector of 3-muon candidates in the event
265  iEvent.put(std::move(Taus), "Taus");
266  iEvent.put(std::move(SelectedTaus), "SelectedTaus");
267 }

References funct::abs(), AllMuCands, AllMuonsToken_, ALCARECOTkAlJpsiMuMu_cff::charge, ChargedAbsIsoCut_, ChargedRelIsoCut_, BPhysicsValidation_cfi::daughters, reco::deltaR2(), EnableAbsIso_, EnableRelIso_, trigger::TriggerRefsCollections::getObjects(), mps_fire::i, iEvent, infinity, IsoConeSize_, IsoTracks, IsoTracksToken_, dqmiolumiharvest::j, dqmdumpme::k, L3DiMuonsFilterCands, L3DiMuonsFilterToken_, L3MuCands, L3MuonsToken_, EgHLTOffHistBins_cfi::mass, MatchingConeSize_, MaxDZ_, MaxTriMuonMass_, MaxTriMuonRadius_, MinTriMuonMass_, eostools::move(), Muon1PtCut_, Muon2PtCut_, Muon3PtCut_, PassedL3Muons, DiDispStaMuonMonitor_cfi::pt, jetUpdater_cfi::sort, TtFullHadEvtBuilder_cfi::sumPt, metsig::tau, trigger::TriggerMuon, TriMuonAbsCharge_, TriMuonEtaCut_, TriMuonPtCut_, TwiceMuonMass_, and bphysicsOniaDQM_cfi::vertex.

◆ ptComparer()

template<typename T >
static bool HLTTriMuonIsolation::ptComparer ( const T cand_1,
const T cand_2 
)
inlinestaticprivate

Definition at line 43 of file HLTTriMuonIsolation.h.

43  {
44  return cand_1.pt() > cand_2.pt();
45  }

Member Data Documentation

◆ AllMuCands

edm::Handle<reco::RecoChargedCandidateCollection> HLTTriMuonIsolation::AllMuCands
private

Definition at line 39 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ AllMuonsToken_

const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> HLTTriMuonIsolation::AllMuonsToken_
private

Definition at line 32 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ ChargedAbsIsoCut_

const double HLTTriMuonIsolation::ChargedAbsIsoCut_
private

Definition at line 55 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ ChargedRelIsoCut_

const double HLTTriMuonIsolation::ChargedRelIsoCut_
private

Definition at line 54 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ EnableAbsIso_

const bool HLTTriMuonIsolation::EnableAbsIso_
private

Definition at line 64 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ EnableRelIso_

const bool HLTTriMuonIsolation::EnableRelIso_
private

Definition at line 63 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ IsoConeSize_

const double HLTTriMuonIsolation::IsoConeSize_
private

Definition at line 56 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ IsoTracks

edm::Handle<reco::TrackCollection> HLTTriMuonIsolation::IsoTracks
private

Definition at line 40 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ IsoTracksToken_

const edm::EDGetTokenT<reco::TrackCollection> HLTTriMuonIsolation::IsoTracksToken_
private

Definition at line 34 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ L3DiMuonsFilterCands

edm::Handle<trigger::TriggerFilterObjectWithRefs> HLTTriMuonIsolation::L3DiMuonsFilterCands
private

Definition at line 37 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ L3DiMuonsFilterToken_

const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTTriMuonIsolation::L3DiMuonsFilterToken_
private

Definition at line 33 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ L3MuCands

edm::Handle<reco::RecoChargedCandidateCollection> HLTTriMuonIsolation::L3MuCands
private

Definition at line 36 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ L3MuonsToken_

const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> HLTTriMuonIsolation::L3MuonsToken_
private

Definition at line 31 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ MatchingConeSize_

const double HLTTriMuonIsolation::MatchingConeSize_
private

Definition at line 57 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ MaxDZ_

const double HLTTriMuonIsolation::MaxDZ_
private

Definition at line 62 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ MaxTriMuonMass_

const double HLTTriMuonIsolation::MaxTriMuonMass_
private

Definition at line 59 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ MaxTriMuonRadius_

const double HLTTriMuonIsolation::MaxTriMuonRadius_
private

Definition at line 60 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ MinTriMuonMass_

const double HLTTriMuonIsolation::MinTriMuonMass_
private

Definition at line 58 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ Muon1PtCut_

const double HLTTriMuonIsolation::Muon1PtCut_
private

Definition at line 49 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ Muon2PtCut_

const double HLTTriMuonIsolation::Muon2PtCut_
private

Definition at line 50 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ Muon3PtCut_

const double HLTTriMuonIsolation::Muon3PtCut_
private

Definition at line 51 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ PassedL3Muons

edm::Handle<reco::RecoChargedCandidateRef> HLTTriMuonIsolation::PassedL3Muons
private

Definition at line 38 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ TriMuonAbsCharge_

const int HLTTriMuonIsolation::TriMuonAbsCharge_
private

Definition at line 61 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ TriMuonEtaCut_

const double HLTTriMuonIsolation::TriMuonEtaCut_
private

Definition at line 53 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ TriMuonPtCut_

const double HLTTriMuonIsolation::TriMuonPtCut_
private

Definition at line 52 of file HLTTriMuonIsolation.h.

Referenced by produce().

◆ TwiceMuonMass_

const double HLTTriMuonIsolation::TwiceMuonMass_ = 2. * 0.1056583715
private

Definition at line 47 of file HLTTriMuonIsolation.h.

Referenced by produce().

mps_fire.i
i
Definition: mps_fire.py:428
IsoTracks
Definition: IsoTracks.cc:16
metsig::tau
Definition: SignAlgoResolutions.h:49
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
math::XYZTLorentzVectorD
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
HLTTriMuonIsolation::EnableRelIso_
const bool EnableRelIso_
Definition: HLTTriMuonIsolation.h:63
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
HLTTriMuonIsolation::MaxTriMuonRadius_
const double MaxTriMuonRadius_
Definition: HLTTriMuonIsolation.h:60
HLTTriMuonIsolation::EnableAbsIso_
const bool EnableAbsIso_
Definition: HLTTriMuonIsolation.h:64
HLTTriMuonIsolation::IsoTracks
edm::Handle< reco::TrackCollection > IsoTracks
Definition: HLTTriMuonIsolation.h:40
HLTTriMuonIsolation::TwiceMuonMass_
const double TwiceMuonMass_
Definition: HLTTriMuonIsolation.h:47
infinity
const double infinity
Definition: CSCChamberFitter.cc:10
HLTTriMuonIsolation::ChargedRelIsoCut_
const double ChargedRelIsoCut_
Definition: HLTTriMuonIsolation.h:54
edm::Handle< reco::RecoChargedCandidateCollection >
trigger::TriggerRefsCollections::getObjects
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
Definition: TriggerRefsCollections.h:590
reco::RecoChargedCandidateCollection
std::vector< RecoChargedCandidate > RecoChargedCandidateCollection
collectin of RecoChargedCandidate objects
Definition: RecoChargedCandidateFwd.h:9
TtFullHadEvtBuilder_cfi.sumPt
sumPt
Definition: TtFullHadEvtBuilder_cfi.py:38
HLTTriMuonIsolation::TriMuonEtaCut_
const double TriMuonEtaCut_
Definition: HLTTriMuonIsolation.h:53
reco::CompositeCandidateCollection
std::vector< CompositeCandidate > CompositeCandidateCollection
collection of Candidate objects
Definition: CompositeCandidateFwd.h:19
HLTTriMuonIsolation::AllMuonsToken_
const edm::EDGetTokenT< reco::RecoChargedCandidateCollection > AllMuonsToken_
Definition: HLTTriMuonIsolation.h:32
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
BPhysicsValidation_cfi.daughters
daughters
Definition: BPhysicsValidation_cfi.py:11
HLTTriMuonIsolation::Muon1PtCut_
const double Muon1PtCut_
Definition: HLTTriMuonIsolation.h:49
trigger::TriggerMuon
Definition: TriggerTypeDefs.h:79
HLTTriMuonIsolation::MaxDZ_
const double MaxDZ_
Definition: HLTTriMuonIsolation.h:62
HLTTriMuonIsolation::L3MuonsToken_
const edm::EDGetTokenT< reco::RecoChargedCandidateCollection > L3MuonsToken_
Definition: HLTTriMuonIsolation.h:31
dqmdumpme.k
k
Definition: dqmdumpme.py:60
HLTTriMuonIsolation::L3DiMuonsFilterToken_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > L3DiMuonsFilterToken_
Definition: HLTTriMuonIsolation.h:33
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
HLTTriMuonIsolation::Muon3PtCut_
const double Muon3PtCut_
Definition: HLTTriMuonIsolation.h:51
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
HLTTriMuonIsolation::IsoConeSize_
const double IsoConeSize_
Definition: HLTTriMuonIsolation.h:56
HLTTriMuonIsolation::MatchingConeSize_
const double MatchingConeSize_
Definition: HLTTriMuonIsolation.h:57
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
reco::deltaR2
constexpr auto deltaR2(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:16
HLTTriMuonIsolation::L3DiMuonsFilterCands
edm::Handle< trigger::TriggerFilterObjectWithRefs > L3DiMuonsFilterCands
Definition: HLTTriMuonIsolation.h:37
iEvent
int iEvent
Definition: GenABIO.cc:224
HLTTriMuonIsolation::TriMuonAbsCharge_
const int TriMuonAbsCharge_
Definition: HLTTriMuonIsolation.h:61
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
HLTTriMuonIsolation::TriMuonPtCut_
const double TriMuonPtCut_
Definition: HLTTriMuonIsolation.h:52
HLTTriMuonIsolation::MaxTriMuonMass_
const double MaxTriMuonMass_
Definition: HLTTriMuonIsolation.h:59
EgHLTOffHistBins_cfi.mass
mass
Definition: EgHLTOffHistBins_cfi.py:34
HLTTriMuonIsolation::Muon2PtCut_
const double Muon2PtCut_
Definition: HLTTriMuonIsolation.h:50
HLTTriMuonIsolation::MinTriMuonMass_
const double MinTriMuonMass_
Definition: HLTTriMuonIsolation.h:58
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
HLTTriMuonIsolation::IsoTracksToken_
const edm::EDGetTokenT< reco::TrackCollection > IsoTracksToken_
Definition: HLTTriMuonIsolation.h:34
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
HLTTriMuonIsolation::ChargedAbsIsoCut_
const double ChargedAbsIsoCut_
Definition: HLTTriMuonIsolation.h:55
HLTTriMuonIsolation::L3MuCands
edm::Handle< reco::RecoChargedCandidateCollection > L3MuCands
Definition: HLTTriMuonIsolation.h:36
HLTTriMuonIsolation::PassedL3Muons
edm::Handle< reco::RecoChargedCandidateRef > PassedL3Muons
Definition: HLTTriMuonIsolation.h:38
edm::InputTag
Definition: InputTag.h:15
reco::CompositeCandidate
Definition: CompositeCandidate.h:21
HLTTriMuonIsolation::AllMuCands
edm::Handle< reco::RecoChargedCandidateCollection > AllMuCands
Definition: HLTTriMuonIsolation.h:39