CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
OutsideInMuonSeeder Class Referencefinal
Inheritance diagram for OutsideInMuonSeeder:
edm::stream::EDProducer<>

Public Member Functions

 OutsideInMuonSeeder (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~OutsideInMuonSeeder () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Private Member Functions

void doDebug (const reco::Track &tk) const
 
int doLayer (const GeometricSearchDet &layer, const TrajectoryStateOnSurface &state, std::vector< TrajectorySeed > &out, const Propagator &muon_propagator, const Propagator &tracker_propagator, const MeasurementTrackerEvent &mte) const
 

Private Attributes

const bool debug_
 Dump deug information. More...
 
const double errorRescaling_
 How much to rescale errors from STA. More...
 
edm::ESHandle< Chi2MeasurementEstimatorBaseestimator_
 
const std::string estimatorName_
 
const bool fromVertex_
 Do inside-out. More...
 
edm::ESHandle< GlobalTrackingGeometrygeometry_
 
const int hitsToTry_
 How many hits to try on same layer. More...
 
const int layersToTry_
 How many layers to try. More...
 
edm::ESHandle< MagneticFieldmagfield_
 
const float maxEtaForTOB_
 
const std::string measurementTrackerName_
 
edm::EDGetTokenT< MeasurementTrackerEventmeasurementTrackerTag_
 
const float minEtaForTEC_
 
edm::ESHandle< PropagatormuonPropagator_
 
const std::string muonPropagatorName_
 
StringCutObjectSelector< reco::Muonselector_
 Muon selection. More...
 
edm::EDGetTokenT< edm::View< reco::Muon > > src_
 Labels for input collections. More...
 
edm::ESHandle< PropagatortrackerPropagator_
 
const std::string trackerPropagatorName_
 
edm::ESHandle< TrajectoryStateUpdatorupdator_
 
const std::string updatorName_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 39 of file OutsideInMuonSeeder.cc.

Constructor & Destructor Documentation

◆ OutsideInMuonSeeder()

OutsideInMuonSeeder::OutsideInMuonSeeder ( const edm::ParameterSet iConfig)
explicit

Definition at line 94 of file OutsideInMuonSeeder.cc.

95  : src_(consumes<edm::View<reco::Muon>>(iConfig.getParameter<edm::InputTag>("src"))),
96  selector_(iConfig.existsAs<std::string>("cut") ? iConfig.getParameter<std::string>("cut") : "", true),
97  layersToTry_(iConfig.getParameter<int32_t>("layersToTry")),
98  hitsToTry_(iConfig.getParameter<int32_t>("hitsToTry")),
99  fromVertex_(iConfig.getParameter<bool>("fromVertex")),
100  errorRescaling_(iConfig.getParameter<double>("errorRescaleFactor")),
101  trackerPropagatorName_(iConfig.getParameter<std::string>("trackerPropagator")),
102  muonPropagatorName_(iConfig.getParameter<std::string>("muonPropagator")),
103  measurementTrackerTag_(consumes<MeasurementTrackerEvent>(edm::InputTag("MeasurementTrackerEvent"))),
104  estimatorName_(iConfig.getParameter<std::string>("hitCollector")),
105  updatorName_("KFUpdator"),
106  minEtaForTEC_(iConfig.getParameter<double>("minEtaForTEC")),
107  maxEtaForTOB_(iConfig.getParameter<double>("maxEtaForTOB")),
108  debug_(iConfig.getUntrackedParameter<bool>("debug", false)) {
109  produces<std::vector<TrajectorySeed>>();
110 }

◆ ~OutsideInMuonSeeder()

OutsideInMuonSeeder::~OutsideInMuonSeeder ( )
inlineoverride

Definition at line 42 of file OutsideInMuonSeeder.cc.

42 {}

Member Function Documentation

◆ doDebug()

void OutsideInMuonSeeder::doDebug ( const reco::Track tk) const
private

Definition at line 297 of file OutsideInMuonSeeder.cc.

297  {
299  std::unique_ptr<Propagator> pmuon_cloned = SetPropagationDirection(*muonPropagator_, alongMomentum);
300  for (unsigned int i = 0; i < tk.recHitsSize(); ++i) {
301  const TrackingRecHit *hit = &*tk.recHit(i);
302  const GeomDet *det = geometry_->idToDet(hit->geographicalId());
303  if (det == nullptr)
304  continue;
305  if (i != 0)
306  tsos = pmuon_cloned->propagate(tsos, det->surface());
307  if (!tsos.isValid())
308  continue;
309  LogDebug("OutsideInMuonSeeder") << " state " << i << " at x = " << tsos.globalPosition()
310  << ", p = " << tsos.globalMomentum() << std::endl;
311  if (hit->isValid()) {
312  LogDebug("OutsideInMuonSeeder") << " valid rechit on detid " << hit->geographicalId().rawId()
313  << std::endl;
314  } else {
315  LogDebug("OutsideInMuonSeeder") << " invalid rechit on detid " << hit->geographicalId().rawId()
316  << std::endl;
317  }
318  }
319 }

References alongMomentum, geometry_, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), mps_fire::i, GlobalTrackingGeometry::idToDet(), trajectoryStateTransform::innerStateOnSurface(), TrajectoryStateOnSurface::isValid(), LogDebug, magfield_, muonPropagator_, reco::Track::recHit(), reco::Track::recHitsSize(), SetPropagationDirection(), and GeomDet::surface().

