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 hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () 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::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtokenGeometry
 
edm::ESGetToken< MagneticField, IdealMagneticFieldRecordtokenMagField
 
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 77 of file CosmicTrackSplitter.cc.

Constructor & Destructor Documentation

◆ CosmicTrackSplitter()

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

Definition at line 110 of file CosmicTrackSplitter.cc.

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

References detsToIgnore_, Exception, edm::ParameterSet::getParameter(), LogDebug, replaceWithInactiveHits_, jetUpdater_cfi::sort, stripAllInvalidHits_, tokenGeometry, tokenMagField, 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 385 of file CosmicTrackSplitter.cc.

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

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(), fileCollector::seed, reco::Track::seedDirection(), reco::Track::seedRef(), theGeometry, and theMagField.

Referenced by produce().

◆ produce()

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

Definition at line 142 of file CosmicTrackSplitter.cc.

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

References edm::AssociationMap< Tag >::begin(), edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, DetId::det(), detsToIgnore_, dXYcut_, dZcut_, edm::AssociationMap< Tag >::end(), mps_fire::end, excludePixelHits_, TrackingRecHit::geographicalId(), edm::EventSetup::getHandle(), 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(), tokenGeometry, tokenMagField, tokenTracks, tokenTrajTrack, totalTracks_, DetId::Tracker, tracks, TrackingRecHit::type(), and findQualityFiles::v.

Member Data Documentation

◆ detsToIgnore_

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

Definition at line 97 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ dXYcut_

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

Definition at line 95 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ dZcut_

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

Definition at line 94 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ excludePixelHits_

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

Definition at line 92 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ minimumHits_

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

Definition at line 86 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ replaceWithInactiveHits_

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

Definition at line 88 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ stripAllInvalidHits_

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

Definition at line 91 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ stripBackInvalidHits_

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

Definition at line 90 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ stripFrontInvalidHits_

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

Definition at line 89 of file CosmicTrackSplitter.cc.

Referenced by produce().

◆ theGeometry

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

Definition at line 99 of file CosmicTrackSplitter.cc.

Referenced by makeCandidate(), and produce().

◆ theMagField

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

Definition at line 100 of file CosmicTrackSplitter.cc.

Referenced by makeCandidate(), and produce().

◆ tokenGeometry

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> reco::modules::CosmicTrackSplitter::tokenGeometry
private

Definition at line 101 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ tokenMagField

edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> reco::modules::CosmicTrackSplitter::tokenMagField
private

Definition at line 102 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ tokenTracks

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

Definition at line 83 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ tokenTrajTrack

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

Definition at line 84 of file CosmicTrackSplitter.cc.

Referenced by CosmicTrackSplitter(), and produce().

◆ totalTracks_

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

Definition at line 85 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:99
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:428
anyDirection
Definition: PropagationDirection.h:4
reco::modules::CosmicTrackSplitter::excludePixelHits_
bool excludePixelHits_
Definition: CosmicTrackSplitter.cc:92
InvalidTrackingRecHit
Definition: InvalidTrackingRecHit.h:8
reco::modules::CosmicTrackSplitter::tokenTracks
edm::EDGetTokenT< reco::TrackCollection > tokenTracks
Definition: CosmicTrackSplitter.cc:83
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:72
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:90
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
reco::modules::CosmicTrackSplitter::tokenGeometry
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tokenGeometry
Definition: CosmicTrackSplitter.cc:101
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
fileCollector.seed
seed
Definition: fileCollector.py:127
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
reco::modules::CosmicTrackSplitter::tokenMagField
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > tokenMagField
Definition: CosmicTrackSplitter.cc:102
reco::modules::CosmicTrackSplitter::tokenTrajTrack
edm::EDGetTokenT< TrajTrackAssociationCollection > tokenTrajTrack
Definition: CosmicTrackSplitter.cc:84
reco::Track::recHitsEnd
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:91
mps_fire.end
end
Definition: mps_fire.py:242
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:100
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
edm::OwnVector::reserve
void reserve(size_t)
Definition: OwnVector.h:320
reco::modules::CosmicTrackSplitter::stripAllInvalidHits_
bool stripAllInvalidHits_
Definition: CosmicTrackSplitter.cc:91
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:233
edm::AssociationMap::size
size_type size() const
map size
Definition: AssociationMap.h:162
DetId::Tracker
Definition: DetId.h:25
TrackCandidate
Definition: TrackCandidate.h:24
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:159
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
cand
Definition: decayParser.h:32
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:88
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
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
TrackingRecHit
Definition: TrackingRecHit.h:21
reco::modules::CosmicTrackSplitter::stripFrontInvalidHits_
bool stripFrontInvalidHits_
Definition: CosmicTrackSplitter.cc:89
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:86
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:85
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
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:94
Exception
Definition: hltDiff.cc:245
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
reco::modules::CosmicTrackSplitter::dXYcut_
double dXYcut_
Definition: CosmicTrackSplitter.cc:95
edm::AssociationMap::begin
const_iterator begin() const
first iterator over the map (read only)
Definition: AssociationMap.h:169
TrajectorySeed
Definition: TrajectorySeed.h:18
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
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:234
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:664
reco::modules::CosmicTrackSplitter::detsToIgnore_
std::vector< uint32_t > detsToIgnore_
Definition: CosmicTrackSplitter.cc:97
TrackingRecHit::isValid
bool isValid() const
Definition: TrackingRecHit.h:141
edm::InputTag
Definition: InputTag.h:15
alongMomentum
Definition: PropagationDirection.h:4
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:385