CbmRoot
CbmTrdClusterFinder Class Reference

#include <CbmTrdClusterFinder.h>

Inheritance diagram for CbmTrdClusterFinder:
[legend]
Collaboration diagram for CbmTrdClusterFinder:
[legend]

Public Types

enum  CbmTrdRecDef {
  kTime = 0, kMultiHit, kRowMerger, kNeighbourCol,
  kNeighbourRow, kDumpClusters, kFASP
}
 

Public Member Functions

 CbmTrdClusterFinder ()
 Default constructor. More...
 
 ~CbmTrdClusterFinder ()
 Default destructor. More...
 
virtual InitStatus Init ()
 
virtual void SetParContainers ()
 
virtual void Exec (Option_t *option)
 Executed task. More...
 
virtual void Finish ()
 

Static Public Member Functions

static Float_t GetMinimumChargeTH ()
 
static Bool_t HasDumpClusters ()
 
static Bool_t HasMultiHit ()
 
static Bool_t HasNeighbourCol ()
 
static Bool_t HasNeighbourRow ()
 
static Bool_t HasRowMerger ()
 
static Bool_t IsTimeBased ()
 
static void SetDumpClusters (Bool_t set=kTRUE)
 
static void SetRowMerger (Bool_t set=kTRUE)
 
static void SetMultiHit (Bool_t set=kTRUE)
 
static void SetNeighbourEnable (Bool_t col=kTRUE, Bool_t row=kFALSE)
 
static void SetMinimumChargeTH (Float_t th)
 
static void SetTimeBased (Bool_t set=kTRUE)
 

Protected Member Functions

Bool_t AddCluster (CbmTrdCluster *c)
 Save one finished cluster to the output. More...
 

Private Member Functions

 CbmTrdClusterFinder (const CbmTrdClusterFinder &)
 
CbmTrdClusterFinderoperator= (const CbmTrdClusterFinder &)
 
Int_t AddClusters (TClonesArray *clusters, Bool_t moveOwner=kTRUE)
 
CbmTrdModuleRecAddModule (const CbmTrdDigi *d)
 
 ClassDef (CbmTrdClusterFinder, 1)
 

Private Attributes

TClonesArray * fClusters
 
std::map< Int_t, std::set< Int_t > > fDigiMap
 
std::map< Int_t, std::set< Int_t > > fModuleMap
 /‍** sector digis **‍/ More...
 
std::set< Int_t > fNeighbours
 /‍** sector id per module **‍/ More...
 
std::map< Int_t, std::set< Int_t > > fModDigiMap
 
std::map< Int_t, Int_t > fDigiRow
 
std::map< Int_t, Int_t > fDigiCol
 
std::map< Int_t, Double_t > fDigiCharge
 
std::vector< std::set< Int_t > > fClusterBuffer
 
std::map< Int_t, std::vector< std::set< Int_t > > > fModClusterDigiMap
 
std::map< Int_t, CbmTrdModuleRec * > fModules
 list of modules being processed More...
 
CbmTrdParSetAsicfAsicPar
 parameter list for ASIC characterization More...
 
CbmTrdParSetGasfGasPar
 parameter list for HV status More...
 
CbmTrdParSetDigifDigiPar
 parameter list for read-out geometry More...
 
CbmTrdParSetGainfGainPar
 parameter list for keV->ADC gain conversion More...
 
CbmTrdParSetGeofGeoPar
 parameter list for modules geometry More...
 

Static Private Attributes

static Int_t fgConfig = 0
 Configuration map for the clusterizer. See CbmTrdRecDef for details. More...
 
static Float_t fgMinimumChargeTH = .5e-06
 

Friends

class CbmTrdModuleRecR
 
class CbmTrdModuleRecT
 

Detailed Description

CbmTrdClusterFinder.h

Author
Florian Uhlig f.uhl.nosp@m.ig@g.nosp@m.si.de

Task to find digis/pads which are not separated but touch each other. Create as an output an array of the digis belonging to the cluster. First sort the digis according to the unique sector number. This will result in as many arrays as sectors for one detector module. Then look for each module in all sectors for clusters. If a cluster was found at the sector boundaries check if there is another cluster in the next sector which has an overlap with these cluster. If there is an overlap than merge the two clusters.

