CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
OutsideInMuonSeeder Class Reference
Inheritance diagram for OutsideInMuonSeeder:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 OutsideInMuonSeeder (const edm::ParameterSet &iConfig)
 
virtual void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
virtual ~OutsideInMuonSeeder ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

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

bool debug_
 Dump deug information. More...
 
Plane::PlanePointer dummyPlane_
 Surface used to make a TSOS at the PCA to the beamline. More...
 
double errorRescaling_
 How much to rescale errors from STA. More...
 
edm::ESHandle
< Chi2MeasurementEstimatorBase
estimator_
 
std::string estimatorName_
 
bool fromVertex_
 Do inside-out. More...
 
edm::ESHandle
< GlobalTrackingGeometry
geometry_
 
int hitsToTry_
 How many hits to try on same layer. More...
 
int layersToTry_
 How many layers to try. More...
 
edm::ESHandle< MagneticFieldmagfield_
 
double maxEtaForTOB_
 
std::string measurementTrackerName_
 
edm::EDGetTokenT
< MeasurementTrackerEvent
measurementTrackerTag_
 
double minEtaForTEC_
 
edm::ESHandle< PropagatormuonPropagator_
 
std::string muonPropagatorName_
 
StringCutObjectSelector
< reco::Muon
selector_
 Muon selection. More...
 
edm::EDGetTokenT< edm::View
< reco::Muon > > 
src_
 Labels for input collections. More...
 
edm::ESHandle< PropagatortrackerPropagator_
 
std::string trackerPropagatorName_
 
edm::ESHandle
< TrajectoryStateUpdator
updator_
 
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, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 44 of file OutsideInMuonSeeder.cc.

Constructor & Destructor Documentation

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

Definition at line 102 of file OutsideInMuonSeeder.cc.

References updatorName_.

102  :
104  selector_(iConfig.existsAs<std::string>("cut") ? iConfig.getParameter<std::string>("cut") : "", true),
105  layersToTry_(iConfig.getParameter<int32_t>("layersToTry")),
106  hitsToTry_(iConfig.getParameter<int32_t>("hitsToTry")),
107  fromVertex_(iConfig.getParameter<bool>("fromVertex")),
108  errorRescaling_(iConfig.getParameter<double>("errorRescaleFactor")),
109  trackerPropagatorName_(iConfig.getParameter<std::string>("trackerPropagator")),
110  muonPropagatorName_(iConfig.getParameter<std::string>("muonPropagator")),
111  measurementTrackerTag_(consumes<MeasurementTrackerEvent>(edm::InputTag("MeasurementTrackerEvent"))),
112  estimatorName_(iConfig.getParameter<std::string>("hitCollector")),
113  minEtaForTEC_(iConfig.getParameter<double>("minEtaForTEC")),
114  maxEtaForTOB_(iConfig.getParameter<double>("maxEtaForTOB")),
115  debug_(iConfig.getUntrackedParameter<bool>("debug",false)),
117 {
118  produces<std::vector<TrajectorySeed> >();
119  updatorName_ = "KFUpdator";
120 }
int hitsToTry_
How many hits to try on same layer.
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:186
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::string trackerPropagatorName_
bool debug_
Dump deug information.
static PlanePointer build(Args &&...args)
Definition: Plane.h:33
int layersToTry_
How many layers to try.
StringCutObjectSelector< reco::Muon > selector_
Muon selection.
double errorRescaling_
How much to rescale errors from STA.
edm::EDGetTokenT< edm::View< reco::Muon > > src_
Labels for input collections.
edm::EDGetTokenT< MeasurementTrackerEvent > measurementTrackerTag_
Plane::PlanePointer dummyPlane_
Surface used to make a TSOS at the PCA to the beamline.
bool fromVertex_
Do inside-out.
virtual OutsideInMuonSeeder::~OutsideInMuonSeeder ( )
inlinevirtual

Definition at line 47 of file OutsideInMuonSeeder.cc.

47 { }

Member Function Documentation

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

Definition at line 265 of file OutsideInMuonSeeder.cc.

References alongMomentum, gather_cfg::cout, TrackingRecHit::geographicalId(), geometry_, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), i, trajectoryStateTransform::innerStateOnSurface(), TrajectoryStateOnSurface::isValid(), TrackingRecHit::isValid(), magfield_, muonPropagator_, DetId::rawId(), reco::Track::recHit(), reco::Track::recHitsSize(), SetPropagationDirection(), and GeomDet::surface().

