CMS 3D CMS Logo

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

#include <HLTmumutktkVtxProducer.h>

Inheritance diagram for HLTmumutktkVtxProducer:
edm::stream::EDProducer<>

Public Member Functions

 HLTmumutktkVtxProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~HLTmumutktkVtxProducer () 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
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

bool checkPreviousCand (const reco::TrackRef &trackref, const std::vector< reco::RecoChargedCandidateRef > &ref2) const
 
bool overlap (const reco::TrackRef &trackref1, const reco::TrackRef &trackref2)
 

Static Private Member Functions

static FreeTrajectoryState initialFreeState (const reco::Track &, const MagneticField *)
 

Private Attributes

const edm::InputTag beamSpotTag_
 
const edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
const double fourthTrackMass_
 
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecordidealMagneticFieldRecordToken_
 
const double maxEta_
 
const double maxInvMass_
 
const double maxTrkTrkMass_
 
const std::string mfName_
 
const double minD0Significance_
 
const double minInvMass_
 
const double minPt_
 
const double minTrkTrkMass_
 
const edm::InputTag muCandTag_
 
const edm::EDGetTokenT< reco::RecoChargedCandidateCollectionmuCandToken_
 
const bool oppositeSign_
 
const double overlapDR_
 
const edm::InputTag previousCandTag_
 
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefspreviousCandToken_
 
const double thirdTrackMass_
 
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecordtransientTrackRecordToken_
 
const edm::InputTag trkCandTag_
 
const edm::EDGetTokenT< reco::RecoChargedCandidateCollectiontrkCandToken_
 

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

Definition at line 41 of file HLTmumutktkVtxProducer.h.

Constructor & Destructor Documentation

◆ HLTmumutktkVtxProducer()

HLTmumutktkVtxProducer::HLTmumutktkVtxProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 27 of file HLTmumutktkVtxProducer.cc.

28  : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))),
29  muCandTag_(iConfig.getParameter<edm::InputTag>("MuCand")),
30  muCandToken_(consumes<reco::RecoChargedCandidateCollection>(muCandTag_)),
31  trkCandTag_(iConfig.getParameter<edm::InputTag>("TrackCand")),
32  trkCandToken_(consumes<reco::RecoChargedCandidateCollection>(trkCandTag_)),
33  previousCandTag_(iConfig.getParameter<edm::InputTag>("PreviousCandTag")),
34  previousCandToken_(consumes<trigger::TriggerFilterObjectWithRefs>(previousCandTag_)),
35  mfName_(iConfig.getParameter<std::string>("SimpleMagneticField")),
37  thirdTrackMass_(iConfig.getParameter<double>("ThirdTrackMass")),
38  fourthTrackMass_(iConfig.getParameter<double>("FourthTrackMass")),
39  maxEta_(iConfig.getParameter<double>("MaxEta")),
40  minPt_(iConfig.getParameter<double>("MinPt")),
41  minInvMass_(iConfig.getParameter<double>("MinInvMass")),
42  maxInvMass_(iConfig.getParameter<double>("MaxInvMass")),
43  minTrkTrkMass_(iConfig.getParameter<double>("MinTrkTrkMass")),
44  maxTrkTrkMass_(iConfig.getParameter<double>("MaxTrkTrkMass")),
45  minD0Significance_(iConfig.getParameter<double>("MinD0Significance")),
46  oppositeSign_(iConfig.getParameter<bool>("OppositeSign")),
47  overlapDR_(iConfig.getParameter<double>("OverlapDR")),
48  beamSpotTag_(iConfig.getParameter<edm::InputTag>("BeamSpotTag")),
49  beamSpotToken_(consumes<reco::BeamSpot>(beamSpotTag_)) {
50  produces<VertexCollection>();
51 }
const edm::InputTag previousCandTag_
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
const edm::InputTag muCandTag_
const edm::EDGetTokenT< reco::RecoChargedCandidateCollection > trkCandToken_
const edm::InputTag beamSpotTag_
const edm::EDGetTokenT< reco::RecoChargedCandidateCollection > muCandToken_
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackRecordToken_
const edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
const edm::InputTag trkCandTag_
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > idealMagneticFieldRecordToken_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > previousCandToken_

◆ ~HLTmumutktkVtxProducer()

HLTmumutktkVtxProducer::~HLTmumutktkVtxProducer ( )
overridedefault

Member Function Documentation

◆ checkPreviousCand()

