CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
cms::CkfTrackCandidateMakerBase Class Reference

#include <CkfTrackCandidateMakerBase.h>

Inheritance diagram for cms::CkfTrackCandidateMakerBase:
cms::CkfDebugTrackCandidateMaker cms::CkfTrackCandidateMaker cms::CkfTrajectoryMaker

Public Member Functions

virtual void beginRunBase (edm::Run const &, edm::EventSetup const &es)
 
 CkfTrackCandidateMakerBase (const edm::ParameterSet &conf)
 
virtual void produceBase (edm::Event &e, const edm::EventSetup &es)
 
virtual ~CkfTrackCandidateMakerBase ()
 

Protected Member Functions

virtual void countSeedsDebugger ()
 
virtual void deleteAssocDebugger ()
 
virtual
TrajectorySeedCollection::const_iterator 
lastSeed (TrajectorySeedCollection const &theSeedColl)
 
virtual void printHitsDebugger (edm::Event &e)
 

Protected Attributes

bool cleanTrajectoryAfterInOut
 
edm::ParameterSet conf_
 
bool doSeedingRegionRebuilding
 
unsigned int maxSeedsBeforeCleaning_
 
bool reverseTrajectories
 
edm::ESHandle
< GeometricSearchTracker
theGeomSearchTracker
 
TransientInitialStateEstimatortheInitialState
 
edm::ESHandle< MagneticFieldtheMagField
 
unsigned int theMaxNSeeds
 
const NavigationSchooltheNavigationSchool
 
std::string theNavigationSchoolName
 
RedundantSeedCleanertheSeedCleaner
 
edm::InputTag theSeedLabel
 
bool theTrackCandidateOutput
 
const BaseCkfTrajectoryBuildertheTrajectoryBuilder
 
std::string theTrajectoryBuilderName
 
const TrajectoryCleanertheTrajectoryCleaner
 
std::string theTrajectoryCleanerName
 
bool theTrajectoryOutput
 
bool useSplitting
 

Private Member Functions

void setEventSetup (const edm::EventSetup &es)
 Initialize EventSetup objects at each event. More...
 

Detailed Description

Definition at line 28 of file CkfTrackCandidateMakerBase.h.

Constructor & Destructor Documentation

cms::CkfTrackCandidateMakerBase::CkfTrackCandidateMakerBase ( const edm::ParameterSet conf)
explicit

Definition at line 44 of file CkfTrackCandidateMakerBase.cc.

References conf_, edm::hlt::Exception, edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), edm::ParameterSet::getParameter(), maxSeedsBeforeCleaning_, AlCaHLTBitMon_QueryRunRegistry::string, theSeedCleaner, and theSeedLabel.

