CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
reco::modules::CosmicTrackSplitter Class Reference
Inheritance diagram for reco::modules::CosmicTrackSplitter:
edm::stream::EDProducer<>

Public Member Functions

 CosmicTrackSplitter (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Member Functions

TrackCandidate makeCandidate (const reco::Track &tk, std::vector< TrackingRecHit * >::iterator hitsBegin, std::vector< TrackingRecHit * >::iterator hitsEnd)
 

Private Attributes

std::vector< uint32_t > detsToIgnore_
 
double dXYcut_
 
double dZcut_
 
bool excludePixelHits_
 
size_t minimumHits_
 
bool replaceWithInactiveHits_
 
bool stripAllInvalidHits_
 
bool stripBackInvalidHits_
 
bool stripFrontInvalidHits_
 
edm::ESHandle< TrackerGeometrytheGeometry
 
edm::ESHandle< MagneticFieldtheMagField
 
edm::EDGetTokenT< reco::TrackCollectiontokenTracks
 
edm::EDGetTokenT< TrajTrackAssociationCollectiontokenTrajTrack
 
int totalTracks_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 76 of file CosmicTrackSplitter.cc.

Constructor & Destructor Documentation

◆ CosmicTrackSplitter()

reco::modules::CosmicTrackSplitter::CosmicTrackSplitter ( const edm::ParameterSet iConfig)

Definition at line 107 of file CosmicTrackSplitter.cc.

108  : minimumHits_(iConfig.getParameter<uint32_t>("minimumHits")),
109  replaceWithInactiveHits_(iConfig.getParameter<bool>("replaceWithInactiveHits")),
110  stripFrontInvalidHits_(iConfig.getParameter<bool>("stripFrontInvalidHits")),
111  stripBackInvalidHits_(iConfig.getParameter<bool>("stripBackInvalidHits")),
112  stripAllInvalidHits_(iConfig.getParameter<bool>("stripAllInvalidHits")),
113  excludePixelHits_(iConfig.getParameter<bool>("excludePixelHits")),
114  dZcut_(iConfig.getParameter<double>("dzCut")),
115  dXYcut_(iConfig.getParameter<double>("dxyCut")),
116  detsToIgnore_(iConfig.getParameter<std::vector<uint32_t> >("detsToIgnore")) {
117  // sanity check
119  throw cms::Exception("Configuration") << "Inconsistent Configuration: you can't set both 'stripAllInvalidHits' "
120  "and 'replaceWithInactiveHits' to true\n";
121  }
122  tokenTracks = consumes<reco::TrackCollection>(iConfig.getParameter<edm::InputTag>("tracks"));
124  consumes<TrajTrackAssociationCollection>(iConfig.getParameter<edm::InputTag>("tjTkAssociationMapTag"));
125 
126  LogDebug("CosmicTrackSplitter") << "sanity check";
127 
128  // sort detids to ignore
129  std::sort(detsToIgnore_.begin(), detsToIgnore_.end());
130 
131  totalTracks_ = 0;
132 
133  // issue the produce<>
134  produces<TrackCandidateCollection>();
135  }

References detsToIgnore_, Exception, edm::ParameterSet::getParameter(), LogDebug, replaceWithInactiveHits_, stripAllInvalidHits_, tokenTracks, tokenTrajTrack, and totalTracks_.

Member Function Documentation

◆ makeCandidate()

TrackCandidate reco::modules::CosmicTrackSplitter::makeCandidate ( const reco::Track tk,
std::vector< TrackingRecHit * >::iterator  hitsBegin,
std::vector< TrackingRecHit * >::iterator  hitsEnd 
)
private

Definition at line 380 of file CosmicTrackSplitter.cc.

