CMS 3D CMS Logo

TSGFromPropagation.cc
Go to the documentation of this file.
2 
13 
17 
22 
26 
28 
30  : TSGFromPropagation(iConfig, iC, nullptr) {}
31 
35  : theCategory("Muon|RecoMuon|TSGFromPropagation"),
36  theMeasTrackerName(iConfig.getParameter<std::string>("MeasurementTrackerName")),
37  theService(service),
38  theMaxChi2(iConfig.getParameter<double>("MaxChi2")),
39  theFixedErrorRescaling(iConfig.getParameter<double>("ErrorRescaling")),
40  theUseVertexStateFlag(iConfig.getParameter<bool>("UseVertexState")),
41  theUpdateStateFlag(iConfig.getParameter<bool>("UpdateState")),
42  theResetMethod([](const edm::ParameterSet& iConfig) {
43  auto resetMethod = iConfig.getParameter<std::string>("ResetMethod");
44  if (resetMethod != "discrete" && resetMethod != "fixed" && resetMethod != "matrix") {
45  edm::LogError("TSGFromPropagation") << "Wrong error rescaling method: " << resetMethod << "\n"
46  << "Possible choices are: discrete, fixed, matrix.\n"
47  << "Use discrete method" << std::endl;
48  resetMethod = "discrete";
49  }
50  if ("fixed" == resetMethod) {
51  return ResetMethod::fixed;
52  }
53  if ("matrix" == resetMethod) {
54  return ResetMethod::matrix;
55  }
56  return ResetMethod::discrete;
57  }(iConfig)),
58  theSelectStateFlag(iConfig.getParameter<bool>("SelectState")),
59  thePropagatorName(iConfig.getParameter<std::string>("Propagator")),
60  theSigmaZ(iConfig.getParameter<double>("SigmaZ")),
61  theErrorMatrixPset(iConfig.getParameter<edm::ParameterSet>("errorMatrixPset")),
62  theBeamSpotToken(iC.consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpot"))),
63  theMeasurementTrackerEventToken(
64  iC.consumes<MeasurementTrackerEvent>(iConfig.getParameter<edm::InputTag>("MeasurementTrackerEvent"))) {}
65 
66 TSGFromPropagation::~TSGFromPropagation() { LogTrace(theCategory) << " TSGFromPropagation dtor called "; }
67 
69  const TrackingRegion& region,
70  const TrackerTopology* tTopo,
71  std::vector<TrajectorySeed>& result) {
73  getRescalingFactor(staMuon);
74 
75  TrajectoryStateOnSurface staState = outerTkState(staMuon);
76 
77  if (!staState.isValid()) {
78  LogTrace(theCategory) << "Error: initial state from L2 muon is invalid.";
79  return;
80  }
81 
82  LogTrace(theCategory) << "begin of trackerSeed:\n staState pos: " << staState.globalPosition()
83  << " mom: " << staState.globalMomentum() << "pos eta: " << staState.globalPosition().eta()
84  << "mom eta: " << staState.globalMomentum().eta();
85 
86  std::vector<const DetLayer*> nls = theNavigation->compatibleLayers(*(staState.freeState()), oppositeToMomentum);
87 
88  LogTrace(theCategory) << " compatible layers: " << nls.size();
89 
90  if (nls.empty())
91  return;
92 
93  int ndesLayer = 0;
94 
95  bool usePredictedState = false;
96 
97  if (theUpdateStateFlag) { //use updated states
98  std::vector<TrajectoryMeasurement> alltm;
99 
100  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin(); inl != nls.end(); inl++, ndesLayer++) {
101  if ((*inl == nullptr))
102  break;
103  // if ( (inl != nls.end()-1 ) && ( (*inl)->subDetector() == GeomDetEnumerators::TEC ) && ( (*(inl+1))->subDetector() == GeomDetEnumerators::TOB ) ) continue;
104  alltm = findMeasurements(*inl, staState);
105  if ((!alltm.empty())) {
106  LogTrace(theCategory) << "final compatible layer: " << ndesLayer;
107  break;
108  }
109  }
110 
111  if (alltm.empty()) {
112  LogTrace(theCategory) << " NO Measurements Found: eta: " << staState.globalPosition().eta() << "pt "
113  << staState.globalMomentum().perp();
114  usePredictedState = true;
115  } else {
116  LogTrace(theCategory) << " Measurements for seeds: " << alltm.size();
117  std::stable_sort(alltm.begin(), alltm.end(), increasingEstimate());
118  if (alltm.size() > 5)
119  alltm.erase(alltm.begin() + 5, alltm.end());
120 
121  int i = 0;
122  for (std::vector<TrajectoryMeasurement>::const_iterator itm = alltm.begin(); itm != alltm.end(); itm++, i++) {
123  TrajectoryStateOnSurface updatedTSOS = updator()->update(itm->predictedState(), *(itm->recHit()));
124  if (updatedTSOS.isValid() && passSelection(updatedTSOS)) {
126  container.push_back(itm->recHit()->hit()->clone());
127  TrajectorySeed ts = createSeed(updatedTSOS, container, itm->recHit()->geographicalId());
128  result.push_back(ts);
129  }
130  }
131  LogTrace(theCategory) << "result: " << result.size();
132  return;
133  }
134  }
135 
136  if (!theUpdateStateFlag || usePredictedState) { //use predicted states
137  LogTrace(theCategory) << "use predicted state: ";
138  for (std::vector<const DetLayer*>::const_iterator inl = nls.begin(); inl != nls.end(); inl++) {
139  if (!result.empty() || *inl == nullptr) {
140  break;
141  }
142  std::vector<DetLayer::DetWithState> compatDets = (*inl)->compatibleDets(staState, *propagator(), *estimator());
143  LogTrace(theCategory) << " compatDets " << compatDets.size();
144  if (compatDets.empty())
145  continue;
146  TrajectorySeed ts = createSeed(compatDets.front().second, compatDets.front().first->geographicalId());
147  result.push_back(ts);
148  }
149  LogTrace(theCategory) << "result: " << result.size();
150  return;
151  }
152  return;
153 }
154 
156  theFlexErrorRescaling = 1.0;
157 
158  theEstimator = std::make_unique<Chi2MeasurementEstimator>(theMaxChi2);
159 
160  theCacheId_MT = 0;
161 
162  theCacheId_TG = 0;
163 
165 
166  theUpdator = std::make_unique<KFUpdator>();
167 
169  theErrorMatrixAdjuster = std::make_unique<MuonErrorMatrix>(theErrorMatrixPset);
170  }
171 
173  theNavigation = std::make_unique<DirectTrackerNavigation>(theTracker);
174 }
175 
177  iEvent.getByToken(theBeamSpotToken, beamSpot);
178 
179  unsigned long long newCacheId_MT = theService->eventSetup().get<CkfComponentsRecord>().cacheIdentifier();
180 
181  if (theUpdateStateFlag && newCacheId_MT != theCacheId_MT) {
182  LogTrace(theCategory) << "Measurment Tracker Geometry changed!";
183  theCacheId_MT = newCacheId_MT;
185  }
186 
187  if (theUpdateStateFlag) {
189  }
190 
191  bool trackerGeomChanged = false;
192 
193  unsigned long long newCacheId_TG = theService->eventSetup().get<TrackerRecoGeometryRecord>().cacheIdentifier();
194 
195  if (newCacheId_TG != theCacheId_TG) {
196  LogTrace(theCategory) << "Tracker Reco Geometry changed!";
197  theCacheId_TG = newCacheId_TG;
199  trackerGeomChanged = true;
200  }
201 
202  if (trackerGeomChanged && (theTracker.product() != nullptr)) {
203  theNavigation = std::make_unique<DirectTrackerNavigation>(theTracker);
204  }
205 }
206 
208  TrajectoryStateOnSurface innerTS;
209 
210  if (staMuon.first && staMuon.first->isValid()) {
211  if (staMuon.first->direction() == alongMomentum) {
212  innerTS = staMuon.first->firstMeasurement().updatedState();
213  } else if (staMuon.first->direction() == oppositeToMomentum) {
214  innerTS = staMuon.first->lastMeasurement().updatedState();
215  }
216  } else {
218  *(staMuon.second), *theService->trackingGeometry(), &*theService->magneticField());
219  }
220  //rescale the error
221  adjust(innerTS);
222 
223  return innerTS;
224 
225  // return trajectoryStateTransform::innerStateOnSurface(*(staMuon.second),*theService->trackingGeometry(), &*theService->magneticField());
226 }
227 
230 
231  if (theUseVertexStateFlag && staMuon.second->pt() > 1.0) {
232  FreeTrajectoryState iniState =
234  //rescale the error at IP
235  adjust(iniState);
236 
237  StateOnTrackerBound fromInside(&*(theService->propagator("PropagatorWithMaterial")));
238  result = fromInside(iniState);
239  } else {
240  StateOnTrackerBound fromOutside(&*propagator());
241  result = fromOutside(innerState(staMuon));
242  }
243  return result;
244 }
245 
248  return createSeed(tsos, container, id);
249 }
250 
252  const edm::OwnVector<TrackingRecHit>& container,
253  const DetId& id) const {
254  PTrajectoryStateOnDet const& seedTSOS = trajectoryStateTransform::persistentState(tsos, id.rawId());
255  return TrajectorySeed(seedTSOS, container, oppositeToMomentum);
256 }
257 
258 void TSGFromPropagation::validMeasurements(std::vector<TrajectoryMeasurement>& tms) const {
259  std::vector<TrajectoryMeasurement>::iterator tmsend = std::remove_if(tms.begin(), tms.end(), isInvalid());
260  tms.erase(tmsend, tms.end());
261  return;
262 }
263 
264 std::vector<TrajectoryMeasurement> TSGFromPropagation::findMeasurements(
265  const DetLayer* nl, const TrajectoryStateOnSurface& staState) const {
266  std::vector<TrajectoryMeasurement> result;
267 
268  std::vector<DetLayer::DetWithState> compatDets = nl->compatibleDets(staState, *propagator(), *estimator());
269  if (compatDets.empty())
270  return result;
271 
272  for (std::vector<DetLayer::DetWithState>::const_iterator idws = compatDets.begin(); idws != compatDets.end();
273  ++idws) {
274  if (idws->second.isValid() && (idws->first)) {
275  std::vector<TrajectoryMeasurement> tmptm =
276  theMeasTrackerEvent->idToDet(idws->first->geographicalId())
277  .fastMeasurements(idws->second, idws->second, *propagator(), *estimator());
278  validMeasurements(tmptm);
279  // if ( tmptm.size() > 2 ) {
280  // std::stable_sort(tmptm.begin(),tmptm.end(),increasingEstimate());
281  // result.insert(result.end(),tmptm.begin(), tmptm.begin()+2);
282  // } else {
283  result.insert(result.end(), tmptm.begin(), tmptm.end());
284  // }
285  }
286  }
287 
288  return result;
289 }
290 
292  if (!theSelectStateFlag)
293  return true;
294  else {
295  if (beamSpot.isValid()) {
296  return ((fabs(zDis(tsos) - beamSpot->z0()) < theSigmaZ));
297 
298  } else {
299  return ((fabs(zDis(tsos)) < theSigmaZ));
300  // double theDxyCut = 100;
301  // return ( (zDis(tsos) < theSigmaZ) && (dxyDis(tsos) < theDxyCut) );
302  }
303  }
304 }
305 
307  return fabs(
308  (-tsos.globalPosition().x() * tsos.globalMomentum().y() + tsos.globalPosition().y() * tsos.globalMomentum().x()) /
309  tsos.globalMomentum().perp());
310 }
311 
313  return tsos.globalPosition().z() -
314  tsos.globalPosition().perp() * tsos.globalMomentum().z() / tsos.globalMomentum().perp();
315 }
316 
318  float pt = (staMuon.second)->pt();
319  if (pt < 13.0)
321  else if (pt < 30.0)
323  else
325  return;
326 }
327 
329  //rescale the error
331  state.rescaleError(theFlexErrorRescaling);
332  return;
333  }
334 
335  //rescale the error
337  state.rescaleError(theFixedErrorRescaling);
338  return;
339  }
340 
341  CurvilinearTrajectoryError oMat = state.curvilinearError();
342  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.momentum()); //FIXME with position
343  MuonErrorMatrix::multiply(oMat, sfMat);
344 
345  state = FreeTrajectoryState(state.parameters(), oMat);
346 }
347 
349  //rescale the error
351  state.rescaleError(theFlexErrorRescaling);
352  return;
353  }
354 
356  state.rescaleError(theFixedErrorRescaling);
357  return;
358  }
359 
360  CurvilinearTrajectoryError oMat = state.curvilinearError();
361  CurvilinearTrajectoryError sfMat = theErrorMatrixAdjuster->get(state.globalMomentum()); //FIXME with position
362  MuonErrorMatrix::multiply(oMat, sfMat);
363 
364  state =
365  TrajectoryStateOnSurface(state.weight(), state.globalParameters(), oMat, state.surface(), state.surfaceSide());
366 }
Propagator.h
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
Chi2MeasurementEstimator.h
TSGFromPropagation::innerState
TrajectoryStateOnSurface innerState(const TrackCand &) const
Definition: TSGFromPropagation.cc:207
dtChamberEfficiency_cfi.theMaxChi2
theMaxChi2
Definition: dtChamberEfficiency_cfi.py:10
TrajectoryStateOnSurface.h
TrackerSeedGenerator::TrackCand
std::pair< const Trajectory *, reco::TrackRef > TrackCand
Definition: TrackerSeedGenerator.h:30
service
Definition: service.py:1
electrons_cff.bool
bool
Definition: electrons_cff.py:393
mps_fire.i
i
Definition: mps_fire.py:428
MessageLogger.h
TSGFromPropagation::theUpdator
std::unique_ptr< const TrajectoryStateUpdator > theUpdator
Definition: TSGFromPropagation.h:123
MuonErrorMatrix::multiply
static void multiply(CurvilinearTrajectoryError &initial_error, const CurvilinearTrajectoryError &scale_error)
multiply term by term the two matrix
Definition: MuonErrorMatrix.cc:445
TSGFromPropagation::theErrorMatrixPset
const edm::ParameterSet theErrorMatrixPset
Definition: TSGFromPropagation.h:148
TSGFromPropagation::ResetMethod::fixed
trajectoryStateTransform::initialFreeState
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:58
TSGFromPropagation::findMeasurements
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
Definition: TSGFromPropagation.cc:264
DetLayer
Definition: DetLayer.h:21
TSGFromPropagation::validMeasurements
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
Definition: TSGFromPropagation.cc:258
TSGFromPropagation::estimator
const Chi2MeasurementEstimator * estimator() const
Definition: TSGFromPropagation.h:62
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TSGFromPropagation::passSelection
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
Definition: TSGFromPropagation.cc:291
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
reco::BeamSpot::z0
double z0() const
z coordinate
Definition: BeamSpot.h:65
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
HLT_FULL_cff.thePropagatorName
thePropagatorName
Definition: HLT_FULL_cff.py:113807
TrackerRecoGeometryRecord.h
oppositeToMomentum
Definition: PropagationDirection.h:4
TSGFromPropagation::theEstimator
std::unique_ptr< const Chi2MeasurementEstimator > theEstimator
Definition: TSGFromPropagation.h:125
TSGFromPropagation::theNavigation
std::unique_ptr< const DirectTrackerNavigation > theNavigation
Definition: TSGFromPropagation.h:119
TSGFromPropagation::theService
const MuonServiceProxy * theService
Definition: TSGFromPropagation.h:121
TSGFromPropagation::theMeasTrackerName
const std::string theMeasTrackerName
Definition: TSGFromPropagation.h:115
TSGFromPropagation
Definition: TSGFromPropagation.h:33
GeometricSearchDet::compatibleDets
virtual std::vector< DetWithState > compatibleDets(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est) const
Definition: GeometricSearchDet.cc:35
TrackerRecoGeometryRecord
Definition: TrackerRecoGeometryRecord.h:11
TSGFromPropagation::trackerSeeds
void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *, std::vector< TrajectorySeed > &) override
generate seed(s) for a track
Definition: TSGFromPropagation.cc:68
CkfComponentsRecord.h
TSGFromPropagation::ResetMethod::discrete
watchdog.const
const
Definition: watchdog.py:83
TSGFromPropagation::getRescalingFactor
void getRescalingFactor(const TrackCand &staMuon)
Definition: TSGFromPropagation.cc:317
TSGFromPropagation::theMeasurementTrackerEventToken
const edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken
Definition: TSGFromPropagation.h:152
TSGFromPropagation::isInvalid
Definition: TSGFromPropagation.h:101
TSGFromPropagation::propagator
edm::ESHandle< Propagator > propagator() const
Definition: TSGFromPropagation.h:64
TSGFromPropagation::theCategory
const std::string theCategory
Definition: TSGFromPropagation.h:111
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
DetId
Definition: DetId.h:17
GeometricSearchTracker.h
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
TrackerTopology.h
TrajectoryStateOnSurface::freeState
FreeTrajectoryState const * freeState(bool withErrors=true) const
Definition: TrajectoryStateOnSurface.h:58
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
CurvilinearTrajectoryError
Definition: CurvilinearTrajectoryError.h:27
CkfComponentsRecord
Definition: CkfComponentsRecord.h:22
LayerMeasurements.h
TSGFromPropagation::theSigmaZ
const double theSigmaZ
Definition: TSGFromPropagation.h:146
TSGFromPropagation::ResetMethod::matrix
TSGFromPropagation::theMaxChi2
const double theMaxChi2
Definition: TSGFromPropagation.h:127
TSGFromPropagation::TSGFromPropagation
TSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
Definition: TSGFromPropagation.cc:29
reco::BeamSpot
Definition: BeamSpot.h:21
DirectTrackerNavigation.h
MeasurementTrackerEvent::idToDet
MeasurementDetWithData idToDet(const DetId &id) const
Previous MeasurementDetSystem interface.
Definition: MeasurementTrackerEvent.h:76
TSGFromPropagation::theResetMethod
const ResetMethod theResetMethod
Definition: TSGFromPropagation.h:138
TSGFromPropagation::theTracker
edm::ESHandle< GeometricSearchTracker > theTracker
Definition: TSGFromPropagation.h:113
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
MuonServiceProxy::eventSetup
const edm::EventSetup & eventSetup() const
Definition: MuonServiceProxy.h:76
TrajectoryStateUpdator::update
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
TSGFromPropagation::setEvent
void setEvent(const edm::Event &) override
set an event
Definition: TSGFromPropagation.cc:176
KFUpdator.h
MeasurementTrackerEvent
Definition: MeasurementTrackerEvent.h:16
edm::ParameterSet
Definition: ParameterSet.h:47
TSGFromPropagation::outerTkState
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
Definition: TSGFromPropagation.cc:228
ParameterSet
Definition: Functions.h:16
TSGFromPropagation.h
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
TSGFromPropagation::theBeamSpotToken
const edm::EDGetTokenT< reco::BeamSpot > theBeamSpotToken
Definition: TSGFromPropagation.h:151
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
TSGFromPropagation::theMeasTracker
edm::ESHandle< MeasurementTracker > theMeasTracker
Definition: TSGFromPropagation.h:116
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88272
MuonServiceProxy::propagator
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
Definition: MuonServiceProxy.cc:177
iEvent
int iEvent
Definition: GenABIO.cc:224
StateOnTrackerBound
Definition: StateOnTrackerBound.h:13
TSGFromPropagation::theFixedErrorRescaling
const double theFixedErrorRescaling
Definition: TSGFromPropagation.h:131
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
TSGFromPropagation::theSelectStateFlag
const bool theSelectStateFlag
Definition: TSGFromPropagation.h:140
TSGFromPropagation::dxyDis
double dxyDis(const TrajectoryStateOnSurface &tsos) const
Definition: TSGFromPropagation.cc:306
Trajectory.h
TSGFromPropagation::zDis
double zDis(const TrajectoryStateOnSurface &tsos) const
Definition: TSGFromPropagation.cc:312
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
TSGFromPropagation::beamSpot
edm::Handle< reco::BeamSpot > beamSpot
Definition: TSGFromPropagation.h:150
std
Definition: JetResolutionObject.h:76
TSGFromPropagation::~TSGFromPropagation
~TSGFromPropagation() override
destructor
Definition: TSGFromPropagation.cc:66
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
TSGFromPropagation::theUseVertexStateFlag
const bool theUseVertexStateFlag
Definition: TSGFromPropagation.h:133
TSGFromPropagation::adjust
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
Definition: TSGFromPropagation.cc:328
MuonServiceProxy::trackingGeometry
edm::ESHandle< GlobalTrackingGeometry > trackingGeometry() const
get the tracking geometry
Definition: MuonServiceProxy.h:59
TSGFromPropagation::theMeasTrackerEvent
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
Definition: TSGFromPropagation.h:117
TrajectorySeed
Definition: TrajectorySeed.h:18
MuonServiceProxy::magneticField
edm::ESHandle< MagneticField > magneticField() const
get the magnetic field
Definition: MuonServiceProxy.h:56
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TSGFromPropagation::theUpdateStateFlag
const bool theUpdateStateFlag
Definition: TSGFromPropagation.h:135
TrajectoryStateTransform.h
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
TrackingRegion
Definition: TrackingRegion.h:41
TSGFromPropagation::createSeed
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
Definition: TSGFromPropagation.cc:246
TSGFromPropagation::increasingEstimate
Definition: TSGFromPropagation.h:95
mps_fire.result
result
Definition: mps_fire.py:311
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:224
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
MuonServiceProxy
Definition: MuonServiceProxy.h:38
StateOnTrackerBound.h
trajectoryStateTransform::innerStateOnSurface
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:110
TSGFromPropagation::init
void init(const MuonServiceProxy *) override
initialize
Definition: TSGFromPropagation.cc:155
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::Event
Definition: Event.h:73
TSGFromPropagation::theFlexErrorRescaling
double theFlexErrorRescaling
Definition: TSGFromPropagation.h:129
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
alongMomentum
Definition: PropagationDirection.h:4
TSGFromPropagation::updator
const TrajectoryStateUpdator * updator() const
Definition: TSGFromPropagation.h:60
edm::ParameterSet::empty
bool empty() const
Definition: ParameterSet.h:201
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
TSGFromPropagation::theCacheId_TG
unsigned long long theCacheId_TG
Definition: TSGFromPropagation.h:109
edm::OwnVector< TrackingRecHit >
MeasurementDet.h
MeasurementTracker.h
TSGFromPropagation::theErrorMatrixAdjuster
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
Definition: TSGFromPropagation.h:144
TSGFromPropagation::theCacheId_MT
unsigned long long theCacheId_MT
Definition: TSGFromPropagation.h:108