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_barrel_ |
std::string | dnnModelPath_endcap_ |
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 | etaSplitForDnn_ |
Settings for classifier. 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_barrel_ |
std::unique_ptr < tensorflow::GraphDef > | graphDef_endcap_ |
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_barrel_ |
tensorflow::Session * | tf_session_endcap_ |
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 | |
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 | |
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 () noexcept |
template<Transition Tr = Transition::Event> | |
auto | esConsumes (ESInputTag tag) noexcept |
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 182 of file TSGForOIDNN.cc.
References tensorflow::createSession(), dnnMetadataPath_, dnnModelPath_barrel_, dnnModelPath_endcap_, dnnModelPath_HB_, dnnModelPath_HLIP_, dnnModelPath_HLMuS_, edm::FileInPath::fullPath(), getStrategyFromDNN_, graphDef_barrel_, graphDef_endcap_, graphDef_HB_, graphDef_HLIP_, graphDef_HLMuS_, tensorflow::loadGraphDef(), metadata_, tensorflow::setLogging(), AlCaHLTBitMon_QueryRunRegistry::string, tf_session_barrel_, tf_session_endcap_, tf_session_HB_, tf_session_HLIP_, tf_session_HLMuS_, and useRegressor_.
|
override |
Definition at line 247 of file TSGForOIDNN.cc.
References tensorflow::closeSession(), getStrategyFromDNN_, tf_session_barrel_, tf_session_endcap_, tf_session_HB_, tf_session_HLIP_, tf_session_HLMuS_, and useRegressor_.
|
private |
Evaluate DNN classifier.
Definition at line 849 of file TSGForOIDNN.cc.
References alignmentValidation::fname, mps_fire::i, input, label, TSGForOIDNN::StrategyParameters::nHBd, TSGForOIDNN::StrategyParameters::nHLIP, TSGForOIDNN::StrategyParameters::nHLMuS, tensorflow::run(), TSGForOIDNN::StrategyParameters::sf, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by produce().
|
private |
Evaluate DNN regressor.
Definition at line 906 of file TSGForOIDNN.cc.
References alignmentValidation::fname, input, TSGForOIDNN::StrategyParameters::nHBd, TSGForOIDNN::StrategyParameters::nHLIP, TSGForOIDNN::StrategyParameters::nHLMuS, tensorflow::run(), TSGForOIDNN::StrategyParameters::sf, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by produce().
|
static |
Definition at line 990 of file TSGForOIDNN.cc.
References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addUntracked(), submitPVResolutionJobs::desc, HLT_FULL_cff::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 597 of file TSGForOIDNN.cc.
References alongMomentum, GeometricSearchDet::compatibleDetsV(), MeasurementDetWithData::fastMeasurements(), newFWLiteAna::found, TrajectoryStateOnSurface::freeState(), MeasurementTrackerEvent::idToDet(), MeasurementDetWithData::isNull(), TrajectoryStateOnSurface::isValid(), phase1PixelTopology::layer, LogTrace, eostools::move(), NavigationSchool::nextLayers(), numOfHitsToTry_, oppositeToMomentum, trajectoryStateTransform::persistentState(), edm::OwnVector< T, P >::push_back(), fileCollector::seed, edm::OwnVector< T, P >::size(), 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 525 of file TSGForOIDNN.cc.
References GeometricSearchDet::compatibleDetsV(), MeasurementDetWithData::fastMeasurements(), newFWLiteAna::found, MeasurementTrackerEvent::idToDet(), MeasurementDetWithData::isNull(), TrajectoryStateOnSurface::isValid(), LogTrace, eostools::move(), numOfHitsToTry_, numOfLayersToTry_, oppositeToMomentum, trajectoryStateTransform::persistentState(), edm::OwnVector< T, P >::push_back(), fileCollector::seed, edm::OwnVector< T, P >::size(), and updator_.
Referenced by produce().
|
private |
Create seeds without hits on a given layer (TOB or TEC)
Definition at line 491 of file TSGForOIDNN.cc.
References GeometricSearchDet::compatibleDetsV(), LogTrace, oppositeToMomentum, trajectoryStateTransform::persistentState(), edm::OwnVector< T, P >::push_back(), and theCategory_.
Referenced by produce().
|
overridevirtual |
Implements edm::global::EDProducerBase.
Definition at line 263 of file TSGForOIDNN.cc.
References funct::abs(), alongMomentum, Plane::build(), etaSplitForDnn_, evaluateClassifier(), evaluateRegressor(), fixedErrorRescalingForHitless_, relativeConstraints::geometry, edm::Event::get(), edm::EventSetup::getData(), edm::EventSetup::getHandle(), getStrategyFromDNN_, trajectoryStateTransform::initialFreeState(), trajectoryStateTransform::innerStateOnSurface(), PixelPluginsPhase0_cfi::isBarrel, TrackerGeometry::isThere(), TrajectoryStateOnSurface::isValid(), phase1PixelTopology::layer, LayerTriplets::layers(), LogTrace, volumeBasedMagneticField_160812_cfi::magfield, makeSeedsFromHitDoublets(), makeSeedsFromHits(), makeSeedsWithoutHits(), maxEtaForTOB_, maxHitDoubletSeeds_, maxHitlessSeedsIP_, maxHitlessSeedsMuS_, HLT_FULL_cff::maxHitSeeds, maxHitSeeds_, maxSeeds_, HLT_FULL_cff::measurementTracker, measurementTrackerTag_, metadata_, minEtaForTEC_, eostools::move(), TSGForOIDNN::StrategyParameters::nHBd, TSGForOIDNN::StrategyParameters::nHLIP, TSGForOIDNN::StrategyParameters::nHLMuS, oppositeToMomentum, submitPVResolutionJobs::out, GeomDetEnumerators::P2OTEC, FreeTrajectoryState::position(), HLT_FULL_cff::propagatorAlong, HLT_FULL_cff::propagatorOpposite, edm::Event::put(), mps_fire::result, SetPropagationDirection(), TSGForOIDNN::StrategyParameters::sf, src_, t_estimatorH_, t_geometryH_, t_magfieldH_, t_navSchool_, t_propagatorAlongH_, t_propagatorOppositeH_, t_SHPOpposite_, t_tmpTkGeometryH_, tf_session_barrel_, tf_session_endcap_, tf_session_HB_, tf_session_HLIP_, tf_session_HLMuS_, theCategory_, updateFeatureMap(), and useRegressor_.
|
private |
Update dictionary of inputs for DNN.
Definition at line 784 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 |
Definition at line 95 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 96 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
|
private |
Definition at line 104 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 105 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Estimator used to find dets and TrajectoryMeasurements.
Definition at line 76 of file TSGForOIDNN.cc.
|
private |
|
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 97 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 99 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 106 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 108 of file TSGForOIDNN.cc.
Referenced by TSGForOIDNN().
|
private |
Definition at line 110 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 115 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 98 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().
|
private |
Definition at line 100 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 109 of file TSGForOIDNN.cc.
Referenced by produce(), TSGForOIDNN(), and ~TSGForOIDNN().
|
private |
Definition at line 111 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().