PandaRoot
BSEmcMergePreclusters Class Reference

Process to merge preclusters into Clusters. More...

#include <BSEmcMergePreclusters.h>

Inheritance diagram for BSEmcMergePreclusters:
PndProcess

Public Member Functions

 BSEmcMergePreclusters ()
 
virtual ~BSEmcMergePreclusters ()
 
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 RequestDataContainer (PndContainerRegister *t_register)
 Pass the container register to the process, and get the processes container requirements. More...
 
virtual void GetDataContainer (PndContainerRegister *t_register)
 Pass the container register to the process, and set the processes container requirements. 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 * > MergePreclusters (const std::vector< const BSEmcDigi *> &t_digiCont, const std::vector< BSEmcPrecluster *> &t_preclusterCont)
 
void SetPositionMethod (Int_t method)
 
void SetNeighbourMethod (Int_t nbmethod)
 
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)
 
void SetDigiBranchName (const TString &t_branchname)
 
void SetPreclusterBranchName (const TString &t_branchname)
 
void SetClusterBranchName (const TString &t_branchname)
 
- Public Member Functions inherited from PndProcess
 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

std::vector< Int_t > FindNeighbouringPrecluster (const std::vector< BSEmcPrecluster *> &t_preclusterCont)
 
std::vector< Int_t > ClusterNeigbours (const std::vector< Int_t > &t_neighbours, const std::vector< BSEmcPrecluster *> &t_preclusterCont)
 
std::vector< BSEmcCluster * > MergePreclustersIntoCluster (const std::vector< Int_t > &t_clusterNrForPrecluster, const std::vector< BSEmcPrecluster *> &t_preclusterCont)
 
virtual void FinishClusters (const std::vector< const BSEmcDigi *> &t_digiCont, const std::vector< BSEmcCluster *> &t_clusterCont)
 
void FinishCluster (const std::vector< const BSEmcDigi *> &t_digiCont, BSEmcCluster *tmpcluster)
 

Additional Inherited Members

- Protected Attributes inherited from PndProcess
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 {"PndProcess"}
 Name of current PndProcess (for debugging) More...
 
TStopwatch fTimer {}
 Timer to monitor Process() time. More...
 
Double_t fTotalTime {0}
 Time taken by this Process' Process() More...
 
ProcInfo_t fProcInfo
 Helper to access cpu process Memory Info. More...
 
Long_t fLastMemSize
 

Detailed Description

Process to merge preclusters into Clusters.

To be run after BSEmcMergePreclusters and before BSEmcLocalMaxFindingProcess

Author
Viktor Rodin
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 51 of file BSEmcMergePreclusters.h.

Constructor & Destructor Documentation

◆ BSEmcMergePreclusters()

BSEmcMergePreclusters::BSEmcMergePreclusters ( )

◆ ~BSEmcMergePreclusters()

virtual BSEmcMergePreclusters::~BSEmcMergePreclusters ( )
virtual

Member Function Documentation

◆ ClusterNeigbours()

std::vector<Int_t> BSEmcMergePreclusters::ClusterNeigbours ( const std::vector< Int_t > &  t_neighbours,
const std::vector< BSEmcPrecluster *> &  t_preclusterCont 
)
protected

Referenced by SetClusterBranchName().

◆ FindNeighbouringPrecluster()

std::vector<Int_t> BSEmcMergePreclusters::FindNeighbouringPrecluster ( const std::vector< BSEmcPrecluster *> &  t_preclusterCont)
protected

Referenced by SetClusterBranchName().

◆ FinishCluster()

void BSEmcMergePreclusters::FinishCluster ( const std::vector< const BSEmcDigi *> &  t_digiCont,
BSEmcCluster tmpcluster 
)
protected

Referenced by SetClusterBranchName().

◆ FinishClusters()

virtual void BSEmcMergePreclusters::FinishClusters ( const std::vector< const BSEmcDigi *> &  t_digiCont,
const std::vector< BSEmcCluster *> &  t_clusterCont 
)
protectedvirtual

Referenced by SetClusterBranchName().

◆ GetDataContainer()

virtual void BSEmcMergePreclusters::GetDataContainer ( PndContainerRegister )
virtual

Pass the container register to the process, and set the processes container requirements.

Parameters
t_register

Reimplemented from PndProcess.

◆ MergePreclusters()

std::vector<BSEmcCluster *> BSEmcMergePreclusters::MergePreclusters ( const std::vector< const BSEmcDigi *> &  t_digiCont,
const std::vector< BSEmcPrecluster *> &  t_preclusterCont 
)