Definition at line 37 of file CbmTrdClusterFinder.h.

Member Enumeration Documentation

◆ CbmTrdRecDef

Enumerator
kTime 

select Time based/Event by event reconstruction

kMultiHit 

multi hit detection

kRowMerger 

merge clusters over neighbour rows

kNeighbourCol 

use neighbour trigger; column wise

kNeighbourRow 

use neighbour trigger; row wise

kDumpClusters 

write clustered digis to output

kFASP 

use FASP ASIC for triangular pad plane geometry

Definition at line 42 of file CbmTrdClusterFinder.h.

Constructor & Destructor Documentation

◆ CbmTrdClusterFinder() [1/2]

CbmTrdClusterFinder::CbmTrdClusterFinder ( )

Default constructor.

Definition at line 44 of file CbmTrdClusterFinder.cxx.

◆ ~CbmTrdClusterFinder()

CbmTrdClusterFinder::~CbmTrdClusterFinder ( )

Default destructor.

Definition at line 69 of file CbmTrdClusterFinder.cxx.

References fClusters, and fGeoPar.

◆ CbmTrdClusterFinder() [2/2]

CbmTrdClusterFinder::CbmTrdClusterFinder ( const CbmTrdClusterFinder )
private

Member Function Documentation

◆ AddCluster()

Bool_t CbmTrdClusterFinder::AddCluster ( CbmTrdCluster c)
protected

Save one finished cluster to the output.

Definition at line 83 of file CbmTrdClusterFinder.cxx.

References fClusters.

◆ AddClusters()

Int_t CbmTrdClusterFinder::AddClusters ( TClonesArray *  clusters,
Bool_t  moveOwner = kTRUE 
)
private

◆ AddModule()

◆ ClassDef()

CbmTrdClusterFinder::ClassDef ( CbmTrdClusterFinder  ,
 
)
private

◆ Exec()

void CbmTrdClusterFinder::Exec ( Option_t *  option)
virtual

Executed task.

Digis are sorted according to the moduleAddress. A combiId is calculted based on the rowId and the colId to have a neighbouring criterion for digis within the same pad row. The digis of each module are sorted according to this combiId. All sorted digis of one pad row are 'clustered' into rowCluster. For a new row the rowClusters are compared to the rowClusters of the last row. If an overlap is found they are marked to be parents(last row) and childrens(activ row) (mergeRowCluster()). After this, the finale clusters are created. Therefor walkCluster() walks along the list of marked parents and markes every visited rowCluster to avoid multiple usage of one rowCluster. drawCluster() can be used to get a visual output.

Definition at line 213 of file CbmTrdClusterFinder.cxx.

References AddClusters(), CbmTrdModuleRec::AddDigi(), AddModule(), fClusters, fgMinimumChargeTH, CbmTrdModuleRec::FindClusters(), fModules, CbmDigiManager::Get(), CbmTrdDigi::GetAddressModule(), CbmTrdModuleRec::GetClusters(), CbmDigiManager::GetNofDigis(), CbmTrdModuleRec::GetOverThreshold(), CbmDigiManager::Instance(), and kTrd.

◆ Finish()

void CbmTrdClusterFinder::Finish ( )
virtual

Finish task

Definition at line 337 of file CbmTrdClusterFinder.cxx.

◆ GetMinimumChargeTH()

static Float_t CbmTrdClusterFinder::GetMinimumChargeTH ( )
inlinestatic

Definition at line 62 of file CbmTrdClusterFinder.h.

References fgMinimumChargeTH.

◆ HasDumpClusters()

static Bool_t CbmTrdClusterFinder::HasDumpClusters ( )
inlinestatic

Definition at line 63 of file CbmTrdClusterFinder.h.

References fgConfig, and kDumpClusters.

Referenced by Init().

◆ HasMultiHit()

static Bool_t CbmTrdClusterFinder::HasMultiHit ( )
inlinestatic

Definition at line 64 of file CbmTrdClusterFinder.h.

