Build a TrackingRegion around a standalone muon
Options: Beamspot : Origin is defined by primary vertex Vertex : Origin is defined by primary vertex (first valid vertex in the VertexCollection) if no vertex is found the beamspot is used instead DynamicZError DynamicEtaError DynamicphiError
- Author
- N. Neumeister Purdue University
-
A. Everett Purdue University
Definition at line 42 of file MuonTrackingRegionBuilder.h.
Class: MuonTrackingRegionBuilder
Build a TrackingRegion around a standalone muon
- Author
- N. Neumeister Purdue University
-
A. Everett Purdue University
Definition at line 37 of file MuonTrackingRegionBuilder.cc.
References beamSpotToken, bfieldToken, edm::ConsumesCollector::consumes(), edm::ConsumesCollector::esConsumes(), edm::ParameterSet::getParameter(), inputCollectionToken, RectangularEtaPhiTrackingRegion::intToUseMeasurementTracker(), RectangularEtaPhiTrackingRegion::kNever, msmakerToken, theDeltaEta, theDeltaPhi, theDeltaR, theEtaMin, theEtaRegionPar1, theEtaRegionPar2, theHalfZ, theMaxRegions, theMeasurementTrackerToken, theNsigmaDz, theNsigmaEta, theNsigmaPhi, theOnDemand, thePhiMin, thePhiRegionPar1, thePhiRegionPar2, thePrecise, thePtMin, useFixedEta, useFixedPhi, useFixedPt, useFixedZ, useVertex, and vertexCollectionToken.
Referenced by MuonTrackingRegionBuilder().
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
std::vector< Track > TrackCollection
collection of Tracks
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > msmakerToken
std::vector< Vertex > VertexCollection
collection of Vertex objects
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bfieldToken
RectangularEtaPhiTrackingRegion::UseMeasurementTracker theOnDemand
edm::EDGetTokenT< reco::TrackCollection > inputCollectionToken
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::VertexCollection > vertexCollectionToken
static UseMeasurementTracker intToUseMeasurementTracker(int value)
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerToken
Definition at line 142 of file MuonTrackingRegionBuilder.cc.
References funct::abs(), beamSpotToken, bfieldToken, cms::cuda::bs, HLT_FULL_cff::deltaR, PVValHelper::eta, reco::TrackBase::etaError(), edm::Event::getByToken(), edm::EventSetup::getData(), reco::Track::innerMomentum(), edm::EDGetTokenT< T >::isUninitialized(), edm::HandleBase::isValid(), LogDebug, SiStripPI::max, HLT_FULL_cff::measurementTracker, SiStripPI::min, HLT_FULL_cff::minPt, reco::TrackBase::momentum(), msmakerToken, reco::TrackBase::p(), phi, reco::TrackBase::phiError(), edm::Handle< T >::product(), DiDispStaMuonMonitor_cfi::pt, reco::TrackBase::pt(), region(), theDeltaEta, theDeltaPhi, theDeltaR, theEtaMin, theEtaRegionPar1, theEtaRegionPar2, theHalfZ, theMeasurementTrackerToken, theNsigmaDz, theNsigmaEta, theNsigmaPhi, theOnDemand, thePhiMin, thePhiRegionPar1, thePhiRegionPar2, thePrecise, thePtMin, useFixedEta, useFixedPhi, useFixedPt, useFixedZ, useVertex, GoodVertex_cfg::vertexCollection, and vertexCollectionToken.
148 double pt = staTrack.
pt();
152 GlobalVector forSmallMomentum(innerMomentum.x(), innerMomentum.y(), innerMomentum.z());
153 if (staTrack.
p() <= 1.5) {
154 pt =
std::abs(forSmallMomentum.perp());
168 vertexPos =
GlobalPoint(bs->x0(), bs->y0(), bs->z0());
175 if (vtxHandleFlag && !vertexCollection->empty()) {
177 reco::VertexCollection::const_iterator vtx = vertexCollection->begin();
178 if (!vtx->isFake() && vtx->isValid()) {
179 vertexPos =
GlobalPoint(vtx->x(), vtx->y(), vtx->z());
194 double region_dEta = 0;
195 double region_dPhi = 0;
209 if (pt > 10. && pt < 100.) {
223 double region_dPhi1 =
std::min(phi, dphi);
224 double region_dEta1 =
std::min(eta, deta);
237 measurementTracker = hmte.
product();
246 auto region = std::make_unique<RectangularEtaPhiTrackingRegion>(dirVector,
259 LogDebug(
"MuonTrackingRegionBuilder") <<
"the region parameters are:\n"
260 <<
"\n dirVector: " << dirVector <<
"\n vertexPos: " << vertexPos
261 <<
"\n minPt: " << minPt <<
"\n deltaR:" << deltaR <<
"\n deltaZ:" << deltaZ
262 <<
"\n region_dEta:" << region_dEta <<
"\n region_dPhi:" << region_dPhi
263 <<
"\n on demand parameter: " <<
static_cast<int>(
theOnDemand);
double p() const
momentum vector magnitude
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
constexpr bool isUninitialized() const noexcept
Global3DPoint GlobalPoint
double etaError() const
error on eta
edm::ESGetToken< MultipleScatteringParametrisationMaker, TrackerMultipleScatteringRecord > msmakerToken
const Vector & momentum() const
track momentum vector
std::unique_ptr< RectangularEtaPhiTrackingRegion > region(const reco::TrackRef &) const
Define tracking region.
bool getData(T &iHolder) const
double pt() const
track transverse momentum
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > bfieldToken
double phiError() const
error on phi
RectangularEtaPhiTrackingRegion::UseMeasurementTracker theOnDemand
Abs< T >::type abs(const T &t)
T const * product() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
const math::XYZVector & innerMomentum() const
momentum vector at the innermost hit position
edm::EDGetTokenT< reco::VertexCollection > vertexCollectionToken
edm::EDGetTokenT< MeasurementTrackerEvent > theMeasurementTrackerToken