bool HLTmumutktkVtxProducer::checkPreviousCand ( const reco::TrackRef trackref,
const std::vector< reco::RecoChargedCandidateRef > &  ref2 
) const
private

Definition at line 286 of file HLTmumutktkVtxProducer.cc.

References mps_fire::i, and convertSQLiteXML::ok.

Referenced by produce().

287  {
288  bool ok = false;
289  for (auto& i : refVect) {
290  if (i->get<TrackRef>() == trackref) {
291  ok = true;
292  break;
293  }
294  }
295  return ok;
296 }

◆ fillDescriptions()

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

Definition at line 56 of file HLTmumutktkVtxProducer.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_2022v15_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

56  {
58  desc.add<edm::InputTag>("MuCand", edm::InputTag("hltMuTracks"));
59  desc.add<edm::InputTag>("TrackCand", edm::InputTag("hltMumukAllConeTracks"));
60  desc.add<edm::InputTag>("PreviousCandTag", edm::InputTag("hltDisplacedmumuFilterDoubleMu4Jpsi"));
61  desc.add<std::string>("SimpleMagneticField", "");
62  desc.add<double>("ThirdTrackMass", 0.493677);
63  desc.add<double>("FourthTrackMass", 0.493677);
64  desc.add<double>("MaxEta", 2.5);
65  desc.add<double>("MinPt", 0.0);
66  desc.add<double>("MinInvMass", 0.0);
67  desc.add<double>("MaxInvMass", 99999.);
68  desc.add<double>("MinTrkTrkMass", 0.0);
69  desc.add<double>("MaxTrkTrkMass", 99999.);
70  desc.add<double>("MinD0Significance", 0.0);
71  desc.add<bool>("OppositeSign", false);
72  desc.add<double>("OverlapDR", 0.001);
73  desc.add<edm::InputTag>("BeamSpotTag", edm::InputTag("hltOfflineBeamSpot"));
74  descriptions.add("HLTmumutktkVtxProducer", desc);
75 }
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ initialFreeState()

FreeTrajectoryState HLTmumutktkVtxProducer::initialFreeState ( const reco::Track tk,
const MagneticField field 
)
staticprivate

Definition at line 270 of file HLTmumutktkVtxProducer.cc.

References reco::TrackBase::charge(), reco::TrackBase::covariance(), submitPVResolutionJobs::err, reco::TrackBase::momentum(), and reco::TrackBase::vertex().

Referenced by produce().

270  {
272  GlobalPoint gpos(pos);
273  Basic3DVector<float> mom(tk.momentum());
274  GlobalVector gmom(mom);
275  GlobalTrajectoryParameters par(gpos, gmom, tk.charge(), field);
277  return FreeTrajectoryState(par, err);
278 }
int charge() const
track electric charge
Definition: TrackBase.h:596
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:716
const Point & vertex() const
reference point on the track. This method is DEPRECATED, please use referencePoint() instead ...
Definition: TrackBase.h:676
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:664

◆ overlap()

bool HLTmumutktkVtxProducer::overlap ( const reco::TrackRef trackref1,
const reco::TrackRef trackref2 
)
private

Definition at line 280 of file HLTmumutktkVtxProducer.cc.

References PbPb_ZMuSkimMuonDPG_cff::deltaR, and overlapDR_.

Referenced by produce().

280  {
281  if (deltaR(trackref1->eta(), trackref1->phi(), trackref2->eta(), trackref2->phi()) < overlapDR_)
282  return true;
283  return false;
284 }

◆ produce()

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

Definition at line 78 of file HLTmumutktkVtxProducer.cc.

References beamSpotToken_, checkPreviousCand(), StorageManager_cfg::e1, fourthTrackMass_, edm::Ref< C, T, F >::get(), edm::EventSetup::getHandle(), trigger::TriggerRefsCollections::getObjects(), idealMagneticFieldRecordToken_, iEvent, initialFreeState(), TransientVertex::isValid(), LogDebug, maxEta_, maxInvMass_, maxTrkTrkMass_, minD0Significance_, minInvMass_, minPt_, minTrkTrkMass_, eostools::move(), muCandToken_, oppositeSign_, overlap(), AlCaHLTBitMon_ParallelJobs::p, LaserDQM_cfg::p1, SiStripOfflineCRack_cfg::p2, previousCandToken_, Measurement1D::significance(), mathSSE::sqrt(), thirdTrackMass_, transientTrackRecordToken_, TrajectoryStateClosestToBeamLine::transverseImpactParameter(), trigger::TriggerMuon, trkCandToken_, bphysicsOniaDQM_cfi::vertex, KalmanVertexFitter::vertex(), and spclusmultinvestigator_cfi::vertexCollection.

