CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
TrackTransformer Class Referencefinal

#include <TrackTransformer.h>

Inheritance diagram for TrackTransformer:
TrackTransformerBase

Public Member Functions

TransientTrackingRecHit::ConstRecHitContainer getTransientRecHits (const reco::TransientTrack &track) const
 
const MagneticFieldmagneticField () const
 the magnetic field More...
 
std::unique_ptr< TrajectoryFitter > const & refitter () const
 the refitter used to refit the reco::Track More...
 
void setServices (const edm::EventSetup &) override
 set the services needed by the TrackTransformer More...
 
std::unique_ptr< TrajectorySmoother > const & smoother () const
 the smoother used to smooth the trajectory which came from the refitting step More...
 
edm::ESHandle< GlobalTrackingGeometrytrackingGeometry () const
 the tracking geometry More...
 
 TrackTransformer (const edm::ParameterSet &)
 Constructor (for modules not yet migrated to ES-consumes) More...
 
 TrackTransformer (const edm::ParameterSet &, edm::ConsumesCollector &)
 Constructor (for modules migrated to ES-consumes) More...
 
 TrackTransformer (const edm::ParameterSet &parameterSet, edm::ConsumesCollector &&iC)
 
std::vector< Trajectorytransform (const reco::Track &) const override
 Convert a reco::Track into Trajectory. More...
 
std::vector< Trajectorytransform (const reco::TrackRef &) const
 Convert a reco::TrackRef into Trajectory. More...
 
std::vector< Trajectorytransform (const reco::TransientTrack &, TransientTrackingRecHit::ConstRecHitContainer &) const
 Convert a reco::TrackRef into Trajectory, refit with a new set of hits. More...
 
 ~TrackTransformer () override
 Destructor. More...
 
- Public Member Functions inherited from TrackTransformerBase
 TrackTransformerBase ()
 Constructor. More...
 
virtual ~TrackTransformerBase ()
 Destructor. More...
 

Static Public Member Functions

static void fillPSetDescription (edm::ParameterSetDescription &descriptions, bool doPredictionsOnly=false, const std::string &fitter="KFFitterForRefitInsideOut", const std::string &smoother="KFSmootherForRefitInsideOut", const std::string &propagator="SmartPropagatorAnyRK", const std::string &refitDirection="alongMomentum", bool refitRPCHits=true, const std::string &trackerRecHitBuilder="WithTrackAngle", const std::string &muonRecHitBuilder="MuonRecHitBuilder", const std::string &mtdRecHitBuilder="MTDRecHitBuilder")
 fillDescriptions More...
 

Private Member Functions

RefitDirection::GeometricalDirection checkRecHitsOrdering (TransientTrackingRecHit::ConstRecHitContainer const &) const
 
edm::ESHandle< Propagator > const & propagator () const
 

Private Attributes

TkClonerImpl hitCloner
 
unsigned long long theCacheId_TRH = 0
 
const bool theDoPredictionsOnly
 
std::unique_ptr< TrajectoryFittertheFitter
 
const std::string theFitterName
 
edm::ESGetToken< TrajectoryFitter, TrajectoryFitterRecordtheFitterToken
 
edm::ESHandle< MagneticFieldtheMGField
 
edm::ESGetToken< MagneticField, IdealMagneticFieldRecordtheMGFieldToken
 
bool theMtdAvailable
 
edm::ESHandle< TransientTrackingRecHitBuildertheMTDRecHitBuilder
 
const std::string theMTDRecHitBuilderName
 
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecordtheMTDRecHitBuilderToken
 
edm::ESHandle< TransientTrackingRecHitBuildertheMuonRecHitBuilder
 
const std::string theMuonRecHitBuilderName
 
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecordtheMuonRecHitBuilderToken
 
edm::ESHandle< PropagatorthePropagator
 
const std::string thePropagatorName
 
edm::ESGetToken< Propagator, TrackingComponentsRecordthePropagatorToken
 
const RefitDirection theRefitDirection
 
const bool theRPCInTheFit
 
std::unique_ptr< TrajectorySmoothertheSmoother
 
const std::string theSmootherName
 
edm::ESGetToken< TrajectorySmoother, TrajectoryFitterRecordtheSmootherToken
 
const TransientTrackingRecHitBuildertheTrackerRecHitBuilder
 
const std::string theTrackerRecHitBuilderName
 
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecordtheTrackerRecHitBuilderToken
 
edm::ESHandle< GlobalTrackingGeometrytheTrackingGeometry
 
edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecordtheTrackingGeometryToken
 

Detailed Description

This class takes a reco::Track and refits the rechits inside it. The final result is a Trajectory refitted and smoothed. To make the refitting (and the smoothing) the usual KF tools are used.

