CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
CkfTrajectoryBuilder Class Reference

#include <CkfTrajectoryBuilder.h>

Inheritance diagram for CkfTrajectoryBuilder:
BaseCkfTrajectoryBuilder TrajectoryBuilder CkfDebugTrajectoryBuilder MuonCkfTrajectoryBuilder

Public Types

typedef std::vector
< TempTrajectory
TempTrajectoryContainer
 
typedef std::vector< TrajectoryTrajectoryContainer
 
- Public Types inherited from BaseCkfTrajectoryBuilder
typedef std::vector
< TempTrajectory
TempTrajectoryContainer
 
typedef std::vector< TrajectoryTrajectoryContainer
 
typedef
TrajectoryContainer::iterator 
TrajectoryIterator
 
- Public Types inherited from TrajectoryBuilder
typedef std::vector< TrajectoryTrajectoryContainer
 
typedef
TrajectoryContainer::iterator 
TrajectoryIterator
 

Public Member Functions

TempTrajectory buildTrajectories (const TrajectorySeed &, TrajectoryContainer &ret, unsigned int &nCandPerSeed, const TrajectoryFilter *) const override
 
 CkfTrajectoryBuilder (const edm::ParameterSet &conf, edm::ConsumesCollector iC)
 
 CkfTrajectoryBuilder (const edm::ParameterSet &conf, edm::ConsumesCollector iC, std::unique_ptr< TrajectoryFilter > filter)
 
void rebuildTrajectories (TempTrajectory const &startingTraj, const TrajectorySeed &, TrajectoryContainer &result) const override
 
TrajectoryContainer trajectories (const TrajectorySeed &seed) const override
 trajectories building starting from a seed More...
 
void trajectories (const TrajectorySeed &seed, TrajectoryContainer &ret) const override
 trajectories building starting from a seed More...
 
 ~CkfTrajectoryBuilder () override
 
- Public Member Functions inherited from BaseCkfTrajectoryBuilder
 BaseCkfTrajectoryBuilder (const edm::ParameterSet &conf, edm::ConsumesCollector iC, std::unique_ptr< TrajectoryFilter > filter, std::unique_ptr< TrajectoryFilter > inOutFilter=nullptr)
 
 BaseCkfTrajectoryBuilder (const BaseCkfTrajectoryBuilder &)=delete
 
const
TransientTrackingRecHitBuilder
hitBuilder () const
 
BaseCkfTrajectoryBuilderoperator= (const BaseCkfTrajectoryBuilder &)=delete
 
virtual void setDebugger (CkfDebugger *dbg) const
 
void setEvent (const edm::Event &event) const override
 
void setEvent (const edm::Event &iEvent, const edm::EventSetup &iSetup, const MeasurementTrackerEvent *data)
 
void setNavigationSchool (NavigationSchool const *nv)
 
void unset () const override
 
 ~BaseCkfTrajectoryBuilder () override
 
- Public Member Functions inherited from TrajectoryBuilder
virtual void rebuildSeedingRegion (const TrajectorySeed &, TrajectoryContainer &result) const
 
virtual ~TrajectoryBuilder ()
 

Protected Member Functions

virtual void findCompatibleMeasurements (const TrajectorySeed &seed, const TempTrajectory &traj, std::vector< TrajectoryMeasurement > &result) const
 
unsigned int limitedCandidates (const TrajectorySeed &seed, TempTrajectory &startingTraj, TrajectoryContainer &result) const
 
unsigned int limitedCandidates (const std::shared_ptr< const TrajectorySeed > &sharedSeed, TempTrajectoryContainer &candidates, TrajectoryContainer &result) const
 