78  {
79  const double MuMass(0.106);
80  const double MuMass2(MuMass * MuMass);
81  const double thirdTrackMass2(thirdTrackMass_ * thirdTrackMass_);
82  const double fourthTrackMass2(fourthTrackMass_ * fourthTrackMass_);
83 
84  // get hold of muon trks
86  iEvent.getByToken(muCandToken_, mucands);
87 
88  // get the transient track builder
89  auto const& theB = iSetup.getHandle(transientTrackRecordToken_);
90 
91  // get the beamspot position
92  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
93  iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle);
94 
95  // get the b field
96  auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_);
97  const MagneticField* magField = bFieldHandle.product();
98  TSCBLBuilderNoMaterial blsBuilder;
99 
100  // get track candidates around displaced muons
102  iEvent.getByToken(trkCandToken_, trkcands);
103 
104  unique_ptr<VertexCollection> vertexCollection(new VertexCollection());
105 
106  // Ref to Candidate object to be recorded in filter object
109  RecoChargedCandidateRef refTrk1;
110  RecoChargedCandidateRef refTrk2;
111 
112  double e1, e2, e3_m3, e3_m4, e4_m3, e4_m4;
113  Particle::LorentzVector p, pBar, p1, p2, p3_m3, p3_m4, p4_m3, p4_m4, p_m3m4, p_m4m3;
114 
115  if (mucands->size() < 2)
116  return;
117  if (trkcands->size() < 2)
118  return;
119 
120  RecoChargedCandidateCollection::const_iterator mucand1;
121  RecoChargedCandidateCollection::const_iterator mucand2;
122  RecoChargedCandidateCollection::const_iterator trkcand1;
123  RecoChargedCandidateCollection::const_iterator trkcand2;
124 
125  // get the objects passing the previous filter
127  iEvent.getByToken(previousCandToken_, previousCands);
128 
129  vector<RecoChargedCandidateRef> vPrevCands;
130  previousCands->getObjects(TriggerMuon, vPrevCands);
131 
132  for (mucand1 = mucands->begin(); mucand1 != mucands->end(); ++mucand1) {
133  TrackRef trk1 = mucand1->get<TrackRef>();
134  LogDebug("HLTmumutktkVtxProducer") << " 1st muon: q*pt= " << trk1->charge() * trk1->pt() << ", eta= " << trk1->eta()
135  << ", hits= " << trk1->numberOfValidHits();
136 
137  //first check if this muon passed the previous filter
138  if (!checkPreviousCand(trk1, vPrevCands))
139  continue;
140  // eta and pt cut
141  if (fabs(trk1->eta()) > maxEta_)
142  continue;
143  if (trk1->pt() < minPt_)
144  continue;
145 
146  mucand2 = mucand1;
147  ++mucand2;
148  for (; mucand2 != mucands->end(); mucand2++) {
149  TrackRef trk2 = mucand2->get<TrackRef>();
150  if (overlap(trk1, trk2))
151  continue;
152 
153  LogDebug("HLTDisplacedMumukFilter") << " 2nd muon: q*pt= " << trk2->charge() * trk2->pt()
154  << ", eta= " << trk2->eta() << ", hits= " << trk2->numberOfValidHits();
155 
156  //first check if this muon passed the previous filter
157  if (!checkPreviousCand(trk2, vPrevCands))
158  continue;
159  // eta and pt cut
160  if (fabs(trk2->eta()) > maxEta_)
161  continue;
162  if (trk2->pt() < minPt_)
163  continue;
164 
165  //loop on track collection - trk1
166  for (trkcand1 = trkcands->begin(); trkcand1 != trkcands->end(); ++trkcand1) {
167  TrackRef trk3 = trkcand1->get<TrackRef>();
168 
169  if (overlap(trk1, trk3))
170  continue;
171  if (overlap(trk2, trk3))
172  continue;
173 
174  LogDebug("HLTDisplacedMumukFilter") << " 3rd track: q*pt= " << trk3->charge() * trk3->pt()
175  << ", eta= " << trk3->eta() << ", hits= " << trk3->numberOfValidHits();
176 
177  // eta and pt cut
178  if (fabs(trk3->eta()) > maxEta_)
179  continue;
180  if (trk3->pt() < minPt_)
181  continue;
182 
183  FreeTrajectoryState InitialFTS_Trk3 = initialFreeState(*trk3, magField);
184  TrajectoryStateClosestToBeamLine tscb_Trk3(blsBuilder(InitialFTS_Trk3, *recoBeamSpotHandle));
185  double d0sigTrk3 = tscb_Trk3.transverseImpactParameter().significance();
186  if (d0sigTrk3 < minD0Significance_)
187  continue;
188 
189  //loop on track collection - trk2
190  for (trkcand2 = trkcands->begin(); trkcand2 != trkcands->end(); ++trkcand2) {
191  TrackRef trk4 = trkcand2->get<TrackRef>();
192 
193  if (oppositeSign_) {
194  if (trk3->charge() * trk4->charge() != -1)
195  continue;
196  }
197  if (overlap(trk1, trk4))
198  continue;
199  if (overlap(trk2, trk4))
200  continue;
201  if (overlap(trk3, trk4))
202  continue;
203 
204  LogDebug("HLTDisplacedMumukFilter") << " 4th track: q*pt= " << trk4->charge() * trk4->pt()
205  << ", eta= " << trk4->eta() << ", hits= " << trk4->numberOfValidHits();
206 
207  // eta and pt cut
208  if (fabs(trk4->eta()) > maxEta_)
209  continue;
210  if (trk4->pt() < minPt_)
211  continue;
212 
213  FreeTrajectoryState InitialFTS_Trk4 = initialFreeState(*trk4, magField);
214  TrajectoryStateClosestToBeamLine tscb_Trk4(blsBuilder(InitialFTS_Trk4, *recoBeamSpotHandle));
215  double d0sigTrk4 = tscb_Trk4.transverseImpactParameter().significance();
216  if (d0sigTrk4 < minD0Significance_)
217  continue;
218 
219  // Combined system
220  e1 = sqrt(trk1->momentum().Mag2() + MuMass2);
221  e2 = sqrt(trk2->momentum().Mag2() + MuMass2);
222  e3_m3 = sqrt(trk3->momentum().Mag2() + thirdTrackMass2);
223  e3_m4 = sqrt(trk3->momentum().Mag2() + fourthTrackMass2);
224  e4_m3 = sqrt(trk4->momentum().Mag2() + thirdTrackMass2);
225  e4_m4 = sqrt(trk4->momentum().Mag2() + fourthTrackMass2);
226 
227  p1 = Particle::LorentzVector(trk1->px(), trk1->py(), trk1->pz(), e1);
228  p2 = Particle::LorentzVector(trk2->px(), trk2->py(), trk2->pz(), e2);
229  p3_m3 = Particle::LorentzVector(trk3->px(), trk3->py(), trk3->pz(), e3_m3);
230  p3_m4 = Particle::LorentzVector(trk3->px(), trk3->py(), trk3->pz(), e3_m4);
231  p4_m3 = Particle::LorentzVector(trk4->px(), trk4->py(), trk4->pz(), e4_m3);
232  p4_m4 = Particle::LorentzVector(trk4->px(), trk4->py(), trk4->pz(), e4_m4);
233 
234  p = p1 + p2 + p3_m3 + p4_m4;
235  pBar = p1 + p2 + p3_m4 + p4_m3;
236  p_m3m4 = p3_m3 + p4_m4;
237  p_m4m3 = p3_m4 + p4_m3;
238 
239  //invariant mass cut
240  if (!((p_m3m4.mass() > minTrkTrkMass_ && p_m3m4.mass() < maxTrkTrkMass_) ||
241  (p_m4m3.mass() > minTrkTrkMass_ && p_m4m3.mass() < maxTrkTrkMass_)))
242  continue;
243  if (!((p.mass() > minInvMass_ && p.mass() < maxInvMass_) ||
244  (pBar.mass() > minInvMass_ && pBar.mass() < maxInvMass_)))
245  continue;
246 
247  // do the vertex fit
248  vector<TransientTrack> t_tks;
249  t_tks.push_back((*theB).build(&trk1));
250  t_tks.push_back((*theB).build(&trk2));
251  t_tks.push_back((*theB).build(&trk3));
252  t_tks.push_back((*theB).build(&trk4));
253  if (t_tks.size() != 4)
254  continue;
255 
256  KalmanVertexFitter kvf;
257  TransientVertex tv = kvf.vertex(t_tks);
258  if (!tv.isValid())
259  continue;
260  Vertex vertex = tv;
261 
262  vertexCollection->push_back(vertex);
263  }
264  }
265  }
266  }
268 }
void getObjects(Vids &ids, VRphoton &refs) const
various physics-level getters:
bool checkPreviousCand(const reco::TrackRef &trackref, const std::vector< reco::RecoChargedCandidateRef > &ref2) const
bool overlap(const reco::TrackRef &trackref1, const reco::TrackRef &trackref2)
std::vector< Vertex > VertexCollection
Definition: Vertex.h:31
static FreeTrajectoryState initialFreeState(const reco::Track &, const MagneticField *)
const edm::EDGetTokenT< reco::RecoChargedCandidateCollection > trkCandToken_
CachingVertex< 5 > vertex(const std::vector< reco::TransientTrack > &tracks) const override
const edm::EDGetTokenT< reco::RecoChargedCandidateCollection > muCandToken_
int iEvent
Definition: GenABIO.cc:224
bool isValid() const
T sqrt(T t)
Definition: SSEVec.h:19
const edm::ESGetToken< TransientTrackBuilder, TransientTrackRecord > transientTrackRecordToken_
const edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > idealMagneticFieldRecordToken_
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > previousCandToken_
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
def move(src, dest)
Definition: eostools.py:511
math::PtEtaPhiELorentzVectorF LorentzVector
#define LogDebug(id)

