PandaRoot
BSEmcRecursiveClustering Class Reference

Recursive clustering. More...

#include <BSEmcRecursiveClustering.h>

Inheritance diagram for BSEmcRecursiveClustering:
PndProcess< BSEmcClusteringData >

Public Member Functions

 BSEmcRecursiveClustering ()
 
virtual ~BSEmcRecursiveClustering ()
 
virtual void SetDetectorName (const std::string &t_detectorName)
 Set the Detector name. Important, as most EmcParameter need to know for which detector they need to be fetched (each Emc Subdetector has its own set of parameters) More...
 
virtual void SetData (BSEmcClusteringData *t_data)
 Pass the data container ptrs to the process, and store pointers in class members. More...
 
virtual void SetupParameters (const PndParameterRegister *t_paramRegister)
 Fetch all parameters from the PndParameterRegister. More...
 
virtual void Process ()
 The actual data transformation (digitizing, clustering, etc.) should be defined here. More...
 
std::vector< BSEmcCluster * > Clustering (const std::vector< const BSEmcDigi *> &t_digis)
 
void SetClusteringParName (const std::string &t_parName)
 
void SetClusterPropertiesParName (const std::string &t_parName)
 
void SetPositionParName (const std::string &t_parName)
 
void SetNeighbouringRelationParName (const std::string &t_parName)
 
- Public Member Functions inherited from PndProcess< BSEmcClusteringData >
 PndProcess ()
 
 PndProcess (const std::string &t_processname)
 
virtual ~PndProcess ()
 
const std::vector< std::string > & GetListOfRequiredParameters () const
 Get the List Of Required Parameters. More...
 
virtual void PreProcess ()
 PreProcess() is called before the actual Process() call in each event. More...
 
virtual void PostProcess ()
 Immediately after calling Process() PostProcess() is called for cleanup of internal process data, or if not needed, to end the time and memory increase measurement started by PreProcess() More...
 
virtual void TearDown ()
 Last actions at the end of the run. More...
 

Protected Member Functions

void FillGeoItems (const std::vector< const BSEmcDigi *> &t_digis)
 
std::vector< std::vector< BSEmcGeoItem * > > SpatialClustering (const std::vector< const BSEmcDigi *> &t_digis)
 
std::vector< BSEmcCluster * > ConvertToCluster (const std::vector< std::vector< BSEmcGeoItem *>> &t_clusterstubs, const std::vector< const BSEmcDigi *> &t_digis) const
 
void Reset ()
 
 ClassDef (BSEmcRecursiveClustering, 1)
 

Protected Attributes

std::string fClusteringParName {""}
 
std::string fClusterPropertiesParName {""}
 
std::string fPositionParName {""}
 
std::string fNeighbouringRelationParName {""}
 
std::string fDigiBranchName {""}
 
Double_t fClusterActiveTime {-1}
 
Double_t fDigiEnergyThreshold {-1}
 
PndContainerI< BSEmcDigi > * fDigiArray {nullptr}
 
PndOutputContainerI< BSEmcCluster > * fClusterArray {nullptr}
 
BSEmcGeoNeighbouringRelationParfNeighbouringRelationPar {nullptr}
 
std::unique_ptr< BSEmcPositionAlgofPositionProcess {new BSEmcPositionAlgo}
 
std::unique_ptr< BSEmcEnergyCalculationAlgofEnergyProcess {new BSEmcEnergyCalculationAlgo}
 
std::map< Int_t, std::unique_ptr< BSEmcGeoItem > > fIDToCrystal {}
 
std::set< BSEmcGeoItem * > fChangedCrystals {}
 
- Protected Attributes inherited from PndProcess< BSEmcClusteringData >
std::vector< std::string > fParameterList
 Parameter names required by this PndProcess. Needs to be populated in derived class. More...
 
std::string fDetectorName
 Set Detector name this PndProcess transforms data for. Required for example by EMC Processes to fetch right parameters. More...
 
std::string fProcessName
 Name of current PndProcess (for debugging) More...
 
TStopwatch fTimer
 Timer to monitor Process() time. More...
 
Double_t fTotalTime
 Time taken by this Process' Process() More...
 
ProcInfo_t fProcInfo
 Helper to access cpu process Memory Info. More...
 
Long_t fLastMemSize
 

Detailed Description

Recursive clustering.

Very simplistic spatial clustering using a seed crystal and recursively adding all neighbouring fired crystals

Author
Ben Salisbury salis.nosp@m.bury.nosp@m.@hisk.nosp@m.p.un.nosp@m.i-bon.nosp@m.n.de, HISKP Bonn
Date
2021-01

Definition at line 46 of file BSEmcRecursiveClustering.h.

Constructor & Destructor Documentation

◆ BSEmcRecursiveClustering()

BSEmcRecursiveClustering::BSEmcRecursiveClustering ( )

◆ ~BSEmcRecursiveClustering()

virtual BSEmcRecursiveClustering::~BSEmcRecursiveClustering ( )
virtual

Member Function Documentation

◆ ClassDef()

BSEmcRecursiveClustering::ClassDef ( BSEmcRecursiveClustering  ,
 
)
protected

◆ Clustering()

std::vector<BSEmcCluster *> BSEmcRecursiveClustering::Clustering ( const std::vector< const BSEmcDigi *> &  t_digis)

◆ ConvertToCluster()

std::vector<BSEmcCluster *> BSEmcRecursiveClustering::ConvertToCluster ( const std::vector< std::vector< BSEmcGeoItem *>> &  t_clusterstubs,
const std::vector< const BSEmcDigi *> &  t_digis 
) const
protected

◆ FillGeoItems()

void BSEmcRecursiveClustering::FillGeoItems ( const std::vector< const BSEmcDigi *> &  t_digis)
protected

◆ Process()

virtual void BSEmcRecursiveClustering::Process ( )
virtual

The actual data transformation (digitizing, clustering, etc.) should be defined here.

Implements PndProcess< BSEmcClusteringData >.

◆ Reset()

void BSEmcRecursiveClustering::Reset ( )
protected

◆ SetClusteringParName()

void BSEmcRecursiveClustering::SetClusteringParName ( const std::string &  t_parName)
inline

Definition at line 57 of file BSEmcRecursiveClustering.h.

References fClusteringParName.

57 { fClusteringParName = t_parName; }

◆ SetClusterPropertiesParName()

void BSEmcRecursiveClustering::SetClusterPropertiesParName ( const std::string &  t_parName)
inline

Definition at line 58 of file BSEmcRecursiveClustering.h.

References fClusterPropertiesParName.

58 { fClusterPropertiesParName = t_parName; }

◆ SetData()

virtual void BSEmcRecursiveClustering::SetData ( BSEmcClusteringData t_data)
virtual

Pass the data container ptrs to the process, and store pointers in class members.

Parameters
t_data

Implements PndProcess< BSEmcClusteringData >.

◆ SetDetectorName()

virtual void BSEmcRecursiveClustering::SetDetectorName ( const std::string &  t_detectorname)
virtual

Set the Detector name. Important, as most EmcParameter need to know for which detector they need to be fetched (each Emc Subdetector has its own set of parameters)

Parameters
t_detectorname

Reimplemented from PndProcess< BSEmcClusteringData >.

◆ SetNeighbouringRelationParName()

void BSEmcRecursiveClustering::SetNeighbouringRelationParName ( const std::string &  t_parName)
inline

Definition at line 60 of file BSEmcRecursiveClustering.h.

References fNeighbouringRelationParName.

60 { fNeighbouringRelationParName = t_parName; }

◆ SetPositionParName()

void BSEmcRecursiveClustering::SetPositionParName ( const std::string &  t_parName)
inline

Definition at line 59 of file BSEmcRecursiveClustering.h.

References fPositionParName.

59 { fPositionParName = t_parName; }

◆ SetupParameters()

virtual void BSEmcRecursiveClustering::SetupParameters ( const PndParameterRegister t_parameter)
virtual

Fetch all parameters from the PndParameterRegister.

Parameters
t_parameter

Implements PndProcess< BSEmcClusteringData >.

◆ SpatialClustering()

std::vector<std::vector<BSEmcGeoItem *> > BSEmcRecursiveClustering::SpatialClustering ( const std::vector< const BSEmcDigi *> &  t_digis)
protected

Member Data Documentation

◆ fChangedCrystals

std::set<BSEmcGeoItem *> BSEmcRecursiveClustering::fChangedCrystals {}
protected

Definition at line 78 of file BSEmcRecursiveClustering.h.

◆ fClusterActiveTime

Double_t BSEmcRecursiveClustering::fClusterActiveTime {-1}
protected

Definition at line 68 of file BSEmcRecursiveClustering.h.

◆ fClusterArray

PndOutputContainerI<BSEmcCluster>* BSEmcRecursiveClustering::fClusterArray {nullptr}
protected

Definition at line 72 of file BSEmcRecursiveClustering.h.

◆ fClusteringParName

std::string BSEmcRecursiveClustering::fClusteringParName {""}
protected

Definition at line 63 of file BSEmcRecursiveClustering.h.

Referenced by SetClusteringParName().

◆ fClusterPropertiesParName

std::string BSEmcRecursiveClustering::fClusterPropertiesParName {""}
protected

Definition at line 64 of file BSEmcRecursiveClustering.h.

Referenced by SetClusterPropertiesParName().

◆ fDigiArray

PndContainerI<BSEmcDigi>* BSEmcRecursiveClustering::fDigiArray {nullptr}
protected

Definition at line 71 of file BSEmcRecursiveClustering.h.

◆ fDigiBranchName

std::string BSEmcRecursiveClustering::fDigiBranchName {""}
protected

Definition at line 67 of file BSEmcRecursiveClustering.h.

◆ fDigiEnergyThreshold

Double_t BSEmcRecursiveClustering::fDigiEnergyThreshold {-1}
protected

Definition at line 69 of file BSEmcRecursiveClustering.h.

◆ fEnergyProcess

std::unique_ptr<BSEmcEnergyCalculationAlgo> BSEmcRecursiveClustering::fEnergyProcess {new BSEmcEnergyCalculationAlgo}
protected

Definition at line 76 of file BSEmcRecursiveClustering.h.

◆ fIDToCrystal

std::map<Int_t, std::unique_ptr<BSEmcGeoItem> > BSEmcRecursiveClustering::fIDToCrystal {}
protected

Definition at line 77 of file BSEmcRecursiveClustering.h.

◆ fNeighbouringRelationPar

BSEmcGeoNeighbouringRelationPar* BSEmcRecursiveClustering::fNeighbouringRelationPar {nullptr}
protected

Definition at line 74 of file BSEmcRecursiveClustering.h.

◆ fNeighbouringRelationParName

std::string BSEmcRecursiveClustering::fNeighbouringRelationParName {""}
protected

Definition at line 66 of file BSEmcRecursiveClustering.h.

Referenced by SetNeighbouringRelationParName().

◆ fPositionParName

std::string BSEmcRecursiveClustering::fPositionParName {""}
protected

Definition at line 65 of file BSEmcRecursiveClustering.h.

Referenced by SetPositionParName().

◆ fPositionProcess

std::unique_ptr<BSEmcPositionAlgo> BSEmcRecursiveClustering::fPositionProcess {new BSEmcPositionAlgo}
protected

Definition at line 75 of file BSEmcRecursiveClustering.h.


The documentation for this class was generated from the following file: