Public Types | |
typedef std::map< GEMDetId, GEMPadDigiClusters > | GEMPadDigiClusterContainer |
typedef std::vector< GEMPadDigiCluster > | GEMPadDigiClusters |
Public Types inherited from edm::stream::EDProducer<> | |
using | CacheTypes = CacheContexts< T... > |
using | GlobalCache = typename CacheTypes::GlobalCache |
using | HasAbility = AbilityChecker< T... > |
using | InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache |
using | LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache |
using | LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache > |
using | LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache |
using | RunCache = typename CacheTypes::RunCache |
using | RunContext = RunContextT< RunCache, GlobalCache > |
using | RunSummaryCache = typename CacheTypes::RunSummaryCache |
Public Member Functions | |
void | beginRun (const edm::Run &, const edm::EventSetup &) override |
GEMPadDigiClusterProducer (const edm::ParameterSet &ps) | |
void | produce (edm::Event &, const edm::EventSetup &) override |
~GEMPadDigiClusterProducer () override | |
Public Member Functions inherited from edm::stream::EDProducer<> | |
EDProducer ()=default | |
EDProducer (const EDProducer &)=delete | |
bool | hasAbilityToProduceInBeginLumis () const final |
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
bool | hasAbilityToProduceInBeginRuns () const final |
bool | hasAbilityToProduceInEndLumis () const final |
bool | hasAbilityToProduceInEndProcessBlocks () const final |
bool | hasAbilityToProduceInEndRuns () const final |
const EDProducer & | operator= (const EDProducer &)=delete |
Static Public Member Functions | |
static void | fillDescriptions (edm::ConfigurationDescriptions &descriptions) |
Private Member Functions | |
void | buildClusters (const GEMPadDigiCollection &pads, GEMPadDigiClusterContainer &out_clusters) const |
template<class T > | |
void | checkValid (const T &cluster, const GEMDetId &id) const |
void | selectClusters (const GEMPadDigiClusterContainer &in_clusters, GEMPadDigiClusterCollection &out) const |
Private Attributes | |
edm::ESGetToken< GEMGeometry, MuonGeometryRecord > | geom_token_ |
const GEMGeometry * | geometry_ |
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_ |
bool | sendOverflowClusters_ |
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 100 of file GEMPadDigiClusterProducer.cc.
References geom_token_, edm::ParameterSet::getParameter(), maxClusterSize_, maxClustersOHGE11_, maxClustersOHGE21_, maxClustersPartitionGE11_, maxClustersPartitionGE21_, nOHGE11_, nOHGE21_, nPartitionsGE11_, nPartitionsGE21_, pad_token_, pads_, and sendOverflowClusters_.
|
override |
Definition at line 125 of file GEMPadDigiClusterProducer.cc.
|
override |
Definition at line 144 of file GEMPadDigiClusterProducer.cc.
References options_cfi::eventSetup, geom_token_, and geometry_.
|
private |
Definition at line 167 of file GEMPadDigiClusterProducer.cc.
References checkValid(), haddnano::cl, ztail::d, GEMGeometry::etaPartitions(), geometry_, maxClusterSize_, and nPart().
Referenced by produce().
|
private |
Definition at line 270 of file GEMPadDigiClusterProducer.cc.
References l1ctLayer2EG_cff::id, and cmsswSequenceInfo::tp.
Referenced by buildClusters(), and selectClusters().
|
static |
Definition at line 127 of file GEMPadDigiClusterProducer.cc.
References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, and ProducerED_cfi::InputTag.
|
override |
Definition at line 149 of file GEMPadDigiClusterProducer.cc.
References buildClusters(), MillePedeFileConverter_cfg::e, eostools::move(), pad_token_, edm::Handle< T >::product(), and selectClusters().
|
private |
Definition at line 233 of file GEMPadDigiClusterProducer.cc.
References GEMGeometry::chambers(), checkValid(), geometry_, l1tTowerCalibrationProducer_cfi::iEta, maxClustersOHGE11_, maxClustersOHGE21_, maxClustersPartitionGE11_, maxClustersPartitionGE21_, nOHGE11_, nOHGE21_, nPartitionsGE11_, and nPartitionsGE21_.
Referenced by produce().
|
private |
Definition at line 83 of file GEMPadDigiClusterProducer.cc.
Referenced by beginRun(), and GEMPadDigiClusterProducer().
|
private |
Definition at line 97 of file GEMPadDigiClusterProducer.cc.
Referenced by beginRun(), buildClusters(), and selectClusters().
|
private |
Definition at line 94 of file GEMPadDigiClusterProducer.cc.
Referenced by buildClusters(), and GEMPadDigiClusterProducer().
|
private |
Definition at line 92 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 93 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 91 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 86 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Definition at line 87 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and selectClusters().
|
private |
Name of input digi Collection.
Definition at line 82 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer(), and produce().
|
private |
Definition at line 84 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer().
|
private |
Definition at line 95 of file GEMPadDigiClusterProducer.cc.
Referenced by GEMPadDigiClusterProducer().