Referenced by produce().

265  {
267  std::unique_ptr<Propagator> pmuon_cloned = SetPropagationDirection(*muonPropagator_, alongMomentum);
268  for (unsigned int i = 0; i < tk.recHitsSize(); ++i) {
269  const TrackingRecHit *hit = &*tk.recHit(i);
270  const GeomDet *det = geometry_->idToDet(hit->geographicalId());
271  if (det == 0) continue;
272  if (i != 0) tsos = pmuon_cloned->propagate(tsos, det->surface());
273  if (!tsos.isValid()) continue;
274  std::cout << " state " << i << " at x = " << tsos.globalPosition() << ", p = " << tsos.globalMomentum() << std::endl;
275  if (hit->isValid()) {
276  std::cout << " valid rechit on detid " << hit->geographicalId().rawId() << std::endl;
277  } else {
278  std::cout << " invalid rechit on detid " << hit->geographicalId().rawId() << std::endl;
279  }
280  }
281 }
int i
Definition: DBlmapReader.cc:9
size_t recHitsSize() const
Get number of RecHits. (Warning, this includes invalid hits, which are not physical hits)...
Definition: Track.h:119
edm::ESHandle< MagneticField > magfield_
edm::ESHandle< GlobalTrackingGeometry > geometry_
GlobalPoint globalPosition() const
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:40
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
std::unique_ptr< Propagator > SetPropagationDirection(Propagator const &iprop, PropagationDirection dir)
edm::ESHandle< Propagator > muonPropagator_
bool isValid() const
GlobalVector globalMomentum() const
TrackingRecHitRef recHit(size_t i) const
Get i-th hit on the track.
Definition: Track.h:114
tuple cout
Definition: gather_cfg.py:145
DetId geographicalId() const
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
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 214 of file OutsideInMuonSeeder.cc.