Referenced by produce().

◆ doLayer()

int OutsideInMuonSeeder::doLayer ( const GeometricSearchDet layer,
const TrajectoryStateOnSurface state,
std::vector< TrajectorySeed > &  out,
const Propagator muon_propagator,
const Propagator tracker_propagator,
const MeasurementTrackerEvent mte 
) const
private

Definition at line 230 of file OutsideInMuonSeeder.cc.

235  {
237  onLayer.rescaleError(errorRescaling_);
238  std::vector<GeometricSearchDet::DetWithState> dets;
239  layer.compatibleDetsV(onLayer, muon_propagator, *estimator_, dets);
240 
241  if (debug_) {
242  LogDebug("OutsideInMuonSeeder") << "Query on layer around x = " << onLayer.globalPosition()
243  << " with local pos error " << sqrt(onLayer.localError().positionError().xx())
244  << " , " << sqrt(onLayer.localError().positionError().yy()) << " , "
245  << " returned " << dets.size() << " compatible detectors" << std::endl;
246  }
247 
248  std::vector<TrajectoryMeasurement> meas;
249  for (std::vector<GeometricSearchDet::DetWithState>::const_iterator it = dets.begin(), ed = dets.end(); it != ed;
250  ++it) {
251  MeasurementDetWithData det = measurementTracker.idToDet(it->first->geographicalId());
252  if (det.isNull()) {
253  std::cerr << "BOGUS detid " << it->first->geographicalId().rawId() << std::endl;
254  continue;
255  }
256  if (!it->second.isValid())
257  continue;
258  std::vector<TrajectoryMeasurement> mymeas =
259  det.fastMeasurements(it->second, state, tracker_propagator, *estimator_);
260  if (debug_)
261  LogDebug("OutsideInMuonSeeder") << "Query on detector " << it->first->geographicalId().rawId() << " returned "
262  << mymeas.size() << " measurements." << std::endl;
263  for (std::vector<TrajectoryMeasurement>::const_iterator it2 = mymeas.begin(), ed2 = mymeas.end(); it2 != ed2;
264  ++it2) {
265  if (it2->recHit()->isValid())
266  meas.push_back(*it2);
267  }
268  }
269  int found = 0;
270  std::sort(meas.begin(), meas.end(), TrajMeasLessEstim());
271  for (std::vector<TrajectoryMeasurement>::const_iterator it2 = meas.begin(), ed2 = meas.end(); it2 != ed2; ++it2) {
272  if (debug_) {
273  LogDebug("OutsideInMuonSeeder") << " inspecting Hit with chi2 = " << it2->estimate() << std::endl;
274  LogDebug("OutsideInMuonSeeder") << " track state " << it2->forwardPredictedState().globalPosition()
275  << std::endl;
276  LogDebug("OutsideInMuonSeeder") << " rechit position " << it2->recHit()->globalPosition() << std::endl;
277  }
278  TrajectoryStateOnSurface updated = updator_->update(it2->forwardPredictedState(), *it2->recHit());
279  if (updated.isValid()) {
280  if (debug_)
281  LogDebug("OutsideInMuonSeeder") << " --> updated state: x = " << updated.globalPosition()
282  << ", p = " << updated.globalMomentum() << std::endl;
284  seedHits.push_back(*it2->recHit()->hit());
285  PTrajectoryStateOnDet const &pstate =
286  trajectoryStateTransform::persistentState(updated, it2->recHit()->geographicalId().rawId());
287  TrajectorySeed seed(pstate, std::move(seedHits), oppositeToMomentum);
288  out.push_back(seed);
289  found++;
290  if (found == hitsToTry_)
291  break;
292  }
293  }
294  return found;
295 }

References EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0::cerr, debug_, errorRescaling_, estimator_, MeasurementDetWithData::fastMeasurements(), newFWLiteAna::found, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), hitsToTry_, MeasurementDetWithData::isNull(), TrajectoryStateOnSurface::isValid(), phase1PixelTopology::layer, TrajectoryStateOnSurface::localError(), LogDebug, HLTSiStripMonitoring_cff::measurementTracker, eostools::move(), oppositeToMomentum, MillePedeFileConverter_cfg::out, trajectoryStateTransform::persistentState(), LocalTrajectoryError::positionError(), edm::OwnVector< T, P >::push_back(), TrajectoryStateOnSurface::rescaleError(), fileCollector::seed, jetUpdater_cfi::sort, mathSSE::sqrt(), TrajectoryStateUpdator::update(), updator_, LocalError::xx(), and LocalError::yy().

Referenced by produce().

◆ produce()

void OutsideInMuonSeeder::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 112 of file OutsideInMuonSeeder.cc.

112  {
113  using namespace edm;
114  using namespace std;
115 
122 
125 
126  ESHandle<TrackerGeometry> tmpTkGeometry;
127  iSetup.get<TrackerDigiGeometryRecord>().get(tmpTkGeometry);
128 
130  iEvent.getByToken(src_, src);
131 
132  auto out = std::make_unique<std::vector<TrajectorySeed>>();
133 
134  for (auto const &mu : *src) {
135  if (mu.outerTrack().isNull() || !selector_(mu))
136  continue;
137  if (debug_ && mu.innerTrack().isNonnull())
138  doDebug(*mu.innerTrack());
139 
140  // Better clone here and not directly into doLayer to avoid
141  // useless clone/destroy operations to set, in the end, the
142  // very same direction every single time.
143  std::unique_ptr<Propagator> pmuon_cloned =
145  std::unique_ptr<Propagator> ptracker_cloned = SetPropagationDirection(*trackerPropagator_, alongMomentum);
146 
147  int sizeBefore = out->size();
148  if (debug_)
149  LogDebug("OutsideInMuonSeeder") << "\n\n\nSeeding for muon of pt " << mu.pt() << ", eta " << mu.eta() << ", phi "
150  << mu.phi() << std::endl;
151  const reco::Track &tk = *mu.outerTrack();
152 
156 
157  if (std::abs(tk.eta()) < maxEtaForTOB_) {
158  std::vector<BarrelDetLayer const *> const &tob = measurementTracker->geometricSearchTracker()->tobLayers();
159  int found = 0;
160  int iLayer = tob.size();
161  if (iLayer == 0)
162  LogError("OutsideInMuonSeeder") << "TOB has no layers.";
163 
164  for (auto it = tob.rbegin(), ed = tob.rend(); it != ed; ++it, --iLayer) {
165  if (debug_)
166  LogDebug("OutsideInMuonSeeder") << "\n ==== Trying TOB " << iLayer << " ====" << std::endl;
167  if (doLayer(**it, state, *out, *(pmuon_cloned.get()), *(ptracker_cloned.get()), *measurementTracker)) {
168  if (++found == layersToTry_)
169  break;
170  }
171  }
172  }
173  if (tk.eta() > minEtaForTEC_) {
174  const auto &forwLayers = tmpTkGeometry->isThere(GeomDetEnumerators::P2OTEC)
175  ? measurementTracker->geometricSearchTracker()->posTidLayers()
176  : measurementTracker->geometricSearchTracker()->posTecLayers();
177  if (tmpTkGeometry->isThere(GeomDetEnumerators::P2OTEC)) {
178  LogDebug("OutsideInMuonSeeder") << "\n We are using the Phase2 Outer Tracker (defined as a TID+). ";
179  }
180  LogTrace("OutsideInMuonSeeder") << "\n ==== TEC+ tot layers " << forwLayers.size() << " ====" << std::endl;
181  int found = 0;
182  int iLayer = forwLayers.size();
183  if (iLayer == 0)
184  LogError("OutsideInMuonSeeder") << "TEC+ has no layers.";
185 
186  if (debug_)
187  LogDebug("OutsideInMuonSeeder") << "\n ==== Tot layers " << forwLayers.size() << " ====" << std::endl;
188  for (auto it = forwLayers.rbegin(), ed = forwLayers.rend(); it != ed; ++it, --iLayer) {
189  if (debug_)
190  LogDebug("OutsideInMuonSeeder") << "\n ==== Trying Forward Layer +" << +iLayer << " ====" << std::endl;
191  if (doLayer(**it, state, *out, *(pmuon_cloned.get()), *(ptracker_cloned.get()), *measurementTracker)) {
192  if (++found == layersToTry_)
193  break;
194  }
195  }
196  }
197  if (tk.eta() < -minEtaForTEC_) {
198  const auto &forwLayers = tmpTkGeometry->isThere(GeomDetEnumerators::P2OTEC)
199  ? measurementTracker->geometricSearchTracker()->negTidLayers()
200  : measurementTracker->geometricSearchTracker()->negTecLayers();
201  if (tmpTkGeometry->isThere(GeomDetEnumerators::P2OTEC)) {
202  LogDebug("OutsideInMuonSeeder") << "\n We are using the Phase2 Outer Tracker (defined as a TID-). ";
203  }
204  LogTrace("OutsideInMuonSeeder") << "\n ==== TEC- tot layers " << forwLayers.size() << " ====" << std::endl;
205  int found = 0;
206  int iLayer = forwLayers.size();
207  if (iLayer == 0)
208  LogError("OutsideInMuonSeeder") << "TEC- has no layers.";
209 
210  if (debug_)
211  LogDebug("OutsideInMuonSeeder") << "\n ==== Tot layers " << forwLayers.size() << " ====" << std::endl;
212  for (auto it = forwLayers.rbegin(), ed = forwLayers.rend(); it != ed; ++it, --iLayer) {
213  if (debug_)
214  LogDebug("OutsideInMuonSeeder") << "\n ==== Trying Forward Layer -" << -iLayer << " ====" << std::endl;
215  if (doLayer(**it, state, *out, *(pmuon_cloned.get()), *(ptracker_cloned.get()), *measurementTracker)) {
216  if (++found == layersToTry_)
217  break;
218  }
219  }
220  }
221  if (debug_)
222  LogDebug("OutsideInMuonSeeder") << "Outcome of seeding for muon of pt " << mu.pt() << ", eta " << mu.eta()
223  << ", phi " << mu.phi() << ": found " << (out->size() - sizeBefore) << " seeds."
224  << std::endl;
225  }
226 
227  iEvent.put(std::move(out));
228 }