Member Data Documentation

◆ beamSpotTag_

const edm::InputTag HLTmumutktkVtxProducer::beamSpotTag_
private

Definition at line 76 of file HLTmumutktkVtxProducer.h.

◆ beamSpotToken_

const edm::EDGetTokenT<reco::BeamSpot> HLTmumutktkVtxProducer::beamSpotToken_
private

Definition at line 77 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ fourthTrackMass_

const double HLTmumutktkVtxProducer::fourthTrackMass_
private

Definition at line 66 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ idealMagneticFieldRecordToken_

const edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> HLTmumutktkVtxProducer::idealMagneticFieldRecordToken_
private

Definition at line 63 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ maxEta_

const double HLTmumutktkVtxProducer::maxEta_
private

Definition at line 67 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ maxInvMass_

const double HLTmumutktkVtxProducer::maxInvMass_
private

Definition at line 70 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ maxTrkTrkMass_

const double HLTmumutktkVtxProducer::maxTrkTrkMass_
private

Definition at line 72 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ mfName_

const std::string HLTmumutktkVtxProducer::mfName_
private

Definition at line 62 of file HLTmumutktkVtxProducer.h.

◆ minD0Significance_

const double HLTmumutktkVtxProducer::minD0Significance_
private

Definition at line 73 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ minInvMass_

