CMS 3D CMS Logo

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

#include <HLTmumutktkFilter.h>

Inheritance diagram for HLTmumutktkFilter:
HLTFilter edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 HLTmumutktkFilter (const edm::ParameterSet &)
 
 ~HLTmumutktkFilter () override
 
- Public Member Functions inherited from HLTFilter
 HLTFilter (const edm::ParameterSet &config)
 
int module (edm::Event const &) const
 
const std::string * moduleLabel () const
 
int path (edm::Event const &) const
 
const std::string * pathName (edm::Event const &) const
 
std::pair< int, int > pmid (edm::Event const &) const
 
bool saveTags () const
 
 ~HLTFilter () override
 
- Public Member Functions inherited from edm::global::EDFilter<>
 EDFilter ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilterBase () 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
 
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)
 
 ~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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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 HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::global::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Static Private Member Functions

static bool triggerdByPreviousLevel (const reco::RecoChargedCandidateRef &, const std::vector< reco::RecoChargedCandidateRef > &)
 

Private Attributes

edm::InputTag beamSpotTag_
 
edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
const double maxEta_
 
const double maxNormalisedChi2_
 
const double minCosinePointingAngle_
 
const double minLxySignificance_
 
const double minPt_
 
const double minVtxProbability_
 
edm::InputTag muCandTag_
 
edm::EDGetTokenT< reco::RecoChargedCandidateCollectionmuCandToken_
 
edm::InputTag MuMuTkVertexTag_
 
edm::EDGetTokenT< reco::VertexCollectionMuMuTkVertexToken_
 
edm::InputTag trkCandTag_
 
edm::EDGetTokenT< reco::RecoChargedCandidateCollectiontrkCandToken_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase 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::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 14 of file HLTmumutktkFilter.h.

Constructor & Destructor Documentation

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

Definition at line 30 of file HLTmumutktkFilter.cc.

References ~HLTmumutktkFilter().