void setEvent_ (const edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
void updateTrajectory (TempTrajectory &traj, TM &&tm) const
 
- Protected Member Functions inherited from BaseCkfTrajectoryBuilder
void addToResult (std::shared_ptr< const TrajectorySeed > const &seed, TempTrajectory &traj, TrajectoryContainer &result, bool inOut=false) const
 
void addToResult (TempTrajectory const &traj, TempTrajectoryContainer &result, bool inOut=false) const
 
virtual bool analyzeMeasurementsDebugger (Trajectory &traj, const std::vector< TrajectoryMeasurement > &meas, const MeasurementTrackerEvent *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
 
virtual bool analyzeMeasurementsDebugger (TempTrajectory &traj, const std::vector< TrajectoryMeasurement > &meas, const MeasurementTrackerEvent *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
 
const PropagatorbackwardPropagator (const TrajectorySeed &seed) const
 
TempTrajectory createStartingTrajectory (const TrajectorySeed &seed) const
 
virtual void fillSeedHistoDebugger (std::vector< TrajectoryMeasurement >::iterator begin, std::vector< TrajectoryMeasurement >::iterator end) const
 
StateAndLayers findStateAndLayers (const TrajectorySeed &seed, const TempTrajectory &traj) const
 
const PropagatorforwardPropagator (const TrajectorySeed &seed) const
 
void moveToResult (TempTrajectory &&traj, TempTrajectoryContainer &result, bool inOut=false) const
 
bool qualityFilter (const TempTrajectory &traj, bool inOut=false) const
 
void setData (const MeasurementTrackerEvent *data)
 
bool toBeContinued (TempTrajectory &traj, bool inOut=false) const
 

Protected Attributes

bool theAlwaysUseInvalidHits
 
bool theIntermediateCleaning
 
float theLostHitPenalty
 
int theMaxCand
 set Event for the internal MeasurementTracker data member More...
 
- Protected Attributes inherited from BaseCkfTrajectoryBuilder
const
Chi2MeasurementEstimatorBase
theEstimator = nullptr
 
const MeasurementTrackerEventtheMeasurementTracker = nullptr
 
const NavigationSchooltheNavigationSchool = nullptr
 
const PropagatorthePropagatorAlong = nullptr
 
const PropagatorthePropagatorOpposite = nullptr
 
const
TransientTrackingRecHitBuilder
theTTRHBuilder = nullptr
 
const TrajectoryStateUpdatortheUpdator = nullptr
 

Additional Inherited Members

- Protected Types inherited from BaseCkfTrajectoryBuilder
typedef TrackingComponentsRecord Chi2MeasurementEstimatorRecord
 
typedef FreeTrajectoryState FTS
 
typedef std::pair< TSOS,
std::vector< const DetLayer * > > 
StateAndLayers
 
typedef TrajectoryMeasurement TM
 
typedef TrajectoryStateOnSurface TSOS
 
- Static Protected Member Functions inherited from BaseCkfTrajectoryBuilder
static std::unique_ptr
< TrajectoryFilter
createTrajectoryFilter (const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
 

Detailed Description

Definition at line 32 of file CkfTrajectoryBuilder.h.

Member Typedef Documentation

Definition at line 35 of file CkfTrajectoryBuilder.h.

Definition at line 34 of file CkfTrajectoryBuilder.h.

Constructor & Destructor Documentation

CkfTrajectoryBuilder::CkfTrajectoryBuilder ( const edm::ParameterSet conf,
edm::ConsumesCollector  iC 
)

Definition at line 29 of file CkfTrajectoryBuilder.cc.

30  : CkfTrajectoryBuilder(conf,
31  iC,
33  conf.getParameter<edm::ParameterSet>("trajectoryFilter"), iC)) {}
CkfTrajectoryBuilder(const edm::ParameterSet &conf, edm::ConsumesCollector iC)
static std::unique_ptr< TrajectoryFilter > createTrajectoryFilter(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
CkfTrajectoryBuilder::CkfTrajectoryBuilder ( const edm::ParameterSet conf,
edm::ConsumesCollector  iC,
std::unique_ptr< TrajectoryFilter filter 
)

Definition at line 35 of file CkfTrajectoryBuilder.cc.

References edm::ParameterSet::getParameter(), theAlwaysUseInvalidHits, theIntermediateCleaning, theLostHitPenalty, and theMaxCand.

39  theMaxCand = conf.getParameter<int>("maxCand");
40  theLostHitPenalty = conf.getParameter<double>("lostHitPenalty");
41  theIntermediateCleaning = conf.getParameter<bool>("intermediateCleaning");
42  theAlwaysUseInvalidHits = conf.getParameter<bool>("alwaysUseInvalidHits");
43  /*
44  theSharedSeedCheck = conf.getParameter<bool>("SharedSeedCheck");
45  std::stringstream ss;
46  ss<<"CkfTrajectoryBuilder_"<<conf.getParameter<std::string>("ComponentName")<<"_"<<this;
47  theUniqueName = ss.str();
48  LogDebug("CkfPattern")<<"my unique name is: "<<theUniqueName;
49  */
50 }
def move
Definition: eostools.py:511
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
BaseCkfTrajectoryBuilder(const edm::ParameterSet &conf, edm::ConsumesCollector iC, std::unique_ptr< TrajectoryFilter > filter, std::unique_ptr< TrajectoryFilter > inOutFilter=nullptr)
int theMaxCand
set Event for the internal MeasurementTracker data member
CkfTrajectoryBuilder::~CkfTrajectoryBuilder ( )
inlineoverride

Definition at line 42 of file CkfTrajectoryBuilder.h.

42 {}

Member Function Documentation

TempTrajectory CkfTrajectoryBuilder::buildTrajectories ( const TrajectorySeed seed,
TrajectoryContainer ret,
unsigned int &  nCandPerSeed,
const TrajectoryFilter  
) const
overridevirtual

limitedCandidates( startingTraj, regionalCondition, result); FIXME: restore regionalCondition

Reimplemented from BaseCkfTrajectoryBuilder.

Definition at line 146 of file CkfTrajectoryBuilder.cc.

References BaseCkfTrajectoryBuilder::createStartingTrajectory(), Exception, limitedCandidates(), and BaseCkfTrajectoryBuilder::theMeasurementTracker.

Referenced by trajectories().

149  {
150  if (theMeasurementTracker == nullptr) {
151  throw cms::Exception("LogicError")
152  << "Asking to create trajectories to an un-initialized CkfTrajectoryBuilder.\nYou have to call clone(const "
153  "MeasurementTrackerEvent *data) and then call trajectories on it instead.\n";
154  }
155 
156  TempTrajectory startingTraj = createStartingTrajectory(seed);
157 
160  nCandPerSeed = limitedCandidates(seed, startingTraj, result);
161 
162  return startingTraj;
163 
164  /*
165  //and remember what you just did
166  if (theSharedSeedCheck) rememberSeedAndTrajectories(seed,result);
167  */
168 
169  // analyseResult(result);
170 }
tuple result
Definition: mps_fire.py:311
const MeasurementTrackerEvent * theMeasurementTracker
unsigned int limitedCandidates(const TrajectorySeed &seed, TempTrajectory &startingTraj, TrajectoryContainer &result) const
TempTrajectory createStartingTrajectory(const TrajectorySeed &seed) const
void CkfTrajectoryBuilder::findCompatibleMeasurements ( const TrajectorySeed seed,
const TempTrajectory traj,
std::vector< TrajectoryMeasurement > &  result 
) const
protectedvirtual

Reimplemented in MuonCkfTrajectoryBuilder.

Definition at line 315 of file CkfTrajectoryBuilder.cc.

References PrintoutHelper::dumpMeasurements(), TempTrajectory::empty(), TransverseImpactPointExtrapolator::extrapolate(), BaseCkfTrajectoryBuilder::findStateAndLayers(), BaseCkfTrajectoryBuilder::forwardPropagator(), mps_fire::i, TrajectoryStateOnSurface::isValid(), TempTrajectory::lastLayer(), LogDebug, BaseCkfTrajectoryBuilder::theEstimator, BaseCkfTrajectoryBuilder::theMeasurementTracker, createJobs::tmp, and UNLIKELY.

Referenced by limitedCandidates().

317  {
318  int invalidHits = 0;
319  //Use findStateAndLayers which handles the hitless seed use case
320  std::pair<TSOS, std::vector<const DetLayer*> >&& stateAndLayers = findStateAndLayers(seed, traj);
321  if (stateAndLayers.second.empty())
322  return;
323 
324  auto layerBegin = stateAndLayers.second.begin();
325  auto layerEnd = stateAndLayers.second.end();
326  LogDebug("CkfPattern") << "looping on " << stateAndLayers.second.size() << " layers.";
327  const Propagator* fwdPropagator = forwardPropagator(seed);
328  for (auto il = layerBegin; il != layerEnd; il++) {
329  LogDebug("CkfPattern") << "looping on a layer in findCompatibleMeasurements.\n last layer: " << traj.lastLayer()
330  << " current layer: " << (*il);
331 
332  TSOS stateToUse = stateAndLayers.first;
333  //Added protection before asking for the lastLayer on the trajectory
334  if UNLIKELY (!traj.empty() && (*il) == traj.lastLayer()) {
335  LogDebug("CkfPattern") << " self propagating in findCompatibleMeasurements.\n from: \n" << stateToUse;
336  //self navigation case
337  // go to a middle point first
339  GlobalPoint center(0, 0, 0);
340  stateToUse = middle.extrapolate(stateToUse, center, *fwdPropagator);
341 
342  if (!stateToUse.isValid())
343  continue;
344  LogDebug("CkfPattern") << "to: " << stateToUse;
345  }
346 
347  LayerMeasurements layerMeasurements(theMeasurementTracker->measurementTracker(), *theMeasurementTracker);
348  std::vector<TrajectoryMeasurement>&& tmp =
349  layerMeasurements.measurements((**il), stateToUse, *fwdPropagator, *theEstimator);
350 
351  if (!tmp.empty()) {
352  if (result.empty())
353  result.swap(tmp);
354  else {
355  // keep one dummy TM at the end, skip the others
356  result.insert(
357  result.end() - invalidHits, std::make_move_iterator(tmp.begin()), std::make_move_iterator(tmp.end()));
358  }
359  invalidHits++;
360  }
361  }
362 
363  // sort the final result, keep dummy measurements at the end
364  if (result.size() > 1) {
365  std::sort(result.begin(), result.end() - invalidHits, TrajMeasLessEstim());
366  }
367 
368  LogDebug("CkfPattern") << "starting from:\n"
369  << "x: " << stateAndLayers.first.globalPosition() << "\n"
370  << "p: " << stateAndLayers.first.globalMomentum() << "\n"
372 
373 #ifdef DEBUG_INVALID
374  bool afterInvalid = false;
375  for (vector<TM>::const_iterator i = result.begin(); i != result.end(); i++) {
376  if (!i->recHit().isValid())
377  afterInvalid = true;
378  if (afterInvalid && i->recHit().isValid()) {
379  edm::LogError("CkfPattern") << "CkfTrajectoryBuilder error: valid hit after invalid!";
380  }
381  }
382 #endif
383 
384  //analyseMeasurements( result, traj);
385 }
bool empty() const
True if trajectory has no measurements.
const Propagator * forwardPropagator(const TrajectorySeed &seed) const
Log< level::Error, false > LogError
static std::string dumpMeasurements(const std::vector< TrajectoryMeasurement > &v)
tuple result
Definition: mps_fire.py:311
StateAndLayers findStateAndLayers(const TrajectorySeed &seed, const TempTrajectory &traj) const
const MeasurementTrackerEvent * theMeasurementTracker
TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState &fts, const GlobalPoint &vtx) const
extrapolation with default (=geometrical) propagator
#define UNLIKELY(x)
Definition: Likely.h:21
const DetLayer * lastLayer() const
Redundant method, returns the layer of lastMeasurement() .
tmp
align.sh
Definition: createJobs.py:716
const Chi2MeasurementEstimatorBase * theEstimator
#define LogDebug(id)
unsigned int CkfTrajectoryBuilder::limitedCandidates ( const TrajectorySeed seed,
TempTrajectory startingTraj,
TrajectoryContainer result 
) const
protected

Definition at line 172 of file CkfTrajectoryBuilder.cc.

References HLT_FULL_cff::candidates.

Referenced by buildTrajectories().

174  {
176  candidates.push_back(startingTraj);
177  std::shared_ptr<const TrajectorySeed> sharedSeed(new TrajectorySeed(seed));
178  return limitedCandidates(sharedSeed, candidates, result);
179 }
std::vector< TempTrajectory > TempTrajectoryContainer
tuple result
Definition: mps_fire.py:311
unsigned int limitedCandidates(const TrajectorySeed &seed, TempTrajectory &startingTraj, TrajectoryContainer &result) const
unsigned int CkfTrajectoryBuilder::limitedCandidates ( const std::shared_ptr< const TrajectorySeed > &  sharedSeed,
TempTrajectoryContainer candidates,
TrajectoryContainer result 
) const
protected

Definition at line 181 of file CkfTrajectoryBuilder.cc.

References a, BaseCkfTrajectoryBuilder::addToResult(), BaseCkfTrajectoryBuilder::analyzeMeasurementsDebugger(), b, TempTrajectory::chiSquared(), IntermediateTrajectoryCleaner::clean(), PrintoutHelper::dumpCandidates(), findCompatibleMeasurements(), BaseCkfTrajectoryBuilder::forwardPropagator(), dqmdumpme::last, LogDebug, TempTrajectory::lostHits(), eostools::move(), theAlwaysUseInvalidHits, BaseCkfTrajectoryBuilder::theEstimator, theIntermediateCleaning, theLostHitPenalty, theMaxCand, BaseCkfTrajectoryBuilder::theMeasurementTracker, BaseCkfTrajectoryBuilder::theTTRHBuilder, BaseCkfTrajectoryBuilder::toBeContinued(), and updateTrajectory().

183  {
184  unsigned int nIter = 1;
185  unsigned int nCands = 0; // ignore startingTraj
186  unsigned int prevNewCandSize = 0;
187  TempTrajectoryContainer newCand; // = TrajectoryContainer();
188  newCand.reserve(2 * theMaxCand);
189 
190  auto trajCandLess = [&](TempTrajectory const& a, TempTrajectory const& b) {
191  return (a.chiSquared() + a.lostHits() * theLostHitPenalty) < (b.chiSquared() + b.lostHits() * theLostHitPenalty);
192  };
193 
194  while (!candidates.empty()) {
195  newCand.clear();
196  for (auto traj = candidates.begin(); traj != candidates.end(); traj++) {
197  std::vector<TM> meas;
198  findCompatibleMeasurements(*sharedSeed, *traj, meas);
199 
200  // --- method for debugging
203  return nCands;
204  // ---
205 
206  if (meas.empty()) {
207  addToResult(sharedSeed, *traj, result);
208  } else {
209  std::vector<TM>::const_iterator last;
211  last = meas.end();
212  else {
213  if (meas.front().recHit()->isValid()) {
214  last = find_if(meas.begin(), meas.end(), [](auto const& meas) { return !meas.recHit()->isValid(); });
215  } else
216  last = meas.end();
217  }
218 
219  for (auto itm = meas.begin(); itm != last; itm++) {
220  TempTrajectory newTraj = *traj;
221  updateTrajectory(newTraj, std::move(*itm));
222 
223  if (toBeContinued(newTraj)) {
224  newCand.push_back(std::move(newTraj));
225  std::push_heap(newCand.begin(), newCand.end(), trajCandLess);
226  } else {
227  addToResult(sharedSeed, newTraj, result);
229  }
230  }
231  }
232 
233  // account only new candidates, i.e.
234  // - 1 candidate -> 1 candidate, don't increase count
235  // - 1 candidate -> 2 candidates, increase count by 1
236  nCands += newCand.size() - prevNewCandSize;
237  prevNewCandSize = newCand.size();
238 
239  /*
240  auto trajVal = [&](TempTrajectory const & a) {
241  return a.chiSquared() + a.lostHits()*theLostHitPenalty;
242  };
243 
244  // safe (stable?) logig: always sort, kill exceeding only if worse than last to keep
245  // if ((int)newCand.size() > theMaxCand) std::cout << "TrajVal " << theMaxCand << ' ' << newCand.size() << ' ' << trajVal(newCand.front());
246  int toCut = int(newCand.size()) - int(theMaxCand);
247  if (toCut>0) {
248  // move largest "toCut" to the end
249  for (int i=0; i<toCut; ++i)
250  std::pop_heap(newCand.begin(),newCand.end()-i,trajCandLess);
251  auto fval = trajVal(newCand.front());
252  // remove till equal to highest to keep
253  for (int i=0; i<toCut; ++i) {
254  if (fval==trajVal(newCand.back())) break;
255  newCand.pop_back();
256  }
257  //assert((int)newCand.size() >= theMaxCand);
258  //std::cout << "; " << newCand.size() << ' ' << trajVal(newCand.front()) << " " << trajVal(newCand.back());
259 
260  // std::make_heap(newCand.begin(),newCand.end(),trajCandLess);
261  // push_heap again the one left
262  for (auto iter = newCand.begin()+theMaxCand+1; iter<=newCand.end(); ++iter )
263  std::push_heap(newCand.begin(),iter,trajCandLess);
264 
265  // std::cout << "; " << newCand.size() << ' ' << trajVal(newCand.front()) << " " << trajVal(newCand.back()) << std::endl;
266  }
267 
268  */
269 
270  // intermedeate login: always sort, kill all exceeding
271  while ((int)newCand.size() > theMaxCand) {
272  std::pop_heap(newCand.begin(), newCand.end(), trajCandLess);
273  // if ((int)newCand.size() == theMaxCand+1) std::cout << " " << trajVal(newCand.front()) << " " << trajVal(newCand.back()) << std::endl;
274  newCand.pop_back();
275  }
276 
277  /*
278  // original logic: sort only if > theMaxCand, kill all exceeding
279  if ((int)newCand.size() > theMaxCand) {
280  std::sort( newCand.begin(), newCand.end(), TrajCandLess<TempTrajectory>(theLostHitPenalty));
281  // std::partial_sort( newCand.begin(), newCand.begin()+theMaxCand, newCand.end(), TrajCandLess<TempTrajectory>(theLostHitPenalty));
282  std::cout << "TrajVal " << theMaxCand << ' ' << newCand.size() << ' '
283  << trajVal(newCand.back()) << ' ' << trajVal(newCand[theMaxCand-1]) << ' ' << trajVal(newCand[theMaxCand]) << std::endl;
284  newCand.resize(theMaxCand);
285  }
286  */
287 
288  } // end loop on candidates
289 
290  std::sort_heap(newCand.begin(), newCand.end(), trajCandLess);
293 
294  candidates.swap(newCand);
295 
296  LogDebug("CkfPattern") << result.size() << " candidates after " << nIter++ << " CKF iteration: \n"
297  << PrintoutHelper::dumpCandidates(result) << "\n " << candidates.size()
298  << " running candidates are: \n"
300  }
301  return nCands;
302 }
static std::string dumpCandidates(collection &candidates)
static void clean(TempTrajectoryContainer &tracks)
const Propagator * forwardPropagator(const TrajectorySeed &seed) const
virtual bool analyzeMeasurementsDebugger(Trajectory &traj, const std::vector< TrajectoryMeasurement > &meas, const MeasurementTrackerEvent *theMeasurementTracker, const Propagator *theForwardPropagator, const Chi2MeasurementEstimatorBase *theEstimator, const TransientTrackingRecHitBuilder *theTTRHBuilder) const
void addToResult(std::shared_ptr< const TrajectorySeed > const &seed, TempTrajectory &traj, TrajectoryContainer &result, bool inOut=false) const
std::vector< TempTrajectory > TempTrajectoryContainer
tuple result
Definition: mps_fire.py:311
const TransientTrackingRecHitBuilder * theTTRHBuilder
def move
Definition: eostools.py:511
const MeasurementTrackerEvent * theMeasurementTracker
float chiSquared() const
Value of the raw Chi2 of the trajectory, not normalised to the N.D.F.
double b
Definition: hdecay.h:118
bool toBeContinued(TempTrajectory &traj, bool inOut=false) const
double a
Definition: hdecay.h:119
virtual void findCompatibleMeasurements(const TrajectorySeed &seed, const TempTrajectory &traj, std::vector< TrajectoryMeasurement > &result) const
tuple last
Definition: dqmdumpme.py:56
void updateTrajectory(TempTrajectory &traj, TM &&tm) const
int theMaxCand
set Event for the internal MeasurementTracker data member
const Chi2MeasurementEstimatorBase * theEstimator
int lostHits() const
#define LogDebug(id)
void CkfTrajectoryBuilder::rebuildTrajectories ( TempTrajectory const &  startingTraj,
const TrajectorySeed ,
TrajectoryContainer result 
) const
inlineoverridevirtual

Reimplemented from BaseCkfTrajectoryBuilder.

Definition at line 55 of file CkfTrajectoryBuilder.h.

57  {}
void CkfTrajectoryBuilder::setEvent_ ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

Implements BaseCkfTrajectoryBuilder.

Definition at line 59 of file CkfTrajectoryBuilder.cc.

Referenced by MuonCkfTrajectoryBuilder::setEvent_().

59 {}
CkfTrajectoryBuilder::TrajectoryContainer CkfTrajectoryBuilder::trajectories ( const TrajectorySeed seed) const
overridevirtual

trajectories building starting from a seed

Implements TrajectoryBuilder.

Definition at line 61 of file CkfTrajectoryBuilder.cc.

References mps_fire::result.

61  {
63  result.reserve(5);
64  trajectories(seed, result);
65  return result;
66 }
std::vector< Trajectory > TrajectoryContainer
TrajectoryContainer trajectories(const TrajectorySeed &seed) const override
trajectories building starting from a seed
tuple result
Definition: mps_fire.py:311
void CkfTrajectoryBuilder::trajectories ( const TrajectorySeed seed,
CkfTrajectoryBuilder::TrajectoryContainer result 
) const
overridevirtual

trajectories building starting from a seed

Reimplemented from TrajectoryBuilder.

Definition at line 126 of file CkfTrajectoryBuilder.cc.

References buildTrajectories(), and createJobs::tmp.

127  {
128  // analyseSeed( seed);
129  /*
130  if (theSharedSeedCheck){
131  TempTrajectoryContainer candidates;
132  if (seedAlreadyUsed(seed,candidates))
133  {
134  //start with those candidates already made before
135  limitedCandidates(candidates,result);
136  //and quit
137  return;
138  }
139  }
140  */
141 
142  unsigned int tmp;
143  buildTrajectories(seed, result, tmp, nullptr);
144 }
tuple result
Definition: mps_fire.py:311
TempTrajectory buildTrajectories(const TrajectorySeed &, TrajectoryContainer &ret, unsigned int &nCandPerSeed, const TrajectoryFilter *) const override
tmp
align.sh
Definition: createJobs.py:716
void CkfTrajectoryBuilder::updateTrajectory ( TempTrajectory traj,
TM &&  tm 
) const
protected

Definition at line 304 of file CkfTrajectoryBuilder.cc.

References TempTrajectory::emplace(), eostools::move(), BaseCkfTrajectoryBuilder::theUpdator, and TrajectoryStateUpdator::update().

Referenced by limitedCandidates().

304  {
305  auto&& predictedState = tm.predictedState();
306  auto&& hit = tm.recHit();
307  if (hit->isValid()) {
308  auto&& upState = theUpdator->update(predictedState, *hit);
309  traj.emplace(predictedState, std::move(upState), hit, tm.estimate(), tm.layer());
310  } else {
311  traj.emplace(predictedState, hit, 0, tm.layer());
312  }
313 }
const TrajectoryStateUpdator * theUpdator
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
def move
Definition: eostools.py:511
void emplace(Args &&...args)

Member Data Documentation

bool CkfTrajectoryBuilder::theAlwaysUseInvalidHits
protected

Definition at line 68 of file CkfTrajectoryBuilder.h.

Referenced by CkfTrajectoryBuilder(), and limitedCandidates().

bool CkfTrajectoryBuilder::theIntermediateCleaning
protected

Tells whether an intermediary cleaning stage should take place during TB.

Definition at line 66 of file CkfTrajectoryBuilder.h.

Referenced by CkfTrajectoryBuilder(), and limitedCandidates().

float CkfTrajectoryBuilder::theLostHitPenalty
protected

Chi**2 Penalty for each lost hit.

Definition at line 65 of file CkfTrajectoryBuilder.h.

Referenced by CkfTrajectoryBuilder(), and limitedCandidates().

int CkfTrajectoryBuilder::theMaxCand
protected

set Event for the internal MeasurementTracker data member

    Maximum number of trajectory candidates 

to propagate to the next layer.

Definition at line 63 of file CkfTrajectoryBuilder.h.

Referenced by CkfTrajectoryBuilder(), and limitedCandidates().