382  {
383  LogDebug("CosmicTrackSplitter") << "Making a candidate!";
384 
386  PTrajectoryStateOnDet state;
387  if (pdir == anyDirection)
388  throw cms::Exception("UnimplementedFeature") << "Cannot work with tracks that have 'anyDirecton' \n";
389  //if ( (pdir == alongMomentum) == ( tk.p() >= tk.outerP() ) ) {
390  if ((pdir == alongMomentum) == ((tk.outerPosition() - tk.innerPosition()).Dot(tk.momentum()) >= 0)) {
391  // use inner state
392  TrajectoryStateOnSurface originalTsosIn(
394  state = trajectoryStateTransform::persistentState(originalTsosIn, DetId(tk.innerDetId()));
395  } else {
396  // use outer state
397  TrajectoryStateOnSurface originalTsosOut(
399  state = trajectoryStateTransform::persistentState(originalTsosOut, DetId(tk.outerDetId()));
400  }
401 
403 
405  ownHits.reserve(hitsEnd - hitsBegin);
406  for (; hitsBegin != hitsEnd; ++hitsBegin) {
407  ownHits.push_back(*hitsBegin);
408  }
409 
410  TrackCandidate cand(ownHits, seed, state, tk.seedRef());
411 
412 #ifdef EDM_ML_DEBUG
413  LogDebug("CosmicTrackSplitter") << " dumping the hits now: ";
414  for (TrackCandidate::range hitR = cand.recHits(); hitR.first != hitR.second; ++hitR.first) {
415  auto const &tmp = *hitR.first;
416  LogTrace("CosmicTrackSplitter") << " hit detid = " << hitR.first->geographicalId().rawId()
417  << ", type = " << typeid(tmp).name();
418  }
419 #endif
420 
421  return cand;
422  }

References alongMomentum, anyDirection, Exception, reco::Track::innerDetId(), reco::Track::innerPosition(), trajectoryStateTransform::innerStateOnSurface(), LogDebug, LogTrace, reco::TrackBase::momentum(), Skims_PA_cff::name, reco::Track::outerDetId(), reco::Track::outerPosition(), trajectoryStateTransform::outerStateOnSurface(), trajectoryStateTransform::persistentState(), edm::OwnVector< T, P >::push_back(), edm::OwnVector< T, P >::reserve(), SurveyInfoScenario_cff::seed, reco::Track::seedDirection(), reco::Track::seedRef(), theGeometry, theMagField, and createJobs::tmp.

Referenced by produce().

◆ produce()

void reco::modules::CosmicTrackSplitter::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 137 of file CosmicTrackSplitter.cc.

137  {
138  LogDebug("CosmicTrackSplitter") << "IN THE SPLITTER!!!!!";
139 
140  // read with View, so we can read also a TrackRefVector
142  iEvent.getByToken(tokenTracks, tracks);
143 
144  // also need trajectories ...
145  // Retrieve trajectories and tracks from the event
146  // -> merely skip if collection is empty
148  iEvent.getByToken(tokenTrajTrack, m_TrajTracksMap);
149 
150  // read from EventSetup
153 
154  // prepare output collection
155  auto output = std::make_unique<TrackCandidateCollection>();
156  output->reserve(tracks->size());
157 
158  // working area and tools
159  std::vector<TrackingRecHit *> hits;
160 
161  // Form pairs of trajectories and tracks
162  //ConstTrajTrackPairCollection trajTracks;
163  LogDebug("CosmicTrackSplitter") << "size of map: " << m_TrajTracksMap->size();
164  int HITTOSPLITFROM = 0;
165  for (TrajTrackAssociationCollection::const_iterator iPair = m_TrajTracksMap->begin();
166  iPair != m_TrajTracksMap->end();
167  iPair++) {
168  const Trajectory *trajFromMap = &(*(*iPair).key);
169  const reco::Track *trackFromMap = &(*(*iPair).val);
170 
171  // loop to find the hit to split from (by taking dot product of pT and transverse position
172  std::vector<TrajectoryMeasurement> measurements = trajFromMap->measurements();
173  int totalNumberOfHits = measurements.size();
174  int numberOfHits = 0;
175  double previousDotProduct = 0;
176  for (trackingRecHit_iterator ith = trackFromMap->recHitsBegin(), edh = trackFromMap->recHitsEnd(); ith != edh;
177  ++ith) {
178  GlobalVector stateMomentum = measurements[numberOfHits].forwardPredictedState().globalMomentum();
179  GlobalPoint statePosition = measurements[numberOfHits].forwardPredictedState().globalPosition();
180  double dotProduct = stateMomentum.x() * statePosition.x() + stateMomentum.y() * statePosition.y();
181  if (dotProduct * previousDotProduct < 0) {
182  //found hit to split from...
183  HITTOSPLITFROM = numberOfHits;
184  }
185 
186  previousDotProduct = dotProduct;
187  numberOfHits++;
188  }
189  LogDebug("CosmicTrackSplitter") << "number of rechits: " << numberOfHits;
190 
191  // check if the trajectories and rechits are in reverse order...
192  trackingRecHit_iterator bIt = trackFromMap->recHitsBegin();
193  trackingRecHit_iterator fIt = trackFromMap->recHitsEnd() - 1;
194  const TrackingRecHit *bHit = (*bIt);
195  const TrackingRecHit *fHit = (*fIt);
196  // hit type valid = 0, missing = 1, inactive = 2, bad = 3
197  if (bHit->type() != 0 || bHit->isValid() != 1) {
198  //loop over hits forwards until first Valid hit is found
200  for (ihit = trackFromMap->recHitsBegin(); ihit != trackFromMap->recHitsEnd(); ++ihit) {
201  const TrackingRecHit *iHit = (*ihit);
202  if (iHit->type() == 0 && iHit->isValid() == 1) {
203  bHit = iHit;
204  break;
205  }
206  }
207  }
208  DetId bdetid = bHit->geographicalId();
209  GlobalPoint bPosHit = theGeometry->idToDetUnit(bdetid)->surface().toGlobal(bHit->localPosition());
210  if (fHit->type() != 0 || fHit->isValid() != 1) {
211  //loop over hits backwards until first Valid hit is found
213  for (ihitf = trackFromMap->recHitsEnd() - 1; ihitf != trackFromMap->recHitsBegin(); --ihitf) {
214  const TrackingRecHit *iHit = (*ihitf);
215  if (iHit->type() == 0 && iHit->isValid() == 1) {
216  fHit = iHit;
217  break;
218  }
219  }
220  }
221  DetId fdetid = fHit->geographicalId();
222  GlobalPoint fPosHit = theGeometry->idToDetUnit(fdetid)->surface().toGlobal(fHit->localPosition());
223  GlobalPoint bPosState = measurements[0].updatedState().globalPosition();
224  GlobalPoint fPosState = measurements[measurements.size() - 1].updatedState().globalPosition();
225  bool trajReversedFlag = false;
226  /*
227  DetId bdetid = bHit->geographicalId();
228  DetId fdetid = fHit->geographicalId();
229  GlobalPoint bPosHit = theGeometry->idToDetUnit( bdetid )->surface().toGlobal(bHit->localPosition());
230  GlobalPoint fPosHit = theGeometry->idToDetUnit( fdetid )->surface().toGlobal(fHit->localPosition());
231  GlobalPoint bPosState = measurements[0].updatedState().globalPosition();
232  GlobalPoint fPosState = measurements[measurements.size() - 1].updatedState().globalPosition();
233  bool trajReversedFlag = false;
234  */
235  if (((bPosHit - bPosState).mag() > (bPosHit - fPosState).mag()) &&
236  ((fPosHit - fPosState).mag() > (fPosHit - bPosState).mag())) {
237  trajReversedFlag = true;
238  }
239  if (trajReversedFlag) {
240  int temp = HITTOSPLITFROM;
241  HITTOSPLITFROM = totalNumberOfHits - temp;
242  }
243  }
244 
245  totalTracks_ = totalTracks_ + tracks->size();
246  // loop on tracks
247  for (std::vector<reco::Track>::const_iterator itt = tracks->begin(), edt = tracks->end(); itt != edt; ++itt) {
248  hits.clear(); // extra safety
249 
250  LogDebug("CosmicTrackSplitter") << "ntracks: " << tracks->size();
251 
252  // try to find distance of closest approach
253  GlobalPoint v(itt->vx(), itt->vy(), itt->vz());
254 
255  //checks on impact parameter
256  bool continueWithTrack = true;
257  if (fabs(v.z()) > dZcut_)
258  continueWithTrack = false;
259  if (v.perp() > dXYcut_)
260  continueWithTrack = false;
261  if (continueWithTrack == false)
262  return;
263 
264  // LOOP TWICE, ONCE FOR TOP AND ONCE FOR BOTTOM
265  for (int i = 0; i < 2; ++i) {
266  hits.clear(); // extra safety
267  LogDebug("CosmicTrackSplitter") << " loop on hits of track #" << (itt - tracks->begin());
268  int usedHitCtr = 0;
269  int hitCtr = 0;
270  for (trackingRecHit_iterator ith = itt->recHitsBegin(), edh = itt->recHitsEnd(); ith != edh; ++ith) {
271  //hitCtr++;
272  const TrackingRecHit *hit = (*ith); // ith is an iterator on edm::Ref to rechit
273  LogDebug("CosmicTrackSplitter") << " hit number " << (ith - itt->recHitsBegin());
274  // let's look at valid hits
275  if (hit->isValid()) {
276  LogDebug("CosmicTrackSplitter") << " valid, detid = " << hit->geographicalId().rawId();
277  DetId detid = hit->geographicalId();
278 
279  if (detid.det() == DetId::Tracker) { // check for tracker hits
280  LogDebug("CosmicTrackSplitter") << " valid, tracker ";
281  bool verdict = false;
282 
283  //trying to get the global position of the hit
284  //const GeomDetUnit* geomDetUnit = theGeometry->idToDetUnit( detid ).;
285 
286  const GlobalPoint pos = theGeometry->idToDetUnit(detid)->surface().toGlobal(hit->localPosition());
287  LogDebug("CosmicTrackSplitter") << "hit pos: " << pos << ", dca pos: " << v;
288 
289  // top half
290  if ((i == 0) && (hitCtr < HITTOSPLITFROM)) {
291  verdict = true;
292  LogDebug("CosmicTrackSplitter") << "tophalf";
293  }
294  // bottom half
295  if ((i == 1) && (hitCtr >= HITTOSPLITFROM)) {
296  verdict = true;
297  LogDebug("CosmicTrackSplitter") << "bottomhalf";
298  }
299 
300  // if the hit is good, check again at module level
301  if (verdict && std::binary_search(detsToIgnore_.begin(), detsToIgnore_.end(), detid.rawId())) {
302  verdict = false;
303  }
304 
305  // if hit is good check to make sure that we are keeping pixel hits
306  if (excludePixelHits_) {
307  // check for pixel hits
308  if ((detid.det() == DetId::Tracker) && ((detid.subdetId() == 1) || (detid.subdetId() == 2))) {
309  verdict = false;
310  }
311  }
312 
313  LogDebug("CosmicTrackSplitter")
314  << " verdict after module list: " << (verdict ? "ok" : "no");
315  if (verdict == true) {
316  // just copy the hit
317  hits.push_back(hit->clone());
318  usedHitCtr++;
319  } else {
320  // still, if replaceWithInactiveHits is true we have to put a new hit
322  hits.push_back(new InvalidTrackingRecHit(*hit->det(), TrackingRecHit::inactive));
323  }
324  }
325  } else { // just copy non tracker hits
326  hits.push_back(hit->clone());
327  }
328  } else {
329  if (!stripAllInvalidHits_) {
330  hits.push_back(hit->clone());
331  }
332  } // is valid hit
333  LogDebug("CosmicTrackSplitter") << " end of hit " << (ith - itt->recHitsBegin());
334  hitCtr++;
335  } // loop on hits
336  LogDebug("CosmicTrackSplitter") << " end of loop on hits of track #" << (itt - tracks->begin());
337 
338  std::vector<TrackingRecHit *>::iterator begin = hits.begin(), end = hits.end();
339 
340  LogDebug("CosmicTrackSplitter") << " selected " << hits.size() << " hits ";
341 
342  // strip invalid hits at the beginning
344  while ((begin != end) && ((*begin)->isValid() == false))
345  ++begin;
346  }
347 
348  LogDebug("CosmicTrackSplitter") << " after front stripping we have " << (end - begin) << " hits ";
349 
350  // strip invalid hits at the end
351  if (stripBackInvalidHits_ && (begin != end)) {
352  --end;
353  while ((begin != end) && ((*end)->isValid() == false))
354  --end;
355  ++end;
356  }
357 
358  LogDebug("CosmicTrackSplitter") << " after back stripping we have " << (end - begin) << " hits ";
359 
360  // if we still have some hits
361  //if ((end - begin) >= int(minimumHits_)) {
362  if (usedHitCtr >= int(minimumHits_)) {
363  output->push_back(makeCandidate(*itt, begin, end));
364  LogDebug("CosmicTrackSplitter") << "we made a candidate of " << hits.size() << " hits!";
365  }
366  // now delete the hits not used by the candidate
367  for (begin = hits.begin(), end = hits.end(); begin != end; ++begin) {
368  if (*begin)
369  delete *begin;
370  }
371  LogDebug("CosmicTrackSplitter")
372  << "loop: " << i << " has " << usedHitCtr << " active hits and " << hits.size() << " total hits...";
373  hits.clear();
374  } // loop twice for top and bottom
375  } // loop on tracks
376  LogDebug("CosmicTrackSplitter") << "totalTracks_ = " << totalTracks_;
377  iEvent.put(std::move(output));
378  }

