#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 | |
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 63 of file Phase1L1TJetProducer.cc.
|
explicit |
Definition at line 166 of file Phase1L1TJetProducer.cc.
References edm::ParameterSet::getParameter().
|
override |
Definition at line 200 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 362 of file Phase1L1TJetProducer.cc.
References caloGrid_, getTowerEnergy(), metsig::jet, jetIEtaSize_, jetIPhiSize_, fileCollector::seed, reco::LeafCandidate::setP4(), trimmedGrid_, and trimTower().
Referenced by buildJetsFromSeeds(), and buildJetsFromSeedsWithPUSubtraction().
|
private |
Definition at line 407 of file Phase1L1TJetProducer.cc.
References buildJetFromSeed(), metsig::jet, fwrapper::jets, fileCollector::seed, and DetachedQuadStep_cff::seeds.
Referenced by produce().
|
private |
Definition at line 391 of file Phase1L1TJetProducer.cc.
References buildJetFromSeed(), metsig::jet, fwrapper::jets, reco::LeafCandidate::pt(), fileCollector::seed, DetachedQuadStep_cff::seeds, subtract9x9Pileup(), and vetoZeroPt_.
Referenced by produce().
|
private |
Definition at line 573 of file Phase1L1TJetProducer.cc.
References caloGrid_, cosPhi_, mps_fire::i, DiDispStaMuonMonitor_cfi::pt, ptlsb_, sinPhi_, mathSSE::sqrt(), and pileupReCalc_HLTpaths::trunc.
Referenced by produce().
|
private |
Definition at line 420 of file Phase1L1TJetProducer.cc.
References getCandidateDigiEtaPhi().
|
static |
Definition at line 489 of file Phase1L1TJetProducer.cc.
References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, HLT_FULL_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 307 of file Phase1L1TJetProducer.cc.
References caloGrid_, getTowerEnergy(), jetIEtaSize_, jetIPhiSize_, DetachedQuadStep_cff::seeds, trimmedGrid_, and trimTower().
Referenced by produce().
|
private |
Definition at line 435 of file Phase1L1TJetProducer.cc.
References caloGrid_, etalsb_, mps_fire::i, philsb_, regionEtaPhiLowEdges(), and regionEtaPhiUpEdges().
Referenced by fillCaloGrid().
|
private |
Definition at line 551 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 202 of file Phase1L1TJetProducer.cc.
References caloGrid_.
Referenced by buildJetFromSeed(), findSeeds(), and subtract9x9Pileup().
|
private |
std::vector<std::vector<edm::Ptr<reco::Candidate> > > Phase1L1TJetProducer::prepareInputsIntoRegions | ( | const Handle | triggerPrimitives | ) |
Definition at line 515 of file Phase1L1TJetProducer.cc.
References etaRegionEdges_, getRegionIndex(), mps_fire::i, PixelMapPlotter::inputs, maxInputsPerRegion_, phiRegionEdges_, cmsswSequenceInfo::tp, and cuda_std::upper_bound().
|
overrideprivatevirtual |
Implements edm::one::EDProducerBase.
Definition at line 222 of file Phase1L1TJetProducer.cc.
References buildJetsFromSeeds(), buildJetsFromSeedsWithPUSubtraction(), caloGrid_, computeMET(), findSeeds(), edm::Event::getByToken(), inputCollectionTag_, L1Analysis::kMissingEt, L1Analysis::kMissingEtHF, metAbsEtaCut_, metHFAbsEtaCut_, eostools::move(), outputCollectionName_, reco::LeafCandidate::pt(), puSubtraction_, edm::Event::put(), seedPtThreshold_, and vetoZeroPt_.
|
private |
Definition at line 555 of file Phase1L1TJetProducer.cc.
References etaRegionEdges_, and phiRegionEdges_.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 561 of file Phase1L1TJetProducer.cc.
References etaRegionEdges_, and phiRegionEdges_.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 260 of file Phase1L1TJetProducer.cc.
References caloGrid_, reco::LeafCandidate::eta(), getTowerEnergy(), SiStripPI::max, reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), reco::LeafCandidate::setP4(), reco::Jet::setPileup(), x, x_scroll_max, x_scroll_min, y, y_scroll_max, and y_scroll_min.
Referenced by buildJetsFromSeedsWithPUSubtraction().
|
private |
Definition at line 595 of file Phase1L1TJetProducer.cc.
References jetIEtaSize_, and jetIPhiSize_.
Referenced by buildJetFromSeed(), and findSeeds().
|
private |
Definition at line 135 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), computeMET(), findSeeds(), getCandidateDigiEtaPhi(), getTowerEnergy(), produce(), and subtract9x9Pileup().
|
private |
Definition at line 158 of file Phase1L1TJetProducer.cc.
Referenced by computeMET().
|
private |
Definition at line 137 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 148 of file Phase1L1TJetProducer.cc.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 152 of file Phase1L1TJetProducer.cc.
Referenced by prepareInputsIntoRegions(), regionEtaPhiLowEdges(), and regionEtaPhiUpEdges().
|
private |
Definition at line 133 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 142 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), findSeeds(), and trimTower().
|
private |
Definition at line 143 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), findSeeds(), and trimTower().
|
private |
Definition at line 155 of file Phase1L1TJetProducer.cc.
Referenced by prepareInputsIntoRegions().
|
private |
Definition at line 160 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 162 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 138 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 139 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 163 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 140 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 147 of file Phase1L1TJetProducer.cc.
Referenced by getCandidateDigiEtaPhi().
|
private |
Definition at line 153 of file Phase1L1TJetProducer.cc.
Referenced by getRegionIndex(), prepareInputsIntoRegions(), regionEtaPhiLowEdges(), and regionEtaPhiUpEdges().
|
private |
Definition at line 141 of file Phase1L1TJetProducer.cc.
|
private |
Definition at line 146 of file Phase1L1TJetProducer.cc.
Referenced by computeMET().
|
private |
Definition at line 149 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 145 of file Phase1L1TJetProducer.cc.
Referenced by produce().
|
private |
Definition at line 157 of file Phase1L1TJetProducer.cc.
Referenced by computeMET().
|
private |
Definition at line 144 of file Phase1L1TJetProducer.cc.
Referenced by buildJetFromSeed(), and findSeeds().
|
private |
Definition at line 150 of file Phase1L1TJetProducer.cc.
Referenced by buildJetsFromSeedsWithPUSubtraction(), and produce().