References fgConfig, and kMultiHit.

Referenced by Init().

◆ HasNeighbourCol()

static Bool_t CbmTrdClusterFinder::HasNeighbourCol ( )
inlinestatic

Definition at line 65 of file CbmTrdClusterFinder.h.

References fgConfig, and kNeighbourCol.

Referenced by Init().

◆ HasNeighbourRow()

static Bool_t CbmTrdClusterFinder::HasNeighbourRow ( )
inlinestatic

Definition at line 66 of file CbmTrdClusterFinder.h.

References fgConfig, and kNeighbourRow.

Referenced by Init().

◆ HasRowMerger()

static Bool_t CbmTrdClusterFinder::HasRowMerger ( )
inlinestatic

Definition at line 67 of file CbmTrdClusterFinder.h.

References fgConfig, and kRowMerger.

Referenced by Init().

◆ Init()

InitStatus CbmTrdClusterFinder::Init ( )
virtual

◆ IsTimeBased()

static Bool_t CbmTrdClusterFinder::IsTimeBased ( )
inlinestatic

Definition at line 68 of file CbmTrdClusterFinder.h.

References fgConfig, and kTime.

Referenced by Init().

◆ operator=()

CbmTrdClusterFinder& CbmTrdClusterFinder::operator= ( const CbmTrdClusterFinder )
private

◆ SetDumpClusters()

static void CbmTrdClusterFinder::SetDumpClusters ( Bool_t  set = kTRUE)
inlinestatic

Definition at line 82 of file CbmTrdClusterFinder.h.

References fgConfig, and kDumpClusters.

◆ SetMinimumChargeTH()

static void CbmTrdClusterFinder::SetMinimumChargeTH ( Float_t  th)
inlinestatic

Definition at line 95 of file CbmTrdClusterFinder.h.

References fgMinimumChargeTH.

◆ SetMultiHit()

static void CbmTrdClusterFinder::SetMultiHit ( Bool_t  set = kTRUE)
inlinestatic

Definition at line 88 of file CbmTrdClusterFinder.h.

References fgConfig, and kMultiHit.

◆ SetNeighbourEnable()

static void CbmTrdClusterFinder::SetNeighbourEnable ( Bool_t  col = kTRUE,
Bool_t  row = kFALSE 
)
inlinestatic

Definition at line 91 of file CbmTrdClusterFinder.h.

References fgConfig, kNeighbourCol, and kNeighbourRow.

◆ SetParContainers()

void CbmTrdClusterFinder::SetParContainers ( )
virtual

Definition at line 149 of file CbmTrdClusterFinder.cxx.

References fAsicPar, fDigiPar, fGainPar, fGasPar, and fGeoPar.

◆ SetRowMerger()

static void CbmTrdClusterFinder::SetRowMerger ( Bool_t  set = kTRUE)
inlinestatic

Definition at line 85 of file CbmTrdClusterFinder.h.

References fgConfig, and kRowMerger.

◆ SetTimeBased()

static void CbmTrdClusterFinder::SetTimeBased ( Bool_t  set = kTRUE)
inlinestatic

Definition at line 96 of file CbmTrdClusterFinder.h.

References fgConfig, and kTime.

Referenced by Init().

Friends And Related Function Documentation

◆ CbmTrdModuleRecR

friend class CbmTrdModuleRecR
friend

Definition at line 38 of file CbmTrdClusterFinder.h.

Referenced by AddModule().

◆ CbmTrdModuleRecT

friend class CbmTrdModuleRecT
friend

Definition at line 39 of file CbmTrdClusterFinder.h.

Referenced by AddModule().

Member Data Documentation

◆ fAsicPar

CbmTrdParSetAsic* CbmTrdClusterFinder::fAsicPar
private

parameter list for ASIC characterization

Definition at line 135 of file CbmTrdClusterFinder.h.

Referenced by AddModule(), and SetParContainers().

◆ fClusterBuffer

std::vector<std::set<Int_t> > CbmTrdClusterFinder::fClusterBuffer
private

Definition at line 129 of file CbmTrdClusterFinder.h.

