CMS 3D CMS Logo

TrackTransformer.cc
Go to the documentation of this file.
2 
6 
9 
13 
20 
24 
26 
27 using namespace std;
28 using namespace edm;
29 
32  : theRPCInTheFit(parameterSet.getParameter<bool>("RefitRPCHits")),
33  theDoPredictionsOnly(parameterSet.getParameter<bool>("DoPredictionsOnly")),
34  theRefitDirection(parameterSet.getParameter<string>("RefitDirection")),
35  theFitterName(parameterSet.getParameter<string>("Fitter")),
36  theSmootherName(parameterSet.getParameter<string>("Smoother")),
37  thePropagatorName(parameterSet.getParameter<string>("Propagator")),
38  theTrackerRecHitBuilderName(parameterSet.getParameter<string>("TrackerRecHitBuilder")),
39  theMuonRecHitBuilderName(parameterSet.getParameter<string>("MuonRecHitBuilder")),
40  theMTDRecHitBuilderName(parameterSet.getParameter<string>("MTDRecHitBuilder")) {}
41 
44 
46  bool DoPredictionsOnly,
47  const std::string& Fitter,
48  const std::string& Smoother,
49  const std::string& Propagator,
51  bool RefitRPCHits,
55  desc.add<bool>("DoPredictionsOnly", DoPredictionsOnly);
56  desc.add<std::string>("Fitter", Fitter);
57  desc.add<std::string>("Smoother", Smoother);
58  desc.add<std::string>("Propagator", Propagator);
59  desc.add<std::string>("RefitDirection", RefitDirection);
60  desc.add<bool>("RefitRPCHits", RefitRPCHits);
61  desc.add<std::string>("TrackerRecHitBuilder", TrackerRecHitBuilder);
62  desc.add<std::string>("MuonRecHitBuilder", MuonRecHitBuilder);
63  desc.add<std::string>("MTDRecHitBuilder", MTDRecHitBuilder);
64 }
65 
67  const std::string metname = "Reco|TrackingTools|TrackTransformer";
68 
73  theFitter = aFitter->clone();
74  theSmoother.reset(aSmoother->clone());
75 
76  unsigned long long newCacheId_TC = setup.get<TrackingComponentsRecord>().cacheIdentifier();
77 
78  if (newCacheId_TC != theCacheId_TC) {
79  LogTrace(metname) << "Tracking Component changed!";
80  theCacheId_TC = newCacheId_TC;
82  }
83 
84  // Global Tracking Geometry
85  unsigned long long newCacheId_GTG = setup.get<GlobalTrackingGeometryRecord>().cacheIdentifier();
86  if (newCacheId_GTG != theCacheId_GTG) {
87  LogTrace(metname) << "GlobalTrackingGeometry changed!";
88  theCacheId_GTG = newCacheId_GTG;
90  }
91 
92  // Magfield Field
93  unsigned long long newCacheId_MG = setup.get<IdealMagneticFieldRecord>().cacheIdentifier();
94  if (newCacheId_MG != theCacheId_MG) {
95  LogTrace(metname) << "Magnetic Field changed!";
96  theCacheId_MG = newCacheId_MG;
98  }
99 
100  // Transient Rechit Builders
101  unsigned long long newCacheId_TRH = setup.get<TransientRecHitRecord>().cacheIdentifier();
102  if (newCacheId_TRH != theCacheId_TRH) {
103  theCacheId_TRH = newCacheId_TRH;
104  LogTrace(metname) << "TransientRecHitRecord changed!";
109  hitCloner = static_cast<TkTransientTrackingRecHitBuilder const*>(theTrackerRecHitBuilder.product())->cloner();
110  }
111  theFitter->setHitCloner(&hitCloner);
112  theSmoother->setHitCloner(&hitCloner);
113 }
114 
115 vector<Trajectory> TrackTransformer::transform(const reco::TrackRef& track) const { return transform(*track); }
116 
118  const reco::TransientTrack& track) const {
120  auto tkbuilder = static_cast<TkTransientTrackingRecHitBuilder const*>(theTrackerRecHitBuilder.product());
121 
122  for (auto hit = track.recHitsBegin(); hit != track.recHitsEnd(); ++hit) {
123  if ((*hit)->isValid()) {
124  if ((*hit)->geographicalId().det() == DetId::Tracker) {
125  result.emplace_back((**hit).cloneForFit(*tkbuilder->geometry()->idToDet((**hit).geographicalId())));
126  } else if ((*hit)->geographicalId().det() == DetId::Muon) {
127  if ((*hit)->geographicalId().subdetId() == 3 && !theRPCInTheFit) {
128  LogTrace("Reco|TrackingTools|TrackTransformer") << "RPC Rec Hit discarged";
129  continue;
130  }
131  result.push_back(theMuonRecHitBuilder->build(&**hit));
132  } else if ((*hit)->geographicalId().det() == DetId::Forward && (*hit)->geographicalId().subdetId() == FastTime) {
133  if (theMtdAvailable)
134  result.push_back(theMTDRecHitBuilder->build(&**hit));
135  else
136  throw cms::Exception("TrackTransformer") << "MTD hit encountered but MTD not available!";
137  }
138  }
139  }
140 
141  return result;
142 }
143 
144 // FIXME: check this method!
147  if (!recHits.empty()) {
148  GlobalPoint first = trackingGeometry()->idToDet(recHits.front()->geographicalId())->position();
149  GlobalPoint last = trackingGeometry()->idToDet(recHits.back()->geographicalId())->position();
150 
151  // maybe perp2?
152  auto rFirst = first.mag2();
153  auto rLast = last.mag2();
154  if (rFirst < rLast)
156  if (rFirst > rLast)
158  }
159  LogDebug("Reco|TrackingTools|TrackTransformer") << "Impossible to determine the rechits order" << endl;
161 }
162 
164 vector<Trajectory> TrackTransformer::transform(const reco::Track& newTrack) const {
165  const std::string metname = "Reco|TrackingTools|TrackTransformer";
166 
168 
169  auto recHitsForReFit = getTransientRecHits(track);
170  return transform(track, recHitsForReFit);
171 }
172 
175  TransientTrackingRecHit::ConstRecHitContainer& recHitsForReFit) const {
176  const std::string metname = "Reco|TrackingTools|TrackTransformer";
177 
178  if (recHitsForReFit.size() < 2)
179  return vector<Trajectory>();
180 
181  // 8 cases are foreseen:
182  // [RH = rec hit order, P = momentum dir, FD = fit direction. IO/OI = inside-out/outside-in, AM/OM = along momentum/opposite to momentum]
183  // (1) RH IO | P IO | FD AM ---> Start from IN
184  // (2) RH IO | P IO | FD OM ---> Reverse RH and start from OUT
185  // (3) RH IO | P OI | FD AM ---> Reverse RH and start from IN
186  // (4) RH IO | P OI | FD OM ---> Start from OUT
187  // (5) RH OI | P IO | FD AM ---> Reverse RH and start from IN
188  // (6) RH OI | P IO | FD OM ---> Start from OUT
189  // (7) RH OI | P OI | FD AM ---> Start from IN
190  // (8) RH OI | P OI | FD OM ---> Reverse RH and start from OUT
191  //
192  // *** Rules: ***
193  // -A- If RH-FD agree (IO-AM,OI-OM) do not reverse the RH
194  // -B- If FD along momentum start from innermost state, otherwise use outermost
195 
196  // Other special cases can be handled:
197  // (1 bis) RH IO | P IO | GFD IO => FD AM ---> Start from IN
198  // (2 bis) RH IO | P IO | GFD OI => FD OM ---> Reverse RH and start from OUT
199  // (3 bis) RH IO | P OI | GFD OI => FD AM ---> Reverse RH and start from OUT
200  // (4 bis) RH IO | P OI | GFD IO => FD OM ---> Start from IN
201  // (5 bis) RH OI | P IO | GFD IO => FD AM ---> Reverse RH and start from IN
202  // (6 bis) RH OI | P IO | GFD OI => FD OM ---> Start from OUT
203  // (7 bis) RH OI | P OI | GFD OI => FD AM ---> Start from OUT
204  // (8 bis) RH OI | P OI | GFD IO => FD OM ---> Reverse RH and start from IN
205  //
206  // *** Additional rule: ***
207  // -A0- If P and GFD agree, then FD is AM otherwise is OM
208  // -A00- rechit must be ordered as GFD in order to handle the case of cosmics
209  // -B0- The starting state is decided by GFD
210 
211  // Determine the RH order
213  checkRecHitsOrdering(recHitsForReFit); // FIXME change nome of the *type* --> RecHit order!
214  LogTrace(metname) << "RH order (0-insideOut, 1-outsideIn): " << recHitsOrder;
215 
217 
218  // Apply rule -A0-
219  if (propagationDirection == anyDirection) {
220  GlobalVector momentum = track.innermostMeasurementState().globalMomentum();
221  GlobalVector position = track.innermostMeasurementState().globalPosition() - GlobalPoint(0, 0, 0);
222  RefitDirection::GeometricalDirection p = (momentum.x() * position.x() > 0 || momentum.y() * position.y() > 0)
225 
227  LogTrace(metname) << "P (0-insideOut, 1-outsideIn): " << p;
228  LogTrace(metname) << "FD (0-OM, 1-AM, 2-ANY): " << propagationDirection;
229  }
230  // -A0-
231 
232  // Apply rule -A-
234  if ((recHitsOrder == RefitDirection::insideOut && propagationDirection == oppositeToMomentum) ||
235  (recHitsOrder == RefitDirection::outsideIn && propagationDirection == alongMomentum))
236  reverse(recHitsForReFit.begin(), recHitsForReFit.end());
237  }
238  // -A-
239  // Apply rule -A00-
240  else {
241  // reorder the rechit as defined in theRefitDirection.geometricalDirection();
242  if (theRefitDirection.geometricalDirection() != recHitsOrder)
243  reverse(recHitsForReFit.begin(), recHitsForReFit.end());
244  }
245  // -A00-
246 
247  // Apply rule -B-
248  TrajectoryStateOnSurface firstTSOS = track.innermostMeasurementState();
249  unsigned int innerId = track.track().innerDetId();
251  if (propagationDirection == oppositeToMomentum) {
252  innerId = track.track().outerDetId();
253  firstTSOS = track.outermostMeasurementState();
254  }
255  } else { // if(theRefitDirection.propagationDirection() == anyDirection)
256  // Apply rule -B0-
258  innerId = track.track().outerDetId();
259  firstTSOS = track.outermostMeasurementState();
260  }
261  // -B0-
262  }
263  // -B-
264 
265  if (!firstTSOS.isValid()) {
266  LogTrace(metname) << "Error wrong initial state!" << endl;
267  return vector<Trajectory>();
268  }
269 
271 
272  if (recHitsForReFit.front()->geographicalId() != DetId(innerId)) {
273  LogTrace(metname) << "Propagation occured" << endl;
274  firstTSOS = propagator()->propagate(firstTSOS, recHitsForReFit.front()->det()->surface());
275  if (!firstTSOS.isValid()) {
276  LogTrace(metname) << "Propagation error!" << endl;
277  return vector<Trajectory>();
278  }
279  }
280 
281  if (theDoPredictionsOnly) {
282  Trajectory aTraj(seed, propagationDirection);
283  TrajectoryStateOnSurface predTSOS = firstTSOS;
284  for (auto const& hit : recHitsForReFit) {
285  predTSOS = propagator()->propagate(predTSOS, hit->det()->surface());
286  if (predTSOS.isValid())
287  aTraj.push(TrajectoryMeasurement(predTSOS, hit));
288  }
289  return vector<Trajectory>(1, aTraj);
290  }
291 
292  auto const& trajectories = theFitter->fit(seed, recHitsForReFit, firstTSOS);
293 
294  if (trajectories.empty()) {
295  LogTrace(metname) << "No Track refitted!" << endl;
296  return trajectories;
297  }
298 
299  auto const& trajectoryBW = trajectories.front();
300 
301  auto const& trajectoriesSM = theSmoother->trajectories(trajectoryBW);
302 
303  if (trajectoriesSM.empty()) {
304  LogTrace(metname) << "No Track smoothed!" << endl;
305  }
306 
307  return trajectoriesSM;
308 }
Vector3DBase
Definition: Vector3DBase.h:8
TrackTransformer::theTrackerRecHitBuilderName
const std::string theTrackerRecHitBuilderName
Definition: TrackTransformer.h:118
TrajectorySmoother::clone
virtual TrajectorySmoother * clone() const =0
Propagator.h
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
TrajectoryStateOnSurface.h
electrons_cff.bool
bool
Definition: electrons_cff.py:372
anyDirection
Definition: PropagationDirection.h:4
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
TrackTransformer::theSmoother
std::unique_ptr< TrajectorySmoother > theSmoother
Definition: TrackTransformer.h:112
MessageLogger.h
TrackTransformer::theRPCInTheFit
const bool theRPCInTheFit
Definition: TrackTransformer.h:100
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TrackTransformer::setServices
void setServices(const edm::EventSetup &) override
set the services needed by the TrackTransformer
Definition: TrackTransformer.cc:66
TrackTransformer::getTransientRecHits
TransientTrackingRecHit::ConstRecHitContainer getTransientRecHits(const reco::TransientTrack &track) const
Definition: TrackTransformer.cc:117
edm
HLT enums.
Definition: AlignableModifier.h:19
trackingRecoMaterialAnalyzer_cfi.MTDRecHitBuilder
MTDRecHitBuilder
Definition: trackingRecoMaterialAnalyzer_cfi.py:14
TrackTransformer::theCacheId_MG
unsigned long long theCacheId_MG
Definition: TrackTransformer.h:97
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
HLTSiStripMonitoring_cff.Fitter
Fitter
Definition: HLTSiStripMonitoring_cff.py:207
TransientRecHitRecord.h
RefitDirection::GeometricalDirection
GeometricalDirection
Definition: RefitDirection.h:15
TrackTransformer::magneticField
const MagneticField * magneticField() const
the magnetic field
Definition: TrackTransformer.h:76
HLT_FULL_cff.thePropagatorName
thePropagatorName
Definition: HLT_FULL_cff.py:109759
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
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:164
TrackTransformer::theCacheId_GTG
unsigned long long theCacheId_GTG
Definition: TrackTransformer.h:96
oppositeToMomentum
Definition: PropagationDirection.h:4
GlobalTrackingGeometryRecord
Definition: GlobalTrackingGeometryRecord.h:17
FastTrackerRecHitMaskProducer_cfi.trajectories
trajectories
Definition: FastTrackerRecHitMaskProducer_cfi.py:7
TrackTransformer::theMGField
edm::ESHandle< MagneticField > theMGField
Definition: TrackTransformer.h:106
TransientTrack.h
TransientTrackingRecHitBuilder::build
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
TrackTransformer::theMtdAvailable
bool theMtdAvailable
Definition: TrackTransformer.h:126
dqmdumpme.first
first
Definition: dqmdumpme.py:55
TrackTransformer::~TrackTransformer
~TrackTransformer() override
Destructor.
Definition: TrackTransformer.cc:43
singleTopDQM_cfi.setup
setup
Definition: singleTopDQM_cfi.py:37
groupFilesInBlocks.reverse
reverse
Definition: groupFilesInBlocks.py:131
edm::Ref< TrackCollection >
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
Propagator
Definition: Propagator.h:44
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:105
TrackTransformer::theMTDRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theMTDRecHitBuilder
Definition: TrackTransformer.h:127
dqmdumpme.last
last
Definition: dqmdumpme.py:56
TrackTransformer::thePropagator
edm::ESHandle< Propagator > thePropagator
Definition: TrackTransformer.h:116
TrackTransformer::thePropagatorName
const std::string thePropagatorName
Definition: TrackTransformer.h:114
Track.h
TrackFwd.h
TrackTransformer::checkRecHitsOrdering
RefitDirection::GeometricalDirection checkRecHitsOrdering(TransientTrackingRecHit::ConstRecHitContainer const &) const
Definition: TrackTransformer.cc:145
TrackTransformer::theFitterName
const std::string theFitterName
Definition: TrackTransformer.h:108
TrackTransformer::theMuonRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theMuonRecHitBuilder
Definition: TrackTransformer.h:123
TrackTransformer::theCacheId_TC
unsigned long long theCacheId_TC
Definition: TrackTransformer.h:95
reco::Track
Definition: Track.h:27
IdealMagneticFieldRecord.h
edm::ESHandle< TrajectoryFitter >
TrajectoryFitterRecord
Definition: TrajectoryFitterRecord.h:12
TrajectoryFitter.h
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
Point3DBase< float, GlobalTag >
ParameterSetDescription.h
GlobalTrackingGeometryRecord.h
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
RefitDirection::undetermined
Definition: RefitDirection.h:15
TrackTransformer::theDoPredictionsOnly
const bool theDoPredictionsOnly
Definition: TrackTransformer.h:102
RefitDirection::propagationDirection
PropagationDirection propagationDirection() const
Definition: RefitDirection.h:50
LaserSeedGenerator_cfi.Propagator
Propagator
Definition: LaserSeedGenerator_cfi.py:11
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
DetId::Tracker
Definition: DetId.h:25
TrackingRecHit::ConstRecHitContainer
std::vector< ConstRecHitPointer > ConstRecHitContainer
Definition: TrackingRecHit.h:32
TrackTransformer::trackingGeometry
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
the tracking geometry
Definition: TrackTransformer.h:79
TrackTransformer::theCacheId_TRH
unsigned long long theCacheId_TRH
Definition: TrackTransformer.h:98
MuonAlignmentFromReference_cff.RefitRPCHits
RefitRPCHits
Definition: MuonAlignmentFromReference_cff.py:16
TrackTransformer::theTrackerRecHitBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theTrackerRecHitBuilder
Definition: TrackTransformer.h:119
FastTime
Definition: ForwardSubdetector.h:6
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
RefitDirection
Definition: RefitDirection.h:13
TrackTransformer.h
edm::EventSetup
Definition: EventSetup.h:57
TrajectorySmoother.h
Propagator::propagate
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
TrackTransformer::hitCloner
TkClonerImpl hitCloner
Definition: TrackTransformer.h:120
get
#define get
Trajectory::push
void push(const TrajectoryMeasurement &tm)
Definition: Trajectory.cc:50
trackingRecoMaterialAnalyzer_cfi.TrackerRecHitBuilder
TrackerRecHitBuilder
Definition: trackingRecoMaterialAnalyzer_cfi.py:11
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
TrackTransformer::fillPSetDescription
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
Definition: TrackTransformer.cc:45
trackingRecoMaterialAnalyzer_cfi.MuonRecHitBuilder
MuonRecHitBuilder
Definition: trackingRecoMaterialAnalyzer_cfi.py:13
TrackTransformer::theSmootherName
const std::string theSmootherName
Definition: TrackTransformer.h:111
Trajectory.h
std
Definition: JetResolutionObject.h:76
reco::TransientTrack
Definition: TransientTrack.h:19
DetId.h
Trajectory
Definition: Trajectory.h:38
TrackTransformer::theFitter
std::unique_ptr< TrajectoryFitter > theFitter
Definition: TrackTransformer.h:109
trackingRecoMaterialAnalyzer_cfi.DoPredictionsOnly
DoPredictionsOnly
Definition: trackingRecoMaterialAnalyzer_cfi.py:9
TrackingComponentsRecord.h
Exception
Definition: hltDiff.cc:246
GlobalTrackingGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: GlobalTrackingGeometry.cc:44
PropagationDirection
PropagationDirection
Definition: PropagationDirection.h:4
RefitDirection::insideOut
Definition: RefitDirection.h:15
HLTSiStripMonitoring_cff.Smoother
Smoother
Definition: HLTSiStripMonitoring_cff.py:209
edm::parameterSet
ParameterSet const & parameterSet(Provenance const &provenance, ProcessHistory const &history)
Definition: Provenance.cc:11
TrajectorySeed
Definition: TrajectorySeed.h:17
EventSetup.h
TrajectoryStateOnSurface::surface
const SurfaceType & surface() const
Definition: TrajectoryStateOnSurface.h:78
RefitDirection::geometricalDirection
GeometricalDirection geometricalDirection() const
Definition: RefitDirection.h:45
HLT_2018_cff.track
track
Definition: HLT_2018_cff.py:10352
TransientTrackingRecHitBuilder.h
mps_fire.result
result
Definition: mps_fire.py:303
DetId::Muon
Definition: DetId.h:26
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:671
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
ParameterSet.h
DetId::Forward
Definition: DetId.h:30
TrackTransformer::theMTDRecHitBuilderName
const std::string theMTDRecHitBuilderName
Definition: TrackTransformer.h:125
TrackTransformer::theRefitDirection
const RefitDirection theRefitDirection
Definition: TrackTransformer.h:103
TrackTransformer::propagator
edm::ESHandle< Propagator > const & propagator() const
Definition: TrackTransformer.h:115
TrajectoryMeasurement
Definition: TrajectoryMeasurement.h:25
trackingRecoMaterialAnalyzer_cfi.RefitDirection
RefitDirection
Definition: trackingRecoMaterialAnalyzer_cfi.py:15
RefitDirection::outsideIn
Definition: RefitDirection.h:15
alongMomentum
Definition: PropagationDirection.h:4
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
SurveyInfoScenario_cff.seed
seed
Definition: SurveyInfoScenario_cff.py:295
TrackTransformer::theMuonRecHitBuilderName
const std::string theMuonRecHitBuilderName
Definition: TrackTransformer.h:122
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::OwnVector< TrackingRecHit >
metname
const std::string metname
Definition: MuonSeedOrcaPatternRecognition.cc:43
TrackingComponentsRecord
Definition: TrackingComponentsRecord.h:12
TrackTransformer::TrackTransformer
TrackTransformer(const edm::ParameterSet &)
Constructor.
Definition: TrackTransformer.cc:31