136 auto_ptr<vector<TrajectorySeed> >
out(
new vector<TrajectorySeed>());
146 int sizeBefore =
out->size();
147 if (
debug_)
std::cout <<
"\n\n\nSeeding for muon of pt " << mu.
pt() <<
", eta " << mu.
eta() <<
", phi " << mu.
phi() << std::endl;
159 std::vector< BarrelDetLayer * >
const & tob = measurementTracker->geometricSearchTracker()->tobLayers();
160 int iLayer = 6,
found = 0;
161 for (std::vector<BarrelDetLayer *>::const_reverse_iterator it = tob.rbegin(), ed = tob.rend(); it != ed; ++it, --iLayer) {
162 if (
debug_)
std::cout <<
"\n ==== Trying TOB " << iLayer <<
" ====" << std::endl;
163 if (
doLayer(**it, state, *
out, *measurementTracker)) {
169 int iLayer = 9,
found = 0;
170 std::vector< ForwardDetLayer * >
const & tec = measurementTracker->geometricSearchTracker()->posTecLayers();
171 for (std::vector<ForwardDetLayer *>::const_reverse_iterator it = tec.rbegin(), ed = tec.rend(); it != ed; ++it, --iLayer) {
172 if (
debug_)
std::cout <<
"\n ==== Trying TEC " << +iLayer <<
" ====" << std::endl;
173 if (
doLayer(**it, state, *
out, *measurementTracker)) {
179 int iLayer = 9,
found = 0;
180 std::vector< ForwardDetLayer * >
const & tec = measurementTracker->geometricSearchTracker()->negTecLayers();
181 for (std::vector<ForwardDetLayer *>::const_reverse_iterator it = tec.rbegin(), ed = tec.rend(); it != ed; ++it, --iLayer) {
182 if (
debug_)
std::cout <<
"\n ==== Trying TEC " << -iLayer <<
" ====" << std::endl;
183 if (
doLayer(**it, state, *
out, *measurementTracker)) {
188 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;
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
edm::InputTag src_
Labels for input collections.
virtual TrackRef innerTrack() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::ESHandle< Chi2MeasurementEstimatorBase > estimator_
edm::ESHandle< MagneticField > magfield_
edm::ESHandle< GlobalTrackingGeometry > geometry_
edm::ESHandle< Propagator > trackerPropagator_
edm::ESHandle< TrajectoryStateUpdator > updator_
bool isNonnull() const
Checks for non-null.
virtual float phi() const GCC11_FINAL
momentum azimuthal angle
std::string trackerPropagatorName_
bool isNull() const
Checks for null.
double eta() const
pseudorapidity of momentum vector
bool debug_
Dump deug information.
std::string muonPropagatorName_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::string estimatorName_
Abs< T >::type abs(const T &t)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
virtual TrackRef outerTrack() const
reference to Track reconstructed in the muon detector only
edm::ESHandle< Propagator > muonPropagator_
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
GlobalPoint position() const
int doLayer(const GeometricSearchDet &layer, const TrajectoryStateOnSurface &state, std::vector< TrajectorySeed > &out, const MeasurementTrackerEvent &mte) const
T const * product() const
int layersToTry_
How many layers to try.
StringCutObjectSelector< reco::Muon > selector_
Muon selection.
void doDebug(const reco::Track &tk) const
edm::EDGetTokenT< MeasurementTrackerEvent > measurementTrackerTag_
Plane::PlanePointer dummyPlane_
Surface used to make a TSOS at the PCA to the beamline.
virtual float pt() const GCC11_FINAL
transverse momentum
bool fromVertex_
Do inside-out.