Create L3MuonTrajectorySeeds from L2 Muons updated at vertex in an outside-in manner. More...
#include <TSGForOIFromL2.h>
Public Member Functions | |
void | produce (edm::StreamID sid, edm::Event &iEvent, const edm::EventSetup &iSetup) const override |
TSGForOIFromL2 (const edm::ParameterSet &iConfig) | |
~TSGForOIFromL2 () override | |
Public Member Functions inherited from edm::global::EDProducer<> | |
EDProducer ()=default | |
EDProducer (const EDProducer &)=delete | |
bool | hasAbilityToProduceInBeginLumis () const final |
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
bool | hasAbilityToProduceInBeginRuns () const final |
bool | hasAbilityToProduceInEndLumis () const final |
bool | hasAbilityToProduceInEndProcessBlocks () const final |
bool | hasAbilityToProduceInEndRuns () const final |
EDProducer & | operator= (const EDProducer &)=delete |
bool | wantsGlobalLuminosityBlocks () const noexcept final |
bool | wantsGlobalRuns () const noexcept final |
bool | wantsInputProcessBlocks () const noexcept final |
bool | wantsProcessBlocks () const noexcept final |
bool | wantsStreamLuminosityBlocks () const noexcept final |
bool | wantsStreamRuns () const noexcept final |
Public Member Functions inherited from edm::global::EDProducerBase | |
EDProducerBase () | |
ModuleDescription const & | moduleDescription () const |
~EDProducerBase () override | |
Public Member Functions inherited from edm::ProducerBase | |
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
ProducerBase () | |
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
std::vector< bool > const & | recordProvenanceList () const |
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
std::function< void(BranchDescription const &)> | registrationCallback () const |
used by the fwk to register list of products More... | |
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
TypeLabelList const & | typeLabelList () const |
used by the fwk to register the list of products of this module More... | |
~ProducerBase () noexcept(false) override | |
Public Member Functions inherited from edm::EDConsumerBase | |
std::vector< ConsumesInfo > | consumesInfo () const |
void | convertCurrentProcessAlias (std::string const &processName) |
Convert "@currentProcess" in InputTag process names to the actual current process name. More... | |
EDConsumerBase () | |
EDConsumerBase (EDConsumerBase const &)=delete | |
EDConsumerBase (EDConsumerBase &&)=default | |
ESResolverIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
std::vector< ESResolverIndex > const & | esGetTokenIndicesVector (edm::Transition iTrans) const |
std::vector< ESRecordIndex > const & | esGetTokenRecordIndicesVector (edm::Transition iTrans) const |
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
void | modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const |
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
void | selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase) |
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
void | updateLookup (eventsetup::ESRecordsToProductResolverIndices const &) |
virtual | ~EDConsumerBase () noexcept(false) |
Static Public Member Functions | |
static void | fillDescriptions (edm::ConfigurationDescriptions &descriptions) |
Static Public Member Functions inherited from edm::global::EDProducerBase | |
static const std::string & | baseType () |
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
static void | prevalidate (ConfigurationDescriptions &descriptions) |
Private Member Functions | |
double | calculateSFFromL2 (const reco::TrackRef track) const |
Calculate the dynamic error SF by analysing the L2. More... | |
void | makeSeedsFromHits (const GeometricSearchDet &layer, const TrajectoryStateOnSurface &tsos, const Propagator &propagatorAlong, const edm::ESHandle< Chi2MeasurementEstimatorBase > &estimator, const edm::Handle< MeasurementTrackerEvent > &measurementTracker, double errorSF, unsigned int &hitSeedsMade, unsigned int &numSeedsMade, unsigned int &layerCount, std::vector< TrajectorySeed > &out) const |
Find hits on a given layer (TOB or TEC) and create seeds from updated TSOS with hit. More... | |
void | makeSeedsWithoutHits (const GeometricSearchDet &layer, const TrajectoryStateOnSurface &tsos, const Propagator &propagatorAlong, const edm::ESHandle< Chi2MeasurementEstimatorBase > &estimator, double errorSF, unsigned int &hitlessSeedsMade, unsigned int &numSeedsMade, std::vector< TrajectorySeed > &out) const |
Create seeds without hits on a given layer (TOB or TEC) More... | |
double | match_Chi2 (const TrajectoryStateOnSurface &tsos1, const TrajectoryStateOnSurface &tsos2) const |
Find compatability between two TSOSs. More... | |
Private Attributes | |
const bool | adjustErrorsDynamicallyForHitless_ |
const bool | adjustErrorsDynamicallyForHits_ |
Whether or not to use an automatically calculated scale-factor value. More... | |
const bool | displacedReco_ |
Displaced reconstruction. More... | |
const std::string | estimatorName_ |
Estimator used to find dets and TrajectoryMeasurements. More... | |
const edm::ESGetToken< Chi2MeasurementEstimatorBase, TrackingComponentsRecord > | estimatorToken_ |
const double | eta1_ |
const double | eta2_ |
const double | eta3_ |
const double | eta4_ |
const double | eta5_ |
const double | eta6_ |
const double | eta7_ |
const double | fixedErrorRescalingForHitless_ |
const double | fixedErrorRescalingForHits_ |
Rescale L2 parameter uncertainties (fixed error vs pT, eta) More... | |
const edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > | geometryToken_ |
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > | magfieldToken_ |
const double | maxEtaForTOB_ |
Maximum eta value to activate searching in the TOB. More... | |
const unsigned int | maxHitlessSeeds_ |
Maximum number of hitless seeds for each L2. More... | |
const unsigned int | maxHitSeeds_ |
Maximum number of hitbased seeds for each L2. More... | |
const unsigned int | maxSeeds_ |
Maximum number of seeds for each L2. More... | |
const edm::EDGetTokenT< MeasurementTrackerEvent > | measurementTrackerTag_ |
const double | minEtaForTEC_ |
Minimum eta value to activate searching in the TEC. More... | |
const unsigned int | numL2ValidHitsCutAllEndcap_ |
const unsigned int | numL2ValidHitsCutAllEta_ |
L2 valid hit cuts to decide seed creation by both states. More... | |
const unsigned int | numOfHitsToTry_ |
How many hits to try per layer. More... | |
const unsigned int | numOfLayersToTry_ |
How many layers to try. More... | |
const std::string | propagatorName_ |
Counters and flags for the implementation. More... | |
const edm::ESGetToken< Propagator, TrackingComponentsRecord > | propagatorToken_ |
const double | pT1_ |
pT, eta ranges and scale factor values More... | |
const double | pT2_ |
const double | pT3_ |
const double | SF1_ |
const double | SF2_ |
const double | SF3_ |
const double | SF4_ |
const double | SF5_ |
const double | SF6_ |
const double | SFHd_ |
const double | SFHld_ |
const edm::ESGetToken< Propagator, TrackingComponentsRecord > | sHPOppositeToken_ |
const edm::EDGetTokenT< reco::TrackCollection > | src_ |
Labels for input collections. More... | |
const std::string | theCategory_ |
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > | tmpTkGeometryToken_ |
const double | tsosDiff1_ |
Distance of L2 TSOSs before and after updated with vertex. More... | |
const double | tsosDiff2_ |
const std::unique_ptr< TrajectoryStateUpdator > | updator_ |
KFUpdator defined in constructor. More... | |
const bool | useHitLessSeeds_ |
Additional Inherited Members | |
Public Types inherited from edm::global::EDProducerBase | |
typedef EDProducerBase | ModuleType |
Public Types inherited from edm::ProducerBase | |
template<typename T > | |
using | BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T > |
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
Public Types inherited from edm::EDConsumerBase | |
typedef ProductLabels | Labels |
Protected Member Functions inherited from edm::ProducerBase | |
template<Transition Tr = Transition::Event> | |
auto | produces (std::string instanceName) noexcept |
declare what type of product will make and with which optional label More... | |
template<Transition B> | |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
template<BranchType B> | |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
template<typename ProductType , Transition B> | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<class ProductType > | |
BranchAliasSetterT< ProductType > | produces () |
template<typename ProductType , BranchType B> | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<typename ProductType , BranchType B> | |
BranchAliasSetterT< ProductType > | produces () |
template<class ProductType > | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<typename ProductType , Transition B> | |
BranchAliasSetterT< ProductType > | produces () |
template<Transition Tr = Transition::Event> | |
auto | produces () noexcept |
ProducesCollector | producesCollector () |
Protected Member Functions inherited from edm::EDConsumerBase | |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
template<BranchType B = InEvent> | |
EDConsumerBaseAdaptor< B > | consumes (edm::InputTag tag) noexcept |
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 ESProduct , typename ESRecord , Transition Tr = Transition::Event> | |
auto | esConsumes () |
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> | |
auto | esConsumes (ESInputTag const &tag) |
template<Transition Tr = Transition::Event> | |
constexpr auto | esConsumes () |
template<Transition Tr = Transition::Event> | |
auto | esConsumes (ESInputTag tag) |
template<Transition Tr = Transition::Event> | |
ESGetTokenGeneric | esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey) |
Used with EventSetupRecord::doGet. More... | |
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) |
void | resetItemsToGetFrom (BranchType iType) |
Create L3MuonTrajectorySeeds from L2 Muons updated at vertex in an outside-in manner.
Definition at line 34 of file TSGForOIFromL2.h.
|
explicit |
Definition at line 14 of file TSGForOIFromL2.cc.
|
override |
Definition at line 66 of file TSGForOIFromL2.cc.
|
private |
Calculate the dynamic error SF by analysing the L2.
Definition at line 531 of file TSGForOIFromL2.cc.
References funct::abs(), eta1_, eta2_, eta3_, eta4_, eta5_, eta6_, LogTrace, pT1_, pT2_, pT3_, SF1_, SF2_, SF3_, SF4_, SF5_, SF6_, theCategory_, and HLT_2024v14_cff::track.
Referenced by produce().
|
static |
Definition at line 600 of file TSGForOIFromL2.cc.
References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
Find hits on a given layer (TOB or TEC) and create seeds from updated TSOS with hit.
Definition at line 454 of file TSGForOIFromL2.cc.
References MeasurementDetWithData::fastMeasurements(), newFWLiteAna::found, MeasurementDetWithData::isNull(), TrajectoryStateOnSurface::isValid(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, nano_mu_digi_cff::layer, LogTrace, maxHitSeeds_, HLTSiStripMonitoring_cff::measurementTracker, eostools::move(), numOfHitsToTry_, numOfLayersToTry_, oppositeToMomentum, MillePedeFileConverter_cfg::out, trajectoryStateTransform::persistentState(), L1TMuonDQMOffline_cfi::propagatorAlong, edm::OwnVector< T, P >::push_back(), TrajectoryStateOnSurface::rescaleError(), fileCollector::seed, edm::OwnVector< T, P >::size(), jetUpdater_cfi::sort, and updator_.
Referenced by produce().
|
private |
Create seeds without hits on a given layer (TOB or TEC)
Definition at line 420 of file TSGForOIFromL2.cc.
References nano_mu_digi_cff::layer, LogTrace, oppositeToMomentum, MillePedeFileConverter_cfg::out, trajectoryStateTransform::persistentState(), L1TMuonDQMOffline_cfi::propagatorAlong, and theCategory_.
Referenced by produce().
|
private |
Find compatability between two TSOSs.
Definition at line 578 of file TSGForOIFromL2.cc.
References TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localParameters(), visualization-live-secondInstance_cfg::m, LocalTrajectoryError::matrix(), findQualityFiles::v, and LocalTrajectoryParameters::vector().
|
overridevirtual |
Implements edm::global::EDProducerBase.
Definition at line 71 of file TSGForOIFromL2.cc.
References funct::abs(), adjustErrorsDynamicallyForHitless_, adjustErrorsDynamicallyForHits_, alongMomentum, Plane::build(), calculateSFFromL2(), displacedReco_, estimatorToken_, eta1_, eta7_, fixedErrorRescalingForHitless_, fixedErrorRescalingForHits_, MeasurementTrackerEvent::geometricSearchTracker(), geometryToken_, edm::EventSetup::getHandle(), iEvent, trajectoryStateTransform::initialFreeState(), trajectoryStateTransform::innerStateOnSurface(), TrackerGeometry::isThere(), TrajectoryStateOnSurface::isValid(), ALPAKA_ACCELERATOR_NAMESPACE::vertexFinder::it, LogTrace, magfieldToken_, makeSeedsFromHits(), makeSeedsWithoutHits(), maxEtaForTOB_, maxHitlessSeeds_, maxHitSeeds_, maxSeeds_, measurementTrackerTag_, minEtaForTEC_, eostools::move(), GeometricSearchTracker::negTecLayers(), GeometricSearchTracker::negTidLayers(), numL2ValidHitsCutAllEndcap_, numL2ValidHitsCutAllEta_, oppositeToMomentum, MillePedeFileConverter_cfg::out, GeomDetEnumerators::P2OTEC, FreeTrajectoryState::position(), GeometricSearchTracker::posTecLayers(), GeometricSearchTracker::posTidLayers(), edm::ESHandle< T >::product(), L1TMuonDQMOffline_cfi::propagatorAlong, L1TMuonDQMOffline_cfi::propagatorOpposite, propagatorToken_, mps_fire::result, SetPropagationDirection(), SFHd_, SFHld_, sHPOppositeToken_, src_, theCategory_, tmpTkGeometryToken_, GeometricSearchTracker::tobLayers(), and useHitLessSeeds_.
|
private |
Definition at line 70 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Whether or not to use an automatically calculated scale-factor value.
Definition at line 69 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
|
private |
Estimator used to find dets and TrajectoryMeasurements.
Definition at line 73 of file TSGForOIFromL2.h.
|
private |
Definition at line 106 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 92 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2(), and produce().
|
private |
Definition at line 92 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 92 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 92 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 92 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 92 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 92 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 66 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Rescale L2 parameter uncertainties (fixed error vs pT, eta)
Definition at line 65 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 110 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 107 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Maximum eta value to activate searching in the TOB.
Definition at line 79 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Maximum number of hitless seeds for each L2.
Definition at line 49 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Maximum number of hitbased seeds for each L2.
Definition at line 52 of file TSGForOIFromL2.h.
Referenced by makeSeedsFromHits(), and produce().
|
private |
Maximum number of seeds for each L2.
Definition at line 46 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 88 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Minimum eta value to activate searching in the TEC.
Definition at line 76 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 62 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
L2 valid hit cuts to decide seed creation by both states.
Definition at line 61 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
How many hits to try per layer.
Definition at line 58 of file TSGForOIFromL2.h.
Referenced by makeSeedsFromHits().
|
private |
How many layers to try.
Definition at line 55 of file TSGForOIFromL2.h.
Referenced by makeSeedsFromHits().
|
private |
Counters and flags for the implementation.
Definition at line 104 of file TSGForOIFromL2.h.
|
private |
Definition at line 108 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
pT, eta ranges and scale factor values
Definition at line 91 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 91 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 91 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 93 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 93 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 93 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 93 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 93 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 93 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2().
|
private |
Definition at line 94 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 94 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 111 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Labels for input collections.
Definition at line 43 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Definition at line 105 of file TSGForOIFromL2.h.
Referenced by calculateSFFromL2(), makeSeedsWithoutHits(), and produce().
|
private |
Definition at line 109 of file TSGForOIFromL2.h.
Referenced by produce().
|
private |
Distance of L2 TSOSs before and after updated with vertex.
Definition at line 97 of file TSGForOIFromL2.h.
|
private |
Definition at line 98 of file TSGForOIFromL2.h.
|
private |
KFUpdator defined in constructor.
Definition at line 86 of file TSGForOIFromL2.h.
Referenced by makeSeedsFromHits().
|
private |
Switch ON (True) : use additional hits for seeds depending on the L2 properties (ignores numOfMaxSeeds_) Switch OFF (False): the numOfMaxSeeds_ defines if we will use hitless (numOfMaxSeeds_==1) or hitless+hits (numOfMaxSeeds_>1)
Definition at line 83 of file TSGForOIFromL2.h.
Referenced by produce().