CAVEAT: till now (it will be changed in the near future) the class stores the pointers to the services, therefore EACH event the setServices(const edm::EventSetup&) method MUST be called in the code in which the TrackTransformer is used.

Author
R. Bellan - INFN Torino ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

This class takes a reco::Track and refits the rechits inside it. The final result is a Trajectory refitted and smoothed. To make the refitting (and the smoothing) the usual KF tools are used.

CAVEAT: till now (it will be changed in the near future) the class stores the pointers to the services, therefore EACH event the setServices(const edm::EventSetup&) method MUST be called in the code in which the TrackTransformer is used.

Rec hits are ordered in rank of increasing |z| assuing muons are coming from the top of the detector.

$Date: 2009/01/15 \original author R. Bellan - CERN ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch modified for zed ordering by N. Kypreos - UF nicho.nosp@m.las..nosp@m.theod.nosp@m.ore..nosp@m.kypre.nosp@m.os@c.nosp@m.ern.c.nosp@m.h

This class takes a reco::Track and refits the rechits inside it. The final result is a Trajectory refitted and smoothed. To make the refitting (and the smoothing) the usual KF tools are used.

CAVEAT: till now (it will be changed in the near future) the class stores the pointers to the services, therefore EACH event the setServices(const edm::EventSetup&) method MUST be called in the code in which the TrackTransformer is used.

Author
R. Bellan - CERN ricca.nosp@m.rdo..nosp@m.bella.nosp@m.n@ce.nosp@m.rn.ch

Definition at line 46 of file TrackTransformer.h.

Constructor & Destructor Documentation

◆ TrackTransformer() [1/3]

TrackTransformer::TrackTransformer ( const edm::ParameterSet parameterSet)
explicit

Constructor (for modules not yet migrated to ES-consumes)

Constructor.

Definition at line 32 of file TrackTransformer.cc.

33  : theRPCInTheFit(parameterSet.getParameter<bool>("RefitRPCHits")),
34  theDoPredictionsOnly(parameterSet.getParameter<bool>("DoPredictionsOnly")),
35  theRefitDirection(parameterSet.getParameter<string>("RefitDirection")),
36  theFitterName(parameterSet.getParameter<string>("Fitter")),
37  theSmootherName(parameterSet.getParameter<string>("Smoother")),
38  thePropagatorName(parameterSet.getParameter<string>("Propagator")),
39  theTrackerRecHitBuilderName(parameterSet.getParameter<string>("TrackerRecHitBuilder")),
40  theMuonRecHitBuilderName(parameterSet.getParameter<string>("MuonRecHitBuilder")),
41  theMTDRecHitBuilderName(parameterSet.getParameter<string>("MTDRecHitBuilder")) {}

◆ TrackTransformer() [2/3]

TrackTransformer::TrackTransformer ( const edm::ParameterSet parameterSet,
edm::ConsumesCollector iC 
)
explicit

◆ TrackTransformer() [3/3]

TrackTransformer::TrackTransformer ( const edm::ParameterSet parameterSet,
edm::ConsumesCollector &&  iC 
)
inlineexplicit

Definition at line 53 of file TrackTransformer.h.

◆ ~TrackTransformer()

TrackTransformer::~TrackTransformer ( )
override

Destructor.

Definition at line 56 of file TrackTransformer.cc.

56 {}

Member Function Documentation

◆ checkRecHitsOrdering()

RefitDirection::GeometricalDirection TrackTransformer::checkRecHitsOrdering ( TransientTrackingRecHit::ConstRecHitContainer const &  recHits) const
private

Definition at line 163 of file TrackTransformer.cc.

164  {
165  if (!recHits.empty()) {
166  GlobalPoint first = trackingGeometry()->idToDet(recHits.front()->geographicalId())->position();
167  GlobalPoint last = trackingGeometry()->idToDet(recHits.back()->geographicalId())->position();
168 
169  // maybe perp2?
170  auto rFirst = first.mag2();
171  auto rLast = last.mag2();
172  if (rFirst < rLast)
174  if (rFirst > rLast)
176  }
177  LogDebug("Reco|TrackingTools|TrackTransformer") << "Impossible to determine the rechits order" << endl;
179 }

References first, GlobalTrackingGeometry::idToDet(), RefitDirection::insideOut, dqmdumpme::last, LogDebug, RefitDirection::outsideIn, position, FastTrackerRecHitMaskProducer_cfi::recHits, trackingGeometry(), and RefitDirection::undetermined.

Referenced by transform().

◆ fillPSetDescription()

void TrackTransformer::fillPSetDescription ( edm::ParameterSetDescription descriptions,
bool  doPredictionsOnly = false,
const std::string &  fitter = "KFFitterForRefitInsideOut",
const std::string &  smoother = "KFSmootherForRefitInsideOut",
const std::string &  propagator = "SmartPropagatorAnyRK",
const std::string &  refitDirection = "alongMomentum",
bool  refitRPCHits = true,
const std::string &  trackerRecHitBuilder = "WithTrackAngle",
const std::string &  muonRecHitBuilder = "MuonRecHitBuilder",
const std::string &  mtdRecHitBuilder = "MTDRecHitBuilder" 
)
static

fillDescriptions

Definition at line 58 of file TrackTransformer.cc.

67  {
68  desc.add<bool>("DoPredictionsOnly", doPredictionsOnly);
69  desc.add<std::string>("Fitter", fitter);
70  desc.add<std::string>("Smoother", smoother);
71  desc.add<std::string>("Propagator", propagator);
72  desc.add<std::string>("RefitDirection", refitDirection);
73  desc.add<bool>("RefitRPCHits", refitRPCHits);
74  desc.add<std::string>("TrackerRecHitBuilder", trackerRecHitBuilder);
75  desc.add<std::string>("MuonRecHitBuilder", muonRecHitBuilder);
76  desc.add<std::string>("MTDRecHitBuilder", mtdRecHitBuilder);
77 }

References submitPVResolutionJobs::desc, propagator(), smoother(), and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by L3MuonProducer::fillDescriptions(), and TrackExtenderWithMTDT< TrackCollection >::fillDescriptions().

◆ getTransientRecHits()

TransientTrackingRecHit::ConstRecHitContainer TrackTransformer::getTransientRecHits ( const reco::TransientTrack track) const

Definition at line 135 of file TrackTransformer.cc.

136  {
138  auto tkbuilder = static_cast<TkTransientTrackingRecHitBuilder const*>(theTrackerRecHitBuilder);
139 
140  for (auto hit = track.recHitsBegin(); hit != track.recHitsEnd(); ++hit) {
141  if ((*hit)->isValid()) {
142  if ((*hit)->geographicalId().det() == DetId::Tracker) {
143  result.emplace_back((**hit).cloneForFit(*tkbuilder->geometry()->idToDet((**hit).geographicalId())));
144  } else if ((*hit)->geographicalId().det() == DetId::Muon) {
145  if ((*hit)->geographicalId().subdetId() == 3 && !theRPCInTheFit) {
146  LogTrace("Reco|TrackingTools|TrackTransformer") << "RPC Rec Hit discarged";
147  continue;
148  }
149  result.push_back(theMuonRecHitBuilder->build(&**hit));
150  } else if ((*hit)->geographicalId().det() == DetId::Forward && (*hit)->geographicalId().subdetId() == FastTime) {
151  if (theMtdAvailable)
152  result.push_back(theMTDRecHitBuilder->build(&**hit));
153  else
154  throw cms::Exception("TrackTransformer") << "MTD hit encountered but MTD not available!";
155  }
156  }
157  }
158 
159  return result;
160 }

References TransientTrackingRecHitBuilder::build(), Exception, FastTime, DetId::Forward, LogTrace, DetId::Muon, mps_fire::result, theMtdAvailable, theMTDRecHitBuilder, theMuonRecHitBuilder, theRPCInTheFit, theTrackerRecHitBuilder, HLT_FULL_cff::track, and DetId::Tracker.

Referenced by transform().

◆ magneticField()

const MagneticField* TrackTransformer::magneticField ( ) const
inline

the magnetic field

Definition at line 83 of file TrackTransformer.h.

83 { return &*theMGField; }

References theMGField.

Referenced by transform().

◆ propagator()

edm::ESHandle<Propagator> const& TrackTransformer::propagator ( ) const
inlineprivate

Definition at line 124 of file TrackTransformer.h.

124 { return thePropagator; }

References thePropagator.

Referenced by fillPSetDescription(), and transform().

◆ refitter()

std::unique_ptr<TrajectoryFitter> const& TrackTransformer::refitter ( ) const
inline

the refitter used to refit the reco::Track

Definition at line 92 of file TrackTransformer.h.

92 { return theFitter; }

References theFitter.

◆ setServices()

void TrackTransformer::setServices ( const edm::EventSetup setup)
overridevirtual

set the services needed by the TrackTransformer

Implements TrackTransformerBase.

Definition at line 79 of file TrackTransformer.cc.

79  {
80  const std::string metname = "Reco|TrackingTools|TrackTransformer";
81 
83  theFitter = setup.getData(theFitterToken).clone();
84  theSmoother.reset(setup.getData(theSmootherToken).clone());
85 
87 
88  // Global Tracking Geometry
90 
91  // Magfield Field
92  theMGField = setup.getHandle(theMGFieldToken);
93  } else {
98  theFitter = aFitter->clone();
99  theSmoother.reset(aSmoother->clone());
100 
102 
103  // Global Tracking Geometry
105 
106  // Magfield Field
108  }
109 
110  // Transient Rechit Builders
111  unsigned long long newCacheId_TRH = setup.get<TransientRecHitRecord>().cacheIdentifier();
112  if (newCacheId_TRH != theCacheId_TRH) {
113  theCacheId_TRH = newCacheId_TRH;
114  LogTrace(metname) << "TransientRecHitRecord changed!";
119  } else {
120  edm::ESHandle<TransientTrackingRecHitBuilder> aTrackerRecHitBuilder;
121  setup.get<TransientRecHitRecord>().get(theTrackerRecHitBuilderName, aTrackerRecHitBuilder);
122  theTrackerRecHitBuilder = aTrackerRecHitBuilder.product();
125  }
127  hitCloner = static_cast<TkTransientTrackingRecHitBuilder const*>(theTrackerRecHitBuilder)->cloner();
128  }
129  theFitter->setHitCloner(&hitCloner);
130  theSmoother->setHitCloner(&hitCloner);
131 }

References TrajectorySmoother::clone(), TrajectoryFitter::clone(), get, hitCloner, edm::ESGetToken< ESProduct, ESRecord >::isInitialized(), edm::ESHandleBase::isValid(), LogTrace, metname, edm::ESHandle< T >::product(), singleTopDQM_cfi::setup, AlCaHLTBitMon_QueryRunRegistry::string, theCacheId_TRH, theFitter, theFitterName, theFitterToken, theMGField, theMGFieldToken, theMtdAvailable, theMTDRecHitBuilder, theMTDRecHitBuilderName, theMTDRecHitBuilderToken, theMuonRecHitBuilder, theMuonRecHitBuilderName, theMuonRecHitBuilderToken, thePropagator, thePropagatorName, thePropagatorToken, theSmoother, theSmootherName, theSmootherToken, theTrackerRecHitBuilder, theTrackerRecHitBuilderName, theTrackerRecHitBuilderToken, theTrackingGeometry, and theTrackingGeometryToken.

Referenced by TrackingRecoMaterialAnalyser::analyze(), MuonKinkFinder::init(), MuonReSeeder::produce(), TrackerToMuonPropagator::produce(), CSCOverlapsAlignmentAlgorithm::run(), and GlobalTrajectoryBuilderBase::setEvent().

◆ smoother()

std::unique_ptr<TrajectorySmoother> const& TrackTransformer::smoother ( ) const
inline

the smoother used to smooth the trajectory which came from the refitting step

Definition at line 95 of file TrackTransformer.h.

95 { return theSmoother; }

References theSmoother.

Referenced by fillPSetDescription().

◆ trackingGeometry()

edm::ESHandle<GlobalTrackingGeometry> TrackTransformer::trackingGeometry ( ) const
inline

the tracking geometry

Definition at line 86 of file TrackTransformer.h.

86 { return theTrackingGeometry; }

References theTrackingGeometry.

Referenced by checkRecHitsOrdering(), and transform().

◆ transform() [1/3]

vector< Trajectory > TrackTransformer::transform ( const reco::Track newTrack) const
overridevirtual

◆ transform() [2/3]

vector< Trajectory > TrackTransformer::transform ( const reco::TrackRef track) const

Convert a reco::TrackRef into Trajectory.

Definition at line 133 of file TrackTransformer.cc.

133 { return transform(*track); }

References HLT_FULL_cff::track, and transform().

◆ transform() [3/3]

vector< Trajectory > TrackTransformer::transform ( const reco::TransientTrack track,
TransientTrackingRecHit::ConstRecHitContainer recHitsForReFit 
) const

Convert a reco::TrackRef into Trajectory, refit with a new set of hits.

Convert Tracks into Trajectories with a given set of hits.

Definition at line 192 of file TrackTransformer.cc.

193  {
194  const std::string metname = "Reco|TrackingTools|TrackTransformer";
195 
196  if (recHitsForReFit.size() < 2)
197  return vector<Trajectory>();
198 
199  // 8 cases are foreseen:
200  // [RH = rec hit order, P = momentum dir, FD = fit direction. IO/OI = inside-out/outside-in, AM/OM = along momentum/opposite to momentum]
201  // (1) RH IO | P IO | FD AM ---> Start from IN
202  // (2) RH IO | P IO | FD OM ---> Reverse RH and start from OUT
203  // (3) RH IO | P OI | FD AM ---> Reverse RH and start from IN
204  // (4) RH IO | P OI | FD OM ---> Start from OUT
205  // (5) RH OI | P IO | FD AM ---> Reverse RH and start from IN
206  // (6) RH OI | P IO | FD OM ---> Start from OUT
207  // (7) RH OI | P OI | FD AM ---> Start from IN
208  // (8) RH OI | P OI | FD OM ---> Reverse RH and start from OUT
209  //
210  // *** Rules: ***
211  // -A- If RH-FD agree (IO-AM,OI-OM) do not reverse the RH
212  // -B- If FD along momentum start from innermost state, otherwise use outermost
213 
214  // Other special cases can be handled:
215  // (1 bis) RH IO | P IO | GFD IO => FD AM ---> Start from IN
216  // (2 bis) RH IO | P IO | GFD OI => FD OM ---> Reverse RH and start from OUT
217  // (3 bis) RH IO | P OI | GFD OI => FD AM ---> Reverse RH and start from OUT
218  // (4 bis) RH IO | P OI | GFD IO => FD OM ---> Start from IN
219  // (5 bis) RH OI | P IO | GFD IO => FD AM ---> Reverse RH and start from IN
220  // (6 bis) RH OI | P IO | GFD OI => FD OM ---> Start from OUT
221  // (7 bis) RH OI | P OI | GFD OI => FD AM ---> Start from OUT
222  // (8 bis) RH OI | P OI | GFD IO => FD OM ---> Reverse RH and start from IN
223  //
224  // *** Additional rule: ***
225  // -A0- If P and GFD agree, then FD is AM otherwise is OM
226  // -A00- rechit must be ordered as GFD in order to handle the case of cosmics
227  // -B0- The starting state is decided by GFD
228 
229  // Determine the RH order
231  checkRecHitsOrdering(recHitsForReFit); // FIXME change nome of the *type* --> RecHit order!
232  LogTrace(metname) << "RH order (0-insideOut, 1-outsideIn): " << recHitsOrder;
233 
235 
236  // Apply rule -A0-
237  if (propagationDirection == anyDirection) {
238  GlobalVector momentum = track.innermostMeasurementState().globalMomentum();
239  GlobalVector position = track.innermostMeasurementState().globalPosition() - GlobalPoint(0, 0, 0);
240  RefitDirection::GeometricalDirection p = (momentum.x() * position.x() > 0 || momentum.y() * position.y() > 0)
243 
245  LogTrace(metname) << "P (0-insideOut, 1-outsideIn): " << p;
246  LogTrace(metname) << "FD (0-OM, 1-AM, 2-ANY): " << propagationDirection;
247  }
248  // -A0-
249 
250  // Apply rule -A-
252  if ((recHitsOrder == RefitDirection::insideOut && propagationDirection == oppositeToMomentum) ||
253  (recHitsOrder == RefitDirection::outsideIn && propagationDirection == alongMomentum))
254  reverse(recHitsForReFit.begin(), recHitsForReFit.end());
255  }
256  // -A-
257  // Apply rule -A00-
258  else {
259  // reorder the rechit as defined in theRefitDirection.geometricalDirection();
260  if (theRefitDirection.geometricalDirection() != recHitsOrder)
261  reverse(recHitsForReFit.begin(), recHitsForReFit.end());
262  }
263  // -A00-
264 
265  // Apply rule -B-
266  TrajectoryStateOnSurface firstTSOS = track.innermostMeasurementState();
267  unsigned int innerId = track.track().innerDetId();
269  if (propagationDirection == oppositeToMomentum) {
270  innerId = track.track().outerDetId();
271  firstTSOS = track.outermostMeasurementState();
272  }
273  } else { // if(theRefitDirection.propagationDirection() == anyDirection)
274  // Apply rule -B0-
276  innerId = track.track().outerDetId();
277  firstTSOS = track.outermostMeasurementState();
278  }
279  // -B0-
280  }
281  // -B-
282 
283  if (!firstTSOS.isValid()) {
284  LogTrace(metname) << "Error wrong initial state!" << endl;
285  return vector<Trajectory>();
286  }
287 
288  TrajectorySeed seed({}, {}, propagationDirection);
289 
290  if (recHitsForReFit.front()->geographicalId() != DetId(innerId)) {
291  LogTrace(metname) << "Propagation occured" << endl;
292  firstTSOS = propagator()->propagate(firstTSOS, recHitsForReFit.front()->det()->surface());
293  if (!firstTSOS.isValid()) {
294  LogTrace(metname) << "Propagation error!" << endl;
295  return vector<Trajectory>();
296  }
297  }
298 
299  if (theDoPredictionsOnly) {
300  Trajectory aTraj(seed, propagationDirection);
301  TrajectoryStateOnSurface predTSOS = firstTSOS;
302  for (auto const& hit : recHitsForReFit) {
303  predTSOS = propagator()->propagate(predTSOS, hit->det()->surface());
304  if (predTSOS.isValid())
305  aTraj.push(TrajectoryMeasurement(predTSOS, hit));
306  }
307  return vector<Trajectory>(1, aTraj);
308  }
309 
310  auto const& trajectories = theFitter->fit(seed, recHitsForReFit, firstTSOS);
311 
312  if (trajectories.empty()) {
313  LogTrace(metname) << "No Track refitted!" << endl;
314  return trajectories;
315  }
316 
317  auto const& trajectoryBW = trajectories.front();
318 
319  auto const& trajectoriesSM = theSmoother->trajectories(trajectoryBW);
320 
321  if (trajectoriesSM.empty()) {
322  LogTrace(metname) << "No Track smoothed!" << endl;
323  }
324 
325  return trajectoriesSM;
326 }

References alongMomentum, anyDirection, checkRecHitsOrdering(), RefitDirection::geometricalDirection(), RefitDirection::insideOut, TrajectoryStateOnSurface::isValid(), LogTrace, metname, oppositeToMomentum, RefitDirection::outsideIn, AlCaHLTBitMon_ParallelJobs::p, position, Propagator::propagate(), RefitDirection::propagationDirection(), propagator(), Trajectory::push(), groupFilesInBlocks::reverse, fileCollector::seed, AlCaHLTBitMon_QueryRunRegistry::string, TrajectoryStateOnSurface::surface(), theDoPredictionsOnly, theFitter, theRefitDirection, theSmoother, HLT_FULL_cff::track, FastTrackerRecHitMaskProducer_cfi::trajectories, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

Member Data Documentation

◆ hitCloner

TkClonerImpl TrackTransformer::hitCloner
private

Definition at line 130 of file TrackTransformer.h.

Referenced by setServices().

◆ theCacheId_TRH

unsigned long long TrackTransformer::theCacheId_TRH = 0
private

Definition at line 102 of file TrackTransformer.h.

Referenced by setServices().

◆ theDoPredictionsOnly

const bool TrackTransformer::theDoPredictionsOnly
private

Definition at line 106 of file TrackTransformer.h.

Referenced by transform().

◆ theFitter

std::unique_ptr<TrajectoryFitter> TrackTransformer::theFitter
private

Definition at line 116 of file TrackTransformer.h.

Referenced by refitter(), setServices(), and transform().

◆ theFitterName

const std::string TrackTransformer::theFitterName
private

Definition at line 114 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theFitterToken

edm::ESGetToken<TrajectoryFitter, TrajectoryFitterRecord> TrackTransformer::theFitterToken
private

Definition at line 115 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theMGField

edm::ESHandle<MagneticField> TrackTransformer::theMGField
private

Definition at line 112 of file TrackTransformer.h.

Referenced by magneticField(), and setServices().

◆ theMGFieldToken

edm::ESGetToken<MagneticField, IdealMagneticFieldRecord> TrackTransformer::theMGFieldToken
private

Definition at line 110 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theMtdAvailable

bool TrackTransformer::theMtdAvailable
private

Definition at line 138 of file TrackTransformer.h.

Referenced by getTransientRecHits(), and setServices().

◆ theMTDRecHitBuilder

edm::ESHandle<TransientTrackingRecHitBuilder> TrackTransformer::theMTDRecHitBuilder
private

Definition at line 139 of file TrackTransformer.h.

Referenced by getTransientRecHits(), and setServices().

◆ theMTDRecHitBuilderName

const std::string TrackTransformer::theMTDRecHitBuilderName
private

Definition at line 136 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theMTDRecHitBuilderToken

edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> TrackTransformer::theMTDRecHitBuilderToken
private

Definition at line 137 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theMuonRecHitBuilder

edm::ESHandle<TransientTrackingRecHitBuilder> TrackTransformer::theMuonRecHitBuilder
private

Definition at line 134 of file TrackTransformer.h.

Referenced by getTransientRecHits(), and setServices().

◆ theMuonRecHitBuilderName

const std::string TrackTransformer::theMuonRecHitBuilderName
private

Definition at line 132 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theMuonRecHitBuilderToken

edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> TrackTransformer::theMuonRecHitBuilderToken
private

Definition at line 133 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ thePropagator

edm::ESHandle<Propagator> TrackTransformer::thePropagator
private

Definition at line 125 of file TrackTransformer.h.

Referenced by propagator(), and setServices().

◆ thePropagatorName

const std::string TrackTransformer::thePropagatorName
private

Definition at line 122 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ thePropagatorToken

edm::ESGetToken<Propagator, TrackingComponentsRecord> TrackTransformer::thePropagatorToken
private

Definition at line 123 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theRefitDirection

const RefitDirection TrackTransformer::theRefitDirection
private

Definition at line 107 of file TrackTransformer.h.

Referenced by transform().

◆ theRPCInTheFit

const bool TrackTransformer::theRPCInTheFit
private

Definition at line 104 of file TrackTransformer.h.

Referenced by getTransientRecHits().

◆ theSmoother

std::unique_ptr<TrajectorySmoother> TrackTransformer::theSmoother
private

Definition at line 120 of file TrackTransformer.h.

Referenced by setServices(), smoother(), and transform().

◆ theSmootherName

const std::string TrackTransformer::theSmootherName
private

Definition at line 118 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theSmootherToken

edm::ESGetToken<TrajectorySmoother, TrajectoryFitterRecord> TrackTransformer::theSmootherToken
private

Definition at line 119 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theTrackerRecHitBuilder

const TransientTrackingRecHitBuilder* TrackTransformer::theTrackerRecHitBuilder
private

Definition at line 129 of file TrackTransformer.h.

Referenced by getTransientRecHits(), and setServices().

◆ theTrackerRecHitBuilderName

const std::string TrackTransformer::theTrackerRecHitBuilderName
private

Definition at line 127 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theTrackerRecHitBuilderToken

edm::ESGetToken<TransientTrackingRecHitBuilder, TransientRecHitRecord> TrackTransformer::theTrackerRecHitBuilderToken
private

Definition at line 128 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

◆ theTrackingGeometry

edm::ESHandle<GlobalTrackingGeometry> TrackTransformer::theTrackingGeometry
private

Definition at line 111 of file TrackTransformer.h.

Referenced by setServices(), and trackingGeometry().

◆ theTrackingGeometryToken

edm::ESGetToken<GlobalTrackingGeometry, GlobalTrackingGeometryRecord> TrackTransformer::theTrackingGeometryToken
private

Definition at line 109 of file TrackTransformer.h.

Referenced by setServices(), and TrackTransformer().

