#include <L1Trigger/L1TTrackMatch/plugins/L1GTTInputProducer.cc>
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 Types | |
enum | ConversionBitWidths { kEtaMagSize = 3, kEtaFracSize = 5, kEtaInputSize = 16, kPTMagSize = 7, kPTFracSize = 3, kPTInputSize = 15, kEtaOutputSize = kEtaMagSize + kEtaFracSize, kPTOutputSize = kPTMagSize + kPTFracSize } |
typedef TTTrack_TrackWord::tanl_t | in_eta_t |
typedef TTTrack_TrackWord::rinv_t | in_pt_t |
typedef TTTrack< Ref_Phase2TrackerDigi_ > | L1Track |
typedef ap_uint< 1 > | out_charge_t |
typedef ap_fixed< kEtaOutputSize, kEtaMagSize, AP_RND_CONV, AP_SAT > | out_eta_t |
typedef ap_ufixed< kPTOutputSize, kPTMagSize, AP_RND_CONV, AP_SAT > | out_pt_t |
typedef std::vector< L1Track > | TTTrackCollection |
typedef edm::View< L1Track > | TTTrackCollectionView |
Private Member Functions | |
void | generate_eta_lut () |
void | generate_pt_lut () |
bool | getEtaBits (const L1Track &track, out_eta_t &etaBits, double &expected, double &maxErrPerc, double &maxErrEpsilon) const |
bool | getPtBits (const L1Track &track, out_pt_t &ptBits, out_charge_t &chargeBit, double &expected, double &maxErrPerc, double &maxErrEpsilon, double &minErrPerc, double &minExpected) const |
double | indexTanLambda2Eta (unsigned int indexTanLambda) const |
double | inverseRT2InversePT (unsigned int indexRT) const |
void | produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override |
template<typename T > | |
int | sgn (T val) const |
double | unpackSignedValue (unsigned int bits, unsigned int nBits, double lsb) const |
Private Attributes | |
int | debug_ |
std::vector< out_eta_t > | eta_lut_ |
const edm::EDGetTokenT< TTTrackCollectionView > | l1TracksToken_ |
const std::string | outputCollectionName_ |
std::vector< out_pt_t > | pt_lut_ |
Static Private Attributes | |
static constexpr double | kEtaErrThresh = 0.0485 |
static constexpr unsigned int | kEtaLutSize = (1 << (ConversionBitWidths::kEtaOutputSize - 1)) |
static constexpr double | kPTErrThresh = 5 |
static constexpr unsigned int | kPtLutSize = (1 << ConversionBitWidths::kPTOutputSize) |
static constexpr double | kSynchrotron = (1.0 / (0.3 * 3.8)) |
static constexpr unsigned int | Npars4 = 4 |
static constexpr unsigned int | Npars5 = 5 |
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) |
Description: Takes in L1TTracks and outputs the same tracks, but with modifications to the underlying track word. The modifications convert from Rinv –> pt and tanL –> eta.
Implementation: [Notes on implementation]
Definition at line 50 of file L1GTTInputProducer.cc.
|
private |
Definition at line 85 of file L1GTTInputProducer.cc.
|
private |
Definition at line 87 of file L1GTTInputProducer.cc.
|
private |
Definition at line 81 of file L1GTTInputProducer.cc.
|
private |
Definition at line 88 of file L1GTTInputProducer.cc.
|
private |
Definition at line 84 of file L1GTTInputProducer.cc.
|
private |
Definition at line 86 of file L1GTTInputProducer.cc.
|
private |
Definition at line 82 of file L1GTTInputProducer.cc.
|
private |
Definition at line 83 of file L1GTTInputProducer.cc.
|
private |
Enumerator | |
---|---|
kEtaMagSize | |
kEtaFracSize | |
kEtaInputSize | |
kPTMagSize | |
kPTFracSize | |
kPTInputSize | |
kEtaOutputSize | |
kPTOutputSize |
Definition at line 61 of file L1GTTInputProducer.cc.
|
explicit |
Definition at line 123 of file L1GTTInputProducer.cc.
References generate_eta_lut(), generate_pt_lut(), and outputCollectionName_.
|
override |
Definition at line 137 of file L1GTTInputProducer.cc.
|
static |
Definition at line 528 of file L1GTTInputProducer.cc.
References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, ProducerED_cfi::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
generate_lut: calculate the lut and write it to a file
Definition at line 153 of file L1GTTInputProducer.cc.
References debug_, eta_lut_, mps_fire::i, indexTanLambda2Eta(), kEtaInputSize, kEtaLutSize, kEtaOutputSize, dqm-mbProfile::log, and funct::pow().
Referenced by L1GTTInputProducer().
|
private |
Definition at line 175 of file L1GTTInputProducer.cc.
References debug_, mps_fire::i, inverseRT2InversePT(), kPTInputSize, kPtLutSize, kPTOutputSize, dqm-mbProfile::log, funct::pow(), and pt_lut_.
Referenced by L1GTTInputProducer().
|
private |
Definition at line 246 of file L1GTTInputProducer.cc.
References funct::abs(), debug_, dumpMFGeometry_cfg::delta, eta_lut_, indexTanLambda2Eta(), kEtaErrThresh, kEtaInputSize, kEtaOutputSize, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::pixelStatus::mask, funct::pow(), Validation_hcalonly_cfi::sign, HLT_2024v13_cff::track, and relativeConstraints::value.
Referenced by produce().
|
private |
Definition at line 319 of file L1GTTInputProducer.cc.
References funct::abs(), ALCARECOTkAlJpsiMuMu_cff::charge, debug_, dumpMFGeometry_cfg::delta, inverseRT2InversePT(), kPTErrThresh, kPTInputSize, kPTOutputSize, ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::pixelStatus::mask, funct::pow(), pt_lut_, EcalSCDynamicDPhiParametersESProducer_cfi::saturation, sgn(), Validation_hcalonly_cfi::sign, HLT_2024v13_cff::track, and relativeConstraints::value.
Referenced by produce().
|
private |
indexTanLambda2Eta: calculates eta from tan(lambda)
Definition at line 220 of file L1GTTInputProducer.cc.
References debug_, PVValHelper::eta, kEtaInputSize, dqm-mbProfile::log, M_PI, TTTrack_TrackWord::stepTanL, funct::tan(), theta(), and unpackSignedValue().
Referenced by generate_eta_lut(), and getEtaBits().
|
private |
inverseRT2InversePT: calculates 1/pT from 1/rT
Definition at line 241 of file L1GTTInputProducer.cc.
References kPTInputSize, kSynchrotron, TTTrack_TrackWord::stepRinv, and unpackSignedValue().
Referenced by generate_pt_lut(), and getPtBits().
|
overrideprivatevirtual |
Implements edm::global::EDProducerBase.
Definition at line 403 of file L1GTTInputProducer.cc.
References debug_, Exception, getEtaBits(), getPtBits(), iEvent, kEtaErrThresh, kPTErrThresh, kPTInputSize, l1TracksToken_, eostools::move(), Npars4, Npars5, outputCollectionName_, and HLT_2024v13_cff::track.
|
inlineprivate |
Definition at line 107 of file L1GTTInputProducer.cc.
References heppy_batch::val.
Referenced by getPtBits().
|
private |
Definition at line 196 of file L1GTTInputProducer.cc.
References cms::cuda::assert(), ALPAKA_ACCELERATOR_NAMESPACE::pixelClustering::pixelStatus::bits, and l1tHGCalVFEProducer_cfi::lsb.
Referenced by indexTanLambda2Eta(), and inverseRT2InversePT().
|
private |
Definition at line 115 of file L1GTTInputProducer.cc.
Referenced by generate_eta_lut(), generate_pt_lut(), getEtaBits(), getPtBits(), indexTanLambda2Eta(), and produce().
|
private |
Definition at line 117 of file L1GTTInputProducer.cc.
Referenced by generate_eta_lut(), and getEtaBits().
|
staticprivate |
Definition at line 74 of file L1GTTInputProducer.cc.
Referenced by getEtaBits(), and produce().
|
staticprivate |
Definition at line 79 of file L1GTTInputProducer.cc.
Referenced by generate_eta_lut().
|
staticprivate |
Definition at line 76 of file L1GTTInputProducer.cc.
Referenced by getPtBits(), and produce().
|
staticprivate |
Definition at line 78 of file L1GTTInputProducer.cc.
Referenced by generate_pt_lut().
|
staticprivate |
Definition at line 77 of file L1GTTInputProducer.cc.
Referenced by inverseRT2InversePT().
|
private |
Definition at line 113 of file L1GTTInputProducer.cc.
Referenced by produce().
|
staticprivate |
Definition at line 59 of file L1GTTInputProducer.cc.
Referenced by produce().
|
staticprivate |
Definition at line 60 of file L1GTTInputProducer.cc.
Referenced by produce().
|
private |
Definition at line 114 of file L1GTTInputProducer.cc.
Referenced by L1GTTInputProducer(), and produce().
|
private |
Definition at line 116 of file L1GTTInputProducer.cc.
Referenced by generate_pt_lut(), and getPtBits().