#include <L1Trigger/L1CaloTrigger/plugin/Phase1L1TJetProducer.cc>
Static Public Member Functions | |
static void | fillDescriptions (edm::ConfigurationDescriptions &descriptions) |
Static Public Member Functions inherited from edm::one::EDProducerBase | |
static const std::string & | baseType () |
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
static void | prevalidate (ConfigurationDescriptions &descriptions) |
Private Member Functions | |
reco::CaloJet | buildJetFromSeed (const std::tuple< int, int > &seed) const |
std::vector< reco::CaloJet > | buildJetsFromSeeds (const std::vector< std::tuple< int, int >> &seeds) const |
std::vector< reco::CaloJet > | buildJetsFromSeedsWithPUSubtraction (const std::vector< std::tuple< int, int >> &seeds, bool killZeroPt) const |
l1t::EtSum | computeMET (const double etaCut, l1t::EtSum::EtSumType sumType) const |
template<class Container > | |
void | fillCaloGrid (TH2F &caloGrid, const Container &triggerPrimitives, const unsigned int regionIndex) |
std::vector< std::tuple< int, int > > | findSeeds (float seedThreshold) const |
Finds the seeds in the caloGrid, seeds are saved in a vector that contain the index in the TH2F of each seed. More... | |
std::pair< float, float > | getCandidateDigiEtaPhi (const float eta, const float phi, const unsigned int regionIndex) const |
unsigned int | getRegionIndex (const unsigned int phiRegion, const unsigned int etaRegion) const |
float | getTowerEnergy (int iEta, int iPhi) const |
Get the energy of a certain tower while correctly handling phi periodicity in case of overflow. More... | |
template<class Handle > | |
std::vector< std::vector< reco::CandidatePtr > > | prepareInputsIntoRegions (const Handle triggerPrimitives) |
void | produce (edm::Event &, const edm::EventSetup &) override |
std::pair< double, double > | regionEtaPhiLowEdges (const unsigned int regionIndex) const |
std::pair< double, double > | regionEtaPhiUpEdges (const unsigned int regionIndex) const |
void | subtract9x9Pileup (reco::CaloJet &jet) const |
bool | trimTower (const int etaIndex, const int phiIndex) const |
Private Attributes | |
std::unique_ptr< TH2F > | caloGrid_ |
std::vector< double > | cosPhi_ |
std::vector< double > | etaBinning_ |
double | etalsb_ |
std::vector< double > | etaRegionEdges_ |
edm::EDGetTokenT< edm::View< reco::Candidate > > | inputCollectionTag_ |
unsigned int | jetIEtaSize_ |
unsigned int | jetIPhiSize_ |
unsigned int | maxInputsPerRegion_ |
double | metAbsEtaCut_ |
double | metHFAbsEtaCut_ |
size_t | nBinsEta_ |
unsigned int | nBinsPhi_ |
std::string | outputCollectionName_ |
double | phiLow_ |
double | philsb_ |
std::vector< double > | phiRegionEdges_ |
double | phiUp_ |
double | ptlsb_ |
bool | puSubtraction_ |
double | seedPtThreshold_ |
std::vector< double > | sinPhi_ |
bool | trimmedGrid_ |
bool | vetoZeroPt_ |
Additional Inherited Members | |
Public Types inherited from edm::one::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 | |
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) |
Description: Produces jets with a phase-1 like sliding window algorithm using a collection of reco::Candidates in input. Also calculates MET from the histogram used to find the jets.
INPUT PARAMETERS *** etaBinning: vdouble with eta binning (allows non-homogeneous binning in eta) nBinsPhi: uint32, number of bins in phi phiLow: double, min phi (typically -pi) phiUp: double, max phi (typically +pi) jetIEtaSize: uint32, jet cluster size in ieta jetIPhiSize: uint32, jet cluster size in iphi trimmedGrid: Flag (bool) to remove three bins in each corner of grid in jet finding seedPtThreshold: double, threshold of the seed tower pt/eta/philsb : lsb of quantities used in firmware implementation puSubtraction: bool, runs chunky doughnut pile-up subtraction, 9x9 jet only eta/phiRegionEdges: Boundaries of the input (PF) regions maxInputsPerRegion: Truncate number of inputes per input (PF) region sin/cosPhi: Value of sin/cos phi in the middle of each bin of the grid. met{HF}AbsETaCut: Eta selection of input candidates for calculation of MET outputCollectionName: string, tag for the output collection vetoZeroPt: bool, controls whether jets with 0 pt should be save. It matters if PU is ON, as you can get negative or zero pt jets after it. inputCollectionTag: inputtag, collection of reco::candidates used as input to the algo
Definition at line 62 of file Phase1L1TJetProducer.cc.
|
explicit |
Definition at line 165 of file Phase1L1TJetProducer.cc.
References edm::ParameterSet::getParameter().
|
override |
Definition at line 199 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 361 of file Phase1L1TJetProducer.cc.
References caloGrid_, getTowerEnergy(), L1TowerCalibrationProducer_cfi::iEta, createfilelist::int, metsig::jet, jetIEtaSize_, jetIPhiSize_, fileCollector::seed, trimmedGrid_, and trimTower().
Referenced by buildJetsFromSeeds(), and buildJetsFromSeedsWithPUSubtraction().
|
private |
Definition at line 406 of file Phase1L1TJetProducer.cc.
References buildJetFromSeed(), metsig::jet, PDWG_EXODelayedJetMET_cff::jets, fileCollector::seed, and DetachedQuadStep_cff::seeds.
Referenced by produce().
|
private |
Definition at line 390 of file Phase1L1TJetProducer.cc.
References buildJetFromSeed(), metsig::jet, PDWG_EXODelayedJetMET_cff::jets, fileCollector::seed, DetachedQuadStep_cff::seeds, subtract9x9Pileup(), and vetoZeroPt_.
Referenced by produce().
|
private |
Definition at line 572 of file Phase1L1TJetProducer.cc.
References caloGrid_, cosPhi_, fftjetproducer_cfi::etaCut, mps_fire::i, DiDispStaMuonMonitor_cfi::pt, ptlsb_, sinPhi_, mathSSE::sqrt(), and pileupReCalc_HLTpaths::trunc.
Referenced by produce().
|
private |
Definition at line 419 of file Phase1L1TJetProducer.cc.
References getCandidateDigiEtaPhi().
|
static |
Definition at line 488 of file Phase1L1TJetProducer.cc.
References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, HLT_2022v12_cff::InputTag, and M_PI.
|
private |
Finds the seeds in the caloGrid, seeds are saved in a vector that contain the index in the TH2F of each seed.
Definition at line 306 of file Phase1L1TJetProducer.cc.
References caloGrid_, getTowerEnergy(), L1TowerCalibrationProducer_cfi::iEta, createfilelist::int, jetIEtaSize_, jetIPhiSize_, DetachedQuadStep_cff::seeds, trimmedGrid_, and trimTower().
Referenced by produce().
|
private |
Definition at line 434 of file Phase1L1TJetProducer.cc.
References caloGrid_, PVValHelper::eta, etalsb_, mps_fire::i, phi, philsb_, regionEtaPhiLowEdges(), and regionEtaPhiUpEdges().
Referenced by fillCaloGrid().
|
private |
Definition at line 550 of file Phase1L1TJetProducer.cc.
References phiRegionEdges_.
Referenced by prepareInputsIntoRegions().
|
private |
Get the energy of a certain tower while correctly handling phi periodicity in case of overflow.
Definition at line 201 of file Phase1L1TJetProducer.cc.
References caloGrid_, L1TowerCalibrationProducer_cfi::iEta, hgcalTowerMapProducer_cfi::nBinsEta, and l1tSlwPFPuppiJets_cfi::nBinsPhi.
Referenced by buildJetFromSeed(), findSeeds(), and subtract9x9Pileup().
|
private |
std::vector<std::vector<edm::Ptr<reco::Candidate> > > Phase1L1TJetProducer::prepareInputsIntoRegions | ( | const Handle | triggerPrimitives | ) |
Definition at line 514 of file Phase1L1TJetProducer.cc.
References etaRegionEdges_, getRegionIndex(), mps_fire::i, PixelMapPlotter::inputs, maxInputsPerRegion_, phiRegionEdges_, cmsswSequenceInfo::tp, and pfDeepBoostedJetPreprocessParams_cfi::upper_bound.
|
overrideprivatevirtual |
Implements edm::one::EDProducerBase.
Definition at line 221 of file Phase1L1TJetProducer.cc.
References buildJetsFromSeeds(), buildJetsFromSeedsWithPUSubtraction(), caloGrid_, computeMET(), findSeeds(), iEvent, inputCollectionTag_, L1Analysis::kMissingEt, L1Analysis::kMissingEtHF, metAbsEtaCut_, metHFAbsEtaCut_, eostools::move(), outputCollectionName_, reco::LeafCandidate::pt(), puSubtraction_, seedPtThreshold_, jetUpdater_cfi::sort, and vetoZeroPt_.
|
private |
Definition at line 554 of file Phase1L1TJetProducer.cc.
References etaRegionEdges_, and phiRegionEdges_.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 560 of file Phase1L1TJetProducer.cc.
References etaRegionEdges_, and phiRegionEdges_.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 259 of file Phase1L1TJetProducer.cc.
References caloGrid_, getTowerEnergy(), metsig::jet, SiStripPI::max, x, x_scroll_max, x_scroll_min, y, y_scroll_max, and y_scroll_min.
Referenced by buildJetsFromSeedsWithPUSubtraction().
|
private |
Definition at line 594 of file Phase1L1TJetProducer.cc.
References jetIEtaSize_, and jetIPhiSize_.
Referenced by buildJetFromSeed(), and findSeeds().
|
private |
Definition at line 134 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), computeMET(), findSeeds(), getCandidateDigiEtaPhi(), getTowerEnergy(), produce(), and subtract9x9Pileup().
|
private |
Definition at line 157 of file Phase1L1TJetProducer.cc.
Referenced by computeMET().
|
private |
Definition at line 136 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 147 of file Phase1L1TJetProducer.cc.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 151 of file Phase1L1TJetProducer.cc.
Referenced by prepareInputsIntoRegions(), regionEtaPhiLowEdges(), and regionEtaPhiUpEdges().
|
private |
Definition at line 132 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 141 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), findSeeds(), and trimTower().
|
private |
Definition at line 142 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), findSeeds(), and trimTower().
|
private |
Definition at line 154 of file Phase1L1TJetProducer.cc.
Referenced by prepareInputsIntoRegions().
|
private |
Definition at line 159 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 161 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 137 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 138 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 162 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 139 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 146 of file Phase1L1TJetProducer.cc.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 152 of file Phase1L1TJetProducer.cc.
Referenced by getRegionIndex(), prepareInputsIntoRegions(), regionEtaPhiLowEdges(), and regionEtaPhiUpEdges().
|
private |
Definition at line 140 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 145 of file Phase1L1TJetProducer.cc.
Referenced by computeMET().
|
private |
Definition at line 148 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 144 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 156 of file Phase1L1TJetProducer.cc.
Referenced by computeMET().
|
private |
Definition at line 143 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), and findSeeds().
|
private |
Definition at line 149 of file Phase1L1TJetProducer.cc.
Referenced by buildJetsFromSeedsWithPUSubtraction(), and produce().