◆ fClusters

TClonesArray* CbmTrdClusterFinder::fClusters
private

Definition at line 116 of file CbmTrdClusterFinder.h.

Referenced by AddCluster(), AddClusters(), Exec(), Init(), and ~CbmTrdClusterFinder().

◆ fDigiCharge

std::map<Int_t, Double_t> CbmTrdClusterFinder::fDigiCharge
private

Definition at line 127 of file CbmTrdClusterFinder.h.

◆ fDigiCol

std::map<Int_t, Int_t> CbmTrdClusterFinder::fDigiCol
private

Definition at line 126 of file CbmTrdClusterFinder.h.

◆ fDigiMap

std::map<Int_t, std::set<Int_t> > CbmTrdClusterFinder::fDigiMap
private

Output array of CbmTrdCluster

Definition at line 118 of file CbmTrdClusterFinder.h.

◆ fDigiPar

CbmTrdParSetDigi* CbmTrdClusterFinder::fDigiPar
private

parameter list for read-out geometry

Definition at line 137 of file CbmTrdClusterFinder.h.

Referenced by AddClusters(), AddModule(), and SetParContainers().

◆ fDigiRow

std::map<Int_t, Int_t> CbmTrdClusterFinder::fDigiRow
private

Definition at line 125 of file CbmTrdClusterFinder.h.

◆ fGainPar

CbmTrdParSetGain* CbmTrdClusterFinder::fGainPar
private

parameter list for keV->ADC gain conversion

Definition at line 138 of file CbmTrdClusterFinder.h.

Referenced by AddModule(), and SetParContainers().

◆ fGasPar

CbmTrdParSetGas* CbmTrdClusterFinder::fGasPar
private

parameter list for HV status

Definition at line 136 of file CbmTrdClusterFinder.h.

Referenced by AddModule(), and SetParContainers().

◆ fgConfig

Int_t CbmTrdClusterFinder::fgConfig = 0
staticprivate

Configuration map for the clusterizer. See CbmTrdRecDef for details.

Definition at line 112 of file CbmTrdClusterFinder.h.

Referenced by HasDumpClusters(), HasMultiHit(), HasNeighbourCol(), HasNeighbourRow(), HasRowMerger(), IsTimeBased(), SetDumpClusters(), SetMultiHit(), SetNeighbourEnable(), SetRowMerger(), and SetTimeBased().

◆ fGeoPar

CbmTrdParSetGeo* CbmTrdClusterFinder::fGeoPar
private

parameter list for modules geometry

Definition at line 139 of file CbmTrdClusterFinder.h.

Referenced by AddModule(), SetParContainers(), and ~CbmTrdClusterFinder().

◆ fgMinimumChargeTH

Float_t CbmTrdClusterFinder::fgMinimumChargeTH = .5e-06
staticprivate

Definition at line 113 of file CbmTrdClusterFinder.h.

Referenced by Exec(), GetMinimumChargeTH(), and SetMinimumChargeTH().

◆ fModClusterDigiMap

std::map<Int_t, std::vector<std::set<Int_t> > > CbmTrdClusterFinder::fModClusterDigiMap
private

Definition at line 130 of file CbmTrdClusterFinder.h.

◆ fModDigiMap

std::map<Int_t, std::set<Int_t> > CbmTrdClusterFinder::fModDigiMap
private

Definition at line 123 of file CbmTrdClusterFinder.h.

◆ fModuleMap

std::map<Int_t, std::set<Int_t> > CbmTrdClusterFinder::fModuleMap
private

/‍** sector digis **‍/

Definition at line 119 of file CbmTrdClusterFinder.h.

◆ fModules

std::map<Int_t, CbmTrdModuleRec*> CbmTrdClusterFinder::fModules
private

list of modules being processed

Definition at line 134 of file CbmTrdClusterFinder.h.

Referenced by AddModule(), and Exec().

◆ fNeighbours

std::set<Int_t> CbmTrdClusterFinder::fNeighbours
private

/‍** sector id per module **‍/

Definition at line 121 of file CbmTrdClusterFinder.h.


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