CbmRoot
|
#include <CbmTrdClusterFinder.h>
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 &) | |
CbmTrdClusterFinder & | operator= (const CbmTrdClusterFinder &) |
Int_t | AddClusters (TClonesArray *clusters, Bool_t moveOwner=kTRUE) |
CbmTrdModuleRec * | AddModule (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... | |
CbmTrdParSetAsic * | fAsicPar |
parameter list for ASIC characterization More... | |
CbmTrdParSetGas * | fGasPar |
parameter list for HV status More... | |
CbmTrdParSetDigi * | fDigiPar |
parameter list for read-out geometry More... | |
CbmTrdParSetGain * | fGainPar |
parameter list for keV->ADC gain conversion More... | |
CbmTrdParSetGeo * | fGeoPar |
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 |
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.
Definition at line 42 of file CbmTrdClusterFinder.h.
CbmTrdClusterFinder::CbmTrdClusterFinder | ( | ) |
Default constructor.
Definition at line 44 of file CbmTrdClusterFinder.cxx.
CbmTrdClusterFinder::~CbmTrdClusterFinder | ( | ) |
Default destructor.
Definition at line 69 of file CbmTrdClusterFinder.cxx.
|
private |
|
protected |
Save one finished cluster to the output.
Definition at line 83 of file CbmTrdClusterFinder.cxx.
References fClusters.
|
private |
Definition at line 286 of file CbmTrdClusterFinder.cxx.
References fClusters, fDigiPar, CbmDigiManager::Get(), CbmTrdDigi::GetAddressChannel(), CbmTrdParSet::GetModulePar(), CbmTrdParModDigi::GetNofColumns(), CbmDigiManager::Instance(), and CbmTrdCluster::SetTrianglePads().
Referenced by Exec().
|
private |
Definition at line 90 of file CbmTrdClusterFinder.cxx.
References CbmTrdModuleRecR, CbmTrdModuleRecT, fAsicPar, fDigiPar, fGainPar, fGasPar, fGeoPar, fModules, CbmTrdDigi::GetAddressModule(), CbmTrdParSet::GetModulePar(), CbmTrdParSetAsic::GetModuleSet(), CbmTrdDigi::GetType(), CbmTrdDigi::kFASP, CbmTrdModuleAbstract::SetAsicPar(), CbmTrdModuleAbstract::SetChmbPar(), CbmTrdModuleAbstract::SetDigiPar(), CbmTrdModuleAbstract::SetGainPar(), and CbmTrdModuleAbstract::SetGeoPar().
Referenced by Exec().
|
private |
|
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.
|
virtual |
Finish task
Definition at line 337 of file CbmTrdClusterFinder.cxx.
|
inlinestatic |
Definition at line 62 of file CbmTrdClusterFinder.h.
References fgMinimumChargeTH.
|
inlinestatic |
Definition at line 63 of file CbmTrdClusterFinder.h.
References fgConfig, and kDumpClusters.
Referenced by Init().
|
inlinestatic |
Definition at line 64 of file CbmTrdClusterFinder.h.
References fgConfig, and kMultiHit.
Referenced by Init().
|
inlinestatic |
Definition at line 65 of file CbmTrdClusterFinder.h.
References fgConfig, and kNeighbourCol.
Referenced by Init().
|
inlinestatic |
Definition at line 66 of file CbmTrdClusterFinder.h.
References fgConfig, and kNeighbourRow.
Referenced by Init().
|
inlinestatic |
Definition at line 67 of file CbmTrdClusterFinder.h.
References fgConfig, and kRowMerger.
Referenced by Init().
|
virtual |
Initialisation
Definition at line 163 of file CbmTrdClusterFinder.cxx.
References fClusters, HasDumpClusters(), HasMultiHit(), HasNeighbourCol(), HasNeighbourRow(), HasRowMerger(), CbmDigiManager::Init(), CbmDigiManager::Instance(), IsTimeBased(), kTrd, and SetTimeBased().
|
inlinestatic |
Definition at line 68 of file CbmTrdClusterFinder.h.
References fgConfig, and kTime.
Referenced by Init().
|
private |
|
inlinestatic |
Definition at line 82 of file CbmTrdClusterFinder.h.
References fgConfig, and kDumpClusters.
|
inlinestatic |
Definition at line 95 of file CbmTrdClusterFinder.h.
References fgMinimumChargeTH.
|
inlinestatic |
Definition at line 88 of file CbmTrdClusterFinder.h.
|
inlinestatic |
Definition at line 91 of file CbmTrdClusterFinder.h.
References fgConfig, kNeighbourCol, and kNeighbourRow.
|
virtual |
|
inlinestatic |
Definition at line 85 of file CbmTrdClusterFinder.h.
References fgConfig, and kRowMerger.
|
inlinestatic |
Definition at line 96 of file CbmTrdClusterFinder.h.
References fgConfig, and kTime.
Referenced by Init().
|
friend |
Definition at line 38 of file CbmTrdClusterFinder.h.
Referenced by AddModule().
|
friend |
Definition at line 39 of file CbmTrdClusterFinder.h.
Referenced by AddModule().
|
private |
parameter list for ASIC characterization
Definition at line 135 of file CbmTrdClusterFinder.h.
Referenced by AddModule(), and SetParContainers().
|
private |
Definition at line 129 of file CbmTrdClusterFinder.h.
|
private |
Definition at line 116 of file CbmTrdClusterFinder.h.
Referenced by AddCluster(), AddClusters(), Exec(), Init(), and ~CbmTrdClusterFinder().
|
private |
Definition at line 127 of file CbmTrdClusterFinder.h.
|
private |
Definition at line 126 of file CbmTrdClusterFinder.h.
|
private |
Output array of CbmTrdCluster
Definition at line 118 of file CbmTrdClusterFinder.h.
|
private |
parameter list for read-out geometry
Definition at line 137 of file CbmTrdClusterFinder.h.
Referenced by AddClusters(), AddModule(), and SetParContainers().
|
private |
Definition at line 125 of file CbmTrdClusterFinder.h.
|
private |
parameter list for keV->ADC gain conversion
Definition at line 138 of file CbmTrdClusterFinder.h.
Referenced by AddModule(), and SetParContainers().
|
private |
parameter list for HV status
Definition at line 136 of file CbmTrdClusterFinder.h.
Referenced by AddModule(), and SetParContainers().
|
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().
|
private |
parameter list for modules geometry
Definition at line 139 of file CbmTrdClusterFinder.h.
Referenced by AddModule(), SetParContainers(), and ~CbmTrdClusterFinder().
|
staticprivate |
Definition at line 113 of file CbmTrdClusterFinder.h.
Referenced by Exec(), GetMinimumChargeTH(), and SetMinimumChargeTH().
|
private |
Definition at line 130 of file CbmTrdClusterFinder.h.
|
private |
Definition at line 123 of file CbmTrdClusterFinder.h.
|
private |
/** sector digis **/
Definition at line 119 of file CbmTrdClusterFinder.h.
|
private |
list of modules being processed
Definition at line 134 of file CbmTrdClusterFinder.h.
Referenced by AddModule(), and Exec().
|
private |
/** sector id per module **/
Definition at line 121 of file CbmTrdClusterFinder.h.