Vector3DBase
Definition: Vector3DBase.h:8
TrackTransformer::theTrackerRecHitBuilderName
const std::string theTrackerRecHitBuilderName
Definition: TrackTransformer.h:127
TrajectorySmoother::clone
virtual TrajectorySmoother * clone() const =0
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
TrackTransformer::theTrackingGeometryToken
edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > theTrackingGeometryToken
Definition: TrackTransformer.h:109
anyDirection
Definition: PropagationDirection.h:4
edm::ESInputTag
Definition: ESInputTag.h:87
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
TrackTransformer::theSmoother
std::unique_ptr< TrajectorySmoother > theSmoother
Definition: TrackTransformer.h:120
TrackTransformer::theRPCInTheFit
const bool theRPCInTheFit
Definition: TrackTransformer.h:104
TrackTransformer::theSmootherToken
edm::ESGetToken< TrajectorySmoother, TrajectoryFitterRecord > theSmootherToken
Definition: TrackTransformer.h:119
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TrackTransformer::getTransientRecHits
TransientTrackingRecHit::ConstRecHitContainer getTransientRecHits(const reco::TransientTrack &track) const
Definition: TrackTransformer.cc:135
RefitDirection::GeometricalDirection
GeometricalDirection
Definition: RefitDirection.h:15
TrackTransformer::magneticField
const MagneticField * magneticField() const
the magnetic field
Definition: TrackTransformer.h:83
TransientRecHitRecord
Definition: TransientRecHitRecord.h:14
TrackTransformer::transform
std::vector< Trajectory > transform(const reco::Track &) const override
Convert a reco::Track into Trajectory.
Definition: TrackTransformer.cc:182
TrackTransformer::theMGFieldToken
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > theMGFieldToken
Definition: TrackTransformer.h:110
oppositeToMomentum
Definition: PropagationDirection.h:4
GlobalTrackingGeometryRecord
Definition: GlobalTrackingGeometryRecord.h:17
FastTrackerRecHitMaskProducer_cfi.trajectories
trajectories
Definition: FastTrackerRecHitMaskProducer_cfi.py:7
TrackTransformer::theTrackerRecHitBuilderToken
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > theTrackerRecHitBuilderToken
Definition: TrackTransformer.h:128
TrackTransformer::theMGField
edm::ESHandle< MagneticField > theMGField
Definition: TrackTransformer.h:112
TransientTrackingRecHitBuilder::build
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
edm::ConsumesCollector::esConsumes
auto esConsumes()
Definition: ConsumesCollector.h:97
TrackTransformer::smoother
std::unique_ptr< TrajectorySmoother > const & smoother() const
the smoother used to smooth the trajectory which came from the refitting step
Definition: TrackTransformer.h:95
TrackTransformer::theMtdAvailable
bool theMtdAvailable
Definition: TrackTransformer.h:138
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
groupFilesInBlocks.reverse
reverse
Definition: groupFilesInBlocks.py:131
edm::ESGetToken::isInitialized
constexpr bool isInitialized() const noexcept
Definition: ESGetToken.h:72
edm::parameterSet
ParameterSet const & parameterSet(StableProvenance const &provenance, ProcessHistory const &history)
Definition: Provenance.cc:11
fileCollector.seed
seed
Definition: fileCollector.py:127
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
DetId
Definition: DetId.h:17
TrajectoryFitter::clone
virtual std::unique_ptr< TrajectoryFitter > clone() const =0
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
TrackTransformer::theTrackingGeometry
edm::ESHandle< GlobalTrackingGeometry > theTrackingGeometry
Definition: TrackTransformer.h:111
TrackTransformer::theMTDRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theMTDRecHitBuilder
Definition: TrackTransformer.h:139
dqmdumpme.last
last
Definition: dqmdumpme.py:56
TrackTransformer::thePropagator
edm::ESHandle< Propagator > thePropagator
Definition: TrackTransformer.h:125
TrackTransformer::thePropagatorName
const std::string thePropagatorName
Definition: TrackTransformer.h:122
TrackTransformer::checkRecHitsOrdering
RefitDirection::GeometricalDirection checkRecHitsOrdering(TransientTrackingRecHit::ConstRecHitContainer const &) const
Definition: TrackTransformer.cc:163
TrackTransformer::theFitterName
const std::string theFitterName
Definition: TrackTransformer.h:114
TrackTransformer::theMuonRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
Definition: TrackTransformer.h:134
TrackTransformer::theTrackerRecHitBuilder
const TransientTrackingRecHitBuilder * theTrackerRecHitBuilder
Definition: TrackTransformer.h:129
edm::ESHandle< TrajectoryFitter >
TrajectoryFitterRecord
Definition: TrajectoryFitterRecord.h:12
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:125
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
RefitDirection::undetermined
Definition: RefitDirection.h:15
TrackTransformer::theDoPredictionsOnly
const bool theDoPredictionsOnly
Definition: TrackTransformer.h:106
RefitDirection::propagationDirection
PropagationDirection propagationDirection() const
Definition: RefitDirection.h:50
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
DetId::Tracker
Definition: DetId.h:25
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
TrackTransformer::trackingGeometry
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
the tracking geometry
Definition: TrackTransformer.h:86
TrackTransformer::theCacheId_TRH
unsigned long long theCacheId_TRH
Definition: TrackTransformer.h:102
FastTime
Definition: ForwardSubdetector.h:6
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
TrackTransformer::theFitterToken
edm::ESGetToken< TrajectoryFitter, TrajectoryFitterRecord > theFitterToken
Definition: TrackTransformer.h:115
Propagator::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
TrackTransformer::hitCloner
TkClonerImpl hitCloner
Definition: TrackTransformer.h:130
get
#define get
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackTransformer::theSmootherName
const std::string theSmootherName
Definition: TrackTransformer.h:118
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
reco::TransientTrack
Definition: TransientTrack.h:19
Trajectory
Definition: Trajectory.h:38
TrackTransformer::theFitter
std::unique_ptr< TrajectoryFitter > theFitter
Definition: TrackTransformer.h:116
TrackTransformer::thePropagatorToken
edm::ESGetToken< Propagator, TrackingComponentsRecord > thePropagatorToken
Definition: TrackTransformer.h:123
Exception
Definition: hltDiff.cc:245
GlobalTrackingGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: GlobalTrackingGeometry.cc:44
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
RefitDirection::insideOut
Definition: RefitDirection.h:15
TrajectorySeed
Definition: TrajectorySeed.h:18
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
RefitDirection::geometricalDirection
GeometricalDirection geometricalDirection() const
Definition: RefitDirection.h:45
mps_fire.result
result
Definition: mps_fire.py:311
DetId::Muon
Definition: DetId.h:26
TrackTransformer::theMuonRecHitBuilderToken
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > theMuonRecHitBuilderToken
Definition: TrackTransformer.h:133
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
TrackTransformer::theMTDRecHitBuilderToken
edm::ESGetToken< TransientTrackingRecHitBuilder, TransientRecHitRecord > theMTDRecHitBuilderToken
Definition: TrackTransformer.h:137
DetId::Forward
Definition: DetId.h:30
TrackTransformer::theMTDRecHitBuilderName
const std::string theMTDRecHitBuilderName
Definition: TrackTransformer.h:136
TrackTransformer::theRefitDirection
const RefitDirection theRefitDirection
Definition: TrackTransformer.h:107
TrackTransformer::propagator
edm::ESHandle< Propagator > const & propagator() const
Definition: TrackTransformer.h:124
TrajectoryMeasurement
Definition: TrajectoryMeasurement.h:25
RefitDirection::outsideIn
Definition: RefitDirection.h:15
alongMomentum
Definition: PropagationDirection.h:4
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
TrackTransformer::theMuonRecHitBuilderName
const std::string theMuonRecHitBuilderName
Definition: TrackTransformer.h:132
hit
Definition: SiStripHitEffFromCalibTree.cc:88
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:40
TrackingComponentsRecord
Definition: TrackingComponentsRecord.h:12
TrackTransformer::TrackTransformer
TrackTransformer(const edm::ParameterSet &)
Constructor (for modules not yet migrated to ES-consumes)
Definition: TrackTransformer.cc:32