CMS 3D CMS Logo

HICaloCompatibleTrackSelector.cc
Go to the documentation of this file.
1 /*
2 
3  Based on analytical track selector
4 
5  - This track selector assigns a quality bit to tracks deemed compatible with matching calo info
6  - The default mode is to use the matching provided by particle flow,
7  but a delta R matching to calorimeter towers is also supported
8  - No selection is done other then selecting calo-compatible tracks.
9  - The code always keeps all tracks in the input collection (should make configurable)
10  - Note that matching by PF candidate only works on the same track collection used as input to PF
11  - Tower code not up to data
12 
13  Authors: Matthew Nguyen, Andre Yoon, Frank Ma (November 4th, 2011)
14 
15  */
16 
17 // Basic inclusion
19 
22 
24 #include <Math/DistFunc.h>
25 #include "TMath.h"
26 
28 
29 HICaloCompatibleTrackSelector::HICaloCompatibleTrackSelector(const edm::ParameterSet& cfg)
30  : srcTracks_(consumes<TrackCollection>(cfg.getParameter<edm::InputTag>("srcTracks"))),
31  srcPFCands_(consumes<PFCandidateCollection>(cfg.getParameter<edm::InputTag>("srcPFCands"))),
32  srcTower_(consumes<CaloTowerCollection>(cfg.getParameter<edm::InputTag>("srcTower"))),
33  usePFCandMatching_(cfg.getUntrackedParameter<bool>("usePFCandMatching", true)),
34  trkMatchPtMin_(cfg.getUntrackedParameter<double>("trkMatchPtMin", 10.0)),
35  trkCompPtMin_(cfg.getUntrackedParameter<double>("trkCompPtMin", 35.0)),
36  trkEtaMax_(cfg.getUntrackedParameter<double>("trkEtaMax", 2.4)),
37  towerPtMin_(cfg.getUntrackedParameter<double>("towerPtMin", 5.0)),
38  matchConeRadius_(cfg.getUntrackedParameter<double>("matchConeRadius", 0.087)),
39  keepAllTracks_(cfg.getUntrackedParameter<bool>("keepAllTracks", true)),
40  copyExtras_(cfg.getUntrackedParameter<bool>("copyExtras", true)),
41  copyTrajectories_(cfg.getUntrackedParameter<bool>("copyTrajectories", true)),
42  qualityToSet_(cfg.getParameter<std::string>("qualityToSet")),
43  qualityToSkip_(cfg.getParameter<std::string>("qualityToSkip")),
44  qualityToMatch_(cfg.getParameter<std::string>("qualityToMatch")),
45  minimumQuality_(cfg.getParameter<std::string>("minimumQuality")),
46  resetQuality_(cfg.getUntrackedParameter<bool>("resetQuality", true)),
47  passMuons_(cfg.getUntrackedParameter<bool>("passMuons", true)),
48  passElectrons_(cfg.getUntrackedParameter<bool>("passElectrons", false)),
49  funcDeltaRTowerMatch_(cfg.getParameter<std::string>("funcDeltaRTowerMatch")),
50  funcCaloComp_(cfg.getParameter<std::string>("funcCaloComp")) {
51  std::string alias(cfg.getParameter<std::string>("@module_label"));
52  produces<reco::TrackCollection>().setBranchAlias(alias + "Tracks");
53  if (copyExtras_) {
54  produces<reco::TrackExtraCollection>().setBranchAlias(alias + "TrackExtras");
55  produces<TrackingRecHitCollection>().setBranchAlias(alias + "RecHits");
56  }
57  if (copyTrajectories_) {
58  produces<std::vector<Trajectory>>().setBranchAlias(alias + "Trajectories");
59  produces<TrajTrackAssociationCollection>().setBranchAlias(alias + "TrajectoryTrackAssociations");
60  srcTrackTrajs_ = (consumes<std::vector<Trajectory>>(cfg.getParameter<edm::InputTag>("srcTracks")));
61  srcTrackTrajAssoc_ = (consumes<TrajTrackAssociationCollection>(cfg.getParameter<edm::InputTag>("srcTracks")));
62  }
63 
64  // pt dependence of delta R matching requirement
65  fDeltaRTowerMatch = new TF1("fDeltaRTowerMatch", funcDeltaRTowerMatch_.c_str(), 0, 200);
66  // pt dependance of calo compatibility, i.e., minimum sum Calo Et vs. track pT
67  fCaloComp = new TF1("fCaloComp", funcCaloComp_.c_str(), 0, 200); // a parameterization of pt dependent cut
68 }
69 
71 
73  using namespace std;
74  using namespace edm;
75  using namespace reco;
76 
77  LogDebug("HICaloCompatibleTrackSelector") << "min pt for selection = " << trkMatchPtMin_ << endl;
78 
79  Handle<TrackCollection> hSrcTrack;
83 
84  evt.getByToken(srcTracks_, hSrcTrack);
85 
86  selTracks_ = std::make_unique<TrackCollection>();
88  if (copyExtras_) {
89  selTrackExtras_ = std::make_unique<TrackExtraCollection>();
90  selHits_ = std::make_unique<TrackingRecHitCollection>();
93  }
94 
96  trackRefs_.resize(hSrcTrack->size());
97 
100 
101  bool isPFThere = false;
102  bool isTowerThere = false;
103 
104  if (usePFCandMatching_)
105  isPFThere = evt.getByToken(srcPFCands_, pfCandidates);
106  else
107  isTowerThere = evt.getByToken(srcTower_, towers);
108 
109  size_t current = 0;
110  for (TI ti = hSrcTrack->begin(), ed = hSrcTrack->end(); ti != ed; ++ti, ++current) {
111  const reco::Track& trk = *ti;
112 
113  bool isSelected;
114  if (usePFCandMatching_)
115  isSelected = selectByPFCands(ti, hSrcTrack, pfCandidates, isPFThere);
116  else
117  isSelected = selectByTowers(ti, hSrcTrack, towers, isTowerThere);
118 
119  if (!keepAllTracks_ && !isSelected)
120  continue;
121 
122  // Add all tracks to output collection, the rest of the code only sets the quality bit
123  selTracks_->push_back(reco::Track(trk)); // clone and store
124 
125  if (isSelected)
127 
128  if (copyExtras_) {
129  // TrackExtras
130  selTrackExtras_->push_back(TrackExtra(trk.outerPosition(),
131  trk.outerMomentum(),
132  trk.outerOk(),
133  trk.innerPosition(),
134  trk.innerMomentum(),
135  trk.innerOk(),
136  trk.outerStateCovariance(),
137  trk.outerDetId(),
138  trk.innerStateCovariance(),
139  trk.innerDetId(),
140  trk.seedDirection(),
141  trk.seedRef()));
142  selTracks_->back().setExtra(TrackExtraRef(rTrackExtras_, selTrackExtras_->size() - 1));
143  TrackExtra& tx = selTrackExtras_->back();
144  tx.setResiduals(trk.residuals());
145  // TrackingRecHits
146  auto const firstHitIndex = selHits_->size();
147  for (trackingRecHit_iterator hit = trk.recHitsBegin(); hit != trk.recHitsEnd(); ++hit) {
148  selHits_->push_back((*hit)->clone());
149  }
150  tx.setHits(rHits_, firstHitIndex, selHits_->size() - firstHitIndex);
151  }
152  if (copyTrajectories_) {
153  trackRefs_[current] = TrackRef(rTracks_, selTracks_->size() - 1);
154  }
155 
156  } // close track loop
157 
158  if (copyTrajectories_) {
161  evt.getByToken(srcTrackTrajs_, hTTAss);
162  evt.getByToken(srcTrackTrajAssoc_, hTraj);
163  selTrajs_ = std::make_unique<std::vector<Trajectory>>();
164  rTrajectories_ = evt.getRefBeforePut<vector<Trajectory>>();
165  selTTAss_ = std::make_unique<TrajTrackAssociationCollection>();
166  for (size_t i = 0, n = hTraj->size(); i < n; ++i) {
167  Ref<vector<Trajectory>> trajRef(hTraj, i);
169  if (match != hTTAss->end()) {
170  const Ref<TrackCollection>& trkRef = match->val;
171  short oldKey = static_cast<short>(trkRef.key());
172  if (trackRefs_[oldKey].isNonnull()) {
173  selTrajs_->push_back(Trajectory(*trajRef));
174  selTTAss_->insert(Ref<vector<Trajectory>>(rTrajectories_, selTrajs_->size() - 1), trackRefs_[oldKey]);
175  }
176  }
177  }
178  }
179 
180  static const string emptyString;
181  evt.put(std::move(selTracks_));
182  if (copyExtras_) {
184  evt.put(std::move(selHits_));
185  }
186  if (copyTrajectories_) {
187  evt.put(std::move(selTrajs_));
188  evt.put(std::move(selTTAss_));
189  }
190 }
191 
195  bool isPFThere) {
196  const reco::Track& trk = *ti;
197 
198  // If it passes this quality threshold or is under the minimum match pT, automatically save it
200  return true;
202  return false;
203  } else {
204  double trkPt = trk.pt();
205  //if(trkPt < trkMatchPtMin_ ) return false;
206 
207  double caloEt = 0.0;
208  if (usePFCandMatching_) {
209  if (isPFThere) {
210  unsigned int trackKey = ti - hSrcTrack->begin();
211  caloEt = matchPFCandToTrack(pfCandidates, trackKey, trkPt);
212  }
213  }
214 
215  // Set quality bit based on calo matching
216  if (!(caloEt > 0.))
217  return false;
218 
219  if (trkPt <= trkCompPtMin_) {
221  return true;
222  else
223  return false;
224  } else {
225  // loose cuts are implied in selectors, make configurable?
226  float compPt =
227  (fCaloComp->Eval(trkPt) != fCaloComp->Eval(trkPt)) ? 0 : fCaloComp->Eval(trkPt); // protect agains NaN
228  if (caloEt > compPt)
229  return true;
230  else
231  return false;
232  }
233  } // else above trkMatchPtMin_
234 
235  throw cms::Exception("Undefined case in HICaloCompatibleTrackSelector")
236  << "Undefined case in HICaloCompatibleTrackSelector";
237 }
238 
242  bool isTowerThere) {
243  // Not up to date! use PF towers instead
244 
245  const reco::Track& trk = *ti;
246 
247  // If it passes the high purity cuts, then consider it confirmed
249  return true;
250  } else {
252  return false;
253 
254  double caloEt = 0.0;
255  if (isTowerThere) {
256  double matchDr;
257  matchByDrAllowReuse(trk, towers, matchDr, caloEt);
258  float matchConeRadius_pt = (fDeltaRTowerMatch->Eval(trk.pt()) != fDeltaRTowerMatch->Eval(trk.pt()))
259  ? 0
260  : fDeltaRTowerMatch->Eval(trk.pt()); // protect agains NaN
261  if (caloEt > 0 && matchDr > matchConeRadius_pt)
262  caloEt = 0.;
263  }
264 
265  if (trk.pt() < trkCompPtMin_ || caloEt > 0.75 * (trk.pt() - trkCompPtMin_))
266  return true;
267  else
268  return false;
269  }
270 }
271 
273  unsigned it,
274  double trkPt) {
275  // This function returns the sum of the calo energy in the block containing the track
276  // There is another piece of information which could be useful which is the pT assigned to the charged hadron by PF
277 
278  double sum_ecal = 0.0, sum_hcal = 0.0;
279 
280  int candType = 0;
281  reco::PFCandidate matchedCand;
282 
283  // loop over the PFCandidates until you find the one whose trackRef points to the track
284 
285  for (CI ci = pfCandidates->begin(); ci != pfCandidates->end(); ++ci) {
286  const reco::PFCandidate& cand = *ci;
287 
288  int type = cand.particleId();
289 
290  // only charged hadrons and leptons can be asscociated with a track
291  if (!(type == PFCandidate::h || //type1
292  type == PFCandidate::e || //type2
293  type == PFCandidate::mu //type3
294  ))
295  continue;
296 
297  unsigned candTrackRefKey = cand.trackRef().key();
298 
299  if (it == candTrackRefKey) {
300  matchedCand = cand;
301  candType = type;
302  break;
303  }
304  }
305  // take all muons as compatible, extend to electrons when validataed
306  if (passMuons_ && candType == 3)
307  return 9999.;
308  if (passElectrons_ && candType == 2)
309  return 9999.;
310 
311  if (trkPt < trkMatchPtMin_)
312  return 0.;
313 
314  if (candType > 0) {
315  // Now that we found the matched PF candidate, loop over the elements in the block summing the calo Et
316  for (unsigned ib = 0; ib < matchedCand.elementsInBlocks().size(); ib++) {
317  PFBlockRef blockRef = matchedCand.elementsInBlocks()[ib].first;
318 
319  unsigned indexInBlock = matchedCand.elementsInBlocks()[ib].second;
320  const edm::OwnVector<reco::PFBlockElement>& elements = (*blockRef).elements();
321 
322  //This tells you what type of element it is:
323  //cout<<" block type"<<elements[indexInBlock].type()<<endl;
324 
325  switch (elements[indexInBlock].type()) {
326  case PFBlockElement::ECAL: {
327  reco::PFClusterRef clusterRef = elements[indexInBlock].clusterRef();
328  sum_ecal += clusterRef->energy() / cosh(clusterRef->eta());
329  break;
330  }
331 
332  case PFBlockElement::HCAL: {
333  reco::PFClusterRef clusterRef = elements[indexInBlock].clusterRef();
334  sum_hcal += clusterRef->energy() / cosh(clusterRef->eta());
335  break;
336  }
337  case PFBlockElement::TRACK: {
338  //Do nothing since track are not normally linked to other tracks
339  break;
340  }
341  default:
342  break;
343  }
344 
345  // We could also add in the PS, HO, ..
346 
347  } // end of elementsInBlocks()
348  } // end of isCandFound
349 
350  return sum_ecal + sum_hcal;
351 }
352 
355  double& bestdr,
356  double& bestpt) {
357  // loop over towers
358  bestdr = 1e10;
359  bestpt = 0.;
360  for (unsigned int i = 0; i < towers->size(); ++i) {
361  const CaloTower& tower = (*towers)[i];
362  double pt = tower.pt();
363  if (pt < towerPtMin_)
364  continue;
365  if (fabs(tower.eta()) > trkEtaMax_)
366  continue;
367  double dr = reco::deltaR(tower, trk);
368  if (dr < bestdr) {
369  bestdr = dr;
370  bestpt = pt;
371  }
372  }
373 }
reco::Track::outerPosition
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:62
reco::Track::outerMomentum
const math::XYZVector & outerMomentum() const
momentum vector at the outermost hit position
Definition: Track.h:65
reco::modules::HICaloCompatibleTrackSelector::funcDeltaRTowerMatch_
std::string funcDeltaRTowerMatch_
Definition: HICaloCompatibleTrackSelector.h:111
reco::modules::HICaloCompatibleTrackSelector::trkCompPtMin_
double trkCompPtMin_
Definition: HICaloCompatibleTrackSelector.h:90
HLT_FULL_cff.towers
towers
Definition: HLT_FULL_cff.py:36358
reco::Track::outerStateCovariance
CovarianceMatrix outerStateCovariance() const
outermost trajectory state curvilinear errors
Definition: Track.h:68
edm::Event::getRefBeforePut
RefProd< PROD > getRefBeforePut()
Definition: Event.h:158
zmumugammaAnalyzer_cfi.pfCandidates
pfCandidates
Definition: zmumugammaAnalyzer_cfi.py:11
reco::modules::HICaloCompatibleTrackSelector::~HICaloCompatibleTrackSelector
~HICaloCompatibleTrackSelector() override
destructor
Definition: HICaloCompatibleTrackSelector.cc:70
reco::Track::outerDetId
unsigned int outerDetId() const
DetId of the detector on which surface the outermost state is located.
Definition: Track.h:79
electrons_cff.bool
bool
Definition: electrons_cff.py:366
edm::AssociationMap::find
const_iterator find(const key_type &k) const
find element with specified reference key
Definition: AssociationMap.h:173
mps_fire.i
i
Definition: mps_fire.py:428
reco::modules::HICaloCompatibleTrackSelector::trackRefs_
std::vector< reco::TrackRef > trackRefs_
Definition: HICaloCompatibleTrackSelector.h:125
funct::false
false
Definition: Factorize.h:29
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
reco::modules::HICaloCompatibleTrackSelector::srcPFCands_
edm::EDGetTokenT< reco::PFCandidateCollection > srcPFCands_
Definition: HICaloCompatibleTrackSelector.h:81
reco::modules::HICaloCompatibleTrackSelector::selectByTowers
bool selectByTowers(TI ti, const edm::Handle< TrackCollection > hSrcTrack, const edm::Handle< CaloTowerCollection > towers, bool isTowerThere)
Definition: HICaloCompatibleTrackSelector.cc:239
reco::modules::HICaloCompatibleTrackSelector
Definition: HICaloCompatibleTrackSelector.h:48
reco::modules::HICaloCompatibleTrackSelector::towerPtMin_
double towerPtMin_
Definition: HICaloCompatibleTrackSelector.h:92
ESHandle.h
reco::Track::recHitsBegin
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:88
reco::PFCandidate::e
Definition: PFCandidate.h:47
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::modules::HICaloCompatibleTrackSelector::selTTAss_
std::unique_ptr< TrajTrackAssociationCollection > selTTAss_
Definition: HICaloCompatibleTrackSelector.h:120
edm
HLT enums.
Definition: AlignableModifier.h:19
reco::modules::HICaloCompatibleTrackSelector::trkMatchPtMin_
double trkMatchPtMin_
Definition: HICaloCompatibleTrackSelector.h:89
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
hgcalTowerProducer_cfi.tower
tower
Definition: hgcalTowerProducer_cfi.py:4
reco::PFCandidate::h
Definition: PFCandidate.h:46
edm::friendlyname::emptyString
static const std::string emptyString("")
edm::SortedCollection< CaloTower >
reco::PFBlockElement::HCAL
Definition: PFBlockElement.h:36
reco::modules::HICaloCompatibleTrackSelector::matchPFCandToTrack
double matchPFCandToTrack(const edm::Handle< PFCandidateCollection > &pfCandidates, unsigned it, double trkPt)
Definition: HICaloCompatibleTrackSelector.cc:272
reco::modules::HICaloCompatibleTrackSelector::selTracks_
std::unique_ptr< reco::TrackCollection > selTracks_
storage
Definition: HICaloCompatibleTrackSelector.h:115
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
reco::PFCandidate::elementsInBlocks
const ElementsInBlocks & elementsInBlocks() const
Definition: PFCandidate.cc:636
reco::Track::outerOk
bool outerOk() const
return true if the outermost hit is valid
Definition: Track.h:50
edm::Handle
Definition: AssociativeIterator.h:50
reco::modules::HICaloCompatibleTrackSelector::rHits_
TrackingRecHitRefProd rHits_
Definition: HICaloCompatibleTrackSelector.h:123
reco::modules::HICaloCompatibleTrackSelector::selHits_
std::unique_ptr< TrackingRecHitCollection > selHits_
Definition: HICaloCompatibleTrackSelector.h:117
edm::Ref
Definition: AssociativeIterator.h:58
reco::Track::innerStateCovariance
CovarianceMatrix innerStateCovariance() const
innermost trajectory state curvilinear errors
Definition: Track.h:71
reco::Track::innerOk
bool innerOk() const
return true if the innermost hit is valid
Definition: Track.h:53
reco::modules::HICaloCompatibleTrackSelector::selTrackExtras_
std::unique_ptr< reco::TrackExtraCollection > selTrackExtras_
Definition: HICaloCompatibleTrackSelector.h:116
reco::modules::HICaloCompatibleTrackSelector::selectByPFCands
bool selectByPFCands(TI ti, const edm::Handle< TrackCollection > hSrcTrack, const edm::Handle< PFCandidateCollection > pfCandidates, bool isPFThere)
Definition: HICaloCompatibleTrackSelector.cc:192
reco::TrackBase::pt
double pt() const
track transverse momentum
Definition: TrackBase.h:637
reco::modules::HICaloCompatibleTrackSelector::usePFCandMatching_
bool usePFCandMatching_
Definition: HICaloCompatibleTrackSelector.h:88
reco::TrackExtra
Definition: TrackExtra.h:26
edm::AssociationMap::end
const_iterator end() const
last iterator over the map (read only)
Definition: AssociationMap.h:171
reco::Track::innerMomentum
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
Definition: Track.h:59
reco::PFCandidate::mu
Definition: PFCandidate.h:48
reco::modules::HICaloCompatibleTrackSelector::rTrajectories_
edm::RefProd< std::vector< Trajectory > > rTrajectories_
Definition: HICaloCompatibleTrackSelector.h:124
reco::PFBlockElement::TRACK
Definition: PFBlockElement.h:32
reco::modules::HICaloCompatibleTrackSelector::qualityToSkip_
std::string qualityToSkip_
Definition: HICaloCompatibleTrackSelector.h:102
reco::Track::recHitsEnd
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:91
reco::Track
Definition: Track.h:27
reco::modules::HICaloCompatibleTrackSelector::copyTrajectories_
bool copyTrajectories_
copy also trajectories and trajectory->track associations
Definition: HICaloCompatibleTrackSelector.h:99
reco::TrackExtraCollection
std::vector< TrackExtra > TrackExtraCollection
collection of TrackExtra objects
Definition: TrackExtraFwd.h:10
reco::modules::HICaloCompatibleTrackSelector::produce
void produce(edm::Event &evt, const edm::EventSetup &es) override
process one event
Definition: HICaloCompatibleTrackSelector.cc:72
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:535
edm::OwnVector::const_iterator
Definition: OwnVector.h:41
reco::TrackRef
edm::Ref< TrackCollection > TrackRef
persistent reference to a Track
Definition: TrackFwd.h:20
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
reco::modules::HICaloCompatibleTrackSelector::srcTrackTrajAssoc_
edm::EDGetTokenT< TrajTrackAssociationCollection > srcTrackTrajAssoc_
Definition: HICaloCompatibleTrackSelector.h:84
reco::TrackExtra::setResiduals
void setResiduals(const TrackResiduals &r)
set the residuals
Definition: TrackExtra.h:132
edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator
friend struct const_iterator
Definition: AssociationMap.h:274
funct::true
true
Definition: Factorize.h:173
reco::Track::seedDirection
const PropagationDirection & seedDirection() const
direction of how the hits were sorted in the original seed
Definition: Track.h:148
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
deltaR.h
reco::modules::HICaloCompatibleTrackSelector::TI
reco::TrackCollection::const_iterator TI
Definition: HICaloCompatibleTrackSelector.h:58
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
reco::TrackExtraRef
edm::Ref< TrackExtraCollection > TrackExtraRef
persistent reference to a TrackExtra
Definition: TrackExtraFwd.h:16
reco::PFBlockElement::ECAL
Definition: PFBlockElement.h:35
cand
Definition: decayParser.h:32
reco::Track::innerPosition
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
CaloTower
Definition: CaloTower.h:26
reco::modules::HICaloCompatibleTrackSelector::minimumQuality_
std::string minimumQuality_
Definition: HICaloCompatibleTrackSelector.h:104
reco::modules::HICaloCompatibleTrackSelector::srcTower_
edm::EDGetTokenT< CaloTowerCollection > srcTower_
Definition: HICaloCompatibleTrackSelector.h:82
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
reco::Track::innerDetId
unsigned int innerDetId() const
DetId of the detector on which surface the innermost state is located.
Definition: Track.h:82
reco::modules::HICaloCompatibleTrackSelector::rTracks_
reco::TrackRefProd rTracks_
Definition: HICaloCompatibleTrackSelector.h:121
cuy.ib
ib
Definition: cuy.py:662
edm::EventSetup
Definition: EventSetup.h:58
reco::modules::HICaloCompatibleTrackSelector::copyExtras_
bool copyExtras_
copy only the tracks, not extras and rechits (for AOD)
Definition: HICaloCompatibleTrackSelector.h:97
reco::TrackExtraBase::setHits
void setHits(TrackingRecHitRefProd const &prod, unsigned firstH, unsigned int nH)
Definition: TrackExtraBase.h:30
looper.cfg
cfg
Definition: looper.py:297
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
reco::modules::HICaloCompatibleTrackSelector::fCaloComp
TF1 * fCaloComp
Definition: HICaloCompatibleTrackSelector.h:128
bookConverter.elements
elements
Definition: bookConverter.py:147
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
HICaloCompatibleTrackSelector.h
reco::modules::HICaloCompatibleTrackSelector::qualityToMatch_
std::string qualityToMatch_
Definition: HICaloCompatibleTrackSelector.h:103
reco::modules::HICaloCompatibleTrackSelector::matchByDrAllowReuse
void matchByDrAllowReuse(const reco::Track &trk, const edm::Handle< CaloTowerCollection > &towers, double &bestdr, double &bestpt)
Definition: HICaloCompatibleTrackSelector.cc:353
reco::Track::seedRef
const edm::RefToBase< TrajectorySeed > & seedRef() const
Definition: Track.h:155
Trajectory
Definition: Trajectory.h:38
SiStripOfflineCRack_cfg.alias
alias
Definition: SiStripOfflineCRack_cfg.py:128
reco::modules::HICaloCompatibleTrackSelector::funcCaloComp_
std::string funcCaloComp_
Definition: HICaloCompatibleTrackSelector.h:112
flavorHistoryFilter_cfi.dr
dr
Definition: flavorHistoryFilter_cfi.py:37
Exception
Definition: hltDiff.cc:245
reco::PFCandidateCollection
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
Definition: PFCandidateFwd.h:12
reco::Track::residuals
const TrackResiduals & residuals() const
get the residuals
Definition: Track.h:158
reco::modules::HICaloCompatibleTrackSelector::qualityToSet_
std::string qualityToSet_
Definition: HICaloCompatibleTrackSelector.h:101
EventSetup.h
reco::deltaR
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
Definition: deltaR.h:30
reco::modules::HICaloCompatibleTrackSelector::keepAllTracks_
bool keepAllTracks_
Definition: HICaloCompatibleTrackSelector.h:95
reco::modules::HICaloCompatibleTrackSelector::rTrackExtras_
reco::TrackExtraRefProd rTrackExtras_
Definition: HICaloCompatibleTrackSelector.h:122
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
edm::Ref::key
key_type key() const
Accessor for product key.
Definition: Ref.h:250
reco::modules::HICaloCompatibleTrackSelector::selTrajs_
std::unique_ptr< std::vector< Trajectory > > selTrajs_
Definition: HICaloCompatibleTrackSelector.h:118
reco::modules::HICaloCompatibleTrackSelector::passMuons_
bool passMuons_
Definition: HICaloCompatibleTrackSelector.h:107
reco::modules::HICaloCompatibleTrackSelector::srcTracks_
edm::EDGetTokenT< reco::TrackCollection > srcTracks_
source collection label
Definition: HICaloCompatibleTrackSelector.h:80
reco::modules::HICaloCompatibleTrackSelector::srcTrackTrajs_
edm::EDGetTokenT< std::vector< Trajectory > > srcTrackTrajs_
Definition: HICaloCompatibleTrackSelector.h:83
reco::modules::HICaloCompatibleTrackSelector::CI
reco::PFCandidateCollection::const_iterator CI
Definition: HICaloCompatibleTrackSelector.h:57
reco::modules::HICaloCompatibleTrackSelector::passElectrons_
bool passElectrons_
Definition: HICaloCompatibleTrackSelector.h:108
edm::Event
Definition: Event.h:73
reco::TrackBase::quality
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:552
edm::InputTag
Definition: InputTag.h:15
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
reco::modules::HICaloCompatibleTrackSelector::fDeltaRTowerMatch
TF1 * fDeltaRTowerMatch
Definition: HICaloCompatibleTrackSelector.h:128
reco::modules::HICaloCompatibleTrackSelector::trkEtaMax_
double trkEtaMax_
Definition: HICaloCompatibleTrackSelector.h:91
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::OwnVector< TrackingRecHit >