|
|
Definition at line 39 of file OutsideInMuonSeeder.cc.
◆ OutsideInMuonSeeder()
◆ ~OutsideInMuonSeeder()
OutsideInMuonSeeder::~OutsideInMuonSeeder |
( |
| ) |
|
|
inlineoverride |
◆ doDebug()
void OutsideInMuonSeeder::doDebug |
( |
const reco::Track & |
tk | ) |
const |
|
private |
Definition at line 297 of file OutsideInMuonSeeder.cc.
306 tsos = pmuon_cloned->propagate(tsos, det->
surface());
311 if (
hit->isValid()) {
312 LogDebug(
"OutsideInMuonSeeder") <<
" valid rechit on detid " <<
hit->geographicalId().rawId()
315 LogDebug(
"OutsideInMuonSeeder") <<
" invalid rechit on detid " <<
hit->geographicalId().rawId()
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()
Definition at line 230 of file OutsideInMuonSeeder.cc.
238 std::vector<GeometricSearchDet::DetWithState> dets;
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;
248 std::vector<TrajectoryMeasurement> meas;
249 for (std::vector<GeometricSearchDet::DetWithState>::const_iterator it = dets.begin(), ed = dets.end(); it != ed;
253 std::cerr <<
"BOGUS detid " << it->first->geographicalId().rawId() << std::endl;
256 if (!it->second.isValid())
258 std::vector<TrajectoryMeasurement> mymeas =
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;
265 if (it2->recHit()->isValid())
266 meas.push_back(*it2);
271 for (std::vector<TrajectoryMeasurement>::const_iterator it2 = meas.begin(), ed2 = meas.end(); it2 != ed2; ++it2) {
273 LogDebug(
"OutsideInMuonSeeder") <<
" inspecting Hit with chi2 = " << it2->estimate() << std::endl;
274 LogDebug(
"OutsideInMuonSeeder") <<
" track state " << it2->forwardPredictedState().globalPosition()
276 LogDebug(
"OutsideInMuonSeeder") <<
" rechit position " << it2->recHit()->globalPosition() << std::endl;
284 seedHits.
push_back(*it2->recHit()->hit());
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()
Definition at line 112 of file OutsideInMuonSeeder.cc.
132 auto out = std::make_unique<std::vector<TrajectorySeed>>();
134 for (
auto const &
mu : *
src) {
137 if (
debug_ &&
mu.innerTrack().isNonnull())
143 std::unique_ptr<Propagator> pmuon_cloned =
147 int sizeBefore =
out->size();
149 LogDebug(
"OutsideInMuonSeeder") <<
"\n\n\nSeeding for muon of pt " <<
mu.pt() <<
", eta " <<
mu.eta() <<
", phi "
150 <<
mu.phi() << std::endl;
158 std::vector<BarrelDetLayer const *>
const &tob =
measurementTracker->geometricSearchTracker()->tobLayers();
160 int iLayer = tob.size();
162 LogError(
"OutsideInMuonSeeder") <<
"TOB has no layers.";
164 for (
auto it = tob.rbegin(), ed = tob.rend(); it != ed; ++it, --iLayer) {
166 LogDebug(
"OutsideInMuonSeeder") <<
"\n ==== Trying TOB " << iLayer <<
" ====" << std::endl;
178 LogDebug(
"OutsideInMuonSeeder") <<
"\n We are using the Phase2 Outer Tracker (defined as a TID+). ";
180 LogTrace(
"OutsideInMuonSeeder") <<
"\n ==== TEC+ tot layers " << forwLayers.size() <<
" ====" << std::endl;
182 int iLayer = forwLayers.size();
184 LogError(
"OutsideInMuonSeeder") <<
"TEC+ has no layers.";
187 LogDebug(
"OutsideInMuonSeeder") <<
"\n ==== Tot layers " << forwLayers.size() <<
" ====" << std::endl;
188 for (
auto it = forwLayers.rbegin(), ed = forwLayers.rend(); it != ed; ++it, --iLayer) {
190 LogDebug(
"OutsideInMuonSeeder") <<
"\n ==== Trying Forward Layer +" << +iLayer <<
" ====" << std::endl;
202 LogDebug(
"OutsideInMuonSeeder") <<
"\n We are using the Phase2 Outer Tracker (defined as a TID-). ";
204 LogTrace(
"OutsideInMuonSeeder") <<
"\n ==== TEC- tot layers " << forwLayers.size() <<
" ====" << std::endl;
206 int iLayer = forwLayers.size();
208 LogError(
"OutsideInMuonSeeder") <<
"TEC- has no layers.";
211 LogDebug(
"OutsideInMuonSeeder") <<
"\n ==== Tot layers " << forwLayers.size() <<
" ====" << std::endl;
212 for (
auto it = forwLayers.rbegin(), ed = forwLayers.rend(); it != ed; ++it, --iLayer) {
214 LogDebug(
"OutsideInMuonSeeder") <<
"\n ==== Trying Forward Layer -" << -iLayer <<
" ====" << std::endl;
222 LogDebug(
"OutsideInMuonSeeder") <<
"Outcome of seeding for muon of pt " <<
mu.pt() <<
", eta " <<
mu.eta()
223 <<
", phi " <<
mu.phi() <<
": found " << (
out->size() - sizeBefore) <<
" seeds."
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_.
◆ debug_
const bool OutsideInMuonSeeder::debug_ |
|
private |
◆ errorRescaling_
const double OutsideInMuonSeeder::errorRescaling_ |
|
private |
◆ estimator_
◆ estimatorName_
const std::string OutsideInMuonSeeder::estimatorName_ |
|
private |
◆ fromVertex_
const bool OutsideInMuonSeeder::fromVertex_ |
|
private |
◆ geometry_
◆ hitsToTry_
const int OutsideInMuonSeeder::hitsToTry_ |
|
private |
◆ layersToTry_
const int OutsideInMuonSeeder::layersToTry_ |
|
private |
◆ magfield_
◆ maxEtaForTOB_
const float OutsideInMuonSeeder::maxEtaForTOB_ |
|
private |
◆ measurementTrackerName_
const std::string OutsideInMuonSeeder::measurementTrackerName_ |
|
private |
◆ measurementTrackerTag_
◆ minEtaForTEC_
const float OutsideInMuonSeeder::minEtaForTEC_ |
|
private |
◆ muonPropagator_
◆ muonPropagatorName_
const std::string OutsideInMuonSeeder::muonPropagatorName_ |
|
private |
◆ selector_
◆ src_
◆ trackerPropagator_
◆ trackerPropagatorName_
const std::string OutsideInMuonSeeder::trackerPropagatorName_ |
|
private |
◆ updator_
◆ updatorName_
const std::string OutsideInMuonSeeder::updatorName_ |
|
private |
T const * product() const
const std::string trackerPropagatorName_
const std::string updatorName_
std::vector< TrajectoryMeasurement > fastMeasurements(const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &tsos2, const Propagator &prop, const MeasurementEstimator &est) const
StringCutObjectSelector< reco::Muon > selector_
Muon selection.
edm::ESHandle< MagneticField > magfield_
const int layersToTry_
How many layers to try.
const double errorRescaling_
How much to rescale errors from STA.
GlobalPoint globalPosition() const
std::unique_ptr< Propagator > SetPropagationDirection(Propagator const &iprop, PropagationDirection dir)
T getUntrackedParameter(std::string const &, T const &) const
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
const bool debug_
Dump deug information.
const Plane & surface() const
The nominal surface of the GeomDet.
size_t recHitsSize() const
Get number of RecHits. (Warning, this includes invalid hits, which are not physical hits).
edm::EDGetTokenT< MeasurementTrackerEvent > measurementTrackerTag_
const std::string estimatorName_
bool isThere(GeomDetEnumerators::SubDetector subdet) const
constexpr std::array< uint8_t, layerIndexSize > layer
virtual TrajectoryStateOnSurface update(const TrajectoryStateOnSurface &, const TrackingRecHit &) const =0
void doDebug(const reco::Track &tk) const
double eta() const
pseudorapidity of momentum vector
edm::ESHandle< TrajectoryStateUpdator > updator_
const std::string muonPropagatorName_
int doLayer(const GeometricSearchDet &layer, const TrajectoryStateOnSurface &state, std::vector< TrajectorySeed > &out, const Propagator &muon_propagator, const Propagator &tracker_propagator, const MeasurementTrackerEvent &mte) const
Log< level::Error, false > LogError
TrackingRecHitRef recHit(size_t i) const
Get i-th hit on the track.
edm::ESHandle< GlobalTrackingGeometry > geometry_
const int hitsToTry_
How many hits to try on same layer.
const float maxEtaForTOB_
GlobalVector globalMomentum() const
edm::ESHandle< Propagator > muonPropagator_
const GeomDet * idToDet(DetId) const override
T getParameter(std::string const &) const
edm::ESHandle< Chi2MeasurementEstimatorBase > estimator_
Abs< T >::type abs(const T &t)
edm::EDGetTokenT< edm::View< reco::Muon > > src_
Labels for input collections.
const bool fromVertex_
Do inside-out.
edm::ESHandle< Propagator > trackerPropagator_
const float minEtaForTEC_