PandaRoot
BSEmcClusteringProcess Class Reference

Rewritten version of old PndEmcMakeCluster algorithm for easier understanding and debugging. More...

#include <BSEmcClusteringProcess.h>

Inheritance diagram for BSEmcClusteringProcess:
PndProcess< BSEmcClusteringData >

Public Member Functions

 BSEmcClusteringProcess ()
 
virtual ~BSEmcClusteringProcess ()
 
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 CreateClusterableDigiCandidates (const std::vector< const BSEmcDigi *> &t_digis)
 
void FindNeighboursOfEveryDigi ()
 
Bool_t AreDigisNeighbours (Int_t t_digi1, Int_t t_digi2) const
 
void PrimaryClustering ()
 
void SecondaryClustering ()
 
void CleanUpClusterNumbering ()
 
std::vector< BSEmcCluster * > CreateEmcCluster ()
 
void AssignNeighbouringDigisSameClusterNumber (DigiClusteringCandidate &t_digi)
 
 ClassDef (BSEmcClusteringProcess, 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}
 
std::vector< DigiClusteringCandidatefDigiCandidates {}
 
Int_t fNClusters {0}
 
Int_t fNDigisPassed {-1}
 
std::vector< std::pair< Int_t, Int_t > > fClusterNumbersForSameCluster {}
 
BSEmcGeoNeighbouringRelationParfNeighbouringRelationPar {nullptr}
 
std::unique_ptr< BSEmcPositionAlgofPositionProcess {new BSEmcPositionAlgo}
 
std::unique_ptr< BSEmcEnergyCalculationAlgofEnergyProcess {new BSEmcEnergyCalculationAlgo}
 
- 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

Rewritten version of old PndEmcMakeCluster algorithm for easier understanding and debugging.

Author
Jan Zhong
Marcel Tiemens
Áron Kripkó
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-02

Definition at line 56 of file BSEmcClusteringProcess.h.

Constructor & Destructor Documentation

◆ BSEmcClusteringProcess()

BSEmcClusteringProcess::BSEmcClusteringProcess ( )

◆ ~BSEmcClusteringProcess()

virtual BSEmcClusteringProcess::~BSEmcClusteringProcess ( )
virtual

Member Function Documentation

◆ AreDigisNeighbours()

Bool_t BSEmcClusteringProcess::AreDigisNeighbours ( Int_t  t_digi1,
Int_t  t_digi2 
) const
protected

◆ AssignNeighbouringDigisSameClusterNumber()

void BSEmcClusteringProcess::AssignNeighbouringDigisSameClusterNumber ( DigiClusteringCandidate t_digi)
protected

◆ ClassDef()

BSEmcClusteringProcess::ClassDef ( BSEmcClusteringProcess  ,
 
)
protected

◆ CleanUpClusterNumbering()

void BSEmcClusteringProcess::CleanUpClusterNumbering ( )
protected

◆ Clustering()

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

◆ CreateClusterableDigiCandidates()

void BSEmcClusteringProcess::CreateClusterableDigiCandidates ( const std::vector< const BSEmcDigi *> &  t_digis)
protected

◆ CreateEmcCluster()

std::vector<BSEmcCluster *> BSEmcClusteringProcess::CreateEmcCluster ( )
protected

◆ FindNeighboursOfEveryDigi()

void BSEmcClusteringProcess::FindNeighboursOfEveryDigi ( )
protected

◆ PrimaryClustering()

void BSEmcClusteringProcess::PrimaryClustering ( )
protected

◆ Process()

virtual void BSEmcClusteringProcess::Process ( )
virtual

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

Implements PndProcess< BSEmcClusteringData >.

◆ SecondaryClustering()

void BSEmcClusteringProcess::SecondaryClustering ( )
protected

◆ SetClusteringParName()

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

Definition at line 67 of file BSEmcClusteringProcess.h.

67 { fClusteringParName = t_parName; }

◆ SetClusterPropertiesParName()

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

Definition at line 68 of file BSEmcClusteringProcess.h.

68 { fClusterPropertiesParName = t_parName; }

◆ SetData()

virtual void BSEmcClusteringProcess::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 BSEmcClusteringProcess::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 BSEmcClusteringProcess::SetNeighbouringRelationParName ( const std::string &  t_parName)
inline

Definition at line 70 of file BSEmcClusteringProcess.h.

70 { fNeighbouringRelationParName = t_parName; }

◆ SetPositionParName()

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

Definition at line 69 of file BSEmcClusteringProcess.h.

69 { fPositionParName = t_parName; }

◆ SetupParameters()

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

Fetch all parameters from the PndParameterRegister.

Parameters
t_parameter

Implements PndProcess< BSEmcClusteringData >.

Member Data Documentation

◆ fClusterActiveTime

Double_t BSEmcClusteringProcess::fClusterActiveTime {-1}
protected

Definition at line 78 of file BSEmcClusteringProcess.h.

◆ fClusterArray

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

Definition at line 82 of file BSEmcClusteringProcess.h.

◆ fClusteringParName

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

Definition at line 73 of file BSEmcClusteringProcess.h.

◆ fClusterNumbersForSameCluster

std::vector<std::pair<Int_t, Int_t> > BSEmcClusteringProcess::fClusterNumbersForSameCluster {}
protected

Definition at line 87 of file BSEmcClusteringProcess.h.

◆ fClusterPropertiesParName

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

Definition at line 74 of file BSEmcClusteringProcess.h.

◆ fDigiArray

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

Definition at line 81 of file BSEmcClusteringProcess.h.

◆ fDigiBranchName

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

Definition at line 77 of file BSEmcClusteringProcess.h.

◆ fDigiCandidates

std::vector<DigiClusteringCandidate> BSEmcClusteringProcess::fDigiCandidates {}
protected

Definition at line 84 of file BSEmcClusteringProcess.h.

◆ fDigiEnergyThreshold

Double_t BSEmcClusteringProcess::fDigiEnergyThreshold {-1}
protected

Definition at line 79 of file BSEmcClusteringProcess.h.

◆ fEnergyProcess

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

Definition at line 90 of file BSEmcClusteringProcess.h.

◆ fNClusters

Int_t BSEmcClusteringProcess::fNClusters {0}
protected

Definition at line 85 of file BSEmcClusteringProcess.h.

◆ fNDigisPassed

Int_t BSEmcClusteringProcess::fNDigisPassed {-1}
protected

Definition at line 86 of file BSEmcClusteringProcess.h.

◆ fNeighbouringRelationPar

BSEmcGeoNeighbouringRelationPar* BSEmcClusteringProcess::fNeighbouringRelationPar {nullptr}
protected

Definition at line 88 of file BSEmcClusteringProcess.h.

◆ fNeighbouringRelationParName

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

Definition at line 76 of file BSEmcClusteringProcess.h.

◆ fPositionParName

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

Definition at line 75 of file BSEmcClusteringProcess.h.

◆ fPositionProcess

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

Definition at line 89 of file BSEmcClusteringProcess.h.


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