References funct::abs(), alongMomentum, debug_, doDebug(), doLayer(), estimator_, estimatorName_, reco::TrackBase::eta(), newFWLiteAna::found, fromVertex_, geometry_, edm::EventSetup::get(), get, iEvent, trajectoryStateTransform::initialFreeState(), trajectoryStateTransform::innerStateOnSurface(), TrackerGeometry::isThere(), layersToTry_, LogDebug, LogTrace, magfield_, maxEtaForTOB_, HLTSiStripMonitoring_cff::measurementTracker, measurementTrackerTag_, minEtaForTEC_, eostools::move(), amptDefaultParameters_cff::mu, muonPropagator_, muonPropagatorName_, oppositeToMomentum, MillePedeFileConverter_cfg::out, GeomDetEnumerators::P2OTEC, edm::ESHandle< T >::product(), selector_, SetPropagationDirection(), TrackRefitter_38T_cff::src, src_, trackerPropagator_, trackerPropagatorName_, updator_, and updatorName_.

Member Data Documentation

◆ debug_

const bool OutsideInMuonSeeder::debug_
private

Dump deug information.

Definition at line 83 of file OutsideInMuonSeeder.cc.

Referenced by doLayer(), and produce().

◆ errorRescaling_

const double OutsideInMuonSeeder::errorRescaling_
private

How much to rescale errors from STA.

Definition at line 63 of file OutsideInMuonSeeder.cc.

Referenced by doLayer().

◆ estimator_

edm::ESHandle<Chi2MeasurementEstimatorBase> OutsideInMuonSeeder::estimator_
private

Definition at line 79 of file OutsideInMuonSeeder.cc.

Referenced by doLayer(), and produce().

◆ estimatorName_

const std::string OutsideInMuonSeeder::estimatorName_
private

Definition at line 69 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ fromVertex_

const bool OutsideInMuonSeeder::fromVertex_
private

Do inside-out.

Definition at line 60 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ geometry_

edm::ESHandle<GlobalTrackingGeometry> OutsideInMuonSeeder::geometry_
private

Definition at line 78 of file OutsideInMuonSeeder.cc.

Referenced by doDebug(), and produce().

◆ hitsToTry_

const int OutsideInMuonSeeder::hitsToTry_
private

How many hits to try on same layer.

Definition at line 57 of file OutsideInMuonSeeder.cc.

Referenced by doLayer().

◆ layersToTry_

const int OutsideInMuonSeeder::layersToTry_
private

How many layers to try.

Definition at line 54 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ magfield_

edm::ESHandle<MagneticField> OutsideInMuonSeeder::magfield_
private

Definition at line 75 of file OutsideInMuonSeeder.cc.

Referenced by doDebug(), and produce().

◆ maxEtaForTOB_

const float OutsideInMuonSeeder::maxEtaForTOB_
private

Definition at line 73 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ measurementTrackerName_

const std::string OutsideInMuonSeeder::measurementTrackerName_
private

Definition at line 68 of file OutsideInMuonSeeder.cc.

◆ measurementTrackerTag_

edm::EDGetTokenT<MeasurementTrackerEvent> OutsideInMuonSeeder::measurementTrackerTag_
private

Definition at line 67 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ minEtaForTEC_

const float OutsideInMuonSeeder::minEtaForTEC_
private

Definition at line 72 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ muonPropagator_

edm::ESHandle<Propagator> OutsideInMuonSeeder::muonPropagator_
private

Definition at line 76 of file OutsideInMuonSeeder.cc.

Referenced by doDebug(), and produce().

◆ muonPropagatorName_

const std::string OutsideInMuonSeeder::muonPropagatorName_
private

Definition at line 66 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ selector_

StringCutObjectSelector<reco::Muon> OutsideInMuonSeeder::selector_
private

Muon selection.

Definition at line 51 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ src_

edm::EDGetTokenT<edm::View<reco::Muon> > OutsideInMuonSeeder::src_
private

Labels for input collections.

Definition at line 48 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ trackerPropagator_

edm::ESHandle<Propagator> OutsideInMuonSeeder::trackerPropagator_
private

Definition at line 77 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ trackerPropagatorName_

const std::string OutsideInMuonSeeder::trackerPropagatorName_
private

Definition at line 65 of file OutsideInMuonSeeder.cc.

Referenced by produce().

◆ updator_

edm::ESHandle<TrajectoryStateUpdator> OutsideInMuonSeeder::updator_
private

Definition at line 80 of file OutsideInMuonSeeder.cc.