References ecal_dqm_sourceclient-live_cfg::cerr, GeometricSearchDet::compatibleDetsV(), gather_cfg::cout, debug_, errorRescaling_, estimator_, MeasurementDetWithData::fastMeasurements(), newFWLiteAna::found, TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), hitsToTry_, MeasurementTrackerEvent::idToDet(), MeasurementDetWithData::isNull(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localError(), eostools::move(), oppositeToMomentum, trajectoryStateTransform::persistentState(), LocalTrajectoryError::positionError(), edm::OwnVector< T, P >::push_back(), TrajectoryStateOnSurface::rescaleError(), fileCollector::seed, mathSSE::sqrt(), updator_, LocalError::xx(), and LocalError::yy().

Referenced by produce().

219  {
220  TrajectoryStateOnSurface onLayer(state);
221  onLayer.rescaleError(errorRescaling_);
222  std::vector< GeometricSearchDet::DetWithState > dets;
223  layer.compatibleDetsV(onLayer, muon_propagator, *estimator_, dets);
224 
225  if (debug_) {
226  std::cout << "Query on layer around x = " << onLayer.globalPosition() <<
227  " with local pos error " << sqrt(onLayer.localError().positionError().xx()) << " , " << sqrt(onLayer.localError().positionError().yy()) << " , " <<
228  " returned " << dets.size() << " compatible detectors" << std::endl;
229  }
230 
231  std::vector<TrajectoryMeasurement> meas;
232  for (std::vector<GeometricSearchDet::DetWithState>::const_iterator it = dets.begin(), ed = dets.end(); it != ed; ++it) {
233  MeasurementDetWithData det = measurementTracker.idToDet(it->first->geographicalId());
234  if (det.isNull()) { std::cerr << "BOGUS detid " << it->first->geographicalId().rawId() << std::endl; continue; }
235  if (!it->second.isValid()) continue;
236  std::vector < TrajectoryMeasurement > mymeas = det.fastMeasurements(it->second, state, tracker_propagator, *estimator_);
237  if (debug_) std::cout << "Query on detector " << it->first->geographicalId().rawId() << " returned " << mymeas.size() << " measurements." << std::endl;
238  for (std::vector<TrajectoryMeasurement>::const_iterator it2 = mymeas.begin(), ed2 = mymeas.end(); it2 != ed2; ++it2) {
239  if (it2->recHit()->isValid()) meas.push_back(*it2);
240  }
241  }
242  int found = 0;
243  std::sort(meas.begin(), meas.end(), TrajMeasLessEstim());
244  for (std::vector<TrajectoryMeasurement>::const_iterator it2 = meas.begin(), ed2 = meas.end(); it2 != ed2; ++it2) {
245  if (debug_) {
246  std::cout << " inspecting Hit with chi2 = " << it2->estimate() << std::endl;
247  std::cout << " track state " << it2->forwardPredictedState().globalPosition() << std::endl;
248  std::cout << " rechit position " << it2->recHit()->globalPosition() << std::endl;
249  }
250  TrajectoryStateOnSurface updated = updator_->update(it2->forwardPredictedState(), *it2->recHit());
251  if (updated.isValid()) {
252  if (debug_) std::cout << " --> updated state: x = " << updated.globalPosition() << ", p = " << updated.globalMomentum() << std::endl;
254  seedHits.push_back(*it2->recHit()->hit());
255  PTrajectoryStateOnDet const & pstate = trajectoryStateTransform::persistentState(updated, it2->recHit()->geographicalId().rawId());
256  TrajectorySeed seed(pstate, std::move(seedHits), oppositeToMomentum);
257  out.push_back(seed);
258  found++; if (found == hitsToTry_) break;
259  }
260  }
261  return found;
262 }
int hitsToTry_
How many hits to try on same layer.
edm::ESHandle< Chi2MeasurementEstimatorBase > estimator_
tuple measurementTracker
PTrajectoryStateOnDet persistentState(const TrajectoryStateOnSurface &ts, unsigned int detid)
GlobalPoint globalPosition() const
edm::ESHandle< TrajectoryStateUpdator > updator_
void push_back(D *&d)
Definition: OwnVector.h:290
bool debug_
Dump deug information.
T sqrt(T t)
Definition: SSEVec.h:18
std::vector< TrajectoryMeasurement > fastMeasurements(const TrajectoryStateOnSurface &stateOnThisDet, const TrajectoryStateOnSurface &tsos2, const Propagator &prop, const MeasurementEstimator &est) const
def move
Definition: eostools.py:510
double errorRescaling_
How much to rescale errors from STA.
GlobalVector globalMomentum() const
tuple cout
Definition: gather_cfg.py:145
virtual void compatibleDetsV(const TrajectoryStateOnSurface &startingState, const Propagator &prop, const MeasurementEstimator &est, std::vector< DetWithState > &result) const
void OutsideInMuonSeeder::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::stream::EDProducerBase.

Definition at line 123 of file OutsideInMuonSeeder.cc.

References funct::abs(), alongMomentum, gather_cfg::cout, debug_, doDebug(), doLayer(), dummyPlane_, estimator_, estimatorName_, reco::LeafCandidate::eta(), reco::TrackBase::eta(), newFWLiteAna::found, fromVertex_, geometry_, edm::EventSetup::get(), edm::Event::getByToken(), trajectoryStateTransform::initialFreeState(), trajectoryStateTransform::innerStateOnSurface(), reco::Muon::innerTrack(), edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::isNull(), layersToTry_, magfield_, maxEtaForTOB_, HLT_FULL_cff::measurementTracker, measurementTrackerTag_, minEtaForTEC_, RPCpg::mu, muonPropagator_, muonPropagatorName_, oppositeToMomentum, GenerateHcalLaserBadRunList::out, reco::Muon::outerTrack(), reco::LeafCandidate::phi(), FreeTrajectoryState::position(), edm::ESHandle< class >::product(), reco::LeafCandidate::pt(), edm::Event::put(), selector_, SetPropagationDirection(), alcazmumu_cfi::src, src_, trackerPropagator_, trackerPropagatorName_, updator_, and updatorName_.

123  {
124  using namespace edm;
125  using namespace std;
126 
127  iSetup.get<IdealMagneticFieldRecord>().get(magfield_);
133 
136 
138  iEvent.getByToken(src_, src);
139 
140 
141  auto_ptr<vector<TrajectorySeed> > out(new vector<TrajectorySeed>());
142 
143  for (View<reco::Muon>::const_iterator it = src->begin(), ed = src->end(); it != ed; ++it) {
144  const reco::Muon &mu = *it;
145  if (mu.outerTrack().isNull() || !selector_(mu)) continue;
146  if (debug_ && mu.innerTrack().isNonnull()) doDebug(*mu.innerTrack());
147 
148  // Better clone here and not directly into doLayer to avoid
149  // useless clone/destroy operations to set, in the end, the
150  // very same direction every single time.
151  std::unique_ptr<Propagator> pmuon_cloned = SetPropagationDirection(*muonPropagator_,
153  std::unique_ptr<Propagator> ptracker_cloned = SetPropagationDirection(*trackerPropagator_, alongMomentum);
154 
155  int sizeBefore = out->size();
156  if (debug_) std::cout << "\n\n\nSeeding for muon of pt " << mu.pt() << ", eta " << mu.eta() << ", phi " << mu.phi() << std::endl;
157  const reco::Track &tk = *mu.outerTrack();
158 
160  if (fromVertex_) {
162  dummyPlane_->move(fstate.position() - dummyPlane_->position());
163  state = TrajectoryStateOnSurface(fstate, *dummyPlane_);
164  } else {
166  }
167  if (std::abs(tk.eta()) < maxEtaForTOB_) {
168  std::vector< BarrelDetLayer const* > const & tob = measurementTracker->geometricSearchTracker()->tobLayers();
169  int iLayer = 6, found = 0;
170  for (auto it = tob.rbegin(), ed = tob.rend(); it != ed; ++it, --iLayer) {
171  if (debug_) std::cout << "\n ==== Trying TOB " << iLayer << " ====" << std::endl;
172  if (doLayer(**it, state, *out,
173  *(pmuon_cloned.get()),
174  *(ptracker_cloned.get()),
175  *measurementTracker)) {
176  if (++found == layersToTry_) break;
177  }
178  }
179  }
180  if (tk.eta() > minEtaForTEC_) {
181  int iLayer = 9, found = 0;
182  std::vector< ForwardDetLayer const* > const & tec = measurementTracker->geometricSearchTracker()->posTecLayers();
183  for (auto it = tec.rbegin(), ed = tec.rend(); it != ed; ++it, --iLayer) {
184  if (debug_) std::cout << "\n ==== Trying TEC " << +iLayer << " ====" << std::endl;
185  if (doLayer(**it, state, *out,
186  *(pmuon_cloned.get()),
187  *(ptracker_cloned.get()),
188  *measurementTracker)) {
189  if (++found == layersToTry_) break;
190  }
191  }
192  }
193  if (tk.eta() < -minEtaForTEC_) {
194  int iLayer = 9, found = 0;
195  std::vector< ForwardDetLayer const* > const & tec = measurementTracker->geometricSearchTracker()->negTecLayers();
196  for (auto it = tec.rbegin(), ed = tec.rend(); it != ed; ++it, --iLayer) {
197  if (debug_) std::cout << "\n ==== Trying TEC " << -iLayer << " ====" << std::endl;
198  if (doLayer(**it, state, *out,
199  *(pmuon_cloned.get()),
200  *(ptracker_cloned.get()),
201  *measurementTracker)) {
202  if (++found == layersToTry_) break;
203  }
204  }
205  }
206  if (debug_) std::cout << "Outcome of seeding for muon of pt " << mu.pt() << ", eta " << mu.eta() << ", phi " << mu.phi() << ": found " << (out->size() - sizeBefore) << " seeds."<< std::endl;
207 
208  }
209 
210  iEvent.put(out);
211 }
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
virtual TrackRef innerTrack() const
Definition: Muon.h:48
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
edm::ESHandle< Chi2MeasurementEstimatorBase > estimator_
tuple measurementTracker
edm::ESHandle< MagneticField > magfield_
edm::ESHandle< GlobalTrackingGeometry > geometry_
virtual double phi() const final
momentum azimuthal angle
edm::ESHandle< Propagator > trackerPropagator_
edm::ESHandle< TrajectoryStateUpdator > updator_
int doLayer(const GeometricSearchDet &layer, const TrajectoryStateOnSurface &state, std::vector< TrajectorySeed > &out, const Propagator &muon_propagator, const Propagator &tracker_propagator, const MeasurementTrackerEvent &mte) const
std::unique_ptr< Propagator > SetPropagationDirection(Propagator const &iprop, PropagationDirection dir)
std::string trackerPropagatorName_
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
bool debug_
Dump deug information.
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:121
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const int mu
Definition: Constants.h:22
bool isNull() const
Checks for null.
Definition: Ref.h:249
virtual TrackRef outerTrack() const
reference to Track reconstructed in the muon detector only
Definition: Muon.h:51
edm::ESHandle< Propagator > muonPropagator_
GlobalPoint position() const
const T & get() const
Definition: EventSetup.h:56
T const * product() const
Definition: ESHandle.h:86
int layersToTry_
How many layers to try.
StringCutObjectSelector< reco::Muon > selector_
Muon selection.
edm::EDGetTokenT< edm::View< reco::Muon > > src_
Labels for input collections.
void doDebug(const reco::Track &tk) const
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
tuple cout
Definition: gather_cfg.py:145
virtual double eta() const final
momentum pseudorapidity
edm::EDGetTokenT< MeasurementTrackerEvent > measurementTrackerTag_
Plane::PlanePointer dummyPlane_
Surface used to make a TSOS at the PCA to the beamline.
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
bool fromVertex_
Do inside-out.
TrajectoryStateOnSurface innerStateOnSurface(const reco::Track &tk, const TrackingGeometry &geom, const MagneticField *field, bool withErr=true)
virtual double pt() const final
transverse momentum

Member Data Documentation

bool OutsideInMuonSeeder::debug_
private

Dump deug information.

Definition at line 87 of file OutsideInMuonSeeder.cc.

Referenced by doLayer(), and produce().

Plane::PlanePointer OutsideInMuonSeeder::dummyPlane_
private

Surface used to make a TSOS at the PCA to the beamline.

Definition at line 90 of file OutsideInMuonSeeder.cc.

Referenced by produce().

double OutsideInMuonSeeder::errorRescaling_
private

How much to rescale errors from STA.

Definition at line 68 of file OutsideInMuonSeeder.cc.

Referenced by doLayer().

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

Definition at line 83 of file OutsideInMuonSeeder.cc.

Referenced by doLayer(), and produce().

std::string OutsideInMuonSeeder::estimatorName_
private

Definition at line 74 of file OutsideInMuonSeeder.cc.

Referenced by produce().

bool OutsideInMuonSeeder::fromVertex_
private

Do inside-out.

Definition at line 65 of file OutsideInMuonSeeder.cc.

Referenced by produce().

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

Definition at line 82 of file OutsideInMuonSeeder.cc.

Referenced by doDebug(), and produce().

int OutsideInMuonSeeder::hitsToTry_
private

How many hits to try on same layer.

Definition at line 62 of file OutsideInMuonSeeder.cc.

Referenced by doLayer().

int OutsideInMuonSeeder::layersToTry_
private

How many layers to try.

Definition at line 59 of file OutsideInMuonSeeder.cc.

Referenced by produce().

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

Definition at line 79 of file OutsideInMuonSeeder.cc.

Referenced by doDebug(), and produce().

double OutsideInMuonSeeder::maxEtaForTOB_
private

Definition at line 77 of file OutsideInMuonSeeder.cc.

Referenced by produce().

std::string OutsideInMuonSeeder::measurementTrackerName_
private

Definition at line 73 of file OutsideInMuonSeeder.cc.

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

Definition at line 72 of file OutsideInMuonSeeder.cc.

Referenced by produce().

double OutsideInMuonSeeder::minEtaForTEC_
private

Definition at line 77 of file OutsideInMuonSeeder.cc.

Referenced by produce().

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

Definition at line 80 of file OutsideInMuonSeeder.cc.

Referenced by doDebug(), and produce().

std::string OutsideInMuonSeeder::muonPropagatorName_
private

Definition at line 71 of file OutsideInMuonSeeder.cc.

Referenced by produce().

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

Muon selection.

Definition at line 56 of file OutsideInMuonSeeder.cc.

Referenced by produce().

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

Labels for input collections.

Definition at line 53 of file OutsideInMuonSeeder.cc.

Referenced by produce().

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

Definition at line 81 of file OutsideInMuonSeeder.cc.

Referenced by produce().

std::string OutsideInMuonSeeder::trackerPropagatorName_
private

Definition at line 70 of file OutsideInMuonSeeder.cc.

Referenced by produce().

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

Definition at line 84 of file OutsideInMuonSeeder.cc.

Referenced by doLayer(), and produce().

std::string OutsideInMuonSeeder::updatorName_
private

Definition at line 75 of file OutsideInMuonSeeder.cc.

Referenced by OutsideInMuonSeeder(), and produce().