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
 
- 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
 
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)
explicit

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 ( )
override

Definition at line 95 of file HLTTriMuonIsolation.h.

95 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 271 of file HLTTriMuonIsolation.h.

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

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
overridevirtual

Implements edm::global::EDProducerBase.

Definition at line 97 of file HLTTriMuonIsolation.h.

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

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:89281
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