References begin, edm::AssociationMap< Tag >::begin(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, DetId::det(), detsToIgnore_, dXYcut_, dZcut_, end, edm::AssociationMap< Tag >::end(), excludePixelHits_, TrackingRecHit::geographicalId(), reco::get(), edm::EventSetup::get(), hfClusterShapes_cfi::hits, mps_fire::i, TrackerGeometry::idToDetUnit(), iEvent, TrackingRecHit::inactive, TrackingRecHit::isValid(), TrackingRecHit::localPosition(), LogDebug, mag(), makeCandidate(), Trajectory::measurements(), minimumHits_, eostools::move(), convertSQLitetoXML_cfg::output, DetId::rawId(), reco::Track::recHitsBegin(), reco::Track::recHitsEnd(), replaceWithInactiveHits_, edm::AssociationMap< Tag >::size(), stripAllInvalidHits_, stripBackInvalidHits_, stripFrontInvalidHits_, DetId::subdetId(), GeomDet::surface(), groupFilesInBlocks::temp, theGeometry, theMagField, Surface::toGlobal(), tokenTracks, tokenTrajTrack, totalTracks_, DetId::Tracker, PDWG_EXOHSCP_cff::tracks, TrackingRecHit::type(), and findQualityFiles::v.

Member Data Documentation

◆ detsToIgnore_

std::vector<uint32_t> reco::modules::CosmicTrackSplitter::detsToIgnore_
private

Definition at line 96 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ dXYcut_

double reco::modules::CosmicTrackSplitter::dXYcut_
private

Definition at line 94 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ dZcut_

double reco::modules::CosmicTrackSplitter::dZcut_
private

Definition at line 93 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ excludePixelHits_

bool reco::modules::CosmicTrackSplitter::excludePixelHits_
private

Definition at line 91 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ minimumHits_

size_t reco::modules::CosmicTrackSplitter::minimumHits_
private

Definition at line 85 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ replaceWithInactiveHits_

bool reco::modules::CosmicTrackSplitter::replaceWithInactiveHits_
private

Definition at line 87 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ stripAllInvalidHits_

bool reco::modules::CosmicTrackSplitter::stripAllInvalidHits_
private

Definition at line 90 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ stripBackInvalidHits_

bool reco::modules::CosmicTrackSplitter::stripBackInvalidHits_
private

Definition at line 89 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ stripFrontInvalidHits_

bool reco::modules::CosmicTrackSplitter::stripFrontInvalidHits_
private

Definition at line 88 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ theGeometry

edm::ESHandle<TrackerGeometry> reco::modules::CosmicTrackSplitter::theGeometry
private

Definition at line 98 of file CosmicTrackSplitter.cc.

Referenced by makeCandidate(), and produce().

◆ theMagField

edm::ESHandle<MagneticField> reco::modules::CosmicTrackSplitter::theMagField
private

Definition at line 99 of file CosmicTrackSplitter.cc.

Referenced by makeCandidate(), and produce().

◆ tokenTracks

edm::EDGetTokenT<reco::TrackCollection> reco::modules::CosmicTrackSplitter::tokenTracks
private

Definition at line 82 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ tokenTrajTrack

edm::EDGetTokenT<TrajTrackAssociationCollection> reco::modules::CosmicTrackSplitter::tokenTrajTrack
private

Definition at line 83 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ totalTracks_

int reco::modules::CosmicTrackSplitter::totalTracks_
private

Definition at line 84 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

reco::Track::outerPosition
const math::XYZPoint & outerPosition() const
position of the outermost hit
Definition: Track.h:62
Vector3DBase
Definition: Vector3DBase.h:8
reco::modules::CosmicTrackSplitter::theGeometry
edm::ESHandle< TrackerGeometry > theGeometry
Definition: CosmicTrackSplitter.cc:98
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
reco::Track::outerDetId
unsigned int outerDetId() const
DetId of the detector on which surface the outermost state is located.
Definition: Track.h:79
mps_fire.i
i
Definition: mps_fire.py:355
anyDirection
Definition: PropagationDirection.h:4
reco::modules::CosmicTrackSplitter::excludePixelHits_
bool excludePixelHits_
Definition: CosmicTrackSplitter.cc:91
InvalidTrackingRecHit
Definition: InvalidTrackingRecHit.h:8
reco::modules::CosmicTrackSplitter::tokenTracks
edm::EDGetTokenT< reco::TrackCollection > tokenTracks
Definition: CosmicTrackSplitter.cc:82
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
reco::Track::recHitsBegin
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:88
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
pos
Definition: PixelAliasList.h:18
TrackingRecHit::type
Type type() const
Definition: TrackingRecHit.h:139
findQualityFiles.v
v
Definition: findQualityFiles.py:179
reco::modules::CosmicTrackSplitter::stripBackInvalidHits_
bool stripBackInvalidHits_
Definition: CosmicTrackSplitter.cc:89
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
edm::Handle
Definition: AssociativeIterator.h:50
groupFilesInBlocks.temp
list temp
Definition: groupFilesInBlocks.py:142
TrackingRecHit::localPosition
virtual LocalPoint localPosition() const =0
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
end
#define end
Definition: vmac.h:39
trajectoryStateTransform::outerStateOnSurface
TrajectoryStateOnSurface outerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:118
TrackerGeometry::idToDetUnit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
Definition: TrackerGeometry.cc:183
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
DetId
Definition: DetId.h:17
edm::AssociationMap::end
const_iterator end() const
last iterator over the map (read only)
Definition: AssociationMap.h:171
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
reco::modules::CosmicTrackSplitter::tokenTrajTrack
edm::EDGetTokenT< TrajTrackAssociationCollection > tokenTrajTrack
Definition: CosmicTrackSplitter.cc:83
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
reco::Track::recHitsEnd
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:91
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
reco::Track
Definition: Track.h:27
Point3DBase< float, GlobalTag >
edm::OwnVector::const_iterator
Definition: OwnVector.h:41
reco::modules::CosmicTrackSplitter::theMagField
edm::ESHandle< MagneticField > theMagField
Definition: CosmicTrackSplitter.cc:99
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
TrackCandidate::range
std::pair< const_iterator, const_iterator > range
Definition: TrackCandidate.h:27
edm::OwnVector::reserve
void reserve(size_t)
Definition: OwnVector.h:320
reco::modules::CosmicTrackSplitter::stripAllInvalidHits_
bool stripAllInvalidHits_
Definition: CosmicTrackSplitter.cc:90
edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator
friend struct const_iterator
Definition: AssociationMap.h:274
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:670
edm::AssociationMap::size
size_type size() const
map size
Definition: AssociationMap.h:162
DetId::Tracker
Definition: DetId.h:25
TrackCandidate
Definition: TrackCandidate.h:23
cand
Definition: decayParser.h:34
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
reco::Track::innerPosition
const math::XYZPoint & innerPosition() const
position of the innermost hit
Definition: Track.h:56
iEvent
int iEvent
Definition: GenABIO.cc:224
reco::modules::CosmicTrackSplitter::replaceWithInactiveHits_
bool replaceWithInactiveHits_
Definition: CosmicTrackSplitter.cc:87
reco::Track::innerDetId
unsigned int innerDetId() const
DetId of the detector on which surface the innermost state is located.
Definition: Track.h:82
Trajectory::measurements
DataContainer const & measurements() const
Definition: Trajectory.h:178
reco::get
T get(const Candidate &c)
Definition: component.h:60
TrackingRecHit
Definition: TrackingRecHit.h:21
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
reco::modules::CosmicTrackSplitter::stripFrontInvalidHits_
bool stripFrontInvalidHits_
Definition: CosmicTrackSplitter.cc:88
mag
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
Definition: Basic3DVectorLD.h:127
reco::modules::CosmicTrackSplitter::minimumHits_
size_t minimumHits_
Definition: CosmicTrackSplitter.cc:85
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
reco::modules::CosmicTrackSplitter::totalTracks_
int totalTracks_
Definition: CosmicTrackSplitter.cc:84
reco::Track::seedRef
const edm::RefToBase< TrajectorySeed > & seedRef() const
Definition: Track.h:155
Trajectory
Definition: Trajectory.h:38
reco::modules::CosmicTrackSplitter::dZcut_
double dZcut_
Definition: CosmicTrackSplitter.cc:93
Exception
Definition: hltDiff.cc:246
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
reco::modules::CosmicTrackSplitter::dXYcut_
double dXYcut_
Definition: CosmicTrackSplitter.cc:94
edm::AssociationMap::begin
const_iterator begin() const
first iterator over the map (read only)
Definition: AssociationMap.h:169
TrajectorySeed
Definition: TrajectorySeed.h:17
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
TrackingRecHit::inactive
Definition: TrackingRecHit.h:48
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
trajectoryStateTransform::innerStateOnSurface
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:110
reco::TrackBase::momentum
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:635
reco::modules::CosmicTrackSplitter::detsToIgnore_
std::vector< uint32_t > detsToIgnore_
Definition: CosmicTrackSplitter.cc:96
TrackingRecHit::isValid
bool isValid() const
Definition: TrackingRecHit.h:141
edm::InputTag
Definition: InputTag.h:15
begin
#define begin
Definition: vmac.h:32
alongMomentum
Definition: PropagationDirection.h:4
SurveyInfoScenario_cff.seed
seed
Definition: SurveyInfoScenario_cff.py:295
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::OwnVector< TrackingRecHit >
reco::modules::CosmicTrackSplitter::makeCandidate
TrackCandidate makeCandidate(const reco::Track &tk, std::vector< TrackingRecHit * >::iterator hitsBegin, std::vector< TrackingRecHit * >::iterator hitsEnd)
Definition: CosmicTrackSplitter.cc:380