CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
MTDClusterProducer Class Reference

EDProducer to cluster FTLRecHits into FTLClusters. More...

Inheritance diagram for MTDClusterProducer:
edm::stream::EDProducer<>

Public Member Functions

 MTDClusterProducer (const edm::ParameterSet &conf)
 Constructor: set the ParameterSet and defer all thinking to setupClusterizer(). More...
 
void produce (edm::Event &e, const edm::EventSetup &c) override
 The "Event" entrypoint: gets called by framework for every event. More...
 
template<typename T >
void run (const T &input, FTLClusterCollection &output)
 Iterate over DetUnits, and invoke the PixelClusterizer on each. More...
 
 ~MTDClusterProducer () override=default
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

const edm::EDGetTokenT< FTLRecHitCollectionbtlHits_
 
std::unique_ptr< MTDClusterizerBaseclusterizer_
 
const std::string clusterMode_
 
const edm::EDGetTokenT< FTLRecHitCollectionetlHits_
 
const std::string ftlbInstance_
 
const std::string ftleInstance_
 
const MTDGeometrygeom_
 
const MTDTopologytopo_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

EDProducer to cluster FTLRecHits into FTLClusters.

Definition at line 39 of file MTDClusterProducer.cc.

Constructor & Destructor Documentation

◆ MTDClusterProducer()

MTDClusterProducer::MTDClusterProducer ( const edm::ParameterSet conf)
explicit

Constructor: set the ParameterSet and defer all thinking to setupClusterizer().

Definition at line 70 of file MTDClusterProducer.cc.

71  : btlHits_(consumes<FTLRecHitCollection>(conf.getParameter<edm::InputTag>("srcBarrel"))),
72  etlHits_(consumes<FTLRecHitCollection>(conf.getParameter<edm::InputTag>("srcEndcap"))),
73  ftlbInstance_(conf.getParameter<std::string>("BarrelClusterName")),
74  ftleInstance_(conf.getParameter<std::string>("EndcapClusterName")),
75  clusterMode_(conf.getParameter<std::string>("ClusterMode")),
76  clusterizer_(nullptr) // the default, in case we fail to make one
77 {
78  //--- Declare to the EDM what kind of collections we will be making.
79  produces<FTLClusterCollection>(ftlbInstance_);
80  produces<FTLClusterCollection>(ftleInstance_);
81 
82  //--- Make the algorithm(s) according to what the user specified
83  //--- in the ParameterSet.
84  if (clusterMode_ == "MTDThresholdClusterizer") {
85  clusterizer_ = std::make_unique<MTDThresholdClusterizer>(conf);
86  } else {
87  throw cms::Exception("MTDClusterProducer") << "[MTDClusterProducer]:"
88  << " choice " << clusterMode_ << " is invalid.\n"
89  << "Possible choices:\n"
90  << " MTDThresholdClusterizer";
91  }
92 }

References clusterizer_, clusterMode_, Exception, ftlbInstance_, and ftleInstance_.

◆ ~MTDClusterProducer()

MTDClusterProducer::~MTDClusterProducer ( )
overridedefault

Member Function Documentation

◆ fillDescriptions()

void MTDClusterProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 95 of file MTDClusterProducer.cc.