44  :
45 
46  conf_(conf),
48  theTrajectoryOutput(false),
49  useSplitting(conf.getParameter<bool>("useHitsSplitting")),
50  doSeedingRegionRebuilding(conf.getParameter<bool>("doSeedingRegionRebuilding")),
51  cleanTrajectoryAfterInOut(conf.getParameter<bool>("cleanTrajectoryAfterInOut")),
52  reverseTrajectories(conf.existsAs<bool>("reverseTrajectories") && conf.getParameter<bool>("reverseTrajectories")),
53  theMaxNSeeds(conf.getParameter<unsigned int>("maxNSeeds")),
54  theTrajectoryBuilderName(conf.getParameter<std::string>("TrajectoryBuilder")),
56  theTrajectoryCleanerName(conf.getParameter<std::string>("TrajectoryCleaner")),
58  theInitialState(0),
59  theNavigationSchoolName(conf.getParameter<std::string>("NavigationSchool")),
61  theSeedCleaner(0),
63  {
64  //produces<TrackCandidateCollection>();
65  // old configuration totally descoped.
66  // if (!conf.exists("src"))
67  // theSeedLabel = InputTag(conf_.getParameter<std::string>("SeedProducer"),conf_.getParameter<std::string>("SeedLabel"));
68  // else
70  if ( conf.exists("maxSeedsBeforeCleaning") )
71  maxSeedsBeforeCleaning_=conf.getParameter<unsigned int>("maxSeedsBeforeCleaning");
72 
73  std::string cleaner = conf_.getParameter<std::string>("RedundantSeedCleaner");
74  if (cleaner == "SeedCleanerByHitPosition") {
76  } else if (cleaner == "SeedCleanerBySharedInput") {
78  } else if (cleaner == "CachingSeedCleanerByHitPosition") {
80  } else if (cleaner == "CachingSeedCleanerBySharedInput") {
81  int numHitsForSeedCleaner = conf_.existsAs<int>("numHitsForSeedCleaner") ?
82  conf_.getParameter<int>("numHitsForSeedCleaner") : 4;
83  int onlyPixelHits = conf_.existsAs<bool>("onlyPixelHitsForSeedCleaner") ?
84  conf_.getParameter<bool>("onlyPixelHitsForSeedCleaner") : false;
85  theSeedCleaner = new CachingSeedCleanerBySharedInput(numHitsForSeedCleaner,onlyPixelHits);
86  } else if (cleaner == "none") {
87  theSeedCleaner = 0;
88  } else {
89  throw cms::Exception("RedundantSeedCleaner not found", cleaner);
90  }
91 
92 
93  }
T getParameter(std::string const &) const
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:187
const BaseCkfTrajectoryBuilder * theTrajectoryBuilder
bool exists(std::string const &parameterName) const
checks if a parameter exists
const TrajectoryCleaner * theTrajectoryCleaner
const NavigationSchool * theNavigationSchool
TransientInitialStateEstimator * theInitialState
cms::CkfTrackCandidateMakerBase::~CkfTrackCandidateMakerBase ( )
virtual

Definition at line 97 of file CkfTrackCandidateMakerBase.cc.

References theInitialState, and theSeedCleaner.

97  {
98  delete theInitialState;
99  if (theSeedCleaner) delete theSeedCleaner;
100  }
TransientInitialStateEstimator * theInitialState

Member Function Documentation

void cms::CkfTrackCandidateMakerBase::beginRunBase ( edm::Run const &  r,
edm::EventSetup const &  es 
)
virtual
virtual void cms::CkfTrackCandidateMakerBase::countSeedsDebugger ( )
inlineprotectedvirtual

Reimplemented in cms::CkfDebugTrackCandidateMaker.

Definition at line 74 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().

74 {;}
virtual void cms::CkfTrackCandidateMakerBase::deleteAssocDebugger ( )
inlineprotectedvirtual

Reimplemented in cms::CkfDebugTrackCandidateMaker.

Definition at line 75 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().

75 {;}
virtual TrajectorySeedCollection::const_iterator cms::CkfTrackCandidateMakerBase::lastSeed ( TrajectorySeedCollection const &  theSeedColl)
inlineprotectedvirtual

Definition at line 72 of file CkfTrackCandidateMakerBase.h.

72 {return theSeedColl.end();}
virtual void cms::CkfTrackCandidateMakerBase::printHitsDebugger ( edm::Event e)
inlineprotectedvirtual

Reimplemented in cms::CkfDebugTrackCandidateMaker.

Definition at line 73 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().

73 {;}
void cms::CkfTrackCandidateMakerBase::produceBase ( edm::Event e,
const edm::EventSetup es 
)
virtual

Definition at line 138 of file CkfTrackCandidateMakerBase.cc.

References RedundantSeedCleaner::add(), alongMomentum, BaseCkfTrajectoryBuilder::buildTrajectories(), TrajectoryCleaner::clean(), cleanTrajectoryAfterInOut, countSeedsDebugger(), deleteAssocDebugger(), RedundantSeedCleaner::done(), doSeedingRegionRebuilding, PrintoutHelper::dumpCandidates(), edm::EventSetup::get(), edm::Event::getByLabel(), RedundantSeedCleaner::good(), RedundantSeedCleaner::init(), TransientInitialStateEstimator::innerState(), edm::isNotFinite(), TrajectoryStateOnSurface::isValid(), Trajectory::isValid(), j, LogDebug, LogTrace, maxSeedsBeforeCleaning_, oppositeToMomentum, convertSQLitetoXML_cfg::output, trajectoryStateTransform::persistentState(), printHitsDebugger(), Trajectory::push(), edm::OwnVector< T, P >::push_back(), edm::Event::put(), DetId::rawId(), BaseCkfTrajectoryBuilder::rebuildTrajectories(), PrintoutHelper::regressionTest(), edm::OwnVector< T, P >::reserve(), reverseTrajectories, BaseCkfTrajectoryBuilder::setEvent(), setEventSetup(), Trajectory::setNLoops(), Trajectory::setSeedRef(), evf::utils::state, theInitialState, theMaxNSeeds, theNavigationSchool, theSeedCleaner, theSeedLabel, theTrackCandidateOutput, theTrajectoryBuilder, theTrajectoryCleaner, theTrajectoryOutput, patCandidatesForDimuonsSequences_cff::tracker, BaseCkfTrajectoryBuilder::unset(), and useSplitting.

Referenced by cms::CkfDebugTrackCandidateMaker::produce(), cms::CkfTrackCandidateMaker::produce(), and cms::CkfTrajectoryMaker::produce().

139  {
140  // getting objects from the EventSetup
141  setEventSetup( es );
142 
143  // set the correct navigation
145 
146  // propagator
147  edm::ESHandle<Propagator> thePropagator;
148  es.get<TrackingComponentsRecord>().get("AnyDirectionAnalyticalPropagator",
149  thePropagator);
150 
151  // method for Debugging
153 
154  // Step A: set Event for the TrajectoryBuilder
156 
157  // Step B: Retrieve seeds
158 
160  e.getByLabel(theSeedLabel, collseed);
161 
162  // Step C: Create empty output collection
163  std::auto_ptr<TrackCandidateCollection> output(new TrackCandidateCollection);
164  std::auto_ptr<std::vector<Trajectory> > outputT (new std::vector<Trajectory>());
165 
166  if ( (*collseed).size()>theMaxNSeeds ) {
167  LogError("TooManySeeds")<<"Exceeded maximum numeber of seeds! theMaxNSeeds="<<theMaxNSeeds<<" nSeed="<<(*collseed).size();
169  if (theTrajectoryOutput){e.put(outputT);}
171  return;
172  }
173 
174  // Step D: Invoke the building algorithm
175  if ((*collseed).size()>0){
176 
177  unsigned int lastCleanResult=0;
178  vector<Trajectory> rawResult;
179  rawResult.reserve(collseed->size() * 4);
180 
181  if (theSeedCleaner) theSeedCleaner->init( &rawResult );
182 
183  // method for debugging
185 
186  vector<Trajectory> theTmpTrajectories;
187 
188  // Loop over seeds
189  size_t collseed_size = collseed->size();
190  for (size_t j = 0; j < collseed_size; j++){
191 
192  // Check if seed hits already used by another track
193  if (theSeedCleaner && !theSeedCleaner->good( &((*collseed)[j])) ) {
194  LogDebug("CkfTrackCandidateMakerBase")<<" Seed cleaning kills seed "<<j;
195  continue;
196  }
197 
198  // Build trajectory from seed outwards
199  theTmpTrajectories.clear();
200  auto const & startTraj = theTrajectoryBuilder->buildTrajectories( (*collseed)[j], theTmpTrajectories, nullptr );
201 
202 
203  LogDebug("CkfPattern") << "======== In-out trajectory building found " << theTmpTrajectories.size()
204  << " trajectories from seed " << j << " ========"<<endl
205  <<PrintoutHelper::dumpCandidates(theTmpTrajectories);
206 
208 
209  // Select the best trajectory from this seed (declare others invalid)
210  theTrajectoryCleaner->clean(theTmpTrajectories);
211 
212  LogDebug("CkfPattern") << "======== In-out trajectory cleaning gave the following valid trajectories from seed "
213  << j << " ========"<<endl
214  << PrintoutHelper::dumpCandidates(theTmpTrajectories);
215  }
216 
217  // Optionally continue building trajectory back through
218  // seed and if possible further inwards.
219 
221  theTrajectoryBuilder->rebuildTrajectories(startTraj,(*collseed)[j],theTmpTrajectories);
222 
223  LogDebug("CkfPattern") << "======== Out-in trajectory building found " << theTmpTrajectories.size()
224  << " valid/invalid trajectories from seed " << j << " ========"<<endl
225  <<PrintoutHelper::dumpCandidates(theTmpTrajectories);
226  }
227 
228 
229  // Select the best trajectory from this seed (after seed region rebuilding, can be more than one)
230  theTrajectoryCleaner->clean(theTmpTrajectories);
231 
232  LogDebug("CkfPattern") << "======== Trajectory cleaning gave the following valid trajectories from seed "
233  << j << " ========"<<endl
234  <<PrintoutHelper::dumpCandidates(theTmpTrajectories);
235 
236  for(vector<Trajectory>::iterator it=theTmpTrajectories.begin();
237  it!=theTmpTrajectories.end(); it++){
238  if( it->isValid() ) {
239  it->setSeedRef(collseed->refAt(j));
240  // Store trajectory
241  rawResult.push_back(*it);
242  // Tell seed cleaner which hits this trajectory used.
243  //TO BE FIXED: this cut should be configurable via cfi file
244  if (theSeedCleaner && it->foundHits()>3) theSeedCleaner->add( & (*it) );
245  //if (theSeedCleaner ) theSeedCleaner->add( & (*it) );
246  }
247  }
248 
249  theTmpTrajectories.clear();
250 
251  LogDebug("CkfPattern") << "rawResult trajectories found so far = " << rawResult.size();
252 
253  if ( maxSeedsBeforeCleaning_ >0 && rawResult.size() > maxSeedsBeforeCleaning_+lastCleanResult) {
254  theTrajectoryCleaner->clean(rawResult);
255  rawResult.erase(std::remove_if(rawResult.begin(),rawResult.end(),
256  std::not1(std::mem_fun_ref(&Trajectory::isValid))),
257  rawResult.end());
258  lastCleanResult=rawResult.size();
259  }
260 
261  }
262  // end of loop over seeds
263 
265 
266  // Step E: Clean the results to avoid duplicate tracks
267  // Rejected ones just flagged as invalid.
268  theTrajectoryCleaner->clean(rawResult);
269 
270  LogDebug("CkfPattern") << "======== Final cleaning of entire event found " << rawResult.size()
271  << " valid/invalid trajectories ======="<<endl
272  <<PrintoutHelper::dumpCandidates(rawResult);
273 
274  LogDebug("CkfPattern") << "removing invalid trajectories.";
275 
276  vector<Trajectory> & unsmoothedResult(rawResult);
277  unsmoothedResult.erase(std::remove_if(unsmoothedResult.begin(),unsmoothedResult.end(),
278  std::not1(std::mem_fun_ref(&Trajectory::isValid))),
279  unsmoothedResult.end());
280 
281  // If requested, reverse the trajectories creating a new 1-hit seed on the last measurement of the track
282  if (reverseTrajectories) {
283  vector<Trajectory> reversed;
284  reversed.reserve(unsmoothedResult.size());
285  for (vector<Trajectory>::const_iterator it = unsmoothedResult.begin(), ed = unsmoothedResult.end(); it != ed; ++it) {
286  // reverse the trajectory only if it has valid hit on the last measurement (should happen)
287  if (it->lastMeasurement().updatedState().isValid() &&
288  it->lastMeasurement().recHit().get() != 0 &&
289  it->lastMeasurement().recHit()->isValid()) {
290  // I can't use reverse in place, because I want to change the seed
291  // 1) reverse propagation direction
292  PropagationDirection direction = it->direction();
293  if (direction == alongMomentum) direction = oppositeToMomentum;
294  else if (direction == oppositeToMomentum) direction = alongMomentum;
295  // 2) make a seed
296  TrajectoryStateOnSurface initState = it->lastMeasurement().updatedState();
297  DetId initDetId = it->lastMeasurement().recHit()->geographicalId();
300  hits.push_back(*it->lastMeasurement().recHit()->hit());
301  boost::shared_ptr<const TrajectorySeed> seed(new TrajectorySeed(state, hits, direction));
302  // 3) make a trajectory
303  Trajectory trajectory(seed, direction);
304  trajectory.setNLoops(it->nLoops());
305  trajectory.setSeedRef(it->seedRef());
306  // 4) push states in reversed order
307  const Trajectory::DataContainer &meas = it->measurements();
308  for (Trajectory::DataContainer::const_reverse_iterator itmeas = meas.rbegin(), endmeas = meas.rend(); itmeas != endmeas; ++itmeas) {
309  trajectory.push(*itmeas);
310  }
311  reversed.push_back(trajectory);
312  } else {
313  edm::LogWarning("CkfPattern_InvalidLastMeasurement") << "Last measurement of the trajectory is invalid, cannot reverse it";
314  reversed.push_back(*it);
315  }
316  }
317  unsmoothedResult.swap(reversed);
318  }
319 
320  // for (vector<Trajectory>::const_iterator itraw = rawResult.begin();
321  // itraw != rawResult.end(); itraw++) {
322  //if((*itraw).isValid()) unsmoothedResult.push_back( *itraw);
323  //}
324 
325  //analyseCleanedTrajectories(unsmoothedResult);
326 
328  // Step F: Convert to TrackCandidates
329  output->reserve(unsmoothedResult.size());
330  for (vector<Trajectory>::const_iterator it = unsmoothedResult.begin();
331  it != unsmoothedResult.end(); ++it) {
332 
334  //it->recHitsV(thits);
335  LogDebug("CkfPattern") << "retrieving "<<(useSplitting?"splitted":"un-splitted")<<" hits from trajectory";
336  it->recHitsV(thits,useSplitting);
338  recHits.reserve(thits.size());
339  LogDebug("CkfPattern") << "cloning hits into new collection.";
340  for (Trajectory::RecHitContainer::const_iterator hitIt = thits.begin();
341  hitIt != thits.end(); ++hitIt) {
342  recHits.push_back( (**hitIt).hit()->clone());
343  }
344 
345  LogDebug("CkfPattern") << "getting initial state.";
346  const bool doBackFit = !doSeedingRegionRebuilding && !reverseTrajectories;
347  std::pair<TrajectoryStateOnSurface, const GeomDet*> initState =
348  theInitialState->innerState( *it , doBackFit);
349 
350  // temporary protection againt invalid initial states
351  if (! initState.first.isValid() || initState.second == 0 || edm::isNotFinite(initState.first.globalPosition().x())) {
352  //cout << "invalid innerState, will not make TrackCandidate" << endl;
353  continue;
354  }
355 
357  if(useSplitting && (initState.second != thits.front()->det()) && thits.front()->det() ){
358  LogDebug("CkfPattern") << "propagating to hit front in case of splitting.";
359  TrajectoryStateOnSurface propagated = thePropagator->propagate(initState.first,thits.front()->det()->surface());
360  if (!propagated.isValid()) continue;
362  thits.front()->det()->geographicalId().rawId());
363  }
364  else state = trajectoryStateTransform::persistentState( initState.first,
365  initState.second->geographicalId().rawId());
366  LogDebug("CkfPattern") << "pushing a TrackCandidate.";
367  output->push_back(TrackCandidate(recHits,it->seed(),state,it->seedRef(),it->nLoops() ) );
368  }
369  }//output trackcandidates
370 
372  es.get<TrackerDigiGeometryRecord>().get(tracker);
373  LogTrace("CkfPattern|TrackingRegressionTest") << "========== CkfTrackCandidateMaker Info =========="
374  << "number of Seed: " << collseed->size()<<endl
375  <<PrintoutHelper::regressionTest(*tracker,unsmoothedResult);
376 
377 
378 
379  if (theTrajectoryOutput){ outputT->swap(unsmoothedResult);}
380 
381  }// end of ((*collseed).size()>0)
382 
383  // method for debugging
385 
386  // Step G: write output to file
388  if (theTrajectoryOutput){e.put(outputT);}
389 
390  //reset the MT.
392  }
#define LogDebug(id)
static std::string dumpCandidates(collection &candidates)
const BaseCkfTrajectoryBuilder * theTrajectoryBuilder
virtual void setEvent(const edm::Event &event) const
std::vector< TrackCandidate > TrackCandidateCollection
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
virtual void printHitsDebugger(edm::Event &e)
PropagationDirection
virtual void done()=0
Tells the cleaner that the seeds are finished, and so it can clear any cache it has.
virtual void add(const Trajectory *traj)=0
Informs the cleaner that a new trajectory has been made, in case the cleaner keeps a local collection...
virtual bool good(const TrajectorySeed *seed)=0
Returns true if the seed is not overlapping with another trajectory.
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
static std::string regressionTest(const TrackerGeometry &tracker, std::vector< Trajectory > &unsmoothedResult)
void push_back(D *&d)
Definition: OwnVector.h:273
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:42
bool isNotFinite(T x)
Definition: isFinite.h:10
const TrajectoryCleaner * theTrajectoryCleaner
const NavigationSchool * theNavigationSchool
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:94
virtual void rebuildTrajectories(TempTrajectory const &startingTraj, const TrajectorySeed &seed, TrajectoryContainer &result) const
virtual void clean(TrajectoryContainer &) const
int j
Definition: DBlmapReader.cc:9
virtual TempTrajectory buildTrajectories(const TrajectorySeed &seed, TrajectoryContainer &ret, const TrajectoryFilter *) const
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:361
#define LogTrace(id)
Definition: DetId.h:20
bool isValid() const
Definition: Trajectory.h:271
ConstRecHitContainer RecHitContainer
Definition: Trajectory.h:44
const T & get() const
Definition: EventSetup.h:55
TransientInitialStateEstimator * theInitialState
char state
Definition: procUtils.cc:75
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
std::pair< TrajectoryStateOnSurface, const GeomDet * > innerState(const Trajectory &traj, bool doBackFit=true) const
virtual void init(const std::vector< Trajectory > *vect)=0
Provides the cleaner a pointer to the vector where trajectories are stored, in case it does not want ...
void reserve(size_t)
Definition: OwnVector.h:267
void cms::CkfTrackCandidateMakerBase::setEventSetup ( const edm::EventSetup es)
private

Initialize EventSetup objects at each event.

Definition at line 107 of file CkfTrackCandidateMakerBase.cc.

References conf_, edm::EventSetup::get(), edm::ParameterSet::getParameter(), edm::ESHandle< class >::product(), TransientInitialStateEstimator::setEventSetup(), theGeomSearchTracker, theInitialState, theMagField, theNavigationSchool, theNavigationSchoolName, theTrajectoryBuilder, theTrajectoryBuilderName, theTrajectoryCleaner, and theTrajectoryCleanerName.

Referenced by produceBase().

107  {
108 
109  //services
112 
113  if (!theInitialState){
114  // constructor uses the EventSetup, it must be in the setEventSetup were it has a proper value.
115  // get nested parameter set for the TransientInitialStateEstimator
116  ParameterSet tise_params = conf_.getParameter<ParameterSet>("TransientInitialStateEstimatorParameters") ;
117  theInitialState = new TransientInitialStateEstimator( es,tise_params);
118  }
119 
121 
122  edm::ESHandle<TrajectoryCleaner> trajectoryCleanerH;
123  es.get<TrajectoryCleaner::Record>().get(theTrajectoryCleanerName, trajectoryCleanerH);
124  theTrajectoryCleaner= trajectoryCleanerH.product();
125 
126  edm::ESHandle<NavigationSchool> navigationSchoolH;
127  es.get<NavigationSchoolRecord>().get(theNavigationSchoolName, navigationSchoolH);
128  theNavigationSchool = navigationSchoolH.product();
129 
130  // set the TrajectoryBuilder
131  edm::ESHandle<TrajectoryBuilder> theTrajectoryBuilderHandle;
132  es.get<CkfComponentsRecord>().get(theTrajectoryBuilderName,theTrajectoryBuilderHandle);
133  theTrajectoryBuilder = dynamic_cast<const BaseCkfTrajectoryBuilder*>(theTrajectoryBuilderHandle.product());
134  assert(theTrajectoryBuilder);
135  }
T getParameter(std::string const &) const
void setEventSetup(const edm::EventSetup &es)
Call this at each event until this object will come from the EventSetup as it should.
const BaseCkfTrajectoryBuilder * theTrajectoryBuilder
edm::ESHandle< GeometricSearchTracker > theGeomSearchTracker
const TrajectoryCleaner * theTrajectoryCleaner
const NavigationSchool * theNavigationSchool
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
TransientInitialStateEstimator * theInitialState
edm::ESHandle< MagneticField > theMagField

Member Data Documentation

bool cms::CkfTrackCandidateMakerBase::cleanTrajectoryAfterInOut
protected

Definition at line 47 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().

edm::ParameterSet cms::CkfTrackCandidateMakerBase::conf_
protected

Definition at line 41 of file CkfTrackCandidateMakerBase.h.

Referenced by CkfTrackCandidateMakerBase(), and setEventSetup().

bool cms::CkfTrackCandidateMakerBase::doSeedingRegionRebuilding
protected

Definition at line 46 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().

unsigned int cms::CkfTrackCandidateMakerBase::maxSeedsBeforeCleaning_
protected

Definition at line 70 of file CkfTrackCandidateMakerBase.h.

Referenced by CkfTrackCandidateMakerBase(), and produceBase().

bool cms::CkfTrackCandidateMakerBase::reverseTrajectories
protected

Definition at line 48 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().

edm::ESHandle<GeometricSearchTracker> cms::CkfTrackCandidateMakerBase::theGeomSearchTracker
protected

Definition at line 61 of file CkfTrackCandidateMakerBase.h.

Referenced by setEventSetup().

TransientInitialStateEstimator* cms::CkfTrackCandidateMakerBase::theInitialState
protected
edm::ESHandle<MagneticField> cms::CkfTrackCandidateMakerBase::theMagField
protected

Definition at line 60 of file CkfTrackCandidateMakerBase.h.

Referenced by setEventSetup().

unsigned int cms::CkfTrackCandidateMakerBase::theMaxNSeeds
protected

Definition at line 50 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().

const NavigationSchool* cms::CkfTrackCandidateMakerBase::theNavigationSchool
protected

Definition at line 64 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase(), and setEventSetup().

std::string cms::CkfTrackCandidateMakerBase::theNavigationSchoolName
protected

Definition at line 63 of file CkfTrackCandidateMakerBase.h.

Referenced by setEventSetup().

RedundantSeedCleaner* cms::CkfTrackCandidateMakerBase::theSeedCleaner
protected
edm::InputTag cms::CkfTrackCandidateMakerBase::theSeedLabel
protected

Definition at line 68 of file CkfTrackCandidateMakerBase.h.

Referenced by CkfTrackCandidateMakerBase(), and produceBase().

bool cms::CkfTrackCandidateMakerBase::theTrackCandidateOutput
protected
const BaseCkfTrajectoryBuilder* cms::CkfTrackCandidateMakerBase::theTrajectoryBuilder
protected
std::string cms::CkfTrackCandidateMakerBase::theTrajectoryBuilderName
protected

Definition at line 52 of file CkfTrackCandidateMakerBase.h.

Referenced by setEventSetup().

const TrajectoryCleaner* cms::CkfTrackCandidateMakerBase::theTrajectoryCleaner
protected

Definition at line 56 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase(), and setEventSetup().

std::string cms::CkfTrackCandidateMakerBase::theTrajectoryCleanerName
protected

Definition at line 55 of file CkfTrackCandidateMakerBase.h.

Referenced by setEventSetup().

bool cms::CkfTrackCandidateMakerBase::theTrajectoryOutput
protected
bool cms::CkfTrackCandidateMakerBase::useSplitting
protected

Definition at line 45 of file CkfTrackCandidateMakerBase.h.

Referenced by produceBase().