◆ MergePreclustersIntoCluster()

std::vector<BSEmcCluster *> BSEmcMergePreclusters::MergePreclustersIntoCluster ( const std::vector< Int_t > &  t_clusterNrForPrecluster,
const std::vector< BSEmcPrecluster *> &  t_preclusterCont 
)
protected

Referenced by SetClusterBranchName().

◆ Process()

virtual void BSEmcMergePreclusters::Process ( )
virtual

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

Implements PndProcess.

◆ RequestDataContainer()

virtual void BSEmcMergePreclusters::RequestDataContainer ( PndContainerRegister )
virtual

Pass the container register to the process, and get the processes container requirements.

Parameters
t_register

Reimplemented from PndProcess.

◆ SetClusterBranchName()

void BSEmcMergePreclusters::SetClusterBranchName ( const TString &  t_branchname)
inline

Definition at line 91 of file BSEmcMergePreclusters.h.

References ClusterNeigbours(), FindNeighbouringPrecluster(), FinishCluster(), FinishClusters(), and MergePreclustersIntoCluster().

91 { fClusterBranchname = t_branchname; }

◆ SetClusteringParName()

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

Set cluster neighbour nbmethod: 0 = default method (for position, logarithmic weighing; for radius, distance of digi furthest from position) -> use this CIRCLE for neighbour relations), 1 = simplified method (for position, xpos=(xmax+xmin)/2 ypos=(ymax+ymin)/2; for radius, r=max(ysize, xsize) -> use this CIRCLE for neighbour relations), 2 = simplified method (for position, xpos=(xmax+xmin)/2 ypos=(ymax+ymin)/2; for radius, rx=(xmax-xmin)/2, ry=(ymax-ymin)/2 -> use this RECTANGULAR BOX for neighbour relations). 3 = simplified method (for position, xpos=(xmax+xmin)/2 ypos=(ymax+ymin)/2; for radius, r=max(ysize, xsize) -> use this SQUARE BOX for neighbour relations).

Definition at line 84 of file BSEmcMergePreclusters.h.

84 { fClusteringParName = t_parName; }

◆ SetClusterPropertiesParName()

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

Definition at line 85 of file BSEmcMergePreclusters.h.

85 { fClusterPropertiesParName = t_parName; }

◆ SetDetectorName()

virtual void BSEmcMergePreclusters::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.

◆ SetDigiBranchName()

void BSEmcMergePreclusters::SetDigiBranchName ( const TString &  t_branchname)
inline

Definition at line 89 of file BSEmcMergePreclusters.h.

89 { fDigiBranchname = t_branchname; }

◆ SetNeighbouringRelationParName()

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

Definition at line 87 of file BSEmcMergePreclusters.h.

87 { fNeighbouringRelationParName = t_parName; }

◆ SetNeighbourMethod()

void BSEmcMergePreclusters::SetNeighbourMethod ( Int_t  nbmethod)
inline

Set cluster position method: 0 = default method (logarithmic weighing), 1 = simplified method (xpos=(xmax+xmin)/2, ypos=(ymax+ymin)/2) using the REAL x,y position, 2 = simplified method (xpos=(xmax+xmin)/2, ypos=(ymax+ymin)/2) using the MAPPED XPad,YPad position, 3 = simplified method using the REAL x,y position of the DIGI WITH HIGHEST ENERGY, 4 = simplified method using the MAPPED XPad,YPad position of the DIGI WITH HIGHEST ENERGY.

Definition at line 74 of file BSEmcMergePreclusters.h.

75  {
76  fNbMethod = nbmethod;
77  }

◆ SetPositionMethod()

void BSEmcMergePreclusters::SetPositionMethod ( Int_t  method)
inline

Definition at line 64 of file BSEmcMergePreclusters.h.

65  {
66  fPosMethod = method;
67  }

◆ SetPositionParName()

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

Definition at line 86 of file BSEmcMergePreclusters.h.

86 { fPositionParName = t_parName; }

◆ SetPreclusterBranchName()

void BSEmcMergePreclusters::SetPreclusterBranchName ( const TString &  t_branchname)
inline

Definition at line 90 of file BSEmcMergePreclusters.h.

90 { fPreclusterBranchname = t_branchname; }

◆ SetupParameters()

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

Fetch all parameters from the PndParameterRegister.

Parameters
t_parameter

Implements PndProcess.


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