CMS 3D CMS Logo

FastTSGFromPropagation.h
Go to the documentation of this file.
1 #ifndef FastSimulation_Muons_FastTSGFromPropagation_H
2 #define FastSimulation_Muons_FastTSGFromPropagation_H
3 
23 
27 
31 
34 
35 #include <memory>
36 
37 class LayerMeasurements;
39 class Propagator;
40 class MeasurementTracker;
44 class SimTrack;
45 class TrackerGeometry;
46 class TrackerTopology;
47 
49 public:
52 
54 
56  ~FastTSGFromPropagation() override;
57 
59  void trackerSeeds(const TrackCand&,
60  const TrackingRegion&,
61  const TrackerTopology* tTopo,
62  std::vector<TrajectorySeed>&) override;
63 
65  void init(const MuonServiceProxy*) override;
66 
68  void setEvent(const edm::Event&) override;
69 
70 private:
72  void stateOnDet(const TrajectoryStateOnSurface& ts, unsigned int detid, PTrajectoryStateOnDet& pts) const;
73 
75 
77 
78  const TrajectoryStateUpdator* updator() const { return theUpdator.get(); }
79 
80  const Chi2MeasurementEstimator* estimator() const { return theEstimator.get(); }
81 
83 
86 
89  const edm::OwnVector<TrackingRecHit>& container,
90  const DetId& id) const;
91 
93  void validMeasurements(std::vector<TrajectoryMeasurement>&) const;
94 
96  std::vector<TrajectoryMeasurement> findMeasurements(const DetLayer*, const TrajectoryStateOnSurface&) const;
97 
99  bool passSelection(const TrajectoryStateOnSurface&) const;
100 
101  void getRescalingFactor(const TrackCand& staMuon);
102 
104  void adjust(FreeTrajectoryState&) const;
105 
107  void adjust(TrajectoryStateOnSurface&) const;
108 
109  double dxyDis(const TrajectoryStateOnSurface& tsos) const;
110 
111  double zDis(const TrajectoryStateOnSurface& tsos) const;
112 
114  bool operator()(const TrajectoryMeasurement& lhs, const TrajectoryMeasurement& rhs) const {
115  return lhs.estimate() < rhs.estimate();
116  }
117  };
118 
119  struct isInvalid {
120  bool operator()(const TrajectoryMeasurement& measurement) {
121  return (((measurement).recHit() == nullptr) || !((measurement).recHit()->isValid()) ||
122  !((measurement).updatedState().isValid()));
123  }
124  };
125 
126  unsigned long long theCacheId_MT;
127  unsigned long long theCacheId_TG;
128 
130 
132 
134 
135  std::unique_ptr<const DirectTrackerNavigation> theNavigation;
136 
138 
140 
141  std::unique_ptr<const TrajectoryStateUpdator> theUpdator;
142 
143  std::unique_ptr<const Chi2MeasurementEstimator> theEstimator;
144 
145  double theMaxChi2;
146 
148 
150 
152 
154 
156 
158 
160 
161  std::unique_ptr<MuonErrorMatrix> theErrorMatrixAdjuster;
162 
164 
165  double theSigmaZ;
166 
172 
178 };
179 
180 #endif
FastTSGFromPropagation::outerTkState
TrajectoryStateOnSurface outerTkState(const TrackCand &) const
Definition: FastTSGFromPropagation.cc:414
FastTSGFromPropagation::updator
const TrajectoryStateUpdator * updator() const
Definition: FastTSGFromPropagation.h:78
TrackerSeedGenerator::TrackCand
std::pair< const Trajectory *, reco::TrackRef > TrackCand
Definition: TrackerSeedGenerator.h:30
FreeTrajectoryState.h
FastTSGFromPropagation::theUpdateStateFlag
bool theUpdateStateFlag
Definition: FastTSGFromPropagation.h:153
Chi2MeasurementEstimator
Definition: Chi2MeasurementEstimator.h:15
FastTSGFromPropagation::increasingEstimate
Definition: FastTSGFromPropagation.h:113
DetLayer
Definition: DetLayer.h:21
FastTSGFromPropagation::validMeasurements
void validMeasurements(std::vector< TrajectoryMeasurement > &) const
select valid measurements
Definition: FastTSGFromPropagation.cc:444
edm::EDGetTokenT< edm::SimTrackContainer >
FastTSGFromPropagation::dxyDis
double dxyDis(const TrajectoryStateOnSurface &tsos) const
Definition: FastTSGFromPropagation.cc:492
TrackerTopology
Definition: TrackerTopology.h:16
FastTSGFromPropagation::trackerSeeds
void trackerSeeds(const TrackCand &, const TrackingRegion &, const TrackerTopology *tTopo, std::vector< TrajectorySeed > &) override
generate seed(s) for a track
Definition: FastTSGFromPropagation.cc:72
FastTSGFromPropagation::increasingEstimate::operator()
bool operator()(const TrajectoryMeasurement &lhs, const TrajectoryMeasurement &rhs) const
Definition: FastTSGFromPropagation.h:114
TrackerSeedGenerator.h
FastTSGFromPropagation::init
void init(const MuonServiceProxy *) override
initialize
Definition: FastTSGFromPropagation.cc:305
FastTSGFromPropagation::theGeometry
const TrackerGeometry * theGeometry
Definition: FastTSGFromPropagation.h:137
TrajectoryMeasurement.h
FastTSGFromPropagation::estimator
const Chi2MeasurementEstimator * estimator() const
Definition: FastTSGFromPropagation.h:80
FastTSGFromPropagation::theNavigation
std::unique_ptr< const DirectTrackerNavigation > theNavigation
Definition: FastTSGFromPropagation.h:135
FastTSGFromPropagation::beamSpot_
edm::EDGetTokenT< reco::BeamSpot > beamSpot_
Definition: FastTSGFromPropagation.h:170
edm::Handle< reco::BeamSpot >
TrajectoryStateUpdator.h
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
FastTSGFromPropagation::recHitCombinations
edm::Handle< FastTrackerRecHitCombinationCollection > recHitCombinations
Definition: FastTSGFromPropagation.h:175
TkTransientTrackingRecHitBuilder.h
FastTSGFromPropagation::theSigmaZ
double theSigmaZ
Definition: FastTSGFromPropagation.h:165
FastTSGFromPropagation::recHitCombinationsToken_
edm::EDGetTokenT< FastTrackerRecHitCombinationCollection > recHitCombinationsToken_
Definition: FastTSGFromPropagation.h:169
FastTSGFromPropagation::setEvent
void setEvent(const edm::Event &) override
set an event
Definition: FastTSGFromPropagation.cc:360
MuonErrorMatrix.h
Propagator
Definition: Propagator.h:44
DetId
Definition: DetId.h:17
MeasurementTracker
Definition: MeasurementTracker.h:21
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
LayerMeasurements
Definition: LayerMeasurements.h:18
BeamSpot.h
FastTSGFromPropagation::innerState
TrajectoryStateOnSurface innerState(const TrackCand &) const
Definition: FastTSGFromPropagation.cc:395
FastTSGFromPropagation::theEstimator
std::unique_ptr< const Chi2MeasurementEstimator > theEstimator
Definition: FastTSGFromPropagation.h:143
FastTSGFromPropagation::theFixedErrorRescaling
double theFixedErrorRescaling
Definition: FastTSGFromPropagation.h:149
LayerMeasurements.h
FastTSGFromPropagation::propagator
edm::ESHandle< Propagator > propagator() const
Definition: FastTSGFromPropagation.h:82
IdealMagneticFieldRecord.h
edm::ESHandle< Propagator >
FastTSGFromPropagation::theErrorMatrixAdjuster
std::unique_ptr< MuonErrorMatrix > theErrorMatrixAdjuster
Definition: FastTSGFromPropagation.h:161
sistrip::SpyUtilities::isValid
const bool isValid(const Frame &aFrame, const FrameQuality &aQuality, const uint16_t aExpectedPos)
Definition: SiStripSpyUtilities.cc:124
FastTSGFromPropagation::theTTRHBuilder
edm::ESHandle< TransientTrackingRecHitBuilder > theTTRHBuilder
Definition: FastTSGFromPropagation.h:177
EDGetToken.h
FastTSGFromPropagation::theMaxChi2
double theMaxChi2
Definition: FastTSGFromPropagation.h:145
FastTSGFromPropagation::FastTSGFromPropagation
FastTSGFromPropagation(const edm::ParameterSet &pset, edm::ConsumesCollector &iC)
constructor
Definition: FastTSGFromPropagation.cc:48
FastTSGFromPropagation::theUseVertexStateFlag
bool theUseVertexStateFlag
Definition: FastTSGFromPropagation.h:151
TrackerSeedGenerator
Definition: TrackerSeedGenerator.h:24
FastTSGFromPropagation::findMeasurements
std::vector< TrajectoryMeasurement > findMeasurements(const DetLayer *, const TrajectoryStateOnSurface &) const
look for measurements on the first compatible layer
Definition: FastTSGFromPropagation.cc:450
FastTSGFromPropagation::theCacheId_TG
unsigned long long theCacheId_TG
Definition: FastTSGFromPropagation.h:127
edm::ParameterSet
Definition: ParameterSet.h:47
FastTSGFromPropagation::theMeasTracker
edm::ESHandle< MeasurementTracker > theMeasTracker
Definition: FastTSGFromPropagation.h:133
FastTSGFromPropagation::theMeasTrackerEvent
edm::Handle< MeasurementTrackerEvent > theMeasTrackerEvent
Definition: FastTSGFromPropagation.h:176
FastTSGFromPropagation::theUpdator
std::unique_ptr< const TrajectoryStateUpdator > theUpdator
Definition: FastTSGFromPropagation.h:141
TrajectoryStateTransform
Definition: TrajectoryStateTransform.h:47
FastTSGFromPropagation::theBeamSpot
edm::Handle< reco::BeamSpot > theBeamSpot
Definition: FastTSGFromPropagation.h:173
FastTSGFromPropagation::theSimTracks
edm::Handle< edm::SimTrackContainer > theSimTracks
Definition: FastTSGFromPropagation.h:174
MuonServiceProxy::propagator
edm::ESHandle< Propagator > propagator(std::string propagatorName) const
get the propagator
Definition: MuonServiceProxy.cc:177
FastTSGFromPropagation::theSimTrackCollectionToken_
edm::EDGetTokenT< edm::SimTrackContainer > theSimTrackCollectionToken_
Definition: FastTSGFromPropagation.h:168
DirectTrackerNavigation
Definition: DirectTrackerNavigation.h:26
FastTSGFromPropagation::theCacheId_MT
unsigned long long theCacheId_MT
Definition: FastTSGFromPropagation.h:126
FastTSGFromPropagation::createSeed
TrajectorySeed createSeed(const TrajectoryStateOnSurface &, const DetId &) const
create a hitless seed from a trajectory state
Definition: FastTSGFromPropagation.cc:432
MagneticField.h
FastTrackerRecHitCollection.h
RPCpg::pts
static const double pts[33]
Definition: Constants.h:30
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
FastTSGFromPropagation::theCategory
std::string theCategory
Definition: FastTSGFromPropagation.h:129
FastTSGFromPropagation::isInvalid::operator()
bool operator()(const TrajectoryMeasurement &measurement)
Definition: FastTSGFromPropagation.h:120
FastTSGFromPropagation::thePropagatorName
std::string thePropagatorName
Definition: FastTSGFromPropagation.h:159
FastTSGFromPropagation::theResetMethod
std::string theResetMethod
Definition: FastTSGFromPropagation.h:155
FastTSGFromPropagation::theTracker
edm::ESHandle< GeometricSearchTracker > theTracker
Definition: FastTSGFromPropagation.h:131
FastTSGFromPropagation::stateOnDet
void stateOnDet(const TrajectoryStateOnSurface &ts, unsigned int detid, PTrajectoryStateOnDet &pts) const
A mere copy (without memory leak) of an existing tracking method.
Definition: FastTSGFromPropagation.cc:554
FastTSGFromPropagation::zDis
double zDis(const TrajectoryStateOnSurface &tsos) const
Definition: FastTSGFromPropagation.cc:498
FreeTrajectoryState
Definition: FreeTrajectoryState.h:27
TrajectoryMeasurement::estimate
float estimate() const
Definition: TrajectoryMeasurement.h:192
SimTrack
Definition: SimTrack.h:9
FastTSGFromPropagation::theService
const MuonServiceProxy * theService
Definition: FastTSGFromPropagation.h:139
GeometricSearchTracker
Definition: GeometricSearchTracker.h:15
MuonServiceProxy.h
FastTSGFromPropagation::theSelectStateFlag
bool theSelectStateFlag
Definition: FastTSGFromPropagation.h:157
TrajectorySeed
Definition: TrajectorySeed.h:18
FastTSGFromPropagation::~FastTSGFromPropagation
~FastTSGFromPropagation() override
destructor
Definition: FastTSGFromPropagation.cc:70
FastTSGFromPropagation::theConfig
const edm::ParameterSet theConfig
Definition: FastTSGFromPropagation.h:167
TrackingRegion
Definition: TrackingRegion.h:41
FastTrackerRecHit.h
FastTSGFromPropagation::passSelection
bool passSelection(const TrajectoryStateOnSurface &) const
check some quantity and beam-spot compatibility and decide to continue
Definition: FastTSGFromPropagation.cc:477
TransientTrackingRecHitBuilder.h
FastTSGFromPropagation
Definition: FastTSGFromPropagation.h:48
ConsumesCollector.h
TrajectoryStateUpdator
Definition: TrajectoryStateUpdator.h:14
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
ParameterSet.h
MuonServiceProxy
Definition: MuonServiceProxy.h:38
FastTSGFromPropagation::theFlexErrorRescaling
double theFlexErrorRescaling
Definition: FastTSGFromPropagation.h:147
FastTSGFromPropagation::theMeasurementTrackerEventToken_
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerEventToken_
Definition: FastTSGFromPropagation.h:171
FastTSGFromPropagation::getRescalingFactor
void getRescalingFactor(const TrackCand &staMuon)
Definition: FastTSGFromPropagation.cc:503
edm::Event
Definition: Event.h:73
TrajectoryMeasurement
Definition: TrajectoryMeasurement.h:25
SimTrackContainer.h
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
FastTSGFromPropagation::isInvalid
Definition: FastTSGFromPropagation.h:119
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
edm::OwnVector< TrackingRecHit >
FastTSGFromPropagation::theAdjustAtIp
bool theAdjustAtIp
Definition: FastTSGFromPropagation.h:163
FastTSGFromPropagation::adjust
void adjust(FreeTrajectoryState &) const
adjust the error matrix of the FTS
Definition: FastTSGFromPropagation.cc:514
TrackerGeometry
Definition: TrackerGeometry.h:14