Referenced by doLayer(), and produce().

◆ updatorName_

const std::string OutsideInMuonSeeder::updatorName_
private

Definition at line 70 of file OutsideInMuonSeeder.cc.

Referenced by produce().

edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
OutsideInMuonSeeder::trackerPropagatorName_
const std::string trackerPropagatorName_
Definition: OutsideInMuonSeeder.cc:65
OutsideInMuonSeeder::updatorName_
const std::string updatorName_
Definition: OutsideInMuonSeeder.cc:70
mps_fire.i
i
Definition: mps_fire.py:428
MeasurementDetWithData::fastMeasurements
std::vector< TrajectoryMeasurement > fastMeasurements(const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &tsos2, const Propagator &prop, const MeasurementEstimator &est) const
Definition: MeasurementDetWithData.h:46
OutsideInMuonSeeder::selector_
StringCutObjectSelector< reco::Muon > selector_
Muon selection.
Definition: OutsideInMuonSeeder.cc:51
OutsideInMuonSeeder::magfield_
edm::ESHandle< MagneticField > magfield_
Definition: OutsideInMuonSeeder.cc:75
GeomDet
Definition: GeomDet.h:27
trajectoryStateTransform::initialFreeState
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:58
HLTSiStripMonitoring_cff.measurementTracker
measurementTracker
Definition: HLTSiStripMonitoring_cff.py:178
OutsideInMuonSeeder::layersToTry_
const int layersToTry_
How many layers to try.
Definition: OutsideInMuonSeeder.cc:54
OutsideInMuonSeeder::errorRescaling_
const double errorRescaling_
How much to rescale errors from STA.
Definition: OutsideInMuonSeeder.cc:63
amptDefaultParameters_cff.mu
mu
Definition: amptDefaultParameters_cff.py:16
edm
HLT enums.
Definition: AlignableModifier.h:19
trajectoryStateTransform::persistentState
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
Definition: TrajectoryStateTransform.cc:14
TrajectoryStateOnSurface::globalPosition
GlobalPoint globalPosition() const
Definition: TrajectoryStateOnSurface.h:65
oppositeToMomentum
Definition: PropagationDirection.h:4
GlobalTrackingGeometryRecord
Definition: GlobalTrackingGeometryRecord.h:17
TrajMeasLessEstim
Definition: TrajMeasLessEstim.h:10
SetPropagationDirection
std::unique_ptr< Propagator > SetPropagationDirection(Propagator const &iprop, PropagationDirection dir)
Definition: HelperPropagatorUtility.cc:5
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::ParameterSet::existsAs
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle< MeasurementTrackerEvent >
OutsideInMuonSeeder::debug_
const bool debug_
Dump deug information.
Definition: OutsideInMuonSeeder.cc:83
trajectoryStateTransform
Definition: TrajectoryStateTransform.h:15
fileCollector.seed
seed
Definition: fileCollector.py:127
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
reco::Track::recHitsSize
size_t recHitsSize() const
Get number of RecHits. (Warning, this includes invalid hits, which are not physical hits).
Definition: Track.h:97
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
OutsideInMuonSeeder::measurementTrackerTag_
edm::EDGetTokenT< MeasurementTrackerEvent > measurementTrackerTag_
Definition: OutsideInMuonSeeder.cc:67
OutsideInMuonSeeder::estimatorName_
const std::string estimatorName_
Definition: OutsideInMuonSeeder.cc:69
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
reco::Track
Definition: Track.h:27
edm::ESHandle< TrackerGeometry >
GeomDetEnumerators::P2OTEC
Definition: GeomDetEnumerators.h:24
TrackerGeometry::isThere
bool isThere(GeomDetEnumerators::SubDetector subdet) const
Definition: TrackerGeometry.cc:219
MeasurementDetWithData::isNull
bool isNull() const
Definition: MeasurementDetWithData.h:13
phase1PixelTopology::layer
constexpr std::array< uint8_t, layerIndexSize > layer
Definition: phase1PixelTopology.h:99
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::View
Definition: CaloClusterFwd.h:14
TrajectoryStateUpdator::update
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
TrackRefitter_38T_cff.src
src
Definition: TrackRefitter_38T_cff.py:24
OutsideInMuonSeeder::doDebug
void doDebug(const reco::Track &tk) const
Definition: OutsideInMuonSeeder.cc:297
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
reco::TrackBase::eta
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:652
OutsideInMuonSeeder::updator_
edm::ESHandle< TrajectoryStateUpdator > updator_
Definition: OutsideInMuonSeeder.cc:80
iEvent
int iEvent
Definition: GenABIO.cc:224
OutsideInMuonSeeder::muonPropagatorName_
const std::string muonPropagatorName_
Definition: OutsideInMuonSeeder.cc:66
OutsideInMuonSeeder::doLayer
int doLayer(const GeometricSearchDet &layer, const TrajectoryStateOnSurface &state, std::vector< TrajectorySeed > &out, const Propagator &muon_propagator, const Propagator &tracker_propagator, const MeasurementTrackerEvent &mte) const
Definition: OutsideInMuonSeeder.cc:230
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
reco::Track::recHit
TrackingRecHitRef recHit(size_t i) const
Get i-th hit on the track.
Definition: Track.h:94
OutsideInMuonSeeder::geometry_
edm::ESHandle< GlobalTrackingGeometry > geometry_
Definition: OutsideInMuonSeeder.cc:78
OutsideInMuonSeeder::hitsToTry_
const int hitsToTry_
How many hits to try on same layer.
Definition: OutsideInMuonSeeder.cc:57
TrackingRecHit
Definition: TrackingRecHit.h:21
OutsideInMuonSeeder::maxEtaForTOB_
const float maxEtaForTOB_
Definition: OutsideInMuonSeeder.cc:73
TrajectoryStateOnSurface::globalMomentum
GlobalVector globalMomentum() const
Definition: TrajectoryStateOnSurface.h:66
OutsideInMuonSeeder::muonPropagator_
edm::ESHandle< Propagator > muonPropagator_
Definition: OutsideInMuonSeeder.cc:76
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
MeasurementDetWithData
Definition: MeasurementDetWithData.h:6
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
GlobalTrackingGeometry::idToDet
const GeomDet * idToDet(DetId) const override
Definition: GlobalTrackingGeometry.cc:44
TrajectorySeed
Definition: TrajectorySeed.h:18
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
OutsideInMuonSeeder::estimator_
edm::ESHandle< Chi2MeasurementEstimatorBase > estimator_
Definition: OutsideInMuonSeeder.cc:79
edm::OwnVector::push_back
void push_back(D *&d)
Definition: OwnVector.h:326
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LogTrace
#define LogTrace(id)
Definition: MessageLogger.h:234
PTrajectoryStateOnDet
Definition: PTrajectoryStateOnDet.h:10
OutsideInMuonSeeder::src_
edm::EDGetTokenT< edm::View< reco::Muon > > src_
Labels for input collections.
Definition: OutsideInMuonSeeder.cc:48
trajectoryStateTransform::innerStateOnSurface
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
Definition: TrajectoryStateTransform.cc:110
EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.cerr
cerr
Definition: EcnaPython_AdcPeg12_S1_10_R170298_1_0_150_Dee0.py:8
OutsideInMuonSeeder::fromVertex_
const bool fromVertex_
Do inside-out.
Definition: OutsideInMuonSeeder.cc:60
edm::InputTag
Definition: InputTag.h:15
OutsideInMuonSeeder::trackerPropagator_
edm::ESHandle< Propagator > trackerPropagator_
Definition: OutsideInMuonSeeder.cc:77
alongMomentum
Definition: PropagationDirection.h:4
TrajectoryStateOnSurface::isValid
bool isValid() const
Definition: TrajectoryStateOnSurface.h:54
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::OwnVector< TrackingRecHit >
OutsideInMuonSeeder::minEtaForTEC_
const float minEtaForTEC_
Definition: OutsideInMuonSeeder.cc:72
TrackingComponentsRecord
Definition: TrackingComponentsRecord.h:12