const double HLTmumutktkVtxProducer::minInvMass_
private

Definition at line 69 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ minPt_

const double HLTmumutktkVtxProducer::minPt_
private

Definition at line 68 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ minTrkTrkMass_

const double HLTmumutktkVtxProducer::minTrkTrkMass_
private

Definition at line 71 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ muCandTag_

const edm::InputTag HLTmumutktkVtxProducer::muCandTag_
private

Definition at line 55 of file HLTmumutktkVtxProducer.h.

◆ muCandToken_

const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> HLTmumutktkVtxProducer::muCandToken_
private

Definition at line 56 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ oppositeSign_

const bool HLTmumutktkVtxProducer::oppositeSign_
private

Definition at line 74 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ overlapDR_

const double HLTmumutktkVtxProducer::overlapDR_
private

Definition at line 75 of file HLTmumutktkVtxProducer.h.

Referenced by overlap().

◆ previousCandTag_

const edm::InputTag HLTmumutktkVtxProducer::previousCandTag_
private

Definition at line 59 of file HLTmumutktkVtxProducer.h.

◆ previousCandToken_

const edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTmumutktkVtxProducer::previousCandToken_
private

Definition at line 60 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ thirdTrackMass_

const double HLTmumutktkVtxProducer::thirdTrackMass_
private

Definition at line 65 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ transientTrackRecordToken_

const edm::ESGetToken<TransientTrackBuilder, TransientTrackRecord> HLTmumutktkVtxProducer::transientTrackRecordToken_
private

Definition at line 53 of file HLTmumutktkVtxProducer.h.

Referenced by produce().

◆ trkCandTag_

const edm::InputTag HLTmumutktkVtxProducer::trkCandTag_
private

Definition at line 57 of file HLTmumutktkVtxProducer.h.

◆ trkCandToken_

const edm::EDGetTokenT<reco::RecoChargedCandidateCollection> HLTmumutktkVtxProducer::trkCandToken_
private

Definition at line 58 of file HLTmumutktkVtxProducer.h.

Referenced by produce().