95  {
97  desc.add<edm::InputTag>("srcBarrel", edm::InputTag("mtdRecHits:FTLBarrel"));
98  desc.add<edm::InputTag>("srcEndcap", edm::InputTag("mtdRecHits:FTLEndcap"));
99  desc.add<std::string>("BarrelClusterName", "FTLBarrel");
100  desc.add<std::string>("EndcapClusterName", "FTLEndcap");
101  desc.add<std::string>("ClusterMode", "MTDThresholdClusterizer");
103  descriptions.add("mtdClusterProducer", desc);
104 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, MTDThresholdClusterizer::fillDescriptions(), HLT_FULL_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

void MTDClusterProducer::produce ( edm::Event e,
const edm::EventSetup c 
)
override

The "Event" entrypoint: gets called by framework for every event.

Definition at line 109 of file MTDClusterProducer.cc.

109  {
110  // Step A.1: get input data
113  e.getByToken(btlHits_, inputBarrel);
114  e.getByToken(etlHits_, inputEndcap);
115 
116  // Step A.2: get event setup
118  es.get<MTDDigiGeometryRecord>().get(geom);
119  geom_ = geom.product();
120 
122  es.get<MTDTopologyRcd>().get(mtdTopo);
123  topo_ = mtdTopo.product();
124 
125  // Step B: create the final output collection
126  auto outputBarrel = std::make_unique<FTLClusterCollection>();
127  auto outputEndcap = std::make_unique<FTLClusterCollection>();
128 
129  run(*inputBarrel, *outputBarrel);
130  run(*inputEndcap, *outputEndcap);
131 
132  e.put(std::move(outputBarrel), ftlbInstance_);
133  e.put(std::move(outputEndcap), ftleInstance_);
134 }

References btlHits_, MillePedeFileConverter_cfg::e, etlHits_, ftlbInstance_, ftleInstance_, relativeConstraints::geom, geom_, edm::EventSetup::get(), get, eostools::move(), edm::ESHandle< T >::product(), run(), and topo_.

◆ run()

template<typename T >
void MTDClusterProducer::run ( const T input,
FTLClusterCollection output 
)

Iterate over DetUnits, and invoke the PixelClusterizer on each.

Definition at line 140 of file MTDClusterProducer.cc.

140  {
141  if (!clusterizer_) {
142  throw cms::Exception("MTDClusterProducer") << " at least one clusterizer is not ready -- can't run!";
143  }
144 
145  clusterizer_->clusterize(input, geom_, topo_, output);
146 
147  LogDebug("MTDClusterProducer") << " Executing " << clusterMode_ << " resulted in " << output.size()
148  << " MTDClusters for " << input.size() << " Hits.";
149 }

References clusterizer_, clusterMode_, Exception, geom_, input, LogDebug, convertSQLitetoXML_cfg::output, and topo_.

Referenced by produce().

Member Data Documentation

◆ btlHits_

const edm::EDGetTokenT<FTLRecHitCollection> MTDClusterProducer::btlHits_
private

Definition at line 54 of file MTDClusterProducer.cc.

Referenced by produce().

◆ clusterizer_

std::unique_ptr<MTDClusterizerBase> MTDClusterProducer::clusterizer_
private

Definition at line 61 of file MTDClusterProducer.cc.

Referenced by MTDClusterProducer(), and run().

◆ clusterMode_

const std::string MTDClusterProducer::clusterMode_
private

Definition at line 60 of file MTDClusterProducer.cc.

Referenced by MTDClusterProducer(), and run().

◆ etlHits_

const edm::EDGetTokenT<FTLRecHitCollection> MTDClusterProducer::etlHits_
private

Definition at line 55 of file MTDClusterProducer.cc.

Referenced by produce().

◆ ftlbInstance_

const std::string MTDClusterProducer::ftlbInstance_
private

Definition at line 57 of file MTDClusterProducer.cc.

Referenced by MTDClusterProducer(), and produce().

◆ ftleInstance_

const std::string MTDClusterProducer::ftleInstance_
private

Definition at line 58 of file MTDClusterProducer.cc.

Referenced by MTDClusterProducer(), and produce().

◆ geom_

const MTDGeometry* MTDClusterProducer::geom_
private

Definition at line 63 of file MTDClusterProducer.cc.

Referenced by produce(), and run().

◆ topo_

const MTDTopology* MTDClusterProducer::topo_
private

Definition at line 64 of file MTDClusterProducer.cc.

Referenced by produce(), and run().

MTDDigiGeometryRecord
Definition: MTDDigiGeometryRecord.h:15
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
MTDClusterProducer::run
void run(const T &input, FTLClusterCollection &output)
Iterate over DetUnits, and invoke the PixelClusterizer on each.
Definition: MTDClusterProducer.cc:140
input
static const std::string input
Definition: EdmProvDump.cc:48
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
MTDClusterProducer::ftlbInstance_
const std::string ftlbInstance_
Definition: MTDClusterProducer.cc:57
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
MTDClusterProducer::etlHits_
const edm::EDGetTokenT< FTLRecHitCollection > etlHits_
Definition: MTDClusterProducer.cc:55
edm::Handle
Definition: AssociativeIterator.h:50
MTDClusterProducer::ftleInstance_
const std::string ftleInstance_
Definition: MTDClusterProducer.cc:58
MTDClusterProducer::topo_
const MTDTopology * topo_
Definition: MTDClusterProducer.cc:64
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
edm::ESHandle
Definition: DTSurvey.h:22
relativeConstraints.geom
geom
Definition: relativeConstraints.py:72
MTDClusterProducer::geom_
const MTDGeometry * geom_
Definition: MTDClusterProducer.cc:63
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
MTDTopologyRcd
Definition: MTDTopologyRcd.h:10
MTDClusterProducer::clusterMode_
const std::string clusterMode_
Definition: MTDClusterProducer.cc:60
MTDThresholdClusterizer::fillDescriptions
static void fillDescriptions(edm::ParameterSetDescription &desc)
Definition: MTDThresholdClusterizer.cc:50
get
#define get
MTDClusterProducer::clusterizer_
std::unique_ptr< MTDClusterizerBase > clusterizer_
Definition: MTDClusterProducer.cc:61
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
Exception
Definition: hltDiff.cc:246
MTDClusterProducer::btlHits_
const edm::EDGetTokenT< FTLRecHitCollection > btlHits_
Definition: MTDClusterProducer.cc:54
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::InputTag
Definition: InputTag.h:15
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37