Create L3MuonTrajectorySeeds from L2 Muons in an outside-in manner. More...
Classes | |
struct | StrategyParameters |
Container for DNN outupts. More... | |
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 | |
void | evaluateClassifier (const std::unordered_map< std::string, float > &feature_map, tensorflow::Session *session, const pt::ptree &metadata, StrategyParameters &out, bool &dnnSuccess) const |
Evaluate DNN classifier. More... | |
void | evaluateRegressor (const std::unordered_map< std::string, float > &feature_map, tensorflow::Session *session_HB, const pt::ptree &metadata_HB, tensorflow::Session *session_HLIP, const pt::ptree &metadata_HLIP, tensorflow::Session *session_HLMuS, const pt::ptree &metadata_HLMuS, StrategyParameters &out, bool &dnnSuccess) const |
Evaluate DNN regressor. More... | |
void | makeSeedsFromHitDoublets (const GeometricSearchDet &layer, const TrajectoryStateOnSurface &tsos, const Propagator &propagatorAlong, const Chi2MeasurementEstimatorBase &estimator, const MeasurementTrackerEvent &measurementTracker, const NavigationSchool &navSchool, unsigned int &hitDoubletSeedsMade, unsigned int &numSeedsMade, const unsigned int &maxHitDoubletSeeds, unsigned int &layerCount, std::vector< TrajectorySeed > &out) const |
Similar to makeSeedsFromHits, but seed is created only if there are compatible hits on two adjacent layers. More... | |
void | makeSeedsFromHits (const GeometricSearchDet &layer, const TrajectoryStateOnSurface &tsos, const Propagator &propagatorAlong, const Chi2MeasurementEstimatorBase &estimator, const MeasurementTrackerEvent &measurementTracker, unsigned int &hitSeedsMade, unsigned int &numSeedsMade, const unsigned int &maxHitSeeds, 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 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... | |
void | updateFeatureMap (std::unordered_map< std::string, float > &the_map, const reco::Track &l2, const TrajectoryStateOnSurface &tsos_IP, const TrajectoryStateOnSurface &tsos_MuS) const |
Update dictionary of inputs for DNN. More... | |
Private Attributes | |
const std::string | dnnMetadataPath_ |
DNN metadata. More... | |
std::string | dnnModelPath_ |
Settings for classifier. More... | |
std::string | dnnModelPath_HB_ |
Settings for regressor. More... | |
std::string | dnnModelPath_HLIP_ |
std::string | dnnModelPath_HLMuS_ |
const std::string | estimatorName_ |
Estimator used to find dets and TrajectoryMeasurements. More... | |
const double | fixedErrorRescalingForHitless_ |
Rescale L2 parameter uncertainties (fixed error vs pT, eta) More... | |
const bool | getStrategyFromDNN_ |
Get number of seeds to use from DNN output instead of "max..Seeds" parameters. More... | |
std::unique_ptr< tensorflow::GraphDef > | graphDef_ |
std::unique_ptr< tensorflow::GraphDef > | graphDef_HB_ |
std::unique_ptr< tensorflow::GraphDef > | graphDef_HLIP_ |
std::unique_ptr< tensorflow::GraphDef > | graphDef_HLMuS_ |
const double | maxEtaForTOB_ |
Maximum eta value to activate searching in the TOB. More... | |
const unsigned int | maxHitDoubletSeeds_ |
const unsigned int | maxHitlessSeeds_ |
Maximum number of hitless seeds for each L2. More... | |
const unsigned int | maxHitlessSeedsIP_ |
const unsigned int | maxHitlessSeedsMuS_ |
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_ |
pt::ptree | metadata_ |
const double | minEtaForTEC_ |
Minimum eta value to activate searching in the TEC. More... | |
const unsigned int | numOfHitsToTry_ |
How many hits to try per layer. More... | |
const unsigned int | numOfLayersToTry_ |
How many layers to try. More... | |
const edm::EDGetTokenT< reco::TrackCollection > | src_ |
Labels for input collections. More... | |
const edm::ESGetToken< Chi2MeasurementEstimatorBase, TrackingComponentsRecord > | t_estimatorH_ |
Tokens for ESHandle. More... | |
const edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > | t_geometryH_ |
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > | t_magfieldH_ |
const edm::ESGetToken< NavigationSchool, NavigationSchoolRecord > | t_navSchool_ |
const edm::ESGetToken< Propagator, TrackingComponentsRecord > | t_propagatorAlongH_ |
const edm::ESGetToken< Propagator, TrackingComponentsRecord > | t_propagatorOppositeH_ |
const edm::ESGetToken< Propagator, TrackingComponentsRecord > | t_SHPOpposite_ |
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > | t_tmpTkGeometryH_ |
tensorflow::Session * | tf_session_ |
tensorflow::Session * | tf_session_HB_ |
tensorflow::Session * | tf_session_HLIP_ |
tensorflow::Session * | tf_session_HLMuS_ |
const std::string | theCategory_ |
const std::unique_ptr< TrajectoryStateUpdator > | updator_ |
const bool | useRegressor_ |
Whether to use DNN regressor (if false, will use classifier) More... | |
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 ProductType , BranchType B = InEvent> | |
void | consumesMany () |
void | consumesMany (const TypeToGet &id) |
template<BranchType B> | |
void | consumesMany (const TypeToGet &id) |
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 in an outside-in manner.
Definition at line 40 of file TSGForOIDNN.cc.
|
explicit |
Definition at line 178 of file TSGForOIDNN.cc.
References tensorflow::createSession(), HLT_2023v12_cff::dnnMetadataPath, dnnMetadataPath_, dnnModelPath_, dnnModelPath_HB_, dnnModelPath_HLIP_, dnnModelPath_HLMuS_, getStrategyFromDNN_, graphDef_, graphDef_HB_, graphDef_HLIP_, graphDef_HLMuS_, tensorflow::loadGraphDef(), metadata_, tensorflow::setLogging(), AlCaHLTBitMon_QueryRunRegistry::string, tf_session_, tf_session_HB_, tf_session_HLIP_, tf_session_HLMuS_, and useRegressor_.
|
override |
Definition at line 237 of file TSGForOIDNN.cc.
References tensorflow::closeSession(), getStrategyFromDNN_, tf_session_, tf_session_HB_, tf_session_HLIP_, tf_session_HLMuS_, and useRegressor_.
|
private |
Evaluate DNN classifier.
Definition at line 835 of file TSGForOIDNN.cc.
References dqmMemoryStats::float, alignmentValidation::fname, mps_fire::i, input, label, OccupancyTask_cfi::metadata, MillePedeFileConverter_cfg::out, PatBasicFWLiteJetAnalyzer_Selector_cfg::outputs, tensorflow::run(), AlCaHLTBitMon_QueryRunRegistry::string, and cond::impl::to_string().
Referenced by produce().
|
private |
Evaluate DNN regressor.
Definition at line 892 of file TSGForOIDNN.cc.
References dqmMemoryStats::float, alignmentValidation::fname, input, MillePedeFileConverter_cfg::out, tensorflow::run(), and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by produce().
|
static |
Definition at line 976 of file TSGForOIDNN.cc.
References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
Similar to makeSeedsFromHits, but seed is created only if there are compatible hits on two adjacent layers.
Definition at line 583 of file TSGForOIDNN.cc.
References alongMomentum, MeasurementDetWithData::fastMeasurements(), newFWLiteAna::found, TrajectoryStateOnSurface::freeState(), MeasurementDetWithData::isNull(), TrajectoryStateOnSurface::isValid(), pixelTopology::layer, LogTrace, HLT_2023v12_cff::maxHitDoubletSeeds, HLTSiStripMonitoring_cff::measurementTracker, eostools::move(), HLT_2023v12_cff::navSchool, numOfHitsToTry_, oppositeToMomentum, MillePedeFileConverter_cfg::out, trajectoryStateTransform::persistentState(), L1TMuonDQMOffline_cfi::propagatorAlong, edm::OwnVector< T, P >::push_back(), fileCollector::seed, edm::OwnVector< T, P >::size(), jetUpdater_cfi::sort, and updator_.
Referenced by produce().
|
private |
Find hits on a given layer (TOB or TEC) and create seeds from updated TSOS with hit.
Definition at line 511 of file TSGForOIDNN.cc.
References MeasurementDetWithData::fastMeasurements(), newFWLiteAna::found, MeasurementDetWithData::isNull(), TrajectoryStateOnSurface::isValid(), pixelTopology::layer, LogTrace, HLT_2023v12_cff::maxHitSeeds, HLTSiStripMonitoring_cff::measurementTracker, eostools::move(), numOfHitsToTry_, numOfLayersToTry_, oppositeToMomentum, MillePedeFileConverter_cfg::out, trajectoryStateTransform::persistentState(), L1TMuonDQMOffline_cfi::propagatorAlong, edm::OwnVector< T, P >::push_back(), 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 477 of file TSGForOIDNN.cc.
References pixelTopology::layer, LogTrace, oppositeToMomentum, MillePedeFileConverter_cfg::out, trajectoryStateTransform::persistentState(), L1TMuonDQMOffline_cfi::propagatorAlong, and theCategory_.
Referenced by produce().
|
overridevirtual |
Implements edm::global::EDProducerBase.
Definition at line 252 of file TSGForOIDNN.cc.
References funct::abs(), alongMomentum, Plane::build(), evaluateClassifier(), evaluateRegressor(), fixedErrorRescalingForHitless_, edm::EventSetup::getData(), edm::EventSetup::getHandle(), getStrategyFromDNN_, iEvent, trajectoryStateTransform::initialFreeState(), trajectoryStateTransform::innerStateOnSurface(), TrackerGeometry::isThere(), TrajectoryStateOnSurface::isValid(), HLTObjectMonitor_cfi::l2muonEta, pixelTopology::layer, hgcalTBTopologyTester_cfi::layers, LogTrace, volumeBasedMagneticField_160812_cfi::magfield, makeSeedsFromHitDoublets(), makeSeedsFromHits(), makeSeedsWithoutHits(), maxEtaForTOB_, HLT_2023v12_cff::maxHitDoubletSeeds, maxHitDoubletSeeds_, HLT_2023v12_cff::maxHitlessSeedsIP, maxHitlessSeedsIP_, HLT_2023v12_cff::maxHitlessSeedsMuS, maxHitlessSeedsMuS_, HLT_2023v12_cff::maxHitSeeds, maxHitSeeds_, maxSeeds_, HLTSiStripMonitoring_cff::measurementTracker, measurementTrackerTag_, metadata_, minEtaForTEC_, eostools::move(), HLT_2023v12_cff::navSchool, TSGForOIDNN::StrategyParameters::nHBd, TSGForOIDNN::StrategyParameters::nHLIP, TSGForOIDNN::StrategyParameters::nHLMuS, oppositeToMomentum, MillePedeFileConverter_cfg::out, GeomDetEnumerators::P2OTEC, FreeTrajectoryState::position(), L1TMuonDQMOffline_cfi::propagatorAlong, L1TMuonDQMOffline_cfi::propagatorOpposite, mps_fire::result, groupFilesInBlocks::reverse, SetPropagationDirection(), TSGForOIDNN::StrategyParameters::sf, src_, t_estimatorH_, t_geometryH_, t_magfieldH_, t_navSchool_, t_propagatorAlongH_, t_propagatorOppositeH_, t_SHPOpposite_, t_tmpTkGeometryH_, tf_session_, tf_session_HB_, tf_session_HLIP_, tf_session_HLMuS_, theCategory_, updateFeatureMap(), and useRegressor_.
|
private |
Update dictionary of inputs for DNN.
Definition at line 770 of file TSGForOIDNN.cc.
References TrajectoryStateOnSurface::curvilinearError(), PV3DBase< T, PVType, FrameType >::eta(), reco::TrackBase::eta(), reco::Track::found(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), CurvilinearTrajectoryError::matrix(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), reco::TrackBase::phi(), reco::TrackBase::pt(), and mathSSE::sqrt().
Referenced by produce().
|
private |
|
private |
|
private |
|
private |
Definition at line 100 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 101 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Estimator used to find dets and TrajectoryMeasurements.
Definition at line 76 of file TSGForOIDNN.cc.
|
private |
Rescale L2 parameter uncertainties (fixed error vs pT, eta)
Definition at line 74 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Get number of seeds to use from DNN output instead of "max..Seeds" parameters.
Definition at line 89 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().
|
private |
Definition at line 95 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 102 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 104 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 106 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Maximum eta value to activate searching in the TOB.
Definition at line 80 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 86 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Maximum number of hitless seeds for each L2.
Definition at line 68 of file TSGForOIDNN.cc.
|
private |
IP refers to TSOS at interaction point, MuS refers to TSOS at muon system
Definition at line 84 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 85 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Maximum number of hitbased seeds for each L2.
Definition at line 66 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Maximum number of seeds for each L2.
Definition at line 64 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 60 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 111 of file TSGForOIDNN.cc.
Referenced by produce(), and TSGForOIDNN().
|
private |
Minimum eta value to activate searching in the TEC.
Definition at line 78 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
How many hits to try per layer.
Definition at line 72 of file TSGForOIDNN.cc.
Referenced by makeSeedsFromHitDoublets(), and makeSeedsFromHits().
|
private |
How many layers to try.
Definition at line 70 of file TSGForOIDNN.cc.
Referenced by makeSeedsFromHits().
|
private |
Labels for input collections.
Definition at line 49 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
|
private |
Definition at line 56 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 52 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 57 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 53 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 54 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 58 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 55 of file TSGForOIDNN.cc.
Referenced by produce().
|
private |
Definition at line 96 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().
|
private |
Definition at line 103 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().
|
private |
Definition at line 105 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().
|
private |
Definition at line 107 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().
|
private |
Definition at line 61 of file TSGForOIDNN.cc.
Referenced by makeSeedsWithoutHits(), and produce().
|
private |
Definition at line 59 of file TSGForOIDNN.cc.
Referenced by makeSeedsFromHitDoublets(), and makeSeedsFromHits().
|
private |
Whether to use DNN regressor (if false, will use classifier)
Definition at line 91 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().