30  : HLTFilter(iConfig),
31  muCandTag_ (iConfig.getParameter<edm::InputTag>("MuonTag")),
32  muCandToken_(consumes<reco::RecoChargedCandidateCollection>(muCandTag_)),
33  trkCandTag_ (iConfig.getParameter<edm::InputTag>("TrackTag")),
34  trkCandToken_(consumes<reco::RecoChargedCandidateCollection>(trkCandTag_)),
35  MuMuTkVertexTag_ (iConfig.getParameter<edm::InputTag>("MuMuTkVertexTag")),
36  MuMuTkVertexToken_(consumes<reco::VertexCollection>(MuMuTkVertexTag_)),
37  beamSpotTag_ (iConfig.getParameter<edm::InputTag> ("BeamSpotTag")),
38  beamSpotToken_(consumes<reco::BeamSpot>(beamSpotTag_)),
39  maxEta_(iConfig.getParameter<double>("MaxEta")),
40  minPt_(iConfig.getParameter<double>("MinPt")),
41  maxNormalisedChi2_(iConfig.getParameter<double>("MaxNormalisedChi2")),
42  minVtxProbability_(iConfig.getParameter<double>("MinVtxProbability")),
43  minLxySignificance_(iConfig.getParameter<double>("MinLxySignificance")),
44  minCosinePointingAngle_(iConfig.getParameter<double>("MinCosinePointingAngle"))
45 {
46 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
edm::InputTag muCandTag_
const double maxEta_
const double minLxySignificance_
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > trkCandToken_
const double maxNormalisedChi2_
edm::InputTag beamSpotTag_
edm::InputTag trkCandTag_
const double minCosinePointingAngle_
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > muCandToken_
const double minVtxProbability_
edm::InputTag MuMuTkVertexTag_
edm::EDGetTokenT< reco::VertexCollection > MuMuTkVertexToken_
HLTmumutktkFilter::~HLTmumutktkFilter ( )
overridedefault

Referenced by HLTmumutktkFilter().

Member Function Documentation

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

Definition at line 52 of file HLTmumutktkFilter.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and HLTFilter::makeHLTFilterDescription().

52  {
55  desc.add<double>("MaxEta",2.5);
56  desc.add<double>("MinPt" ,0.0);
57  desc.add<double>("MaxNormalisedChi2" ,10.0);
58  desc.add<double>("MinVtxProbability" , 0.0);
59  desc.add<double>("MinLxySignificance",3.0);
60  desc.add<double>("MinCosinePointingAngle",0.9);
61  desc.add<edm::InputTag>("MuonTag",edm::InputTag("hltL3MuonCandidates"));
62  desc.add<edm::InputTag>("TrackTag",edm::InputTag("hltMumukAllConeTracks"));
63  desc.add<edm::InputTag>("MuMuTkVertexTag",edm::InputTag("hltDisplacedmumuVtxProducerDoubleMu4Jpsi"));
64  desc.add<edm::InputTag>("BeamSpotTag",edm::InputTag("hltOnineBeamSpot"));
65  descriptions.add("HLTmumutktkFilter",desc);
66 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool HLTmumutktkFilter::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 69 of file HLTmumutktkFilter.cc.

References trigger::TriggerFilterObjectWithRefs::addCollectionTag(), trigger::TriggerRefsCollections::addObject(), beamSpotToken_, reco::Vertex::chi2(), SoftLeptonByDistance_cfi::distance, reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), reco::Vertex::error(), edm::Event::getByToken(), LogDebug, maxNormalisedChi2_, minCosinePointingAngle_, minLxySignificance_, minPt_, minVtxProbability_, muCandTag_, muCandToken_, MuMuTkVertexToken_, reco::Vertex::ndof(), reco::Vertex::normalizedChi2(), reco::Vertex::position(), HLTFilter::saveTags(), mathSSE::sqrt(), reco::Vertex::tracks_begin(), reco::Vertex::tracks_end(), reco::Vertex::tracksSize(), trigger::TriggerMuon, trigger::TriggerTrack, trkCandTag_, trkCandToken_, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().

69  {
70 
71  //get the beamspot position
72  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
73  iEvent.getByToken(beamSpotToken_,recoBeamSpotHandle);
74  const reco::BeamSpot& vertexBeamSpot = *recoBeamSpotHandle;
75 
76  // get vertices
77  reco::VertexCollection displacedVertexColl;
78  edm::Handle<reco::VertexCollection> displacedVertexCollHandle;
79  bool foundVertexColl = iEvent.getByToken(MuMuTkVertexToken_, displacedVertexCollHandle);
80  if(foundVertexColl) displacedVertexColl = *displacedVertexCollHandle;
81 
82  // get muon collection
84  iEvent.getByToken(muCandToken_,mucands);
85 
86  // get track candidates around displaced muons
88  iEvent.getByToken(trkCandToken_,trkcands);
89 
90  // Ref to Candidate object to be recorded in filter object
93  RecoChargedCandidateRef refTrk1;
94  RecoChargedCandidateRef refTrk2;
95 
96  if (saveTags()) {
97  filterproduct.addCollectionTag(muCandTag_);
98  filterproduct.addCollectionTag(trkCandTag_);
99  }
100 
101  bool triggered = false;
102 
103  // loop over vertex collection
104  reco::VertexCollection::iterator it;
105  for(it = displacedVertexColl.begin(); it!= displacedVertexColl.end(); it++){
106  reco::Vertex displacedVertex = *it;
107 
108  // check if the vertex actually consists of exactly two muon + 1 track, throw exception if not
109  if(displacedVertex.tracksSize() != 4) throw cms::Exception("BadLogic") << "HLTmumutktkFilter: ERROR: the Jpsi+trk vertex must have "
110  << "exactly two muons + 2 trk by definition. It now has n trakcs = "
111  << displacedVertex.tracksSize() << std::endl;
112 
113  float normChi2 = displacedVertex.normalizedChi2();
114  if (normChi2 > maxNormalisedChi2_) continue;
115 
116  double vtxProb = 0.0;
117  if ((displacedVertex.chi2()>=0.0) && (displacedVertex.ndof()>0) )
118  vtxProb = TMath::Prob(displacedVertex.chi2(), displacedVertex.ndof() );
119  if (vtxProb < minVtxProbability_) continue;
120 
121  // get the four tracks from the vertex
122  std::vector <reco::TrackRef> vertexTrksRefVec;
123  auto trackIt = displacedVertex.tracks_begin();
124  for (trackIt = displacedVertex.tracks_begin(); trackIt != displacedVertex.tracks_end(); trackIt++){
125  vertexTrksRefVec.push_back((*trackIt).castTo<reco::TrackRef>());
126  }
127 
128  // first find the tracks in the input muon/track collection
129  std::vector<reco::RecoChargedCandidateCollection::const_iterator> mucandVec;
130  std::vector<reco::RecoChargedCandidateCollection::const_iterator> trkcandVec;
131  for (auto cand=mucands->begin(); cand!=mucands->end(); cand++) {
132  reco::TrackRef tkRef = cand->get<reco::TrackRef>();
133  for (auto & iVec : vertexTrksRefVec){
134  if (tkRef == iVec) {mucandVec.push_back(cand); break;}
135  }
136  }
137  if(mucandVec.size() < 2) throw cms::Exception("BadLogic") << "HLTmumutktkFilterr: ERROR: the vertex must have "
138  << " at least two muons by definition." << std::endl;
139 
140  for (auto cand=trkcands->begin(); cand!=trkcands->end(); cand++) {
141  reco::TrackRef tkRef = cand->get<reco::TrackRef>();
142  for (auto & iVec : vertexTrksRefVec){
143  if (tkRef == iVec) {trkcandVec.push_back(cand); break;}
144  }
145  }
146  if(trkcandVec.size() < 2 ) throw cms::Exception("BadLogic") << "HLTmumutktkFilterr: ERROR: the vertex must have "
147  << " at least two tracks by definition." << std::endl;
148 
149  // calculate four-track transverse momentum
150  math::XYZVector pperp(mucandVec.at(0)->px() + mucandVec.at(1)->px() + trkcandVec.at(0)->px() + trkcandVec.at(1)->px(),
151  mucandVec.at(0)->py() + mucandVec.at(1)->py() + trkcandVec.at(0)->px() + trkcandVec.at(1)->py(),
152  0.);
153 
154  // get vertex position and error to calculate the decay length significance
155  const reco::Vertex::Point& vpoint=displacedVertex.position();
156  reco::Vertex::Error verr = displacedVertex.error();
157  GlobalPoint secondaryVertex (vpoint.x(), vpoint.y(), vpoint.z());
158  GlobalError err(verr.At(0,0), verr.At(1,0), verr.At(1,1), verr.At(2,0), verr.At(2,1), verr.At(2,2) );
159 
160  GlobalPoint displacementFromBeamspot( -1*((vertexBeamSpot.x0() - secondaryVertex.x()) + (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dxdz()),
161  -1*((vertexBeamSpot.y0() - secondaryVertex.y()) + (secondaryVertex.z() - vertexBeamSpot.z0()) * vertexBeamSpot.dydz()),
162  0 );
163  float lxy = displacementFromBeamspot.perp();
164  float lxyerr = sqrt(err.rerr(displacementFromBeamspot));
165  float lxysign = 0;
166  if (lxyerr != 0) lxysign = lxy/lxyerr;
167 
168  //calculate the angle between the decay length and the four-track momentum
169  Vertex::Point vperp(displacementFromBeamspot.x(),displacementFromBeamspot.y(),0.);
170  float cosAlpha = vperp.Dot(pperp)/(vperp.Rho()*pperp.Rho());
171 
172  if (pperp.Rho() < minPt_ ) continue;
173  if (lxysign < minLxySignificance_ ) continue;
174  if (cosAlpha < minCosinePointingAngle_) continue;
175  triggered = true;
176 
177  refMu1=RecoChargedCandidateRef( Ref<RecoChargedCandidateCollection> (mucands,distance(mucands->begin(), mucandVec.at(0))));
178  filterproduct.addObject(TriggerMuon,refMu1);
179  refMu2=RecoChargedCandidateRef( Ref<RecoChargedCandidateCollection> (mucands,distance(mucands->begin(), mucandVec.at(1))));
180  filterproduct.addObject(TriggerMuon,refMu2);
181  refTrk1=RecoChargedCandidateRef( Ref<RecoChargedCandidateCollection> (trkcands,distance(trkcands->begin(),trkcandVec.at(0))));
182  filterproduct.addObject(TriggerTrack,refTrk1);
183  refTrk2=RecoChargedCandidateRef( Ref<RecoChargedCandidateCollection> (trkcands,distance(trkcands->begin(),trkcandVec.at(1))));
184  filterproduct.addObject(TriggerTrack,refTrk2);
185 
186  }//end loop vertices
187 
188  LogDebug("HLTDisplacedMumuTrkFilter") << " >>>>> Result of HLTDisplacedMuMuTrkFilter is "<< triggered;
189  return triggered;
190 }
#define LogDebug(id)
double z0() const
z coordinate
Definition: BeamSpot.h:68
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
edm::InputTag muCandTag_
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.cc:81
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
edm::Ref< RecoChargedCandidateCollection > RecoChargedCandidateRef
reference to an object in a collection of RecoChargedCandidate objects
math::Error< dimension >::type Error
covariance error matrix (3x3)
Definition: Vertex.h:43
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
const Point & position() const
position
Definition: Vertex.h:109
void addObject(int id, const reco::RecoEcalCandidateRef &ref)
setters for L3 collections: (id=physics type, and Ref<C>)
const double minLxySignificance_
double dydz() const
dydz slope
Definition: BeamSpot.h:84
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > trkCandToken_
T sqrt(T t)
Definition: SSEVec.h:18
const double maxNormalisedChi2_
double chi2() const
chi-squares
Definition: Vertex.h:98
math::XYZPoint Point
point in the space
Definition: Vertex.h:39
edm::InputTag trkCandTag_
double dxdz() const
dxdz slope
Definition: BeamSpot.h:82
double ndof() const
Definition: Vertex.h:105
const double minCosinePointingAngle_
edm::EDGetTokenT< reco::RecoChargedCandidateCollection > muCandToken_
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
void addCollectionTag(const edm::InputTag &collectionTag)
collectionTags
Error error() const
return SMatrix
Definition: Vertex.h:139
bool saveTags() const
Definition: HLTFilter.h:45
double y0() const
y coordinate
Definition: BeamSpot.h:66
const double minVtxProbability_
double normalizedChi2() const
chi-squared divided by n.d.o.f.
Definition: Vertex.h:107
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.cc:76
size_t tracksSize() const
number of tracks
Definition: Vertex.cc:71
edm::EDGetTokenT< reco::VertexCollection > MuMuTkVertexToken_
double x0() const
x coordinate
Definition: BeamSpot.h:64
bool HLTmumutktkFilter::triggerdByPreviousLevel ( const reco::RecoChargedCandidateRef candref,
const std::vector< reco::RecoChargedCandidateRef > &  vcands 
)
staticprivate

Definition at line 194 of file HLTmumutktkFilter.cc.

References mps_fire::i.

194  {
195  unsigned int i=0;
196  unsigned int i_max=vcands.size();
197  for (;i!=i_max;++i){
198  if (candref == vcands[i]) return true;
199  }
200  return false;
201 }

Member Data Documentation

edm::InputTag HLTmumutktkFilter::beamSpotTag_
private

Definition at line 30 of file HLTmumutktkFilter.h.

edm::EDGetTokenT<reco::BeamSpot> HLTmumutktkFilter::beamSpotToken_
private

Definition at line 31 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

const double HLTmumutktkFilter::maxEta_
private

Definition at line 33 of file HLTmumutktkFilter.h.

const double HLTmumutktkFilter::maxNormalisedChi2_
private

Definition at line 35 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

const double HLTmumutktkFilter::minCosinePointingAngle_
private

Definition at line 38 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

const double HLTmumutktkFilter::minLxySignificance_
private

Definition at line 37 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

const double HLTmumutktkFilter::minPt_
private

Definition at line 34 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

const double HLTmumutktkFilter::minVtxProbability_
private

Definition at line 36 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

edm::InputTag HLTmumutktkFilter::muCandTag_
private

Definition at line 24 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

edm::EDGetTokenT<reco::RecoChargedCandidateCollection> HLTmumutktkFilter::muCandToken_
private

Definition at line 25 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

edm::InputTag HLTmumutktkFilter::MuMuTkVertexTag_
private

Definition at line 28 of file HLTmumutktkFilter.h.

edm::EDGetTokenT<reco::VertexCollection> HLTmumutktkFilter::MuMuTkVertexToken_
private

Definition at line 29 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

edm::InputTag HLTmumutktkFilter::trkCandTag_
private

Definition at line 26 of file HLTmumutktkFilter.h.

Referenced by hltFilter().

edm::EDGetTokenT<reco::RecoChargedCandidateCollection> HLTmumutktkFilter::trkCandToken_
private

Definition at line 27 of file HLTmumutktkFilter.h.

Referenced by hltFilter().