CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Attributes
HGCalBackendLayer2Processor3DClustering Class Reference
Inheritance diagram for HGCalBackendLayer2Processor3DClustering:
HGCalProcessorBaseT< InputCollection, OutputCollection >

Public Member Functions

 HGCalBackendLayer2Processor3DClustering (const edm::ParameterSet &conf)
 
void run (const edm::Handle< l1t::HGCalClusterBxCollection > &collHandle, l1t::HGCalMulticlusterBxCollection &collCluster3D, const edm::EventSetup &es) override
 
- Public Member Functions inherited from HGCalProcessorBaseT< InputCollection, OutputCollection >
 HGCalProcessorBaseT (const edm::ParameterSet &conf)
 
const std::string & name () const
 
virtual void run (const InputCollection &inputColl, OutputCollection &outColl, const edm::EventSetup &es)=0
 
void setGeometry (const HGCalTriggerGeometryBase *const geom)
 
virtual ~HGCalProcessorBaseT ()
 

Private Types

enum  MulticlusterType { dRC3d, DBSCANC3d }
 

Private Attributes

HGCalMulticlusteringImpl multiclustering_
 
MulticlusterType multiclusteringAlgoType_
 
edm::ESHandle< HGCalTriggerGeometryBasetriggerGeometry_
 

Additional Inherited Members

- Protected Attributes inherited from HGCalProcessorBaseT< InputCollection, OutputCollection >
const HGCalTriggerGeometryBasegeometry_
 

Detailed Description

Definition at line 12 of file HGCalBackendLayer2Processor3DClustering.cc.

Member Enumeration Documentation

Constructor & Destructor Documentation

HGCalBackendLayer2Processor3DClustering::HGCalBackendLayer2Processor3DClustering ( const edm::ParameterSet conf)
inline

Definition at line 15 of file HGCalBackendLayer2Processor3DClustering.cc.

References DBSCANC3d, dRC3d, Exception, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), multiclusteringAlgoType_, and AlCaHLTBitMon_QueryRunRegistry::string.

15  :
17  multiclustering_( conf.getParameterSet("C3d_parameters") )
18  {
19  std::string typeMulticluster(conf.getParameterSet("C3d_parameters").getParameter<std::string>("type_multicluster"));
20  if(typeMulticluster=="dRC3d"){
22  }else if(typeMulticluster=="DBSCANC3d"){
24  }else {
25  throw cms::Exception("HGCTriggerParameterError")
26  << "Unknown Multiclustering type '" << typeMulticluster;
27  }
28  }
T getParameter(std::string const &) const
ParameterSet const & getParameterSet(std::string const &) const
HGCalProcessorBaseT< edm::Handle< l1t::HGCalClusterBxCollection >, l1t::HGCalMulticlusterBxCollection > HGCalBackendLayer2ProcessorBase

Member Function Documentation

void HGCalBackendLayer2Processor3DClustering::run ( const edm::Handle< l1t::HGCalClusterBxCollection > &  collHandle,
l1t::HGCalMulticlusterBxCollection collCluster3D,
const edm::EventSetup es 
)
inlineoverride

Definition at line 30 of file HGCalBackendLayer2Processor3DClustering.cc.

References HGCalMulticlusteringImpl::clusterizeDBSCAN(), HGCalMulticlusteringImpl::clusterizeDR(), DBSCANC3d, dRC3d, HGCalMulticlusteringImpl::eventSetup(), edm::EventSetup::get(), mps_fire::i, multiclustering_, multiclusteringAlgoType_, BXVector< T >::size(), and triggerGeometry_.

33  {
36 
37  /* create a persistent vector of pointers to the trigger-cells */
38  std::vector<edm::Ptr<l1t::HGCalCluster>> clustersPtrs;
39  for( unsigned i = 0; i < collHandle->size(); ++i ) {
40  edm::Ptr<l1t::HGCalCluster> ptr(collHandle,i);
41  clustersPtrs.push_back(ptr);
42  }
43 
44  /* call to multiclustering and compute shower shape*/
46  case dRC3d :
47  multiclustering_.clusterizeDR( clustersPtrs, collCluster3D, *triggerGeometry_);
48  break;
49  case DBSCANC3d:
50  multiclustering_.clusterizeDBSCAN( clustersPtrs, collCluster3D, *triggerGeometry_);
51  break;
52  default:
53  // Should not happen, clustering type checked in constructor
54  break;
55  }
56  }
unsigned size(int bx) const
edm::ESHandle< HGCalTriggerGeometryBase > triggerGeometry_
void eventSetup(const edm::EventSetup &es)
void clusterizeDR(const std::vector< edm::Ptr< l1t::HGCalCluster >> &clustersPtr, l1t::HGCalMulticlusterBxCollection &multiclusters, const HGCalTriggerGeometryBase &triggerGeometry)
T get() const
Definition: EventSetup.h:68
void clusterizeDBSCAN(const std::vector< edm::Ptr< l1t::HGCalCluster >> &clustersPtr, l1t::HGCalMulticlusterBxCollection &multiclusters, const HGCalTriggerGeometryBase &triggerGeometry)

Member Data Documentation

HGCalMulticlusteringImpl HGCalBackendLayer2Processor3DClustering::multiclustering_
private

Definition at line 67 of file HGCalBackendLayer2Processor3DClustering.cc.

Referenced by run().

MulticlusterType HGCalBackendLayer2Processor3DClustering::multiclusteringAlgoType_
private
edm::ESHandle<HGCalTriggerGeometryBase> HGCalBackendLayer2Processor3DClustering::triggerGeometry_
private

Definition at line 64 of file HGCalBackendLayer2Processor3DClustering.cc.

Referenced by run().