Public Types | |
typedef std::map< GEMDetId, GEMPadDigiClusters > | GEMPadDigiClusterContainer |
typedef std::vector< GEMPadDigiCluster > | GEMPadDigiClusters |
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 |
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 | |
GEMPadDigiClusterContainer | buildClusters (const GEMPadDigiCollection &pads, const GEMGeometry &) const |
template<class T > | |
void | checkValid (const T &cluster, const GEMDetId &id) const |
GEMPadDigiClusterCollection | selectClusters (const GEMPadDigiClusterContainer &in_clusters, const GEMGeometry &) const |
Private Attributes | |
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > | geom_token_ |
unsigned int | maxClusterSize_ |
unsigned int | maxClustersOHGE11_ |
unsigned int | maxClustersOHGE21_ |
unsigned int | maxClustersPartitionGE11_ |
unsigned int | maxClustersPartitionGE21_ |
unsigned int | nOHGE11_ |
unsigned int | nOHGE21_ |
unsigned int | nPartitionsGE11_ |
unsigned int | nPartitionsGE21_ |
edm::EDGetTokenT< GEMPadDigiCollection > | pad_token_ |
Name of input digi Collection. More... | |
edm::InputTag | pads_ |
edm::EDPutTokenT< GEMPadDigiClusterCollection > | put_token_ |
bool | sendOverflowClusters_ |
Additional Inherited Members | |
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) |
Produces GEM pad clusters from at most 8 adjacent GEM pads. Clusters are used downstream in the CSC local trigger to build GEM-CSC triggers and in the muon trigger to build EMTF tracks
Based on documentation provided by the GEM firmware architects
** Notes on chambers and cluster packing algorithm **
Based on: https://gitlab.cern.ch/emu/0xbefe/-/tree/devel/gem/hdl/cluster_finding/README.org (Andrew Peck, 2020/06/26)
GE1/1 chamber has 8 iEta partitions and 1 OH GE2/1 chamber has 16 iEta partitions and 4 OH (one per module)
Both GE1/1 and GE2/1 have 384 strips = 192 pads per iEta partition
GE1/1 OH has 4 clustering partitions, each covering 2 iEta partitions GE2/1 OH has 4 clustering partitions, each covering 1 iEta partition
Each clustering partition finds up to 4 clusters per BX, which are then sent to the sorter. The sorting of the clusters favors lower eta partitions and lower pad numbers.
The first 8 clusters are selected and sent out through optical fibers.
Definition at line 60 of file GEMPadDigiClusterProducer.cc.
typedef std::map<GEMDetId, GEMPadDigiClusters> GEMPadDigiClusterProducer::GEMPadDigiClusterContainer |
Definition at line 63 of file GEMPadDigiClusterProducer.cc.
typedef std::vector<GEMPadDigiCluster> GEMPadDigiClusterProducer::GEMPadDigiClusters |
Definition at line 62 of file GEMPadDigiClusterProducer.cc.
|
explicit |
Definition at line 97 of file GEMPadDigiClusterProducer.cc.
References geom_token_, edm::ParameterSet::getParameter(), maxClusterSize_, maxClustersOHGE11_, maxClustersOHGE21_, maxClustersPartitionGE11_, maxClustersPartitionGE21_, nOHGE11_, nOHGE21_, nPartitionsGE11_, nPartitionsGE21_, pad_token_, pads_, put_token_, and sendOverflowClusters_.
|
override |
Definition at line 121 of file GEMPadDigiClusterProducer.cc.
|
private |
Definition at line 152 of file GEMPadDigiClusterProducer.cc.
References checkValid(), haddnano::cl, ztail::d, maxClusterSize_, and nPart().
Referenced by produce().
|
private |
Definition at line 257 of file GEMPadDigiClusterProducer.cc.
References EcalPhiSymFlatTableProducers_cfi::id, and cmsswSequenceInfo::tp.
Referenced by buildClusters(), and selectClusters().
|
static |
Definition at line 123 of file GEMPadDigiClusterProducer.cc.
References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.
|
overridevirtual |
Implements edm::global::EDProducerBase.
Definition at line 140 of file GEMPadDigiClusterProducer.cc.
References buildClusters(), MillePedeFileConverter_cfg::e, options_cfi::eventSetup, geom_token_, pad_token_, put_token_, and selectClusters().
|
private |
Definition at line 218 of file GEMPadDigiClusterProducer.cc.
References checkValid(), l1tPhase2CaloJetEmulator_cfi::iEta, maxClustersOHGE11_, maxClustersOHGE21_, maxClustersPartitionGE11_, maxClustersPartitionGE21_, nOHGE11_, nOHGE21_, nPartitionsGE11_, and nPartitionsGE21_.
Referenced by produce().
|
private |
Definition at line 82 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and produce().
|
private |
Definition at line 93 of file GEMPadDigiClusterProducer.cc.
Referenced by buildClusters(), and GEMPadDigiClusterProducer().
|
private |
Definition at line 91 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 92 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 87 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 88 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 89 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 90 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 85 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 86 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Name of input digi Collection.
Definition at line 80 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and produce().
|
private |
Definition at line 83 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer().
|
private |
Definition at line 81 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and produce().
|
private |
Definition at line 94 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer().